CN112528240A - Password code-oriented automatic program sensitive data protection method - Google Patents
Password code-oriented automatic program sensitive data protection method Download PDFInfo
- Publication number
- CN112528240A CN112528240A CN202011402024.1A CN202011402024A CN112528240A CN 112528240 A CN112528240 A CN 112528240A CN 202011402024 A CN202011402024 A CN 202011402024A CN 112528240 A CN112528240 A CN 112528240A
- Authority
- CN
- China
- Prior art keywords
- code
- sensitive
- instruction
- buffer area
- intermediate language
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000003068 static effect Effects 0.000 claims abstract description 19
- 238000006243 chemical reaction Methods 0.000 claims abstract description 16
- 238000002955 isolation Methods 0.000 claims abstract description 16
- 239000000463 material Substances 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 34
- 230000004048 modification Effects 0.000 claims description 26
- 238000012986 modification Methods 0.000 claims description 26
- 230000007717 exclusion Effects 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000007480 spreading Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010420 art technique Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- BBRBUTFBTUFFBU-LHACABTQSA-N Ornoprostil Chemical compound CCCC[C@H](C)C[C@H](O)\C=C\[C@H]1[C@H](O)CC(=O)[C@@H]1CC(=O)CCCCC(=O)OC BBRBUTFBTUFFBU-LHACABTQSA-N 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008260 defense mechanism Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000007787 solid Substances 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
A method for protecting sensitive data of an automatic program facing to a password code comprises the steps of manually marking original key materials and plaintext ciphertext taints on a program source code in advance through a marking statement, and converting the program source code into an LLVM intermediate language code through an LLVM compiler; performing static sensitive data stream analysis aiming at the password code on the LLVM intermediate language code to obtain a sensitive buffer area in the code and a corresponding code for operating the sensitive buffer area; and determining the distribution of a buffer area to be modified and a memory access instruction which needs to be executed in a high-authority state according to a result output in the static analysis stage, carrying out isolation operation on the basis, linking a required runtime library while compiling the intermediate language obtained by conversion, and finally outputting and compiling the binary program obtained by compilation after final protection. The invention can automatically help to determine the data structures and sensitive data such as the derivative key material, the intermediate buffer zone and the like which need to be protected.
Description
Technical Field
The invention relates to a technology in the field of information security, in particular to a password code-oriented automatic program sensitive data protection method.
Background
Protecting sensitive data in a program from being leaked by some malicious attackers through a program memory leak is an important task, especially for some programs using cryptographic operations. Memory corruption vulnerabilities are a typical type of vulnerability in system software currently written by C programs. Such attacks can be further classified as control-flow-oriented attacks and data-flow-oriented attacks, depending on the goal of the memory corruption. If the target of the overwriting is program control flow related data, such as function return addresses, function pointers and the like, the attacker is called as control flow-oriented attack; if the target of overwriting or reading is program non-control flow related data, such as a cryptographic key or identity authentication related data, the attacker is called a data flow-oriented attack, which typically represents, for example, CVE-2014-.
For attacks facing control flow related data, mature and widely applied defense mechanisms are available at present. For attacks facing non-control-flow related data, the current protection schemes are not mature enough.
The protection of the non-control flow related data in the program is realized through memory isolation. The memory isolation can be further divided into inter-process memory isolation and intra-process memory isolation, and the intra-process memory isolation can achieve light-weight high-efficiency fine granularity. For memory isolation within a process, there have been many prior art techniques that provide support for basic primitives of isolation, but the prior art techniques do not enable automated identification of sensitive data. In fact, developers cannot well utilize memory isolation primitives to isolate sensitive data in programs, such as potentially sensitive data generated in cryptographic program logic, because this is a complex and cumbersome task and manual implementation would be extremely prone to omissions or errors.
Disclosure of Invention
Aiming at the defects in the prior art, the invention provides a sensitive data protection method of an automatic program facing to a password code, which can automatically help a password program developer to determine other data structures such as derivative key materials and intermediate buffer zones which need to be protected under the conditions of marking original key materials and inputting plaintext/ciphertext, isolate sensitive data appearing in the life cycle of the whole program in operation through intermediate language code conversion, and finally output a target binary program.
The invention is realized by the following technical scheme:
the invention relates to a password code-oriented automatic program sensitive data protection method, which comprises the steps of manually marking original key materials and plaintext ciphertext taints on a program source code in advance through a marking statement, and then converting the program source code into an LLVM intermediate language code through an LLVM compiler; then, analyzing a static sensitive data stream aiming at the password code on the LLVM intermediate language code to obtain a sensitive buffer area in the code and a corresponding code for operating the sensitive buffer area; and finally, determining the distribution of a buffer area to be modified and a memory access instruction which needs to be executed in a high-authority state according to a result output in the static analysis stage, carrying out isolation operation on the basis, linking a required runtime library while compiling the intermediate language obtained by conversion, and finally outputting and compiling the binary program to obtain the final protected binary program.
The invention relates to a system for realizing the method, which comprises the following steps: preprocessing unit, static analysis unit, intermediate language code conversion unit and binary program output unit facing to the code, wherein: the preprocessing unit is connected with the static analysis unit facing the password code and transmits LLVM byte code files marked with original key materials and plaintext ciphertext taints, the static analysis unit facing the password code is connected with the intermediate language code conversion unit and transmits operation instruction information of a code sensitive buffer area and the sensitive buffer area obtained through analysis, the intermediate language code conversion unit is connected with the binary program output unit and transmits byte code files which are isolated from the sensitive buffer area, and the binary program output unit outputs the binary files obtained through final compilation.
Technical effects
The invention integrally solves the problem that the prior art cannot realize automatic identification and protect sensitive data in the password code. Compared with the prior art, the method and the device can automatically identify and protect the sensitive data in the password code, and isolate the identified sensitive data in a data isolation mode in the process.
Drawings
FIG. 1 is a flow chart of the present invention;
FIG. 2 is a schematic view of spot marking at a pre-treatment stage;
FIG. 3 is a diagram illustrating context modification signature and deduplication according to an embodiment.
Detailed Description
The present embodiment is implemented on the LLVM version 7.0 framework and chooses Intel MPK as the hardware primitive to use. Given target source code containing cryptographic operations, as shown in fig. 1, the present embodiment relates to a method for protecting sensitive data of an automation program oriented to cryptographic codes, including: preprocessing stage, static analysis stage oriented to cipher code, intermediate language code conversion stage and binary program output stage, in which:
as shown in fig. 2, the preprocessing stage is: and correspondingly marking original key materials in the program and input plaintext/ciphertext on the source code, and converting the target source code into an LLVM intermediate language code form through an LLVM compiler.
The mark comprises: the developer marks key taints in the code for the buffer storing the original key material by the # pragmatastertitent, a pre-compiled instruction customized at the Clang front end; the developer marks the exclusive taint of plaintext and ciphertext for the input plaintext/ciphertext buffer in the password operation through the # pragmataster sinktaint. As shown in fig. 2, the key dirty is marked for the input key of the encryption operation, and the plaintext and ciphertext is marked for the input plaintext and muted mutually exclusive.
The static analysis stage for the password code specifically comprises the following steps:
spreading cipher code key taint and mutual exclusion taint: in a cryptographic program, the output ciphertext and the input ciphertext are generally said to be non-sensitive. The secret key taint and the plaintext ciphertext mutual exclusion taint are independently propagated. The variable marked with the key taint is regarded as a variable possibly carrying sensitive data, and the variable marked with the plaintext and ciphertext mutual exclusion taint is regarded as a non-sensitive data variable. The invention carries out abstract interpretation on the program, the cleartext ciphertext mutual exclusion taint can complete taint propagation, and the key taint can stop propagation when propagating to the variable marked with the cleartext ciphertext mutual exclusion taint at the same time, which specifically comprises the following steps: and when an abstract object simultaneously carries the key taint and the plaintext ciphertext mutual exclusion taint, stopping spreading the key taint.
Identifying a sensitive buffer for storing sensitive data: for the buffer with the key dirty, it is considered as a sensitive buffer and needs to be isolated, i.e. the intermediate language instruction and the context information for distributing the variable are recorded.
Identifying sensitive buffer operation codes: whether an abstract object corresponding to an instruction operand carries a key taint or not is analyzed to determine whether the instruction is a sensitive buffer area operation code or not, privilege modification is carried out in a later intermediate language code conversion stage, and a sensitive buffer area in the code and a corresponding code for operating the sensitive buffer area are output.
The sensitive buffer operation code comprises: sensitive buffer allocation code and sensitive buffer access code, wherein: the sensitive buffer area allocation codes are modified in a redistribution mode in an LLVM intermediate language code conversion stage; the sensitive buffer access code is a trusted code which needs to be accessed to the sensitive buffer in the code, and the sensitive buffer after the isolated operation is accessed by a non-privileged instruction, so that the sensitive buffer is broken down.
The intermediate language code conversion stage: determining the allocation of a buffer area to be modified and a memory access instruction which needs to be executed in a high-authority state according to a result output by the static analysis stage, and performing isolation operation on the basis, wherein the method specifically comprises the following steps:
i) function copy and call target replacement: copying an original function for each context to be modified except the entry point function, and performing all subsequent modifications on the newly copied function; after copying, the call relation between functions needs to be maintained;
ii) stack allocation replacement: modifying the sensitive buffer allocation instruction identified by the static analysis stage, allocating the sensitive buffer allocation instruction to a memory page which is supported by a specific hardware primitive and has high authority, namely can be accessed only by the privileged instruction, and releasing the memory page by a corresponding release function;
the modification comprises the allocation and the release of the sensitive information data structure.
iii) instruction privileged: for a sensitive buffer access instruction, modifying the access instruction into a privileged instruction which is supported by a specific hardware primitive and allows access to a high-authority memory;
iv) merging and de-duplicating the same function context as the context modification scheme: in the static analysis stage, the calls of the same function under different call paths are treated as different contexts, so the number of contexts generated in the analysis may be much larger than the number of functions. If a modified function is generated for each context, the program volume is greatly increased, so that the duplication is combined and removed, specifically, a modification scheme corresponding to the context is collected, and the function copy is performed only once without performing multiple copies for the contexts with the same modification scheme. The effect of signature modification deduplication is as exemplified in fig. 3, for example, for there would otherwise be three copies of the xreadline function, it would be reduced to only two copies of the xreadline function.
The modification scheme specifically comprises the following types of modifications: 1) modification type one: a function call instruction of which the target function needs to be modified is called because the call target relates to sensitive data operation; 2) and modification type two: for a calling instruction of a sensitive memory allocation and release function, a high authority is required to be given before the instruction is executed, and the high authority is cancelled after the instruction is executed and replaced by a corresponding sensitive memory allocation/release function; 3) modification type three: a library function call instruction related to accessing a sensitive memory area is endowed with high access authority before calling, and a cancel authority is called; 4) and the modification type is four: memory read and write instructions related to sensitive memory areas, such as load and store instructions in LLVM, require high permission to be given before instruction execution and cancellation permission to be given after instruction execution.
The allocation and release instructions include a stack allocation instruction alloca and heap memory manager functions malloc and free.
The binary program output stage is as follows: and compiling the intermediate language obtained after the isolation operation, and simultaneously linking a required runtime library, and finally outputting and compiling to obtain a final protected binary program.
Through specific practical experiments, the hardware is set as follows: the dual Intel Xeon Gold 5122 processor, 128GB memory, 1TB solid state disk, software settings are as follows: under the environment setting of a Ubuntu 18.04.2LTS (GNU/Linux 4.15.0-45-genetic x86_64) and LLVM 7.0 compiler, the method of the invention is operated on cipher libraries or programs such as ccrypt, OpenSSL, libsodium, libhydrogen and the like, and the result shows that the rewriting of the cipher code to be protected can be completed within 8 minutes at most, and the operation cost of the protected program is not more than 7% at most. The protection effect of the embodiment is verified by further manual analysis and confirmation of the protected output program.
Compared with the prior art that the automatic identification and protection of the potential sensitive data generated in the logic of the password program cannot be realized, the method and the device can effectively and automatically identify and protect the sensitive data of the password program, and the performance overhead of the protected program during running is considerable.
The foregoing embodiments may be modified in many different ways by those skilled in the art without departing from the spirit and scope of the invention, which is defined by the appended claims and all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Claims (7)
1. A method for protecting sensitive data of an automatic program facing to a password code is characterized in that original key materials and plaintext ciphertext taints are marked manually on a program source code in advance through a marking statement, and then the program source code is converted into an LLVM intermediate language code through an LLVM compiler; then, analyzing a static sensitive data stream aiming at the password code on the LLVM intermediate language code to obtain a sensitive buffer area in the code and a corresponding code for operating the sensitive buffer area; and finally, determining the distribution of a buffer area to be modified and a memory access instruction which needs to be executed in a high-authority state according to a result output in the static analysis stage, carrying out isolation operation on the basis, linking a required runtime library while compiling the intermediate language obtained by conversion, and finally outputting and compiling the binary program to obtain the final protected binary program.
2. The method of claim 1, wherein the marking comprises: the method comprises the steps of marking a buffer area for storing original key materials with key taint through a # pragma taintertaint precompiled instruction in a code, and marking plaintext/ciphertext buffer area with plaintext/ciphertext exclusive taint through a # pragma tainer sinktaint in the cryptographic operation.
3. The method for protecting sensitive data of an automation program facing to a password code as claimed in claim 1, wherein the static sensitive data stream analysis for the password code specifically includes:
spreading cipher code key taint and mutual exclusion taint: when an abstract object simultaneously carries the key taint and the plaintext ciphertext mutual exclusion taint, stopping spreading the key taint;
identifying a sensitive buffer for storing sensitive data: regarding the buffer area with the key taint as a sensitive buffer area and needing isolation, namely recording the intermediate language instruction and the context information for distributing the variable;
identifying sensitive buffer operation codes: whether an abstract object corresponding to an instruction operand carries a key taint or not is analyzed to determine whether the instruction is a sensitive buffer area operation code or not, privilege modification is carried out in a later intermediate language code conversion stage, and a sensitive buffer area in the code and a corresponding code for operating the sensitive buffer area are output.
4. The method of claim 1, wherein the code that operates on the sensitive buffer comprises: sensitive buffer allocation code and sensitive buffer access code, wherein: the sensitive buffer area allocation codes are modified in a redistribution mode in an LLVM intermediate language code conversion stage; the sensitive buffer access code is a trusted code which needs to be accessed to the sensitive buffer in the code, and the sensitive buffer after the isolated operation is accessed by a non-privileged instruction, so that the sensitive buffer is broken down.
5. The method for protecting sensitive data of an automation program facing to a cryptographic code as in claim 1 or 4, wherein the isolation operation specifically comprises:
i) function copy and call target replacement: copying an original function for each context to be modified except the entry point function, and performing all subsequent modifications on the newly copied function; after copying, the call relation between functions needs to be maintained;
ii) stack allocation replacement: modifying the sensitive buffer allocation instruction identified by the static analysis stage, allocating the sensitive buffer allocation instruction to a memory page which is supported by a specific hardware primitive and has high authority, namely can be accessed only by the privileged instruction, and releasing the memory page by a corresponding release function;
the modification comprises the allocation and release of a sensitive information data structure;
iii) instruction privileged: for a sensitive buffer access instruction, modifying the access instruction into a privileged instruction which is supported by a specific hardware primitive and allows access to a high-authority memory;
iv) merging and de-duplicating the same function context as the context modification scheme: and collecting a modification scheme corresponding to the context, and only performing one-time function copy on the context with the same modification scheme without performing multiple copies.
6. The method for protecting sensitive data of an automated cryptographic program as claimed in claim 5, wherein said modification scheme comprises the following types of modifications: 1) modification type one: a function call instruction of which the target function needs to be modified is called because the call target relates to sensitive data operation; 2) and modification type two: for a calling instruction of a sensitive memory allocation and release function, a high authority is required to be given before the instruction is executed, and the high authority is cancelled after the instruction is executed and replaced by a corresponding sensitive memory allocation/release function; 3) modification type three: a library function call instruction related to accessing a sensitive memory area is endowed with high access authority before calling, and a cancel authority is called; 4) and the modification type is four: memory read and write instructions related to sensitive memory areas, such as load and store instructions in LLVM, require high permission to be given before instruction execution and cancellation permission to be given after instruction execution.
7. A system for implementing the method of any preceding claim, comprising: preprocessing unit, static analysis unit, intermediate language code conversion unit and binary program output unit facing to the code, wherein: the preprocessing unit is connected with the static analysis unit facing the password code and transmits LLVM byte code files marked with original key materials and plaintext ciphertext taints, the static analysis unit facing the password code is connected with the intermediate language code conversion unit and transmits operation instruction information of a code sensitive buffer area and the sensitive buffer area obtained through analysis, the intermediate language code conversion unit is connected with the binary program output unit and transmits byte code files which are isolated from the sensitive buffer area, and the binary program output unit outputs the binary files obtained through final compilation.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011402024.1A CN112528240B (en) | 2020-12-02 | 2020-12-02 | Password code-oriented automatic program sensitive data protection method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011402024.1A CN112528240B (en) | 2020-12-02 | 2020-12-02 | Password code-oriented automatic program sensitive data protection method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528240A true CN112528240A (en) | 2021-03-19 |
CN112528240B CN112528240B (en) | 2022-08-09 |
Family
ID=74997416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011402024.1A Active CN112528240B (en) | 2020-12-02 | 2020-12-02 | Password code-oriented automatic program sensitive data protection method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528240B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190450A (en) * | 2021-05-08 | 2021-07-30 | 航天中认软件测评科技(北京)有限责任公司 | Automatic software testing system and testing method thereof |
CN114282226A (en) * | 2021-12-31 | 2022-04-05 | 上海交通大学 | Single-time multi-bug code detection method and system |
CN114282226B (en) * | 2021-12-31 | 2024-05-28 | 上海交通大学 | Single multi-vulnerability code detection method and system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163382A1 (en) * | 2007-01-03 | 2008-07-03 | International Business Machines Corporation | Method and system for protecting sensitive data in a program |
CN103729295A (en) * | 2013-12-31 | 2014-04-16 | 北京理工大学 | Method for analyzing taint propagation path |
CN105279091A (en) * | 2015-11-19 | 2016-01-27 | 中国人民大学 | According-to-requirement tracking method based on dynamic taint analysis and device thereof |
US9477461B1 (en) * | 2014-03-12 | 2016-10-25 | Cloud Linux Zug GmbH | Systems and methods for generating and applying operating system live updates |
CN107358099A (en) * | 2017-06-09 | 2017-11-17 | 南京邮电大学 | Useless change quantity measuring method based on LLVM intermediate representation program microtomies |
CN109918903A (en) * | 2019-03-06 | 2019-06-21 | 西安电子科技大学 | A kind of program non-control attack guarding method based on LLVM compiler |
US10698668B1 (en) * | 2018-05-29 | 2020-06-30 | Amazon Technologies, Inc. | Custom code transformations during compilation process |
CN111859388A (en) * | 2020-06-30 | 2020-10-30 | 广州大学 | Multi-level mixed vulnerability automatic mining method |
CN112016099A (en) * | 2020-10-26 | 2020-12-01 | 中国人民解放军国防科技大学 | Method and system for analyzing static taint among binary program processes |
-
2020
- 2020-12-02 CN CN202011402024.1A patent/CN112528240B/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163382A1 (en) * | 2007-01-03 | 2008-07-03 | International Business Machines Corporation | Method and system for protecting sensitive data in a program |
CN103729295A (en) * | 2013-12-31 | 2014-04-16 | 北京理工大学 | Method for analyzing taint propagation path |
US9477461B1 (en) * | 2014-03-12 | 2016-10-25 | Cloud Linux Zug GmbH | Systems and methods for generating and applying operating system live updates |
CN105279091A (en) * | 2015-11-19 | 2016-01-27 | 中国人民大学 | According-to-requirement tracking method based on dynamic taint analysis and device thereof |
CN107358099A (en) * | 2017-06-09 | 2017-11-17 | 南京邮电大学 | Useless change quantity measuring method based on LLVM intermediate representation program microtomies |
US10698668B1 (en) * | 2018-05-29 | 2020-06-30 | Amazon Technologies, Inc. | Custom code transformations during compilation process |
CN109918903A (en) * | 2019-03-06 | 2019-06-21 | 西安电子科技大学 | A kind of program non-control attack guarding method based on LLVM compiler |
CN111859388A (en) * | 2020-06-30 | 2020-10-30 | 广州大学 | Multi-level mixed vulnerability automatic mining method |
CN112016099A (en) * | 2020-10-26 | 2020-12-01 | 中国人民解放军国防科技大学 | Method and system for analyzing static taint among binary program processes |
Non-Patent Citations (4)
Title |
---|
李卷儒等: "二进制代码隐秘功能的安全性验证", 《全国计算机安全学术交流会论文集(第二十三卷)》 * |
李卷儒等: "二进制代码隐秘功能的安全性验证", 《全国计算机安全学术交流会论文集(第二十三卷)》, 12 October 2018 (2018-10-12) * |
汪雷: "基于LLVM中间表示的缺陷静态分析工具实现", 《中国优秀硕士学位论文数据库 信息科技辑》 * |
汪雷: "基于LLVM中间表示的缺陷静态分析工具实现", 《中国优秀硕士学位论文数据库 信息科技辑》, no. 4, 15 April 2018 (2018-04-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190450A (en) * | 2021-05-08 | 2021-07-30 | 航天中认软件测评科技(北京)有限责任公司 | Automatic software testing system and testing method thereof |
CN114282226A (en) * | 2021-12-31 | 2022-04-05 | 上海交通大学 | Single-time multi-bug code detection method and system |
CN114282226B (en) * | 2021-12-31 | 2024-05-28 | 上海交通大学 | Single multi-vulnerability code detection method and system |
Also Published As
Publication number | Publication date |
---|---|
CN112528240B (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liljestrand et al. | {PAC} it up: Towards pointer integrity using {ARM} pointer authentication | |
US10838758B2 (en) | System and method for self-protecting data | |
Jang et al. | SafeDispatch: Securing C++ Virtual Calls from Memory Corruption Attacks. | |
Sinha et al. | A design and verification methodology for secure isolated regions | |
Younan et al. | Runtime countermeasures for code injection attacks against C and C++ programs | |
US9536111B2 (en) | Secure processing unit systems and methods | |
EP3746921B1 (en) | Systems and methods for policy linking and/or loading for secure initialization | |
Kirth et al. | PKRU-Safe: Automatically locking down the heap between safe and unsafe languages | |
CN103620613A (en) | System and method for virtual machine monitor based anti-malware security | |
TW201941049A (en) | Systems and methods for transforming instructions for metadata processing | |
CN112639778A (en) | Pointer authentication and dynamic switching between pointer authentication schemes | |
WO2008002350A1 (en) | Securing software by enforcing data flow integrity | |
Saito et al. | A survey of prevention/mitigation against memory corruption attacks | |
Payer et al. | String oriented programming: When ASLR is not enough | |
Nyman et al. | Hardscope: Thwarting DOP with hardware-assisted run-time scope enforcement | |
US10089223B1 (en) | Memory categorization | |
Nagarajan et al. | Dynamic information flow tracking on multicores | |
Shen et al. | To isolate, or to share? That is a question for Intel SGX | |
CN112528240B (en) | Password code-oriented automatic program sensitive data protection method | |
WO2016126206A1 (en) | Method for obfuscation of code using return oriented programming | |
Geden et al. | RegGuard: Leveraging CPU registers for mitigation of control-and data-oriented attacks | |
Novković | A Taxonomy of Defenses against Memory Corruption Attacks | |
Huang et al. | Fast Out-of-Band Data Integrity Monitor to Mitigate Memory Corruption Attacks | |
Chen | Defending In-process Memory Abuse with Mitigation and Testing | |
Saito et al. | Safe trans loader: mitigation and prevention of memory corruption attacks for released 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 |