CN108830078A - 一种针对工控设备的恶意代码发现方法 - Google Patents

一种针对工控设备的恶意代码发现方法 Download PDF

Info

Publication number
CN108830078A
CN108830078A CN201810438839.1A CN201810438839A CN108830078A CN 108830078 A CN108830078 A CN 108830078A CN 201810438839 A CN201810438839 A CN 201810438839A CN 108830078 A CN108830078 A CN 108830078A
Authority
CN
China
Prior art keywords
industrial control
malicious code
code
control equipment
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810438839.1A
Other languages
English (en)
Other versions
CN108830078B (zh
Inventor
陈琳
张漪�
闫国星
宋震
张志勇
陈曦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
No714 Research Institute China Shipbuilding Heavy Industry Group Corp
Original Assignee
No714 Research Institute China Shipbuilding Heavy Industry Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by No714 Research Institute China Shipbuilding Heavy Industry Group Corp filed Critical No714 Research Institute China Shipbuilding Heavy Industry Group Corp
Priority to CN201810438839.1A priority Critical patent/CN108830078B/zh
Publication of CN108830078A publication Critical patent/CN108830078A/zh
Application granted granted Critical
Publication of CN108830078B publication Critical patent/CN108830078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种针对工控设备的恶意代码发现方法,是对系统中所有线程或操作系统的执行单元的CPU的PC寄存器定时进行检查,通过对线程或操作系统的执行单元的PC寄存器位置所属的可执行模块进行比对,根据执行位置来判断是否属于系统自身可执行文件,还是可读写内存区域(非代码区域),还是位于临时位置的可执行文件,从而发现针对工控设备的恶意代码。本发明对远程注入并执行的工控设备恶意代码尤其有效。

Description

一种针对工控设备的恶意代码发现方法
技术领域
本发明涉及信息安全技术领域,公开了一种通过工控系统的保护应用在工控设备中发现恶意代码的方法。
背景技术
工控设备由于其生命周期久,不间断运行,通常采用的操作系统较为老旧,且不便于打补丁。导致针对大量老旧系统的安全漏洞的工具能较为顺利地对工控系统发动攻击,其中尤其以远程执行恶意代码危害性为最大。
现有技术中,已有尝试采用黑白名单制方法进行实现恶意代码识别的技术。例如中国专利CN 104573516 A,以完整性度量与管控技术为依托,以防止不受信任的程序在工业控制终端(操作站)运行为目的。
CN 104573516 A通过完整性度量与管控技术解决计算机程序在加载时的识别问题,并禁止不被信任程序的运行。其主要缺陷在于代码识别(既术语完整性度量所表达的主要意义)机制的触发时机需要在计算机程序加载时得到控制权。其关键步骤在于“2-1)修改工控终端操作系统内核,通过钩子函数捕获已加载到操作系统即将运行的程序进程,通过特定算法对加载入内存的程序进程代码进行计算,得到摘要值即为度量值,在进程正常运行前完成度量;”,由于系统的执行权限的获取,并不局限于通过启动“即将运行的程序进程”,欠缺对“即将运行的程序进程”所依赖的自身的各个库的完整性度量的机制设计。
但CN 104573516 A尤其缺乏针对远程恶意代码通过远程溢出等技巧,绕过系统内核加载而直接获得执行的恶意代码的完整性度量机制。
发明内容
为了克服上述现有技术的不足,针对工控系统远程执行的代码,本发明提出了一种恶意代码的发现方法由工控终端实现,通过对正在执行中的代码的所属位置推测其是否为恶意代码。推测恶意代码的核心原理基于如下事实:正常编译器所产生的代码均位于代码段,而需要远程恶意注入的代码则因其动态出现,无法进入由编译器固化的代码段,因而需要借助运行时刻可动态改写的堆或者栈来进行留存,并通过特殊技巧获得执行。
本发明对操作系统要求不限,适用与任意工控操作系统。
本发明的具体技术方案是:一种针对工控设备的恶意代码发现方法,对系统中所有线程(或操作系统的执行单元)的CPU的Programm Count(PC)寄存器定时进行检查,通过对线程(或操作系统的执行单元)的PC寄存器位置所属的可执行模块进行比对,根据执行位置来判断是否属于系统自身可执行文件,还是可读写内存区域(非代码区域),还是位于临时位置的可执行文件,从而发现针对工控设备的恶意代码。
进一步的,本发明所的发现方法包括如下步骤:
1)工控终端操作系统启动;
2)工控终端保护应用启动;
3)工控终端保护应用开始对操作系统内核,已经运行的所有进程依次进行快照;所述快照内容包含:
3.1)进程内存镜像;
3.2)进程执行单元镜像;
3.3)进程执行者身份标识及开启的特权状态快照;
3.4)工控操作系统所带有的特有属性的状态快照;
4)工控终端保护应用开始步骤3获得的信息进行恶意代码可疑度分析;
5)在步骤3.4过程中,工控终端保护应用周期性检测自身CPU资源占用量,适当约束CPU使用量;
6)当检测出可疑代码时,根据如果可疑代码位置位于可执行文件映射区域,则计算出可执行文件名;当所属可执行代码位置位于动态链接库映射区域,则可以计算出动态链接库名;当所属可执行代码位置位于进程堆或栈区域,则可判断为远程恶意代码已注入正常进程。
进一步的,所述的工控终端保护应用,并不指代某一特定应用程序。“工控终端保护应用”的实际呈现形式,可以是1个单独的可执行程序。也可以是集成至操作系统内核的一个内核模块。也可以是可执行程序的一部分,以库的形式存在。本文所声明的权利主张,不局限于技术实现的体裁,而在于是否与本文表述的内容和方法是否一致。
进一步的,所述的快照所指的含义,为给定时间下的静态视图。本文所指的获取快照,是指获取运行中的程序在某时间点下的静态视图。
进一步的,所述的镜像所指的含义,是与目标完全一致的副本。可以制作镜像的对象,可以是内存,线程的上下文状态,进程的地址空间布局,进程执行者的身份信息,特权信息,特权启用状态信息。
进一步的,所述的资源所指的含义,是CPU使用时间。限于CPU性能,单位时间内的指令可执行条数有其上限,当单位时间内所有执行的指令均从属于工控终端保护应用时,代表工控终端保护应用占满了CPU的单位使用时间(资源在单位时间内耗尽)。
本发明对远程注入并执行的工控设备恶意代码尤其有效。
附图说明
图1为本发明相关的恶意代码发现方法的重点检测部位示意.
图2为本发明方法以应用程序形式存在的应用型系统构成形态例。
图3为本发明方法以内核模块形式存在的内核型系统构成形态例。
图4为本发明方法的流程示意图。
具体实施方法
为使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和实施例对本发明做进一步的说明。此处所描述的具体实施例仅用于解释本发明的算法,并不限定本发明的实现语言。
工控终端保护应用由下述模块构成:
1)定时模块;
2)进程快照捕捉模块;
3)线程快照分析模块;
4)地址分析模块;
5)代码分析模块;
工控终端保护应用启动后执行下述逻辑:
1)工控终端保护应用启动时,初始化定时模块,进程快照捕捉模块,现场快照分析模块,地址分析模块。
2)定时模块激活,触发进程快照捕捉模块。
3)进程快照捕捉模块向操作系统询问进程清单。
4)操作系统返回进程清单。
5)进程快照捕捉模块以读取VM的模式,向操作系统要求打开清单中第一进程。
6)如果打开进程成功,向操作系统要求从地址0~0xffffffffffffffff区间的内存分配状态。对于所有处于已分配及已commit状态的内存块读取。
6‐1)如果打开进程成功,向操作系统要求从读取所有执行单元(以WIN32为例,执行单元为线程)清单。
6‐2)打开返回结果的第一个执行单元。
6‐3)读取执行单元的CONTEXT,所述CONTEXT指包含所有CPU寄存器信息的数据。
6‐4)打开返回结果的下一个执行单元。
6‐5)读取执行单元的CONTEXT。
6‐6)重复6‐4与6‐5,直至所有执行单元状态均被读取。
7)如果打开进程成功,向操作系统要求读取从进程所代表的用户。
8)操作系统返回用户身份。
9)如果打开进程成功,向操作系统要求读取从进程所代表的用户所具有的特权。
10)操作系统返回用户具有的特权清单。
11)如果打开进程成功,向操作系统要求读取从进程所代表的用户所具有的特权的启用状态。
12)操作系统返回用户具有的特权的启用状态。
13)如果打开进程成功,向操作系统要求其他关联信息。
14)操作系统返回其他信息。
15)调用线程快照分析模块。从执行单元中获取第一个执行单元。进入线程分析状态。
15‐1)获得执行单元当前执行位置,返回地址。
15‐2)判断当前执行地址所属可执行文件。
15‐3)检验所属可执行文件的代码节。当地址位于可执行文件区域中,计算可执行文件的可执行部分与当前内存映射差异。当内容一致,视同通过检验。
15‐4)检验可执行单元当前执行地址。当地址位于堆区域中,线程进入异常待诊断状态。
15‐5)检验可执行单元当前执行地址。当地址位于栈区域中,线程进入异常待诊断状态。
15‐6)检验可执行单元当前检查状态如果为异常待诊断状态。根据白名单库判断是否属于异常。如果不处于白名单中的,则视同恶意代码发现,并且进行后续处置。后续处置不属于本工控恶意发现技术描述范畴。
15‐7)获得返回地址,将返回地址视同当前执行位置。重复步骤15‐2至15‐6。
获取下一执行单元,重复执行步骤15。
休眠特定时间段,从步骤2重复执行。
休眠特定时间段,从步骤2重复执行。

