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

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

Info

Publication number
CN108830078B
CN108830078B CN201810438839.1A CN201810438839A CN108830078B CN 108830078 B CN108830078 B CN 108830078B CN 201810438839 A CN201810438839 A CN 201810438839A CN 108830078 B CN108830078 B CN 108830078B
Authority
CN
China
Prior art keywords
industrial control
executable
operating system
control terminal
code
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.)
Active
Application number
CN201810438839.1A
Other languages
English (en)
Other versions
CN108830078A (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.)
714th Research Institute of CSIC
Original Assignee
714th Research Institute of CSIC
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 714th Research Institute of CSIC filed Critical 714th Research Institute of CSIC
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

Images

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)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (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 (4)

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

Families Citing this family (4)

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

Citations (4)

* 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模拟器的恶意程序行为捕获方法
CN107533524A (zh) * 2015-11-25 2018-01-02 慧与发展有限责任合伙企业 用于写时复制的存储器控制器的配置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017023773A1 (en) * 2015-07-31 2017-02-09 Digital Guardian, Inc. Systems and methods of protecting data from injected malware

Patent Citations (4)

* 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模拟器的恶意程序行为捕获方法
CN107533524A (zh) * 2015-11-25 2018-01-02 慧与发展有限责任合伙企业 用于写时复制的存储器控制器的配置

Also Published As

Publication number Publication date
CN108830078A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
CN108830078B (zh) 一种针对工控设备的恶意代码发现方法
Cheng et al. Orpheus: Enforcing cyber-physical execution semantics to defend against data-oriented attacks
KR101174751B1 (ko) 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
US10460099B2 (en) System and method of detecting malicious code in files
EP3039608B1 (en) Hardware and software execution profiling
CN106991324B (zh) 一种基于内存保护类型监控的恶意代码跟踪识别方法
JP4518564B2 (ja) 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体
US8627478B2 (en) Method and apparatus for inspecting non-portable executable files
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN109408261B (zh) 应用程序崩溃处理方法、装置、计算机设备和存储介质
CN112733150A (zh) 一种基于脆弱性分析的固件未知漏洞检测方法
CN108920253B (zh) 一种无代理的虚拟机监控系统和监控方法
CN113051034A (zh) 一种基于kprobes的容器访问控制方法与系统
CN112257058A (zh) 一种操作系统可信计算校验方法及系统
Lee et al. {ExpRace}: Exploiting kernel races through raising interrupts
Kollenda et al. Towards automated discovery of crash-resistant primitives in binary executables
Bravo et al. Proactive detection of kernel-mode rootkits
WO2022077388A1 (zh) 一种处理器的安全度量装置及方法
CN111931191A (zh) Linux平台二进制软件堆溢漏洞动态检测方法及系统
CN113312623B (zh) 访问控制中的进程检测方法、装置、电子设备和存储介质
CN111274582B (zh) 基于透明度的取证效果评估方法、取证分析装置及方法
JP4643201B2 (ja) バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
KR101421630B1 (ko) 코드 인젝션된 악성코드 탐지 시스템 및 방법
CN111143851B (zh) 适用于操作系统内核对象地址泄露的检测方法及系统
CA3121054A1 (en) Computer program trust assurance for internet of things (iot) devices

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