CN115509963A - 一种基于芯片内核的代码安全检测方法 - Google Patents
一种基于芯片内核的代码安全检测方法 Download PDFInfo
- Publication number
- CN115509963A CN115509963A CN202211292665.5A CN202211292665A CN115509963A CN 115509963 A CN115509963 A CN 115509963A CN 202211292665 A CN202211292665 A CN 202211292665A CN 115509963 A CN115509963 A CN 115509963A
- Authority
- CN
- China
- Prior art keywords
- chip
- code
- target
- address
- configuration
- 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.)
- Withdrawn
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000012360 testing method Methods 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于芯片内核的代码安全检测方法,包括:步骤1,在上位机中设置配置参数,并将所述配置下发给烧录器;步骤2,烧录器接受上位机的配置,根据配置烧写目标芯片;步骤3,在目标芯片上设置缓存;步骤4,对目标芯片进行复位;步骤5,执行待测试的目标代码,进行安全检测,并记录结果;步骤6,读取记录结果,并进行分析;释放目标芯片上的缓存;步骤7,根据循环执行的需要,重复执行步骤4‑6。本方案功能由芯片硬件完成,不改变用户原代码,不占用芯片存储空间;对所有芯片存储的物理地址的扫描,对于正常软件未能执行但物理地址有值的地址,能通过本方案监测出是否存在安全隐患还是软件代码自身问题。
Description
技术领域
本发明涉及一种代码安全检测方法,特别是一种基于芯片内核的代码安全检测方法。
背景技术
随着集成电路及微电子技术的发展,集成电路芯片作为信息的载体应用在各种领域。物联网的数字化和连通性产生大量数据,引发人们对敏感信息遭到泄露、被攻击的担忧。
比如已公开的专利文件《用于检查安全代码的运行时完整性的方法和系统,申请号200980131987.8,申请日2009.07.14》通过认证确保对安全区域的代码完整性,但是不能确保非安全区域内的代码是否完整。
而已公开的专利文件《一种应用层延时数据异步打点采集组件,申请号201911309042.2,申请日2019.12.18》需要在源代码中集成打点采集组件,大大增加代码冗余,且在应用层打点只使用于打点数量较少的情况,且在已知运行程序接口打点,不能监测非法程序的侵入。
现有的技术方案一般在应用程序中插入一段检测代码,来检测程序的漏洞。这种方案更适合计算机软件的应用。
在集成电路芯片中,程序的存储空间是有限的,程序本身要求精简,无法再植入检测代码来完成芯片程序的漏洞检测。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于芯片内核的代码安全检测方法。
为了解决上述技术问题,本发明公开了一种基于芯片内核的代码安全检测方法,包括以下步骤:
步骤1,在上位机中设置配置参数,并将所述配置下发给烧录器;
所述的配置包括:
待检测的目标芯片中Flash的地址范围,即起始地址,地址大小,地址间隔以及对于多核芯片选择待测的核。
步骤2,烧录器接受上位机的配置,根据配置烧写目标芯片;
所述的根据配置烧写目标芯片,指烧录器根据接受到的配置,烧写目标芯片中的寄存器。
步骤3,在目标芯片上设置缓存;
所述的缓存设置于目标芯片的RAM中;缓存大小设置为256字节。
步骤4,对目标芯片进行复位;
所述的对目标芯片进行复位的方法为:上位机下发复位命令给烧录器,烧录器复位目标芯片。
步骤5,执行待测试的目标代码,进行安全检测,并记录结果;
所述的安全检测的方法包括:
步骤5-1,执行待测试的目标代码;
步骤5-1中所述的执行待测试的目标代码,从起始地址开始执行。
步骤5-2,测试得到打点信息并保存,方法包括:
当待测试的目标代码中的PC指针执行到步骤1中所配置的地址范围时,将执行过的PC指针的物理地址,在目标芯片中的RAM中相应的比特位置1;
直至待测试的目标代码执行完毕后,记录所有在配置地址范围内被执行过的物理地址即为所述打点信息。
所述的打点信息即为RAM中经过比特位置1后的全部内容。
步骤6,读取记录结果,并进行分析;释放目标芯片上的缓存;
所述的读取记录结果,并进行分析的具体方法包括:
烧录器读取目标芯片中的打点信息,返回给上位机;
烧录器读取目标芯片中的flash内容,同样返回给上位机;
上位机根据打点信息和flash内容进行数据分析,方法包括:对比打点信息的地址和实际flash的地址,判断flash中有值但是没有被打点到的地址,完成基于芯片内核的代码安全检测。
步骤7,根据循环执行的需要,重复执行步骤4-6,完成基于芯片内核的代码安全检测。
有益效果:
本方案代码检测功能由芯片硬件完成,不改变用户原代码,不占用芯片Flash存储空间。
本方案可对所有芯片Flash存储的物理地址的扫描,对于正常软件未能执行,但物理地址有值的地址,能通过本方案监测出是否存在安全隐患,还是软件代码自身问题。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明的工作流程示意图。
具体实施方式
本方案硬件包括:上位机、烧录器、目标芯片;
上位机提供用户操作界面,可配置起始地址,地址大小,循环操作,开始结束,以及打点可视化矩阵图等功能;
烧录器将上位机配置写入芯片相关寄存器;
本方案将程序PC跑过的地址打点记录,统计程序执行情况,判断程序可靠性。
如图1所示,本发明的工作流程如下:
1、上位机设置待检测目标芯片Flash的起始地址,地址大小,地址间隔,对于多核芯片选择待测的核,将配置发下发给烧录器
2、烧录器接收上位机配置信息,烧写目标芯片相关寄存器;
3、目标芯片在RAM开辟256字节缓存用于保存打点信息;
4、上位机下发复位命令给烧录器,烧录器复位目标芯片;
5、代码(待测试的目标代码,为用户的原代码,无需修改)从起始地址开始执行,当PC指针执行到配置地址范围时,将执行过的PC指针物理地址,在SRAM相应的bit位置1,直至代码执行完,记录所有在配置地址范围内被执行过的物理地址;
6、烧录器读取目标芯片的打点信息,返回给上位机;目标芯片释放256字节RAM空间。将flash内容也通过烧写器读回,可以对比打点信息的地址和实际flash的地址,知道flash哪些地址上有值但是没有被打点到。
7、若需要循环执行代码,则重复步骤4~6。
操作实例:
假设芯片有2M字节的Flash空间存储软件程序,芯片的RAM开辟一块256字节大小用于打点程序地址。
256字节RAM空间等于256*8bit,每个bit记录一个flash地址;Thumb指令最小为2字节,所以记录的flash地址每次+2;
得到:扫描一次可以记录256*8*2个flash地址,即4096个。
如果需要将2M的flash全部遍历一遍,需要循环执行512次。
首先上位机将起始地址设置为0x00000000,间隔设置为2,大小设置为4096。
复位目标芯片,目标芯片程序代码从0x00000000地址开始运行。
目标芯片记录程序PC指针跑过的地址,如执行过地址0x00000000,就在RAM的第1个字节的Bit 0置1;
然后程序跑到0x00000002地址,RAM的第1个字节的第Bit 1置1;
若程序从0x00000002直接跑到了0x00000006,则RAM的第1个字节的Bit 3置1,Bit2则还是0;
等程序跑完,烧录器读取记录FLASH地址0x00000000到0x00000FFF打点信息的256字节RAM
然后上位机从新设置起始地址位0x00001000,复位芯片重新跑代码,直至所有FLASH地址被遍历;
扫描结束后,上位机将打点信息制作成矩阵图,统计未执行的地址。
用户可以分析这些地址是软件代码未执行的,还是一段不是代码程序的病毒木马程序。
上位机也可以多次配置相同一段地址空间,统计代码执行的重复率。
具体实现中,本申请提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的一种基于芯片内核的代码安全检测方法的发明内容以及各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机,MUU或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明提供了一种基于芯片内核的代码安全检测方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种基于芯片内核的代码安全检测方法,其特征在于,包括以下步骤:
步骤1,在上位机中设置配置参数,并将所述配置下发给烧录器;
步骤2,烧录器接受上位机的配置,根据配置烧写目标芯片;
步骤3,在目标芯片上设置缓存;
步骤4,对目标芯片进行复位;
步骤5,执行待测试的目标代码,进行安全检测,并记录结果;
步骤6,读取记录结果,并进行分析;释放目标芯片上的缓存;
步骤7,根据循环执行的需要,重复执行步骤4-6,完成基于芯片内核的代码安全检测。
2.根据权利要求1所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤1中所述的配置包括:
待检测的目标芯片中Flash的地址范围,即起始地址,地址大小,地址间隔以及对于多核芯片选择待测的核。
3.根据权利要求2所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤2中所述的根据配置烧写目标芯片,指烧录器根据接受到的配置,烧写目标芯片中的寄存器。
4.根据权利要求3所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤3中所述的缓存设置于目标芯片的RAM中;缓存大小设置为256字节。
5.根据权利要求4所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤4中所述的对目标芯片进行复位的方法为:上位机下发复位命令给烧录器,烧录器复位目标芯片。
6.根据权利要求5所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤5中所述的安全检测的方法包括:
步骤5-1,执行待测试的目标代码;
步骤5-2,测试得到打点信息并保存。
7.根据权利要求6所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤5-1中所述的执行待测试的目标代码,从起始地址开始执行。
8.根据权利要求7所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤5-2中所述的测试得到打点信息并保存的方法包括:
当待测试的目标代码中的PC指针执行到步骤1中所配置的地址范围时,将执行过的PC指针的物理地址,在目标芯片中的RAM中相应的比特位置1;
直至待测试的目标代码执行完毕后,记录所有在配置地址范围内被执行过的物理地址即为所述打点信息。
9.根据权利要求8所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤5-2中所述的打点信息即为RAM中经过比特位置1后的全部内容。
10.根据权利要求9所述的一种基于芯片内核的代码安全检测方法,其特征在于,步骤6中所述的读取记录结果,并进行分析的具体方法包括:
烧录器读取目标芯片中的打点信息,返回给上位机;
烧录器读取目标芯片中的flash内容,同样返回给上位机;
上位机根据打点信息和flash内容进行数据分析,方法包括:对比打点信息的地址和实际flash的地址,判断flash中有值但是没有被打点到的地址,完成基于芯片内核的代码安全检测。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211292665.5A CN115509963A (zh) | 2022-10-21 | 2022-10-21 | 一种基于芯片内核的代码安全检测方法 |
CN202310474300.2A CN116484372A (zh) | 2022-10-21 | 2023-04-27 | 一种基于芯片内核的代码安全检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211292665.5A CN115509963A (zh) | 2022-10-21 | 2022-10-21 | 一种基于芯片内核的代码安全检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509963A true CN115509963A (zh) | 2022-12-23 |
Family
ID=84510138
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211292665.5A Withdrawn CN115509963A (zh) | 2022-10-21 | 2022-10-21 | 一种基于芯片内核的代码安全检测方法 |
CN202310474300.2A Pending CN116484372A (zh) | 2022-10-21 | 2023-04-27 | 一种基于芯片内核的代码安全检测方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310474300.2A Pending CN116484372A (zh) | 2022-10-21 | 2023-04-27 | 一种基于芯片内核的代码安全检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN115509963A (zh) |
-
2022
- 2022-10-21 CN CN202211292665.5A patent/CN115509963A/zh not_active Withdrawn
-
2023
- 2023-04-27 CN CN202310474300.2A patent/CN116484372A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116484372A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Carmony et al. | Extract Me If You Can: Abusing PDF Parsers in Malware Detectors. | |
US5696822A (en) | Polymorphic virus detection module | |
CN103886252B (zh) | 受信进程地址空间中执行的软件代码的恶意性的选择评估 | |
US5826013A (en) | Polymorphic virus detection module | |
Huang et al. | Software crash analysis for automatic exploit generation on binary programs | |
JP5996145B1 (ja) | プログラム、情報処理装置、及び情報処理方法 | |
JP2010182019A (ja) | 異常検知装置およびプログラム | |
CN108898012B (zh) | 检测非法程序的方法和装置 | |
US10275595B2 (en) | System and method for characterizing malware | |
US11868465B2 (en) | Binary image stack cookie protection | |
Deng et al. | Evaluation of cache attacks on arm processors and secure caches | |
CN117725583A (zh) | 基于虚拟机自省的Linux恶意代码检测方法与系统 | |
JP2008234248A (ja) | プログラム実行装置及びプログラム実行方法 | |
CN110516445B (zh) | 反检测恶意代码的识别方法、装置及存储介质 | |
CN115509963A (zh) | 一种基于芯片内核的代码安全检测方法 | |
Nasim et al. | Uncovering self code modification in Android | |
CN111858307B (zh) | 模糊测试方法和设备 | |
CN114647845A (zh) | 一种恶意样本延时代码的检测识别方法及装置 | |
CN113646763B (zh) | shellcode的检测方法及装置 | |
JP6219550B1 (ja) | プログラム、情報処理装置、及び情報処理方法 | |
CN112527681A (zh) | 一种程序的漏洞检测方法及装置 | |
CN105574409A (zh) | 一种注入代码提取方法及装置 | |
CN112395610B (zh) | 内核层shellcode的检测方法及装置 | |
Gozzini | PINvader: a dynamic analysis tool for evasive techniques detection and bypass in 64-bit windows binaries | |
KR102421394B1 (ko) | 하드웨어와 소프트웨어 기반 트레이싱을 이용한 악성코드 탐지 장치 및 방법 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221223 |