Claims (7)

1.一种针对工控设备的恶意代码发现方法,是对系统中所有线程或操作系统的执行单元的CPU的PC寄存器定时进行检查,通过对线程或操作系统的执行单元的PC寄存器位置所属的可执行模块进行比对,根据执行位置来判断是否属于系统自身可执行文件,还是可读写内存区域(非代码区域),还是位于临时位置的可执行文件,从而发现针对工控设备的恶意代码。
2.一种针对工控设备的恶意代码发现方法,其特征在于,所述发现方法包括如下步骤:
1)工控终端操作系统启动;
2)工控终端保护应用启动;
3)工控终端保护应用开始对操作系统内核,已经运行的所有进程依次进行快照;所述快照内容包含:
3.1)进程内存镜像;
3.2)进程执行单元镜像;
3.3)进程执行者身份标识及开启的特权状态快照;
3.4)工控操作系统所带有的特有属性的状态快照;
4)工控终端保护应用开始步骤3获得的信息进行恶意代码可疑度分析;
5)在步骤3.4过程中,工控终端保护应用周期性检测自身CPU资源占用量,适当约束CPU使用量;
6)当检测出可疑代码时,根据如果可疑代码位置位于可执行文件映射区域,则计算出可执行文件名;当所属可执行代码位置位于动态链接库映射区域,则可以计算出动态链接库名;当所属可执行代码位置位于进程堆或栈区域,则可判断为远程恶意代码已注入正常进程。
3.根据权利要求2所述的一种针对工控设备的恶意代码发现方法,其特征在于,所述的工控终端保护应用,是单独的可执行程序、或集成至操作系统内核的内核模块、或可执行程序的部分或以库的形式存在。
4.根据权利要求2所述的一种针对工控设备的恶意代码发现方法,其特征在于,所述的快照,为给定时间下的静态视图;所述的获取快照,是指获取运行中的程序在某时间点下的静态视图。
5.根据权利要求2所述的一种针对工控设备的恶意代码发现方法,其特征在于,所述的镜像所,是与目标完全一致的副本。
6.根据权利要求5所述的一种针对工控设备的恶意代码发现方法,其特征在于,所述副本是制作镜像的对象、或内存,或线程的上下文状态、或进程的地址空间布局、或进程执行者的身份信息、或特权信息或特权启用状态信息。
7.根据权利要求2所述的一种针对工控设备的恶意代码发现方法,其特征在于,所述的资源,是CPU使用时间。
CN201810438839.1A 2018-05-09 2018-05-09 一种针对工控设备的恶意代码发现方法 Active CN108830078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810438839.1A CN108830078B (zh) 2018-05-09 2018-05-09 一种针对工控设备的恶意代码发现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810438839.1A CN108830078B (zh) 2018-05-09 2018-05-09 一种针对工控设备的恶意代码发现方法

