CN115309402B - Heterogeneous execution program set forming method and device capable of quantifying difference - Google Patents

Heterogeneous execution program set forming method and device capable of quantifying difference Download PDF

Info

Publication number
CN115309402B
CN115309402B CN202210820600.7A CN202210820600A CN115309402B CN 115309402 B CN115309402 B CN 115309402B CN 202210820600 A CN202210820600 A CN 202210820600A CN 115309402 B CN115309402 B CN 115309402B
Authority
CN
China
Prior art keywords
heterogeneous
program
execution
executable program
cov
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
CN202210820600.7A
Other languages
Chinese (zh)
Other versions
CN115309402A (en
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.)
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Original Assignee
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
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 Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd filed Critical Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Priority to CN202210820600.7A priority Critical patent/CN115309402B/en
Publication of CN115309402A publication Critical patent/CN115309402A/en
Application granted granted Critical
Publication of CN115309402B publication Critical patent/CN115309402B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention discloses a method and a device for constructing a quantifiable difference heterogeneous execution program set. And solving the maximum value of the heterogeneous execution program safety model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set. The method improves the safety of the safety access gateway of the heterogeneous executor, and has a key meaning for analyzing the effect of endogenous safety modification of the safety access gateway of the electric power Internet of things by using the mimicry defense theory.

Description

Heterogeneous execution program set forming method and device capable of quantifying difference
Technical Field
The invention relates to a method and a device for constructing a heterogeneous execution program set capable of quantifying difference, belonging to the technical field of network security.
Background
With the strategic advancement of ubiquitous electric power Internet of things and the wide application of advanced information communication technology and the Internet+ in a power grid, the electric power system gradually breaks through the prior closure and the prior proprietary. The electric power internet of things security access gateway provides basic support for realizing the boundary security protection requirements of the information internal and external networks, and solves the problems of equipment trust, channel security and data confidentiality in the terminal access process. The security access gateway of the electric power Internet of things is used as a boundary security protection measure of a core, and the security protection of the security access gateway is also very important. At present, technical measures such as code security detection, manager authentication, data encryption storage verification, network access control, operating system kernel cutting, security reinforcement and the like are adopted in the aspect of self security protection of the security access gateway of the electric power Internet of things. However, under the high-strength actual combat countermeasure environments such as the current national level network attack and defense exercise, the 0DAY vulnerability and the unknown attack continuously bring new threats, and the current security protection measures of the security access gateway of the electric power internet of things show a serious security gap.
In order to comprehensively improve the comprehensive defense capacity of the electric power Internet of things security access gateway, solve the problems of the existing electric power Internet of things security access gateway in the aspects of unknown vulnerability protection, unknown attack defense and integrated security protection, introduce an endogenous security concept, reform the electric power Internet of things security access gateway by using the technology theory such as mimicry and the like, and improve the endogenous security immunity capacity of the electric power network security boundary.
Mimicry defense is a revolutionary defense technology system with inclusion, openness and initiative that attempts to "change the rules of current games". The mimicry defense no longer pursues to establish a vulnerability-free, backdoor-free, defect-free and perfect defense system to fight against network space security threats, but adopts various and constantly-changed evaluation and deployment mechanisms and strategies to construct a dynamic, heterogeneous, redundant and uncertain system architecture, thereby forming the dilemmas of 'difficult detection, difficult penetration, difficult attack excitation, difficult utilization of attack results', and the like, breaking the stationarity, certainty and similarity of the network architecture formed by an attack chain, and greatly increasing the attack cost of an attacker. It is expected that increasing the system dynamics reduces the system detectability, increasing the system randomness reduces the system permeability, and utilizing the system dynamic heterogeneous redundancy architecture forces the attacker to directly coordinate the attack problem, thereby comprehensively utilizing the system dynamics, randomness and diversity to destroy the stability or the effective availability of the attack chain. When the network and the system are deployed and operated, the attack difficulty including unknown vulnerabilities and backdoors and the availability difficulty of attack results are remarkably improved by reducing the certainty, similarity and stationarity of the network and the system, and the strategy pattern of easy attack and difficult defending is thoroughly twisted.
Comprehensively considering the aspects of the prior art architecture, hardware cost, safety performance and the like of the safety access gateway of the electric power Internet of things, the method adopts a mode based on software virtualization to realize the isomerism executable in the mimicry defense theory, ensures that each executable is consistent in external characterization and has the same functionality as the original gateway, simultaneously, utilizes the software compiling technology and uses the means of instruction replacement and control flow transformation to generate a plurality of executable programs with differences on the basis of the source code of the safety access gateway, and constructs isomerism executable.
One of the core views of mimicry defense theory is that an attacker cannot use the same attack means at a time to break holes in multiple heterogeneous executives. In practical application, the premise that the theory is established is that the variability among the execution bodies is large enough, so that the differential representation of potential vulnerability hidden dangers in the execution bodies can be realized. However, in practical application, since the hidden trouble in the executable is unknown, accurate differential compiling of part of codes existing in the hidden trouble cannot be realized, and therefore, a plurality of compiling means are generally adopted to perform a large-scale transformation on the codes. The existing means such as instruction replacement and control flow conversion have certain randomness, so that complete controllability of the result after compiling and conversion cannot be realized, the more the compiling and conversion means used by default currently, the larger the difference among a plurality of executable programs generated after compiling is, and the lack of a quantitative measurement method for the difference also causes the problem that the safety measurement of heterogeneous executors generated after compiling becomes difficult, and the safety of an access gateway program cannot be improved after the method is adopted in quantitative analysis.
Heterogeneous execution programs are generated based on software compiling, and differences can be generated among the generated heterogeneous execution programs by adopting different software compiling means in the prior art. However, since the software compiling means have randomness, the result after compiling is not completely controllable, and a method for quantitatively analyzing and comparing the differences among a plurality of execution programs is lacking, a satisfactory heterogeneous execution set cannot be constructed.
Accordingly, there is a great need for those skilled in the art to overcome the above deficiencies in the prior art.
Disclosure of Invention
The purpose is as follows: in order to overcome the defects in the prior art, the invention provides a method and a device for constructing heterogeneous execution program sets with quantifiable differences, which are used as functional executors in a mimicry architecture.
The technical scheme is as follows: in order to solve the technical problems, the invention adopts the following technical scheme:
in a first aspect, a method for constructing a heterogeneous executable program set capable of quantifying differences includes the steps of:
compiling the same source code in a heterogeneous mode to generate N heterogeneous execution programs, wherein N is an integer greater than 0, and constructing the N heterogeneous execution programs into a heterogeneous execution program pool.
And calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
And calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool.
And calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
And solving the maximum value of the heterogeneous execution program safety model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set.
As a preferred solution, the compiling the same source code in a heterogeneous manner to generate N heterogeneous execution programs, where N is an integer greater than 0, and constructing the N heterogeneous execution programs into a heterogeneous execution program pool includes:
step 101: and selecting binary code fragments needing heterogeneous processing in the same source code to generate virtual instruction fragments.
Step 102: and randomly selecting the seed, and performing confusion operation on the virtual instruction fragments according to the seed to generate the virtual instruction fragments after confusion.
Step 103: setting the value of a in a%, wherein the value range of a is 0-100, calculating the confused virtual instruction segment with the flag bit set to 1 in the confused virtual instruction segment according to a%, and obtaining the execution path of the confused virtual instruction segment according to the offset address of the confused virtual instruction segment.
Step 104: and compiling according to the confused virtual instruction fragments and the execution paths to generate heterogeneous execution programs.
Step 105: repeating steps 101-104 for N times to generate N heterogeneous execution programs.
Step 106: the N heterogeneous executives are built into a heterogeneous executive pool.
Preferably, the N heterogeneous execution programs in the heterogeneous execution program pool are ordered from large to small according to the difference value between the original executable program and the heterogeneous execution program.
Preferably, a% is set in gradient increment.
Preferably, the seed selects a seed corresponding to the heterogeneous execution program with the largest gradient change of the difference value between the original executable program and the heterogeneous execution program in the N heterogeneous execution programs.
Preferably, the formula for calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool is as follows:
Diff(H o ,H i )=cov(h so ,h si )·ω s +cov(h bo ,h bi )·ω b +cov(h co ,h ci )·ω c +cov(h to ,h ti )·ω t
wherein cov (h) so ,h sj )、cov(h bo ,h bj )、cov(h co ,h cj )、cov(h to ,h tj ) Representing the correlation values of the original executable program and the ith heterogeneous executable program with respect to program capacity, jump branch instruction number, complexity, compile time, ω s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time.
As a preferred scheme, the formula for calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool is as follows:
Diff(H i ,H j )=cov(h si ,h sj )·ω s +cov(h bi ,h bj )·ω b +cov(h ci ,h cj )·ω c +cov(h ti ,h tj )·ω t
wherein cov (h) si ,h sj )、cov(h bi ,h bj )、cov(h ci ,h cj )、cov(h ti ,h tj ) Representing the correlation values, ω, of the ith and jth heterogeneous executions with respect to program capacity, number of jump branch instructions, complexity, compile time, respectively s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time.
Preferably, the formula for calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool is as follows:
P(L o ,L i )=(|l ko -l ki |+|l no -l ni |+|l do -l di |)/s oi
wherein:l ko -l ki 、l no -l in 、l do -l di representing the difference between the original executable program and the ith heterogeneous executable program with respect to the average time of connection, the maximum number of connections, and the average response delay, respectively.
As a preferred solution, according to a difference value between an original executable program and a heterogeneous executable program, a difference value between two heterogeneous executable programs and a loss value between the original executable program and the heterogeneous executable program, solving a maximum value of a security model of the heterogeneous executable program to obtain the number m of heterogeneous executable programs, and selecting m heterogeneous executable programs from a heterogeneous program pool to construct a heterogeneous executable program set, including:
the heterogeneous execution program safety model is constructed, and the calculation formula is as follows:
wherein ΣP (L o ,L i ) Representing the sum of the wear values between m heterogeneous executions and the original executable, Σdiff (H o ,H i )、ΣDiff(H i ,H j ) Respectively representing the sum of the difference values of the selected m heterogeneous executable programs and the original executable program and the sum of the difference values of the heterogeneous executable programs.
And solving the maximum value of the heterogeneous execution program security model to obtain the number m of heterogeneous execution programs.
And selecting m heterogeneous execution programs from the heterogeneous program pool to construct a heterogeneous execution program set.
In a second aspect, a heterogeneous executable program set forming apparatus capable of quantifying differences includes:
heterogeneous executable program pool construction module: the method is used for compiling the same source code in a heterogeneous mode to generate N heterogeneous execution programs, wherein N is an integer greater than 0, and the N heterogeneous execution programs are built into a heterogeneous execution program pool.
A first difference value calculation module: the method is used for calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
A second difference value calculation module: the method is used for calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool.
Loss value calculation module: the method is used for calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
Heterogeneous execution program set construction module: and the method is used for solving the maximum value of the heterogeneous execution program safety model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set.
Preferably, the heterogeneous executable program pool building module includes:
step 101: and selecting binary code fragments needing heterogeneous processing in the same source code to generate virtual instruction fragments.
Step 102: and randomly selecting the seed, and performing confusion operation on the virtual instruction fragments according to the seed to generate the virtual instruction fragments after confusion.
Step 103: setting the value of a in a%, wherein the value range of a is 0-100, calculating the confused virtual instruction segment with the flag bit set to 1 in the confused virtual instruction segment according to a%, and obtaining the execution path of the confused virtual instruction segment according to the offset address of the confused virtual instruction segment.
Step 104: and compiling according to the confused virtual instruction fragments and the execution paths to generate heterogeneous execution programs.
Step 105: repeating steps 101-104 for N times to generate N heterogeneous execution programs.
Step 106: the N heterogeneous executives are built into a heterogeneous executive pool.
Preferably, the N heterogeneous execution programs in the heterogeneous execution program pool are ordered from large to small according to the difference value between the original executable program and the heterogeneous execution program.
Preferably, a% is set in gradient increment.
Preferably, the seed selects a seed corresponding to the heterogeneous execution program with the largest gradient change of the difference value between the original executable program and the heterogeneous execution program in the N heterogeneous execution programs.
Preferably, the first difference value calculating module includes:
Diff(H o ,H i )=cov(h so ,h si )·ω s +cov(h bo ,h bi )·ω b +cov(h co ,h ci )·ω c +cov(h to ,h ti )·ω t
wherein cov (h) so ,h sj )、cov(h bo ,h bj )、cov(h co ,h cj )、cov(h to ,h tj ) Representing the correlation values of the original executable program and the ith heterogeneous executable program with respect to program capacity, jump branch instruction number, complexity, compile time, ω s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time.
Preferably, the second difference value calculating module includes:
Diff(H i ,H j )=cov(h si ,h sj )·ω s +cov(h bi ,h bj )·ω b +cov(h ci ,h cj )·ω c +cov(h ti ,h tj )·ω t
wherein cov (h) si ,h sj )、cov(h bi ,h bj )、cov(h ci ,h cj )、cov(h ti ,h tj ) Representing the correlation values, ω, of the ith and jth heterogeneous executions with respect to program capacity, number of jump branch instructions, complexity, compile time, respectively s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time.
Preferably, the loss value calculation module includes:
P(L o ,L i )=(|l ko -l ki |+|l no -l ni |+|l do -l di |)/s oi
wherein:l ko -l ki 、l no -l ni 、l do -l di representing the difference between the original executable program and the ith heterogeneous executable program with respect to the average time of connection, the maximum number of connections, and the average response delay, respectively.
Preferably, the heterogeneous execution program set construction module includes:
the heterogeneous execution program safety model is constructed, and the calculation formula is as follows:
wherein ΣP (L o ,L i ) Representing the sum of the wear values between m heterogeneous executions and the original executable, Σdiff (H o ,H i )、ΣDiff(H i ,H j ) Respectively representing the sum of the difference values of the selected m heterogeneous executable programs and the original executable program and the sum of the difference values of the heterogeneous executable programs.
And solving the maximum value of the heterogeneous execution program security model to obtain the number m of heterogeneous execution programs.
And selecting m heterogeneous execution programs from the heterogeneous program pool to construct a heterogeneous execution program set.
The beneficial effects are that: the invention provides a method and a device for constructing a quantifiable difference heterogeneous execution program set. Secondly, aiming at the quantitative measurement problem of the difference among a plurality of binary executable programs, constructing a isomerism index aiming at the executable programs from a plurality of dimensions such as the compiled program quantity, the jump branch instruction quantity, the complexity, the compiling time and the like. Then, loss index is constructed for the difference between the compiled executable program function, performance aspect and original standard program. Finally, according to the isomerism index and the loss index, the generated isomerism execution program set improves the safety of the security access gateway of isomerism executives, has a key meaning for analyzing the effect of carrying out endophytic security transformation on the security access gateway of the electric power internet of things by using the mimicry defense theory, is beneficial to developing targeted network security active defense for companies, and has wide engineering practical value. The advantages are as follows:
(1) An executable program generated by a heterogeneous compiling method is provided, and the degree of isomerism can be quantitatively and quantitatively measured.
(2) The quantitative calculation method is utilized by the isomerization executable program, so that the endophytic safety is improved, and data support is provided for the follow-up selection of effective isomerization compiling means and the adjustment and optimization of isomerization parameters.
Drawings
FIG. 1 is a schematic flow chart of the method of the present invention.
FIG. 2 is a schematic diagram of a virtual instruction fragment execution path without path skew.
FIG. 3 is a schematic diagram of a virtual instruction fragment execution path through path isomerization.
Fig. 4 is a schematic structural view of the device of the present invention.
Detailed Description
The invention will be further described with reference to specific examples.
As shown in fig. 1, a method for constructing heterogeneous executable program sets capable of quantifying differences includes the following steps:
compiling the same source code in a heterogeneous mode to generate N heterogeneous execution programs, wherein N is an integer greater than 0, and constructing the N heterogeneous execution programs into a heterogeneous execution program pool.
And calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
And calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool.
And calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
And solving the maximum value of the heterogeneous execution program safety model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set.
A second embodiment is a method for constructing a heterogeneous executable program set capable of quantifying differences, including the steps of:
step 1: binary code fragments requiring heterogeneous processing are selected.
And selecting binary code fragments needing heterogeneous processing according to the names of target functions to be protected or the starting and ending addresses of the code blocks. From the security point of view, the main functional functions of the program and the code blocks related to external data interaction are generally selected as binary code segments requiring heterogeneous processing.
Step 2: and converting the binary code segment to generate a virtual instruction segment.
Decompiling the binary code segment selected in step 1 into assembly code according to an underlying architecture (such as x86, ARM, etc.), and then converting the assembly code into a virtual instruction segment VC by using a cross-platform compiling tool such as LLVM.
Step 3: and performing confusion operation on the virtual instruction fragments to generate the virtual instruction fragments after confusion.
To produce heterogeneous effects, a confusing operation is performed on the virtual instruction fragment. For the same virtual instruction segment VC, performing multiple confusion operations, selecting different seeds from a randomly generated seed pool for initialization by each confusion operation, and initializing the confused virtual instruction segmentThe segments are denoted as VC i (seed j ) Where i represents the virtual instruction fragment sequence number and j represents the initialization seed sequence number employed. VC (vitamin C) i (seed j ) Representing the result of the ith virtual instruction fragment obfuscating with the seed in the jth seed pool.
Step 4: setting the virtual instruction segment to obtain a heterogeneous program execution path.
In the step 3, the confusion operation aiming at the virtual instruction fragments is embodied in a static layer, and in order to further enhance the isomerism of the whole program, the program path in the execution process is randomized.
1) During the original program execution, the jumps between different instruction fragments are operated by the scheduler according to the standard byte code sequence.
Standard bytecode: 02 01 21 22 43 20...
Each bit in the standard byte code represents the sequence number of the instruction segment, for example, after the sequence number 02 instruction segment is run, the operation is skipped to the scheduler, and then the scheduler selects the sequence number 01 instruction segment to run according to the standard byte code.
2) In virtual instruction fragment VC 1 A byte code of one bit offset address is added at the end of the virtual instruction segment VC 1 To the next virtual instruction fragment VC 2 And then adding a bit marking bit (0 or 1) at the end of the offset address byte code to indicate whether the selection scheduler or the offset address jumps, wherein 0 indicates the selection scheduler, and 1 indicates that the selection scheduler jumps to the next virtual instruction segment directly according to the offset address.
The flag bit of the virtual instruction fragment is set to 1 by randomly selecting a% of the total virtual instruction fragment number, and the flag bits of the remaining virtual instruction fragments are set to 0. The value range of a is 0-100, and the flag bit is turned over (0 to 1 or 1 to 0) after each virtual instruction segment is executed.
Assume a total of 100 virtual instruction fragments VC 1-100 A% by 100 number of virtual instruction fragments are selected, their flag bits are set to 1, and this percentage is used to control the degree of heterogeneity of the paths when the program is executing.
VC 1 (start address 0x6 a):
VC 1 instruction fragment Offset address 0x16 Bit zone 0
VC 2 (starting address 0x80=0x6a+ _0x16)
3) By adding the offset address and the flag bit, the virtual instruction segment can generate different execution paths in the actual execution process.
The execution path refers to the sequence of code blocks that pass through in sequence during the execution of the program.
Program execution process standard bytecode: 01 41 20 5 the virtual instruction fragments that do not traverse the path heterogeneous, as shown in FIG. 2, execute the following, virtual instruction fragments 01, 5, 20, 41 in standard bytecode: 01 41 20 5, after 1 instruction segment is executed, jumping back to the scheduler, and jumping to the next virtual instruction segment by the scheduler according to the data stored in the standard byte code, thereby forming a program execution path of 1-2-3-4-5-6 in fig. 2.
As shown in FIG. 3, the execution paths of the virtual instruction fragments passing through the path heterogeneity are as follows, and the tail of each virtual instruction fragment is provided with the offset address of the next virtual instruction fragment and the zone bit of the jump mode, wherein the instruction fragment VC 1 、VC 20 The flag bit of (2) is 1, the next virtual instruction segment is directly jumped to according to the offset address quantity, and VC 41 The flag bit is 0, the scheduler needs to be jumped back, and then the next virtual instruction segment is jumped back, so the program execution path is 1-2-3-4.
By the steps, different program execution paths can be generated in the same virtual instruction segment execution process, so that the isomerism of the program is enhanced.
Step 5: and (3) repeating the steps 1-4 to generate a plurality of different heterogeneous execution programs of the same source code and generate a heterogeneous execution program pool.
And for the program needing to be isomerized, N times of operations are performed according to the steps 1-4, and N heterogeneous execution programs are generated due to the fact that the different initialization seeds and the different program execution paths are mixed in the steps 3 and 4.
In step 3 there is a seed for confusion initialization, in step 4 there is a parameter a) randomly selecting the total number of instruction fragments, both of which directly affect the instruction fragments VC generated by confusion i (seed j ) And program execution paths, are the primary variables that control inter-program heterogeneity.
Seed and parameter a% are selected by the Diff (H o ,H i ) Values are optimized. First fixing an initial value of a% (e.g. 10%), calculating Diff (H) by randomly selecting seed a number of times o ,H i ) Is a value of (1) and Diff (H o ,H i ) The seed corresponding to the fastest gradient is selected. Subsequently, diff (H) was calculated sequentially with a value of 5% increasing a% sequentially (typically not more than 30%) o ,H i ) Gradient optimization, a step size, i.e., a% increases by 5% each time. Finally, according to Diff (H o ,H i ) And the values are formed by heterogeneous execution programs generated by big-to-small arrangement, so as to form a heterogeneous program pool.
Step 6: and acquiring heterogeneous index vectors of different heterogeneous execution programs in the heterogeneous program pool.
In step 5, a plurality of different heterogeneous execution programs compiled from the same source code are obtained, and in order to accurately describe the isomerism among the different heterogeneous execution programs, the program capacity, the number of jump branch instructions, the complexity and the compiling time are selected as characteristics for representing isomerism indexes.
The program capacity refers to the program volume after the empty instruction is removed from the program, and the unit is bytes, and the empty instruction is N0P.
The number of jump branch instructions refers to the number of jump instructions present in the program, such as JMP, JE.
Compile time refers to the time that a binary program is generated by compilation of source code in the same hardware environment.
Complexity refers to the number of linear irrelevant executable paths in the program, and the complexity of the heterogeneous execution program is calculated in a loop complexity mode.
Program capacity, number of jump branch instructions, complexity, compile time are denoted s, b, c, t, respectively, and for a heterogeneous execution program the heterogeneous index vector is denoted: h= (H s ,h b ,h c ,h t )。
Step 7: and calculating the difference value of the heterogeneous execution program according to the heterogeneous index vector.
According to the heterogeneous index vector determined in the step 6, firstly constructing a heterogeneous index vector H of an executable program generated by compiling without adopting any isomerization means (namely normal compiling) o Secondly, respectively calculating heterogeneous index vectors for N heterogeneous execution programs generated in the step 5 to be marked as H i I is 1-N, representing the ith heterogeneous executable program. For H i Each component of the set is identified by a weight calculation method (such as entropy weight method, principal component analysis method, etc.), and the calculated weight omega corresponding to each component is determined s ,ω b ,ω c ,ω t Correspond to h in turn s ,h b ,h c ,h t Is a weight of (2). Subsequently, H is calculated by covariance o And H i Correlation matrix Cov (H) o ,H i ) The following is shown:
because the relevance among the heterogeneous indexes is not high, diagonal line elements are selected when the value of the covariance matrix is actually calculated, and the difference value between the isomerised and compiled executable program and the original executable program is obtained according to the weight omega, wherein the difference value is as follows:
Diff(H o ,H i )=cov(h so ,h si )·ω s +cov(h bo ,h bi )·ω b +cov(h co ,h ci )·ω c +cov(h to ,h ti )·ω t
wherein cov (h) so ,h sj )、cov(h bo ,h bj )、cov(h co ,h cj )、cov(h to ,h tj ) Representing the correlation values of the original executable program and the ith heterogeneous executable program with respect to program capacity, number of jump branch instructions, complexity, and compile time, respectively.
The obtained Diff (H o ,H i ) The difference between the heterogeneous compiled execution program and the original execution program is calculated quantitatively.
Step 8: and calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool.
Calculating Diff (H) between programs in heterogeneous program pool i ,H j )。
Diff(H i ,H j )=cov(h si ,h sj )·ω s +cov(h bi ,h bj )·ω b +cov(h ci ,h cj )·ω c +cov(h ti ,h tj )·ω t
Wherein h is sj 、h bj 、h cj 、h tj Representing program capacity, number of jump branch instructions, complexity, compile time, respectively, of the jth heterogeneous executable program. cov (h) si ,h sj )、cov(h bi ,h bj )、cov(h ci ,h cj )、cov(h ti ,h tj ) Representing the correlation values of the ith heterogeneous executable program and the jth heterogeneous executable program with respect to program capacity, jump branch instruction number, complexity and compiling time, respectively.
Step (9): and obtaining the loss index vector of the heterogeneous execution program in the heterogeneous execution program pool.
To compare original functions and performances of heterogeneous execution programs compiled by heterogeneous meansThe differences from the original executable program are first extracted for comparison. Based on main functions and performance indexes of the security access gateway, selecting connection establishing average time, maximum connection number and average response delay as loss indexes, and marking the connection average time, the maximum connection number and the average response delay as k, n and d, and marking loss index vectors of an executable program as: l= (L) k ,l n ,l d )。
The average time for establishing a connection refers to the average time for establishing a session connection.
The maximum number of connections refers to the maximum number of connections that are simultaneously maintained.
The average response delay refers to the average delay from receipt of an external request to return of a response.
Step (10): and calculating heterogeneous execution program loss values according to the loss index vector.
According to the loss index vector in the step (9), extracting loss index vectors L from the original executable program and the heterogeneous executable program generated by heterogeneous compiling respectively o And L i Using spatial distance calculation methods, e.g. Manhattan distance calculation vector L o And L i The difference between the two components is normalized by the variance between the components to obtain the heterogeneous execution program loss value, which is denoted as P (L) o ,L i )。
P(L o ,L i )=(|l ko -l ki |+|l no -l ni |+|l do -l di |)/s oi
Wherein:l ko -l ki 、l no -l ni 、l do -l di representing the difference between the original executable program and the ith heterogeneous executable program with respect to the average time of connection, the maximum number of connections, and the average response delay, respectively.
Step 11: and calculating the maximum value of the heterogeneous execution program security model, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from the heterogeneous program pool to construct a heterogeneous execution program set.
The difference value and the loss value between the heterogeneous execution program and the original executable program and the difference value between the heterogeneous execution programs are obtained from the steps. According to the mimicry defense theory, a plurality of heterogeneous execution programs run in parallel, and the larger the difference between every two heterogeneous execution programs is, the lower the possibility of being broken when being attacked is, namely the higher the safety is. In the case of a secure access gateway, in addition to the isomerism, the influence on functions and performances after isomerisation is considered.
Selecting m heterogeneous execution programs from the heterogeneous program pool constructed in the step 8 to form a heterogeneous execution program set, and calculating according to the following mode:
where Σp (Lo, li) represents the sum of the wear values between m heterogeneous executable programs and the original executable program, the smaller represents the smaller the performance and the less functional wear of the isomerised compiled executable program compared to the original executable program (theoretically the isomerised compiled executable program is not superior to the original program in performance and function), Σdiff (H) o ,H i )、ΣDiff(H i ,H j ) Representing the sum of the differences between the selected m heterogeneous executions and the source program and the sum of the differences between the heterogeneous executions, respectively, the closer Diff to 0 represents the smaller the correlation between the executable programs, i.e., the higher the degree of isomerization. As can be derived from the above formula, when Sec (m) The larger the executable program after isomerization, the greater the security improvement.
Based on the method, quantitative calculation of the difference among executable programs generated by software compiling can be realized, the difference of a plurality of heterogeneous executable programs after forming a set can be calculated, and a proper heterogeneous executable program is selected to form an executable set according to the difference.
As shown in fig. 4, a third embodiment of a heterogeneous executable program set forming apparatus capable of quantifying differences includes the following modules:
heterogeneous executable program pool construction module: the method is used for compiling the same source code in a heterogeneous mode to generate N heterogeneous execution programs, wherein N is an integer greater than 0, and the N heterogeneous execution programs are built into a heterogeneous execution program pool.
A first difference value calculation module: the method is used for calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
A second difference value calculation module: the method is used for calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool.
Loss value calculation module: the method is used for calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool.
Heterogeneous execution program set construction module: and the method is used for solving the maximum value of the heterogeneous execution program safety model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set.
The foregoing is only a preferred embodiment of the invention, it being noted that: it will be apparent to those skilled in the art that various modifications and adaptations can be made without departing from the principles of the present invention, and such modifications and adaptations are intended to be comprehended within the scope of the invention.

Claims (5)

1. A method for constructing heterogeneous execution program sets capable of quantifying differences is characterized by comprising the following steps: the method comprises the following steps:
compiling the same source code in a heterogeneous mode to generate N heterogeneous execution programs, wherein N is an integer greater than 0, and constructing the N heterogeneous execution programs into a heterogeneous execution program pool;
calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool;
calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool;
calculating the original executable program and the loss value of the heterogeneous executable program in the heterogeneous executable program pool;
solving the maximum value of a heterogeneous execution program safety model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set;
compiling the same source code in a heterogeneous manner to generate N heterogeneous execution programs, where N is an integer greater than 0, and constructing the N heterogeneous execution programs into a heterogeneous execution program pool, where the heterogeneous execution program pool includes:
step 101: selecting binary code fragments needing heterogeneous processing in the same source code to generate virtual instruction fragments;
step 102: randomly selecting a seed, and performing confusion operation on the virtual instruction fragments according to the seed to generate the virtual instruction fragments after confusion;
step 103: setting the value of a in a%, wherein the value range of a is 0-100, calculating the confused virtual instruction segment with the flag bit set to 1 in the confused virtual instruction segment according to a%, and obtaining the execution path of the confused virtual instruction segment according to the offset address of the confused virtual instruction segment;
step 104: compiling and generating a heterogeneous execution program according to the confused virtual instruction fragments and the execution paths;
step 105: repeating the steps 101-104 for N times to generate N heterogeneous execution programs;
step 106: constructing N heterogeneous execution programs into a heterogeneous execution program pool;
the formula for calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool is as follows:
Diff(H o ,H i )=cov(h so ,h si )·ω s +cov(h bo ,h bi )·ω b +cov(h co ,h ci )·ω c +cov(h to ,h ti )·ω t
wherein cov (h) so ,h sj )、cov(h bo ,h bj )、cov(h co ,h cj )、cov(h to ,h tj ) Representing the correlation values of the original executable program and the ith heterogeneous executable program with respect to program capacity, jump branch instruction number, complexity, compile time, ω s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time;
the formula for calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool is as follows:
Diff(H i ,H j )=cov(h si ,h sj )·ω s +cov(h bi ,h bj )·ω b +cov(h ci ,h cj )·ω c +cov(h ti ,h tj )·ω t
wherein cov (h) si ,h sj )、cov(h bi ,h bj )、cov(h ci ,h cj )、cov(h ti ,h tj ) Representing the correlation values, ω, of the ith and jth heterogeneous executions with respect to program capacity, number of jump branch instructions, complexity, compile time, respectively s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time;
the formula for calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool is as follows:
P(L o ,L i )=(|l ko -l ki |+|l no -l ni |+|l do -l di |)/s oi
wherein:l ko -l ki 、l no -l ni 、l do -l di representing the original executable and the ith heterogeneous respectivelyExecuting program to obtain the difference among average connection time, maximum connection number and average response delay;
solving the maximum value of the heterogeneous execution program security model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program to obtain the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set, wherein the method comprises the following steps:
the heterogeneous execution program safety model is constructed, and the calculation formula is as follows:
wherein ΣP (L o ,L i ) Representing the sum of the wear values between m heterogeneous executions and the original executable, Σdiff (H o ,H i )、ΣDiff(H i ,H j ) Respectively representing the sum of the difference values of the selected m heterogeneous execution programs and the original executable program, and the sum of the difference values of the heterogeneous execution programs;
solving the maximum value of the heterogeneous execution program security model to obtain the number m of heterogeneous execution programs;
and selecting m heterogeneous execution programs from the heterogeneous program pool to construct a heterogeneous execution program set.
2. The method for constructing a heterogeneous executable program set capable of quantifying differences according to claim 1, wherein: and the N heterogeneous execution programs in the heterogeneous execution program pool are ordered from large to small according to the difference value between the original executable program and the heterogeneous execution program.
3. The method for constructing a heterogeneous executable program set capable of quantifying differences according to claim 1, wherein: a% was set up in gradient increments.
4. A method of constructing a heterogeneous executable program set capable of quantifying differences according to claim 3, wherein: and selecting the seed corresponding to the heterogeneous execution program with the maximum gradient change of the difference value between the original executable program and the heterogeneous execution program in the N heterogeneous execution programs.
5. A heterogeneous executable program set composing apparatus capable of quantifying differences, characterized in that: the device comprises the following modules:
heterogeneous executable program pool construction module: the method comprises the steps that the same source code is compiled in a heterogeneous mode to generate N heterogeneous execution programs, N is an integer greater than 0, and the N heterogeneous execution programs are built into a heterogeneous execution program pool;
a first difference value calculation module: the method comprises the steps of calculating a difference value between an original executable program and a heterogeneous executable program in a heterogeneous executable program pool;
a second difference value calculation module: the method is used for calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool;
loss value calculation module: the method comprises the steps of calculating loss values of an original executable program and a heterogeneous executable program in a heterogeneous executable program pool;
heterogeneous execution program set construction module: the method comprises the steps of solving the maximum value of a heterogeneous execution program safety model according to the difference value of an original executable program and a heterogeneous execution program, the difference value of every two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program, obtaining the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set;
compiling the same source code in a heterogeneous manner to generate N heterogeneous execution programs, where N is an integer greater than 0, and constructing the N heterogeneous execution programs into a heterogeneous execution program pool, where the heterogeneous execution program pool includes:
step 101: selecting binary code fragments needing heterogeneous processing in the same source code to generate virtual instruction fragments;
step 102: randomly selecting a seed, and performing confusion operation on the virtual instruction fragments according to the seed to generate the virtual instruction fragments after confusion;
step 103: setting the value of a in a%, wherein the value range of a is 0-100, calculating the confused virtual instruction segment with the flag bit set to 1 in the confused virtual instruction segment according to a%, and obtaining the execution path of the confused virtual instruction segment according to the offset address of the confused virtual instruction segment;
step 104: compiling and generating a heterogeneous execution program according to the confused virtual instruction fragments and the execution paths;
step 105: repeating the steps 101-104 for N times to generate N heterogeneous execution programs;
step 106: constructing N heterogeneous execution programs into a heterogeneous execution program pool;
the formula for calculating the difference value between the original executable program and the heterogeneous executable program in the heterogeneous executable program pool is as follows:
Diff(H o ,H i )=cov(h so ,h si )·ω s +cov(h bo ,h bi )·ω b +cov(h co ,h ci )·ω c +cov(h to ,h ti )·ω t
wherein cov (h) so ,h sj )、cov(h bo ,h bj )、cov(h co ,h cj )、cov(h to ,h tj ) Representing the correlation values of the original executable program and the ith heterogeneous executable program with respect to program capacity, jump branch instruction number, complexity, compile time, ω s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time;
the formula for calculating the difference value of every two heterogeneous execution programs in the heterogeneous execution program pool is as follows:
Diff(H i ,H j )=cov(h si ,h sj )·ω s +cov(h bi ,h bj )·ω b +cov(h ci ,h cj )·ω c +cov(h ti ,h tj )·ω t
wherein cov (h) si ,h sj )、cov(h bi ,h bj )、cov(h ci ,h cj )、cov(h ti ,h tj ) Representing the correlation values, ω, of the ith and jth heterogeneous executions with respect to program capacity, number of jump branch instructions, complexity, compile time, respectively s ,ω b ,ω c ,ω t Weights for program capacity, number of jump branch instructions, complexity, compile time;
the formula for calculating the wear values of the original executable program and the heterogeneous executable program in the heterogeneous executable program pool is as follows:
P(L o ,L i )=(|l ko -l ki |+|l no -l ni |+|l do -l di |)/s oi
wherein:l ko -l ki 、l no -l ni 、l do -l di representing the difference between the original executable program and the ith heterogeneous executable program with respect to the average time of connection, the maximum connection number and the average response delay;
solving the maximum value of the heterogeneous execution program security model according to the difference value of the original executable program and the heterogeneous execution program, the difference value of the two heterogeneous execution programs and the loss value of the original executable program and the heterogeneous execution program to obtain the number m of the heterogeneous execution programs, and selecting m heterogeneous execution programs from a heterogeneous program pool to construct a heterogeneous execution program set, wherein the method comprises the following steps:
the heterogeneous execution program safety model is constructed, and the calculation formula is as follows:
wherein ΣP (L o ,L i ) Representing the sum of the wear values between m heterogeneous executions and the original executable, Σdiff (H o ,H i )、ΣDiff(H i ,H j ) Respectively represent the selected m heterogeneous execution strokesThe sum of the difference values of the sequence and the original executable program and the sum of the difference values of the heterogeneous executable programs;
solving the maximum value of the heterogeneous execution program security model to obtain the number m of heterogeneous execution programs;
and selecting m heterogeneous execution programs from the heterogeneous program pool to construct a heterogeneous execution program set.
CN202210820600.7A 2022-07-13 2022-07-13 Heterogeneous execution program set forming method and device capable of quantifying difference Active CN115309402B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210820600.7A CN115309402B (en) 2022-07-13 2022-07-13 Heterogeneous execution program set forming method and device capable of quantifying difference

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210820600.7A CN115309402B (en) 2022-07-13 2022-07-13 Heterogeneous execution program set forming method and device capable of quantifying difference

Publications (2)

Publication Number Publication Date
CN115309402A CN115309402A (en) 2022-11-08
CN115309402B true CN115309402B (en) 2023-10-24

Family

ID=83856632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210820600.7A Active CN115309402B (en) 2022-07-13 2022-07-13 Heterogeneous execution program set forming method and device capable of quantifying difference

Country Status (1)

Country Link
CN (1) CN115309402B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150455B (en) * 2023-04-17 2023-07-18 华能信息技术有限公司 Heterogeneous data analysis method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441569A (en) * 2008-11-24 2009-05-27 中国人民解放军信息工程大学 Novel service flow-oriented compiling method based on heterogeneous reconfigurable architecture
CN104035781A (en) * 2014-06-27 2014-09-10 北京航空航天大学 Method for quickly developing heterogeneous parallel program
CN111459832A (en) * 2020-04-13 2020-07-28 郑州昂视信息科技有限公司 Heterogeneous compilation algorithm feasibility evaluation method and system
WO2020227541A1 (en) * 2019-05-07 2020-11-12 Brightspec, Inc. Highly selective chromatography-molecular rotational resonance spectroscopy systems and methods
CN112148570A (en) * 2019-06-27 2020-12-29 英特尔公司 Method and apparatus for improving runtime performance of software executing on heterogeneous systems
CN112839036A (en) * 2020-12-30 2021-05-25 中国人民解放军战略支援部队信息工程大学 Software running environment generation method and system based on mimicry defense theory
CN112905998A (en) * 2021-02-26 2021-06-04 中国人民解放军国防科技大学 Address-oriented attack protection method and device based on code segment random switching

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8637506B2 (en) * 2003-09-22 2014-01-28 Enzo Biochem, Inc. Compositions and methods for bone formation and remodeling
US10579350B2 (en) * 2016-02-18 2020-03-03 International Business Machines Corporation Heterogeneous computer system optimization

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441569A (en) * 2008-11-24 2009-05-27 中国人民解放军信息工程大学 Novel service flow-oriented compiling method based on heterogeneous reconfigurable architecture
CN104035781A (en) * 2014-06-27 2014-09-10 北京航空航天大学 Method for quickly developing heterogeneous parallel program
WO2020227541A1 (en) * 2019-05-07 2020-11-12 Brightspec, Inc. Highly selective chromatography-molecular rotational resonance spectroscopy systems and methods
CN112148570A (en) * 2019-06-27 2020-12-29 英特尔公司 Method and apparatus for improving runtime performance of software executing on heterogeneous systems
CN111459832A (en) * 2020-04-13 2020-07-28 郑州昂视信息科技有限公司 Heterogeneous compilation algorithm feasibility evaluation method and system
CN112839036A (en) * 2020-12-30 2021-05-25 中国人民解放军战略支援部队信息工程大学 Software running environment generation method and system based on mimicry defense theory
CN112905998A (en) * 2021-02-26 2021-06-04 中国人民解放军国防科技大学 Address-oriented attack protection method and device based on code segment random switching

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Managing GPU Concurrency in Heterogeneous Architectures;O. Kayiran 等;《2014 47th Annual IEEE/ACM International Symposium on Microarchitecture》;114-126 *
异构平台下的并行程序性能可视化方法;郑晓薇 等;《计算机工程与设计》;第31卷(第04期);872-875 *

Also Published As

Publication number Publication date
CN115309402A (en) 2022-11-08

Similar Documents

Publication Publication Date Title
Böhme et al. Boosting fuzzer efficiency: An information theoretic perspective
Chen et al. Penetration testing in the iot age
CN115309402B (en) Heterogeneous execution program set forming method and device capable of quantifying difference
Hosseinzadeh et al. Mitigating branch-shadowing attacks on intel sgx using control flow randomization
Pawlowski et al. Probfuscation: an obfuscation approach using probabilistic control flows
US20090064118A1 (en) Software deobfuscation system and method
Cristalli et al. Trusted execution path for protecting java applications against deserialization of untrusted data
Ma et al. Control flow obfuscation using neural network to fight concolic testing
Noller et al. Qfuzz: Quantitative fuzzing for side channels
Holder et al. Evaluating optimal phase ordering in obfuscation executives
Patrick et al. KD-ART: Should we intensify or diversify tests to kill mutants?
Li et al. Vall-nut: Principled anti-grey box-fuzzing
Maynard et al. Modelling Duqu 2.0 Malware using Attack Trees with Sequential Conjunction.
Baiardi et al. Application Vulnerabilities in Risk Assessment and Management.
Wang et al. Method to evaluate software protection based on attack modeling
CN115955329A (en) Network security protection method, terminal and storage medium
US20200012581A1 (en) Method for Semantic Preserving Transform Mutation Discovery and Vetting
Yujia et al. A new compile-time obfuscation scheme for software protection
Zhou et al. Hunting garbage collection related concurrency bugs through critical condition restoration
Turner et al. Analyzing multi-agent reinforcement learning and coevolution in cybersecurity
Yan et al. SPIDER: Speeding up Side-Channel Vulnerability Detection via Test Suite Reduction
Hatas et al. Efficient Evolutionary Fuzzing for Android Application Installation Process
Smolka et al. Fuzz on the Beach: Fuzzing Solana Smart Contracts
Oo et al. Analyzing the effect of moving target defense for a Web system
Adhikari et al. Argon: A toolbase for evaluating software protection techniques against symbolic execution attacks

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