转载

走近科学:三星电脑恶意禁用Windows更新“丑闻”

近期有Windows用户反映称,自己的三星电脑上Windows自动更新程序会被随机禁用,这个给他们的PC安全带来了安全隐患。禁用Windows更新的程序名为Disable_Windowsupdate.exe,这个程序是三星SW Update软件的一部分。

SW Update是典型的OEM更新软件,这个软件被用来更新三星的驱动程序,同时也会更新一些三星自己的软件。与其他OEM更新软件不同的是,三星的这款更新软件会禁用Windows自动更新!

受影响系统版本

Windows XP (all Service Packs)

Windows Vista (x86/x64)

Windows 7/SP1 (x86/x64)

Windows 8/8.1 (x86/x64) 

需要注意,这些版本都是在三星机器环境下进行检测的。如果我们有什么疏漏,欢迎补充。

卸载/移除三星SW Update

SW Update在Windows添加/删除(卸载和更改程序)中有列出来,它可以向其他正常软件一样从系统中删除。将其卸载后重启机器,它不会被移除。SE Update Service仍然活跃运行着,存在于/ProgramData/Samsung文件夹下面的"Disable_Windowsupdate.exe"程序依旧还在。

首先,经过传统卸载之后,还需要在注册表中删除一些值

走近科学:三星电脑恶意禁用Windows更新“丑闻”

译者注:由于信息量太大,编辑器无法保存,文后我会附加到网盘中。

正如你所见到的,它能删除与该服务相关的键值。

HKLM/SOFTWARE/Samsung/SW Update/AgentPath: "C:/ProgramData/Samsung/SW Update Service/SWMAgent.exe"

然而,我们在注册表中快速查找这个键值

走近科学:三星电脑恶意禁用Windows更新“丑闻”

可以看到该服务依旧还在。

走近科学:三星电脑恶意禁用Windows更新“丑闻”

正如我前面提到的,这可能是卸载发生在非三星环境中,因此卸载进程可能被中断了或者不能如预期一样正常工作。这仅仅是我的一个猜测,然而在三星环境中甚至也会发送这种情况。

因为我没有一个正式的三星环境用来测试,我无法评论说通过传统卸载方式能够移除,希望能够移除吧,彻底的!

如果你是一个三星用户,如上面所说先通过正常卸载方式进行卸载,如果依旧存在的话就只能够通过手工卸载,或者是等待三星发布工具进行卸载了,就和前短时间联想的Superfish一样。

接着我们来讲讲如何发现它:

走近科学:三星电脑恶意禁用Windows更新“丑闻”

不久之后…

走近科学:三星电脑恶意禁用Windows更新“丑闻”

——-

走近科学:三星电脑恶意禁用Windows更新“丑闻”

这里还有其他 Object值的名称:

1.CachedAUOptions

2.InstallInProgress,

3.UpdatesAvailableForInstallLogon

4.UpdatesAvailableWithUiLogon

5.UpdatesAvailableWithUiOrEulaLogon

6.FirmwareUpdatesNotDownloaded

7.FirmwareUpdatesNotInstalled

总之,我们继续往下看:

HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/AuthorizedCDFPrefix: ""    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Comments: "SW Update Setup"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Contact: "Samsung Electronics CO., LTD."    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/DisplayVersion: "2.2.9"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/HelpLink: "http://www.samsung.com"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/HelpTelephone: ""    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/InstallDate: "20150623"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/InstallLocation: ""    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/InstallSource: "C:/ProgramData/Samsung/SWUpdate/Temp/"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/ModifyPath: "MsiExec.exe /I{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Publisher: "Samsung Electronics CO., LTD."    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Readme: ""    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Size: ""    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/EstimatedSize: 0x00008172    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/UninstallString: "MsiExec.exe /I{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/URLInfoAbout: "http://www.samsung.com"    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/URLUpdateInfo: ""    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/VersionMajor: 0x00000002    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/VersionMinor: 0x00000002    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/WindowsInstaller: 0x00000001    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Version: 0x02020009    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/Language: 0x00000409    HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}/DisplayName: "SW Update"

这是安装后,注册表改变的基础信息比较

HKLM/SOFTWARE/Samsung/CurrentPath/20000: ""C:/Program Files/Samsung/SW Update/sManager.exe""    HKLM/SOFTWARE/Samsung/SW Update/AgentPath: "C:/ProgramData/Samsung/SW Update Service/SWMAgent.exe"    HKLM/SOFTWARE/Samsung/SW Update/InstallPath: "C:/Program Files/Samsung/SW Update/sManager.exe"    HKLM/SOFTWARE/Samsung/SW Update/TrafficDecentralize: "Y"    HKLM/SOFTWARE/Samsung/SW Update/LastORCAServerUpdateDateTime: "2015-06-22T02:28:42"    HKLM/SOFTWARE/Samsung/SW Update/AgentSleepSec: "300"    HKLM/SOFTWARE/Samsung/SWMCommon/FirstAgentExecDateTime: "2015-06-23T01:47:42"    HKLM/SYSTEM/ControlSet001/Services/SWUpdateService/Type: 0x00000110    HKLM/SYSTEM/ControlSet001/Services/SWUpdateService/Start: 0x00000002    HKLM/SYSTEM/ControlSet001/Services/SWUpdateService/ErrorControl: 0x00000001    HKLM/SYSTEM/ControlSet001/Services/SWUpdateService/ImagePath: "C:/ProgramData/Samsung/SW Update Service/SWMAgent.exe /SERVICE"    HKLM/SYSTEM/ControlSet001/Services/SWUpdateService/DisplayName: "SW Update Service"    HKLM/SYSTEM/ControlSet001/Services/SWUpdateService/ObjectName: "LocalSystem"    HKLM/SYSTEM/CurrentControlSet/Services/SWUpdateService/Type: 0x00000110    HKLM/SYSTEM/CurrentControlSet/Services/SWUpdateService/Start: 0x00000002    HKLM/SYSTEM/CurrentControlSet/Services/SWUpdateService/ErrorControl: 0x00000001    HKLM/SYSTEM/CurrentControlSet/Services/SWUpdateService/ImagePath: "C:/ProgramData/Samsung/SW Update Service/SWMAgent.exe /SERVICE"    HKLM/SYSTEM/CurrentControlSet/Services/SWUpdateService/DisplayName: "SW Update Service"    HKLM/SYSTEM/CurrentControlSet/Services/SWUpdateService/ObjectName: "LocalSystem"

在这里我们能够看到更多的信息,比如休眠时间为300秒,第一个执行时间戳,以及创建SW Update服务。接下来我要做的就是中断这个服务。

Type (0×00000110):据我所知,这暗示我们这是一个能够启动Windows服务管理器的Win32程序,并能够让服务管理器遵从其指令。这种类型的Win32服务运行在一个进程本身。

Start (0×00000002):这是将所有启动项设置为加载或者自动加载,无论服务类型。其加载服务控制管理器,0×0 (boot)作为内核,0×1 (system)作为I/O子系统。

ErrorControl (0×00000001):如果驱动初始化或者加载失败,不论是否提示错误都继续执行。

我们注意到,该文件位置:

C:/ProgramData/Samsung

如果你将显示隐藏文件夹属性勾上,你会注意到两个文件夹–“SW Update Service”以及“SWUpdate”。如果你有一台三星机器,你只有一个SWUpdate文件夹,但都包含XML文件,让我们来看看吧(BASW-A0394A05_1B33BCEB.xml)

<?xml version="1.0" encoding="UTF-8"?>    -<MaxList>    -<Head>    <BOMID/>    <CISCode/>    <Product/>    <Project/>    <Model/>    <DevStep/>    <BaseMRT/>    <BaseBOM/>    <Region/>    <OS/>    <Language/>    <ROLString/>    <Date/>    <Time/>    <Test>Yes</Test>    </Head>    -<Item>    <CISCode>BASW-A0394A05</CISCode>    <ItemType>SOFTWARE</ItemType>    <DisplayName>Disable_AutoWindowsUpdate1.0</DisplayName>    <Region>DNC</Region>    <OS>WBPR64/WBSL64/WBST64</OS>    <Lang>DNC</Lang>    <ROLString>ALL</ROLString>    <InstallType>PSTEXE</InstallType>    <InstallPath>BASW-A0394A/BASW-A0394A04.ZIP</InstallPath>    <InstallFile>Inst.exe</InstallFile>    <InstallPara1>/pbr /na</InstallPara1>    <InstallPara2/>    <InstallOrgFileSize>4678908</InstallOrgFileSize>    <InstallFileSize>2055424</InstallFileSize>    <ImageCate>C2P1</ImageCate>    <ImageType>GCP</ImageType>    <ImageSequence/>    <MediaType>SM1</MediaType>    <MediaSubCate>ITMOPT</MediaSubCate>    <MediaSequence/>    <CheckType>NoVerify</CheckType>    <CheckRoot/>    <VerifyAttribute>1.0</VerifyAttribute>    <VerifyPara1/>    <VerifyPara2/>    <System/>    <Selectable>Y</Selectable>    <AND/>    <XOR/>    <DistributionPriority>1</DistributionPriority>    <FURL>http://orcaservice.samsungmobile.com/FileDownloader.aspx?Type=PATCH&FILENAME=BASW-A0394A04.ZIP</FURL>    -<MultiLangDisplayName>    <Default>ENG</Default>    -<Value>    <Lang>ENG</Lang>    <Str>Windows Configuration</Str>    </Value>    -<Value>    <Lang>KOR</Lang>    <Str>Windows Configuration</Str>    </Value>    </MultiLangDisplayName>    <Version>1.0</Version>    -<DDesc>    <Default>ENG</Default>    -<Value>    <Lang>ENG</Lang>    <Str>This program helps your windows configuration settings.</Str>    </Value>    -<Value>    <Lang>KOR</Lang>    <Str>이 프로그램은 Windows configuration 프로그램입니다.</Str>    </Value>    </DDesc>    <RemoveFilePath/>    <RemovePara1/>    <RemovePara2/>    -<RemoveComment>    <Default>ENG</Default>    </RemoveComment>    <UpdatePara1/>    <UpdatePara2/>    <TargetCISCode> </TargetCISCode>    <MutualExclusiveCISCode/>    <SWCate2>Miscellaneous</SWCate2>    <Keyword1>SDR</Keyword1>    <Keyword2>SDR</Keyword2>    <Keyword3>SDR</Keyword3>    <AutoInstall>Y</AutoInstall>    <SingleInstall>Y</SingleInstall>    -<PatchSequence>    -<InstCmd>    <InstCmdType>GENERAL_EXECUTION</InstCmdType>    -<InstCmdParam>    <Name>EXCUTION_FILE_NAME</Name>    <Value>64/Disable_Windowsupdate.exe</Value>    </InstCmdParam>    </InstCmd>    </PatchSequence>    <FromProductDate/>    <ToProductDate/>    <BulletineDate>2015-05-12 17:12:43</BulletineDate>    -<ProcCondition>    -<ProcInfo>    <ProcType>REG_VALUE</ProcType>    -<ProcParam>    <Name>BASE_OP</Name>    <Value>AND</Value>    </ProcParam>    -<ProcParam>    <Name>REG_KEY</Name>    <Value>HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/WindowsUpdate/Auto Update</Value>    </ProcParam>    -<ProcParam>    <Name>REG_VALUE_NAME</Name>    <Value>AUOptions</Value>    </ProcParam>    -<ProcParam>    <Name>REG_VALUE_TYPE</Name>    <Value>REG_DWORD</Value>    </ProcParam>    -<ProcParam>    <Name>REG_VALUE</Name>    <Value>2</Value>    </ProcParam>    -<ProcParam>    <Name>OP_RELATION</Name>    <Value>!=</Value>    </ProcParam>    </ProcInfo>    -<ProcInfo>    <ProcType>REG_VALUE</ProcType>    -<ProcParam>    <Name>BASE_OP</Name>    <Value>AND</Value>    </ProcParam>    -<ProcParam>    <Name>REG_KEY</Name>    <Value>HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/WindowsUpdate/Auto Update</Value>    </ProcParam>    -<ProcParam>    <Name>REG_VALUE_NAME</Name>    <Value>AUOptions</Value>    </ProcParam>    -<ProcParam>    <Name>REG_VALUE_TYPE</Name>    <Value>REG_DWORD</Value>    </ProcParam>    -<ProcParam>    <Name>REG_VALUE</Name>    <Value>4</Value>    </ProcParam>    -<ProcParam>    <Name>OP_RELATION</Name>    <Value>=</Value>    </ProcParam>    </ProcInfo>    </ProcCondition>    <Thumbnail/>    <Screenshot1/>    <Screenshot2/>    <Screenshot3/>    -<AdURL>    <URL/>    <FromDate>1900-01-01 오전 12:00:00</FromDate>    <ToDate>1900-01-01 오전 12:00:00</ToDate>    </AdURL>    </Item>    </MaxList>

注意它的安装文件

我们现在可以看到Disable_Windowsupdate.exe是如何重复该过程的,从该地址下载zip文件

http://orcaservice.samsungmobile.com/FileDownloader.aspx?Type=PATCH&FILENAME=BASW-A0394A04.ZIP

我发现这个字符串片段特别有趣:

<Str>This program helps your windows configuration settings.</Str>

当这个zip文件下载完成,我们来看看其中的内容吧

走近科学:三星电脑恶意禁用Windows更新“丑闻”

如果我们检测禁用Windows更新的安装程序的配置文件

;HowTo : The registry location of the installed language....    ;[HKLM/SYSTEM/CurrentControlSet/Control/Nls/Language]    ;InstallLanguage=????    ;%CD%/ = Current Folder Location Variable    ;%WinDir% = Windows Folder               ex) C:/Windows C:/Winnt    ;%ProgramFiles% = Program Files Folder     ex) C:/Program Files, C:/Archivo de program, C:/Programme    ;%LangID%    ;HowTo : The registry location of the installed language....    ;[HKLM/SYSTEM/CurrentControlSet/Control/Nls/Language]    ;LangID     Lang / Export to    ;0412     KOR / KOR    ;0409     ENG / UK, HKG    ;040C     FRN / FRN    ;0407     GER / GER    ;0411     JPN / JPN    ;0404     CHT / CHT    ;0804     CHS / CHS    ;0C0A     SPA / SPA    ;0816     POR / POR    ;0419     RUS / RUS    [BaseSettings]    OSConditional= TRUE    ShowWin = FALSE    RunInAuditMode     = TRUE    [32Win8]    Setup1=xcopy 32/Disable_Windowsupdate.exe "%ALLUSERSPROFILE%/Samsung/" /y    Setup2=schtasks /create /XML "%CD%/Dis_AU.xml" /tn "Dis_AU"    [64Win8]    Setup1=xcopy 64/Disable_Windowsupdate.exe "%ALLUSERSPROFILE%/Samsung/" /y    Setup2=schtasks /create /XML "%CD%/Dis_AU.xml" /tn "Dis_AU"

我们看到其使用了xcopy命令,就免不了“drop”位于/ProgramData/Samsung的Disable_Windowsupdate.exe。%ALLUSERPROFILE% 是Vista版本以上的环境变量, /Documents and Settings/All Users为XP上的环境变量。

这一点,我们可以通过检测得到证实

走近科学:三星电脑恶意禁用Windows更新“丑闻”

注意该exe的签名为Samsung自己的

走近科学:三星电脑恶意禁用Windows更新“丑闻”

可恶罪行

首先,正如我之前提到过的,最好不要在非三星环境下尝试运行三星的更新软件。我的虚拟机就截个图片都能遇到重启,所以每张截图会有几分钟的间隔。

安装SW Updata之后,Windows更新就这样了

走近科学:三星电脑恶意禁用Windows更新“丑闻”

走近科学:三星电脑恶意禁用Windows更新“丑闻”

注意看第二张图片的“检测更新并让我选择是否下载并安装”选项,将其更改为“自动安装更新(推荐)”选项

走近科学:三星电脑恶意禁用Windows更新“丑闻”

真棒,接下来我们重启看看

走近科学:三星电脑恶意禁用Windows更新“丑闻”

日了狗,又变回来了。我们再检查下设置

走近科学:三星电脑恶意禁用Windows更新“丑闻”

于是我联系上了三星的客服,以下是聊天记录(Rep为客服名称,ringzero即是本文作者):

Rep: Hi, 感谢你找到我们三星技术支持. 我可以帮到你什么么? ringzero: Hi Rep, 我对你们家的 SW Update软件有些问题. Rep: Hi Ringzero, 请详细说说你的问题吧. Rep: 我很乐意帮助你的. ringzero: 谢谢Rep! 我的问题是, 为什么这个软件主动监视我的注册表,以及通过强行禁用Windows更新? Rep: SW Update工具帮助你的笔记本自动检查硬件并为他们安装支持的驱动程序。这个工具并不会影响到你的注册表以及Windows的正常更新。 ringzero: Rep,你恐怕是搞错了吧 SW Update包含一个名为 "Disable_Windowsupdate.exe"的exe文件 ringzero: 当SW Update完成安装之后, Windows Update就被禁用了. 如果你将其设置为你喜爱的选项,在重启之后又强行被禁用了. ringzero: 如果SW Update被卸载, Windows Update始终保持着其选项. Rep: 谢谢你的等待, 等我一会马上就回来. ringzero: 好的.

Rep: 当你启用Windows updates, 它会安装一个默认的驱动程序,否则可能导致笔记本不工作. 举例来说你的笔记本支持USB3.0, 安装更新之后这个端口可能会不能正常工作,所以为了保护SW Update工具将阻止Windows更新!

感谢代表这三星的Rep,我们终于知道三星禁用Windows更新的动机咯。

走近科学:三星电脑恶意禁用Windows更新“丑闻”

OEMs,继续啊。难道真忘了联想Superfish的教训? 

注册表信息:链接: http://pan.baidu.com/s/1dDCTz8X 密码:0x0v

目前已经将此事报告给Microsoft/MSRC,难道现在禁用Windows更新成为了时尚?

*参考来源: blogspot ,编译:鸢尾,转载需注明来自FreeBuf黑客与极客(FreeBuf.COM)

正文到此结束
Loading...