Publications (2)

Publication Number Publication Date
CN108830078A true CN108830078A (zh) 2018-11-16
CN108830078B CN108830078B (zh) 2022-04-19

Family

ID=64147673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810438839.1A Active CN108830078B (zh) 2018-05-09 2018-05-09 一种针对工控设备的恶意代码发现方法

Country Status (1)

Country Link
CN (1) CN108830078B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110460623A (zh) * 2019-09-27 2019-11-15 杭州九略智能科技有限公司 一种针对工业控制通用协议的处理系统、方法及终端
CN111831609A (zh) * 2020-06-18 2020-10-27 中国科学院数据与通信保护研究教育中心 一种虚拟化环境中二进制文件度量值统一管理和分发的方法和系统
CN114707149A (zh) * 2022-03-18 2022-07-05 安芯网盾(北京)科技有限公司 一种傀儡进程检测方法、装置、电子设备和存储介质
CN116108440A (zh) * 2023-04-12 2023-05-12 北京网藤科技有限公司 针对工控关键软件被注入的处理方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408917A (zh) * 2008-10-22 2009-04-15 厦门市美亚柏科资讯科技有限公司 应用程序行为合法性检测方法及系统
CN103907098A (zh) * 2011-10-11 2014-07-02 迈可菲公司 用于管理程序环境中的关键地址空间保护的系统和方法
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
US20170032118A1 (en) * 2015-07-31 2017-02-02 Digital Guardian, Inc. Systems and methods of protecting data from injected malware
CN107533524A (zh) * 2015-11-25 2018-01-02 慧与发展有限责任合伙企业 用于写时复制的存储器控制器的配置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408917A (zh) * 2008-10-22 2009-04-15 厦门市美亚柏科资讯科技有限公司 应用程序行为合法性检测方法及系统
CN103907098A (zh) * 2011-10-11 2014-07-02 迈可菲公司 用于管理程序环境中的关键地址空间保护的系统和方法
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
US20170032118A1 (en) * 2015-07-31 2017-02-02 Digital Guardian, Inc. Systems and methods of protecting data from injected malware
CN107533524A (zh) * 2015-11-25 2018-01-02 慧与发展有限责任合伙企业 用于写时复制的存储器控制器的配置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110460623A (zh) * 2019-09-27 2019-11-15 杭州九略智能科技有限公司 一种针对工业控制通用协议的处理系统、方法及终端
CN111831609A (zh) * 2020-06-18 2020-10-27 中国科学院数据与通信保护研究教育中心 一种虚拟化环境中二进制文件度量值统一管理和分发的方法和系统
CN111831609B (zh) * 2020-06-18 2024-01-02 中国科学院数据与通信保护研究教育中心 虚拟化环境中二进制度量值统一管理和分发的方法和系统
CN114707149A (zh) * 2022-03-18 2022-07-05 安芯网盾(北京)科技有限公司 一种傀儡进程检测方法、装置、电子设备和存储介质
CN116108440A (zh) * 2023-04-12 2023-05-12 北京网藤科技有限公司 针对工控关键软件被注入的处理方法、装置、设备和介质
CN116108440B (zh) * 2023-04-12 2024-01-26 北京网藤科技有限公司 针对工控关键软件被注入的处理方法、装置、设备和介质

