Certain example embodiments relate to software test with automated configurable harness capabilities. Certain example embodiments automatically generate harnesses and properly encoded seed inputs by recording the input operations of a system under test (SUT), identifying the processes to be fuzz tested, generating seed inputs and a manifest describing the SUT's input vectors, and generating the harness to effectively feed derived (and potentially “malformed”) input to the SUT. The techniques described herein may be used to test a computer system, e.g., to probe for potential vulnerabilities.
G06F 11/36 - Prévention d'erreurs par analyse, par débogage ou par test de logiciel
G06F 21/57 - Certification ou préservation de plates-formes informatiques fiables, p. ex. démarrages ou arrêts sécurisés, suivis de version, contrôles de logiciel système, mises à jour sécurisées ou évaluation de vulnérabilité
2.
Systems and/or methods for anomaly detection and characterization in integrated circuits
Systems, methods, and computer readable medium described herein relate to techniques for characterizing and/or anomaly detection in integrated circuits such as, but not limited to, field programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs). In one example aspect of certain example embodiments, a fully digital technique relies on the pulse width of signals propagated through a path under test. In another example aspect, the re-configurability of the integrated circuit is leveraged to combine the pulse propagation technique with a delay characterization technique to yield better detection of certain type of Trojans and the like. Another example aspect provides for running the test through reconfigurable path segments in order to isolate and identify anomalous circuit elements. Yet another example aspect provides for performing the characterization and anomaly detection without requiring golden references and the like.
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et services
Downloadable computer software for use in development,
analysis and maintenance of software; downloadable computer
software, namely, software for reverse engineering of
computer programs; downloadable computer software for
software composition analysis; downloadable computer
software for binary software analysis; downloadable computer
software for generating software manifests; downloadable
computer software for generating software bill of materials;
downloadable computer software for due diligence
investigations on computer programs; downloadable software
for software analysis, namely, for defect detection, testing
for compliance with software standards and identifying
security flaws; downloadable pattern recognition software
for binary software analysis; downloadable computer
software, namely, cyber security software; downloadable
computer software development tools; downloadable computer
software for reverse engineering of software, binary
software analysis, software vulnerability analysis;
downloadable computer software for debugging computer
software for others; downloadable computer software for due
diligence investigations on computer programs; downloadable
computer software for matching, sampling, and analysis of
data in computer programs; downloadable computer software
for computer software testing and review. Technical research in the field of computer science;
information technology consulting services in the field of
computer science; research and development services in the
field of computer science; providing on-line
non-downloadable software for use in development, analysis
and maintenance of software; providing on-line
non-downloadable software for reverse engineering of
computer programs; providing on-line non-downloadable
software for software composition analysis; providing
on-line non-downloadable software for binary software
analysis; providing on-line non-downloadable software for
generating software manifests; providing on-line
non-downloadable software for generating software bill of
materials; providing on-line non-downloadable software for
software analysis, namely, for defect detection, testing for
compliance with software standards and identifying security
flaws; providing temporary use of on-line non-downloadable
software development tools; providing on-line
non-downloadable pattern recognition software for binary
software analysis; providing on-line non-downloadable
software, namely, cyber security software; providing online
non-downloadable software for reverse engineering of
software, binary software analysis, software vulnerability
analysis; providing online non-downloadable software for
debugging computer software for others; software as a
service (saas) services featuring cyber security software;
computer software services, namely, providing online
non-downloadable software for due diligence investigations
on computer programs; computer software services, namely,
providing online non-downloadable software for matching,
sampling, and analysis of data in computer programs;
providing online non-downloadable software for computer
software testing and review; software as a service services
featuring software for software development; software as a
service services featuring software for providing review of
computer programs to evaluate quality and to detect bugs,
defects and security vulnerabilities; software as a service
services featuring software for computer program analysis;
software as a service (saas) services featuring software for
computer program analysis to determine issues with security
vulnerabilities, performance, anti-patterns, bug-risks,
documentation or style; software as a service (saas)
services featuring software for locating, managing,
diagnosing and correcting computer program errors,
analyzing, managing and auditing software and software
programs; cloud computing and software as a service (saas)
featuring cloud based computer software for computer program
analysis, computer program diagnostics, and computer program
improvements; cloud computing and software as a service
(saas) featuring software for computer program analysis for
compliance with programming industry standards; computer
software consulting, namely, open source audits and software
computer program analysis; computer services, namely, binary
analysis services for computer security purposes and cyber
security purposes; testing of computer software; computer
software design for others; computer software consulting;
customizing computer software; maintenance of computer
software; updating of computer software; consultancy in the
field of software design; advisory services relating to
computer software; troubleshooting of computer software
problems.
4.
SYSTEMS AND/OR METHODS FOR ANOMALY DETECTION AND CHARACTERIZATION IN INTEGRATED CIRCUITS
Systems, methods, and computer readable medium described herein relate to techniques for characterizing and/or anomaly detection in integrated circuits such as, but not limited to, field programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs). In one example aspect of certain example embodiments, a fully digital technique relies on the pulse width of signals propagated through a path under test. In another example aspect, the re-configurability of the integrated circuit is leveraged to combine the pulse propagation technique with a delay characterization technique to yield better detection of certain type of Trojans and the like. Another example aspect provides for running the test through reconfigurable path segments in order to isolate and identify anomalous circuit elements. Yet another example aspect provides for performing the characterization and anomaly detection without requiring golden references and the like.
Systems, methods, and computer readable medium described herein relate to techniques for characterizing and/or anomaly detection in integrated circuits such as, but not limited to, field programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs). In one example aspect of certain example embodiments, a fully digital technique relies on the pulse width of signals propagated through a path under test. In another example aspect, the re-configurability of the integrated circuit is leveraged to combine the pulse propagation technique with a delay characterization technique to yield better detection of certain type of Trojans and the like. Another example aspect provides for running the test through reconfigurable path segments in order to isolate and identify anomalous circuit elements. Yet another example aspect provides for performing the characterization and anomaly detection without requiring golden references and the like.
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et services
Downloadable computer software for use in development, analysis and maintenance of software; Downloadable computer software, namely, software for reverse engineering of computer programs; Downloadable computer software for software composition analysis; Downloadable computer software for binary software analysis; Downloadable computer software for generating software manifests; Downloadable computer software for generating software bill of materials; Downloadable computer software for due diligence investigations on computer programs; Downloadable software for software analysis, namely, for defect detection, testing for compliance with software standards and identifying security flaws; Downloadable pattern recognition software for binary software analysis; Downloadable computer software, namely, cyber security software; Downloadable computer software development tools; Downloadable computer software for reverse engineering of software, binary software analysis, software vulnerability analysis; Downloadable computer software for debugging computer software for others; Downloadable computer software for due diligence investigations on computer programs; Downloadable computer software for matching, sampling, and analysis of data in computer programs; Downloadable computer software for computer software testing and review Technical research in the field of computer science; Information technology consulting services in the field of computer science; Research and development services in the field of computer science; Providing on-line non-downloadable software for use in development, analysis and maintenance of software; Providing on-line non-downloadable software for reverse engineering of computer programs; Providing on-line non-downloadable software for software composition analysis; Providing on-line non-downloadable software for binary software analysis; Providing on-line non-downloadable software for generating software manifests; Providing on-line non-downloadable software for generating software bill of materials; Providing on-line non-downloadable software for software analysis, namely, for defect detection, testing for compliance with software standards and identifying security flaws; Providing temporary use of on-line non-downloadable software development tools; Providing on-line non-downloadable pattern recognition software for binary software analysis; Providing on-line non-downloadable software, namely, cyber security software; Providing online non-downloadable software for reverse engineering of software, binary software analysis, software vulnerability analysis; Providing online non-downloadable software for debugging computer software for others; Software as a service (SAAS) services featuring cyber security software; Computer software services, namely, providing online non-downloadable software for due diligence investigations on computer programs; Computer software services, namely, providing online non-downloadable software for matching, sampling, and analysis of data in computer programs; Providing online non-downloadable software for computer software testing and review; Software as a Service services featuring software for software development; Software as a Service services featuring software for providing review of computer programs to evaluate quality and to detect bugs, defects and security vulnerabilities; Software as a Service services featuring software for computer program analysis; Software as a service (SAAS) services featuring software for computer program analysis to determine issues with security vulnerabilities, performance, anti-patterns, bug-risks, documentation or style; Software as a service (SAAS) services featuring software for locating, managing, diagnosing and correcting computer program errors, analyzing, managing and auditing software and software programs; Cloud computing and software as a service (SAAS) featuring cloud based computer software for computer program analysis, computer program diagnostics, and computer program improvements; Cloud computing and software as a service (SAAS) featuring software for computer program analysis for compliance with programming industry standards; Computer software consulting, namely, open source audits and software computer program analysis; Computer services, namely, binary analysis services for computer security purposes and cyber security purposes; Testing of computer software; Computer software design for others; Computer software consulting; Customizing computer software; Maintenance of computer software; Up-dating of computer software; Consultancy in the field of software design; Advisory services relating to computer software; Troubleshooting of computer software problems
7.
Systems and/or methods for generating reassemblable disassemblies of binaries using declarative logic
Certain example embodiments relate to techniques for generating reassemblable disassemblies of binaries using declarative logic. A declarative logic programming language (e.g., Datalog) is used to compile reverse engineering, binary analysis, and disassembly rules into a format applicable to an executable program, yielding disassembly of that program. Datalog, for example, can be used as a query language for deductive databases, to facilitate this approach. Certain example embodiments thus involve (1) preparation of an executable for Datalog analysis, (2) inference rules and the application of Datalog for program analysis, including the application of Datalog to the domain of binary reverse engineering and analysis, and (3) the collection of assembly code from the results of the Datalog analysis. These rules can include both “hard rules” and “soft rules” or heuristics, even though standard Datalog does not support the latter.
Systems, methods and computer readable medium described herein relate to techniques for automatic type inference from machine code. An example technique includes receiving a machine code of a program, generating an intermediate representation of the machine code, generating a plurality of type constraints from the intermediate representation, generating one or more inferred types based at least upon the plurality of type constraints, converting the generated inferred types to C types, updating the intermediate representation by applying the inferred types to the intermediate representation, and outputting said inferred types, said converted C types, and/or at least a portion of the updated intermediate representation.
Certain example embodiments described herein relate to techniques for automatically protecting, or hardening, software against exploits of memory-corruption vulnerabilities. The techniques include arranging a plurality of guard regions in the memory in relation to data objects formed by the application program, identifying an access by the application program to a guard region arranged in the memory as a disallowed access, and modifying the execution of the application program in response to the identifying, the modifying being in order to prevent exploitation of the memory and/or to correctly execute the application program.
G06F 21/54 - Contrôle des utilisateurs, des programmes ou des dispositifs de préservation de l’intégrité des plates-formes, p. ex. des processeurs, des micrologiciels ou des systèmes d’exploitation au stade de l’exécution du programme, p. ex. intégrité de la pile, débordement de tampon ou prévention d'effacement involontaire de données par ajout de routines ou d’objets de sécurité aux programmes
G06F 21/57 - Certification ou préservation de plates-formes informatiques fiables, p. ex. démarrages ou arrêts sécurisés, suivis de version, contrôles de logiciel système, mises à jour sécurisées ou évaluation de vulnérabilité
G06F 12/14 - Protection contre l'utilisation non autorisée de mémoire
10.
Systems and/or methods for type inference from machine code
Systems, methods and computer readable medium described herein relate to techniques for automatic type inference from machine code. An example technique includes receiving a machine code of a program, generating an intermediate representation of the machine code, generating a plurality of type constraints from the intermediate representation, generating one or more inferred types based at least upon the plurality of type constraints, converting the generated inferred types to C types, updating the intermediate representation by applying the inferred types to the intermediate representation, and outputting said inferred types, said converted C types, and/or at least a portion of the updated intermediate representation.
Systems, methods and computer readable medium described herein relate to techniques for automatic type inference from machine code. An example technique includes receiving a machine code of a program, generating an intermediate representation of the machine code, generating a plurality of type constraints from the intermediate representation, generating one or more inferred types based at least upon the plurality of type constraints, converting the generated inferred types to C types, updating the intermediate representation by applying the inferred types to the intermediate representation, and outputting said inferred types, said converted C types, and/or at least a portion of the updated intermediate representation.
Certain example embodiments described herein relate to techniques for automatically protecting, or hardening, software against exploits of memory-corruption vulnerabilities. The techniques include arranging a plurality of guard regions in the memory in relation to data objects formed by the application program, identifying an access by the application program to a guard region arranged in the memory as a disallowed access, and modifying the execution of the application program in response to the identifying, the modifying being in order to prevent exploitation of the memory and/or to correctly execute the application program.
G06F 21/54 - Contrôle des utilisateurs, des programmes ou des dispositifs de préservation de l’intégrité des plates-formes, p. ex. des processeurs, des micrologiciels ou des systèmes d’exploitation au stade de l’exécution du programme, p. ex. intégrité de la pile, débordement de tampon ou prévention d'effacement involontaire de données par ajout de routines ou d’objets de sécurité aux programmes
G06F 21/57 - Certification ou préservation de plates-formes informatiques fiables, p. ex. démarrages ou arrêts sécurisés, suivis de version, contrôles de logiciel système, mises à jour sécurisées ou évaluation de vulnérabilité
13.
SYSTEMS AND/OR METHODS FOR AUTOMATICALLY PROTECTING AGAINST MEMORY CORRUPTION VULNERABILITIES
Certain example embodiments described herein relate to techniques for automatically protecting, or hardening, software against exploits of memory-corruption vulnerabilities. The techniques include arranging a plurality of guard regions in the memory in relation to data objects formed by the application program, identifying an access by the application program to a guard region arranged in the memory as a disallowed access, and modifying the execution of the application program in response to the identifying, the modifying being in order to prevent exploitation of the memory and/or to correctly execute the application program.