上海辰星电子数据司法鉴定中心对软件程序功能检验及破坏性程序的鉴定
案例内容
【检索主题词】
司法鉴定;软件程序;程序功能检验;“solfitmgr.exe”;破坏性程序鉴定
【鉴定机构名称】
上海辰星电子数据司法鉴定中心
【鉴定事项】
程序功能检验及破坏性程序鉴定
【主办鉴定人】
高峰;沙晶;郭弘
【鉴定完成日期】
2014-01-13
【法院是否采信】
是
【案情简介】
2007年6月,中石化某分公司向上海某公司购买输油管网监控系统(SCADA)及相关服务,安装于天津某地的计算系统中,用于监控、远程操作输油管网和成品油供应。
2012年7月至2013年7月间,被告人徐某与王某预谋,利用徐某受上海某公司委派至中石化某分公司维护SCADA系统的便利条件,将事先编写的病毒程序文件植入计算机系统中,破坏SCADA系统的正常运行,再由被告人王某以第三方身份维修SCADA系统为名,向上海某公司索要高额报酬。其间,该病毒文件破坏SCADA系统的数据和功能,造成SCADA系统无法运作甚至瘫痪,影响中石化某分公司对输油管网和成品油供应的管理,中石化某分公司为恢复系统功能另制作了应急系统并额外支出费用人民币10万元;上海某公司为恢复SCADA系统的数据和功能,派遣员工和聘请专家进行维修,额外支出费用共计人民币60余万元。
【鉴定过程】
(一)检验环境
1.检材1
IP地址为172.20.1.77,在该工作站上发现涉案程序文件“solfitmgr.exe”,需对其进行程序功能检验。
2.检材2
IP地址为172.20.1.84,该工作站用于远程连接检材3,对检材3被攻击过程进行监控。
3.检材3
IP地址为172.20.1.17,安装的操作系统为Solaris,且安装了SCADA系统,需对SCADA系统被攻击的过程进行检验。
(二)涉案数据固定保全
1.涉案程序文件的固定保全
根据委托方的要求,对检材1中指定的5个涉案文件进行固定保全,这5个涉案文件分别为“excf”、“file”、“se”、“solfitmgr.exe”和“stc”,将上述涉案文件拷贝至目录“D:case1”下,并计算其MD5校验码,具体信息如表1所示。
序号 | 文件名 | 文件存放目录 | MD5校验码 |
1 | excf | C:WindowsSystem32dllcache | D22D739F075C115FAF18E07B7614B90B |
2 | file | C:WindowsSystem32 | 37347892D0A6ED66EFD3431F09A97405 |
3 | se | C:WindowsSystem32dllcache | AA5947F8AB5B4316AFB2234E2F71D195 |
4 | solfitmgr.exe | C:WindowsSystem32 | 6C240B0A334001AD89EEFF13E82AB711 |
5 | stc | C:WindowsSystem32dllcache | 917A02E9A5FB0B23352D2BB65FDB90E6 |
2. 涉案程序文件“solfitmgr.exe”的功能检验
在检验过程中,使用Process Monitor v3.05对涉案程序文件“solfitmgr.exe”的运行状况进行监控,同时使用Wireshark 1.10.2对网络请求进行监控。
经检验,涉案程序文件“solfitmgr.exe”在检材1上作为服务运行,通过监控,发现涉案程序“solfitmgr.exe”在运行的过程中首先对检材1中的文件“file”进行了读取。在对文件“file”进行解析后发现其内容为IP地址列表(图1),而随后,程序文件“solfitmgr.exe”向文件中所有IP地址都发起网络请求。
当程序文件“solfitmgr.exe”向IP地址为“172.20.1.17”(即检材3)的服务器发起RSH命令请求后(图2),在检材3的操作系统中创建名为“uuadm”的用户,且检材3中记录操作系统用户的文件“/etc/passwd”中增加了一条相关记录“uuadm:x:20001:0::/:/bin/sh”(图3)。
随后程序文件“solfitmgr.exe”在检材3中启用FTP服务,将目录“/var/cache”的权限修改为“所有用户可读可写可执行”(图4),并将检材1中目录“C:WindowsSystem32
dllcache”下的文件“stc”、 “excf”、 “se”上传至检材3中的目录“/var/cache”下。
3. 服务器涉案程序文件的检验
经检验,检材3的目录“/usr/lib”下增加了名为“curt”和“libcon.so”的两个文件,文件“libcon.so”的内容与上传文件“excf”被解析后的内容一致(图5),文件“curt”的内容为“195”。
目录“/usr/lib”下的文件“lpsched”发生了改变,经计算发现其文件校验码与检材1所上传的文件“stc”的校验码一致。
检材3操作系统中的管理打印服务的涉案程序文件“/usr/lib/lp/local/lpsched”也发生了变化,经计算发现其文件校验码与检材1所上传的文件“stc”的校验码一致。
检材3的目录“/usr/dt/lib”下增加了名为“libse”的文件。
经过对检材3的监控,发现检验过程中,检材3的系统中共有5个文件被删除,具体信息如表2所示。
序号 | 文件名 | MD5校验码 |
1 | texcf | D22D739F075C115FAF18E07B7614B90B |
2 | dtstc | 917A02E9A5FB0B23352D2BB65FDB90E6 |
3 | excf | 3DA1CCD4E2A280757D0DCFA86EF70D2D |
4 | se | AA5947F8AB5B4316AFB2234E2F71D195 |
5 | stc | 917A02E9A5FB0B23352D2BB65FDB90E6 |
4. 服务器上主要进程的监控
对正常状态下检材3上SCADA系统的主要进程进行监控(图6)。
关闭检材3上的打印服务后,将文件“libcon.so”的内容修改为“5 4800”,将文件“curt”的内容改为“4795” (图7),随后每隔1秒监视文件“curt”的变化。
启动检材3系统的打印服务,当文件“curt”的内容改变为“4800”之后,检材3上SCADA系统中的关键进程“historydbproc”和“eventpv”被终止运行(图8)。
将检材3恢复初始状态后,重新进行上述检验步骤,关闭检材3上的打印服务后,再次将文件“libcon.so”的内容修改为“1041 4900”,将文件“curt”的内容改为“4895” (图9), 随后每隔1秒监视文件“curt”的变化。
启动检材3系统的打印服务,当文件“curt”的内容改变为“4900”之后,检材3上SCADA系统中的关键进程“eventmgr”、“eventpv”和“procmonitor”被终止运行(图10)。
使用Process Monitor v3.05对程序文件“solfitmgr.exe”运行的整个过程进行监控,将监控结果保存为文件“Logfile.PML”,计算其SHA256校验码为“C19B88C2D2527FA9B8F44076E727575AB8B758510CD91E9C6609EB437F646794”。
使用Wireshark V1.10.2对程序文件“solfitmgr.exe”运行的整个过程进行抓包,将抓包结果保存为文件“抓包.pcapng”,计算其SHA256校验码为“8BFB15A8C4DD67
6E9318AB080B9124D6D88783CF0F5A1782036B9EA71C0F63AB”。
使用屏幕录像软件录制检材1上涉案程序文件“solfitmgr.exe”运行的全过程,录像文件保存为文件“client.avi”。
使用屏幕录像软件录制了检材1上涉案程序文件“solfitmgr.exe”运行时,检材2监控检材3的全过程,录像文件保存为文件“server.avi”。
使用摄像机录制了检材1和检材2工作的全过程,录像文件保存为文件“All.MTS”。
使用屏幕录像软件录制了检材2监控检材3上涉案程序文件运行的全过程,录像文件分别保存为文件“attack1.avi”和“attack2.avi”。
【分析说明】
1.涉案程序文件“solfitmgr.exe”的功能分析
(1)当检材1的系统时间被调整至当日2:00之后,涉案程序文件“solfitmgr.exe”会读取了文件“file”中的IP地址列表,再根据IP地址列表远程连接检材3。
(2)连接上检材3之后,使用RSH命令远程为检材3创建名为“uuadm”的操作系统用户。
(3)使用RSH命令远程将检材3中的目录“/var/cache”的权限修改为“所有用户可读可写可执行”。
(4)使用名为“uuadm”的用户通过FTP服务向检材3中的目录“/var/cache”成功上传了3个文件,文件具体信息如表3所示。
序号 | 文件名 | 文件存放目录 | MD5校验码 |
1 | excf | C:WindowsSystem32dllcache | 3DA1CCD4E2A280757D0DCFA86EF70D2D |
2 | se | C:WindowsSystem32dllcache | AA5947F8AB5B4316AFB2234E2F71D195 |
3 | stc | C:WindowsSystem32dllcache | 917A02E9A5FB0B23352D2BB65FDB90E6 |
2.检材3的监控结果
(1)检材3上发生变化的文件的具体信息如表4所示。
序号 | 文件名 | 文件存放目录 | 文件状态 | MD5校验码 |
1 | lpsched | /usr/lib/lp/local | 被文件“stc”替换 | 917A02E9A5FB0B23352D2BB65FDB90E6 |
2 | lpsched | /usr/lib | 被文件“stc”替换 | 917A02E9A5FB0B23352D2BB65FDB90E6 |
4 | libse | /usr/dt/lib | 新创建文件,与“se”文件一致 | AA5947F8AB5B4316AFB2234E2F71D195 |
5、 | libcon.so | /usr/lib | 新创建文件 | 每次改变 |
6、 | curt | /usr/lib | 新创建文件 | 每次改变 |
(2)经检验,检材3上原来的管理打印服务程序文件“lpsched”被上传文件“stc”所替换。
(3)经检验,检材1上传的文件“se”与检材3上文件“libse”一致。
(4)经检验,检材1上传的文件“excf”被解析后的内容与检材3上创建的文件“libcon.so”的文件内容一致。
(5)管理打印服务程序文件“lpsched”被替换,管理打印服务启动后,文件“curt”会被改写,当文件“curt”的内容与文件“libcon.so”发生匹配后,检材3上SCADA系统中的进程“historydbproc”、“eventmgr”、“eventpv”和“procmonitor”被终止运行。
【鉴定意见】
根据委托方的要求,本次鉴定对涉案程序文件“solfitmgr.exe”进行了程序功能检验,结论如下:
当检材1的系统时间被调整至当日2:00之后,涉案程序文件“solfitmgr.exe”会读取本地配置文件中的IP地址并连接IP对应的检材3,然后远程创建检材3的系统用户,并通过创建的用户使用FTP上传指定文件“stc”、“excf”和“se”,并在检材3中新生成了三个文件“libse”、“libcon.so”和“curt”。
其中,上传文件“stc”替换了检材3上原来的管理打印服务程序文件“lpsched”,上传文件“excf”被解析后的内容与检材3新生成的文件“libcon.so”的文件内容一致,上传的文件“se”与检材3上新生成的文件“libse”一致。
当检材3管理打印服务启动后,文件“curt”会被改写;当文件“curt”的内容与文件“libcon.so”发生匹配后,检材3上SCADA系统的中的关键进程“historydbproc”、“eventmgr”、“eventpv”和“procmonitor”被终止运行,导致检材3上SCADA系统不能正常运行。
综上,程序“solfitmgr.exe”属于破坏性程序。
图1 文件“file” 的内容
图2 涉案程序“solfitmgr.exe”远程创建用户
图3 检材3的操作系统中新增用户
图4 检材3的目录权限被改写
图5 文件“excf”和“libcon.so”的内容
图6 正常状态下SCADA系统的主要进程
图7 修改文件“libcon.so”和文件“curt”的内容
图8 SCADA系统的主要进程被终止运行
图9 修改文件“libcon.so”和文件“curt”的内容
图10 SCADA系统的主要进程被终止运行