Also Published As

Publication number Publication date
CN108830078B (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
US11113384B2 (en) Stack overflow protection by monitoring addresses of a stack of multi-bit protection codes
CN108830078A (zh) 一种针对工控设备的恶意代码发现方法
US7788535B2 (en) Means and method for debugging
US9081954B2 (en) Verifying firmware integrity of a device
US8117660B2 (en) Secure control flows by monitoring control transfers
CN106991324B (zh) 一种基于内存保护类型监控的恶意代码跟踪识别方法
CN109508536B (zh) 一种篡改程序流攻击的检测方法和装置
US10984096B2 (en) Systems, methods, and apparatus for detecting control flow attacks
CN110580226B (zh) 操作系统级程序的目标码覆盖率测试方法、系统及介质
WO2015072689A1 (ko) 안티디버깅 방법
US10162966B1 (en) Anti-malware system with evasion code detection and rectification
US10650147B2 (en) Method and apparatus for ensuring control flow integrity
CN107690645A (zh) 使用解释器虚拟机的行为恶意软件检测
US20180349603A1 (en) System, Apparatus And Method For Instruction Level Behavioral Analysis Without Binary Instrumentation
KR20120031745A (ko) 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
CN105184169A (zh) Windows操作环境下基于插桩工具的漏洞检测方法
US20180046804A1 (en) Apparatus and method for monitoring confidentiality and integrity of target system
CN109471800A (zh) 一种基于Windows操作系统的软件无限断点设置方法
Salehi et al. Discovery and identification of memory corruption vulnerabilities on bare-metal embedded devices
Malenko et al. Device driver and system call isolation in embedded devices
US20220335135A1 (en) Vulnerability analysis and reporting for embedded systems
US11934517B2 (en) Systems and methods for reliably injecting control flow integrity into binaries without source code
Eresheim et al. On the impact of kernel code vulnerabilities in iot devices
Ragab et al. GhostRace: Exploiting and Mitigating Speculative Race Conditions
Gozzini PINvader: a dynamic analysis tool for evasive techniques detection and bypass in 64-bit windows binaries

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant