Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2897845.2897850acmconferencesArticle/Chapter ViewAbstractPublication Pagesasia-ccsConference Proceedingsconference-collections
research-article

ORIGEN: Automatic Extraction of Offset-Revealing Instructions for Cross-Version Memory Analysis

Published: 30 May 2016 Publication History
  • Get Citation Alerts
  • Abstract

    Semantic gap is a prominent problem in raw memory analysis, especially in Virtual Machine Introspection (VMI) and memory forensics. For COTS software, common memory forensics and VMI tools rely on the so-called "data structure profiles" -- a mapping between the semantic variables and their relative offsets within the structure in the binary. Construction of such profiles requires the expert knowledge about the internal working of a specified software version. At most time, it requires considerable manual efforts, which often turns out to be a cumbersome process. In this paper, we propose a notion named "cross-version memory analysis", wherein our goal is to alleviate the process of profile construction for new versions of a software by transferring the knowledge from the model that has already been trained on its old version. To this end, we first identify such Offset Revealing Instructions (ORI) in a given software and then leverage the code search techniques to label ORIs in an unknown version of the same software. With labeled ORIs, we can localize the profile for the new version. We provide a proof-of-concept implementation called ORIGEN. The efficacy and efficiency of ORIGEN have been empirically verified by a number of softwares. The experimental results show that by conducting the ORI search within Windows XP SP0 and Linux 3.5.0, we can successfully recover the data structure profiles for Windows XP SP2, Vista, Win 7, and Linux 2.6.32, 3.8.0, 3.13.0, respectively. The systematical evaluation on 40 versions of OpenSSH demonstrates ORIGEN can achieve a precision of more than 90%. As a case study, we integrate ORIGEN into a VMI tool to automatically extract semantic information required for VMI. We develop two plugins to the Volatility memory forensic framework, one for OpenSSH session key extraction, the other for encrypted filesystem key extraction. Both of them can achieve the cross-version analysis by ORIGEN.

    References

    [1]
    Insight-VMI, A semantic bridge for virtual machine introspection and forensic applications. https://code.google.com/p/insight-vmi/wiki/LinuxDebugSymbols.
    [2]
    Linux memory forensics using Volatility -- Prerequisites. https://code.google.com/p/volatility/wiki/LinuxMemoryForensics.
    [3]
    E. Bursztein, M. Hamburg, J. Lagarenne, and D. Boneh. Openconflict: Preventing real time map hacks in online games. In Proceedings of the 2011 IEEE Symposium on Security and Privacy(Oakland'11), pages 506--520, 2011.
    [4]
    F. Chagnon. IDA Decompiler. https://github.com/EiNSTeiN-/ida-decompiler.
    [5]
    P. Comparetti, G. Salvaneschi, C. Kolbitsch, C. Kruegel, E. Kirda, and S. Zanero. Identifying dormant functionality in malware programs. In Proceedings of 2010 IEEE Symposium on Security and Privacy(Oakland'10), pages 61--76. IEEE, 2010.
    [6]
    Y. David and E. Yahav. Tracelet-based code search in executables. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation(PLDI'14), volume 49, pages 349--360. ACM, 2014.
    [7]
    Y. David and E. Yahav. Tracelet-based code search in executables. In ACM SIGPLAN Notices, volume 49, pages 349--360. ACM, 2014.
    [8]
    A. Dinaburg, P. Royal, M. Sharif, and W. Lee. Ether: malware analysis via hardware virtualization extensions. In Proceedings of the 15th ACM conference on Computer and communications security(CCS'08), pages 51--62. ACM, 2008.
    [9]
    B. Dolan-Gavitt, T. Leek, M. Zhivich, J. Giffin, and W. Lee. Virtuoso: Narrowing the semantic gap in virtual machine introspection. In Proceedings of the IEEE Symposium on Security and Privacy(Oakland'11), pages 297--312. IEEE, 2011.
    [10]
    T. Dullien and R. Rolles. Graph-based comparison of executable objects (english version). SSTIC, 5:1--3, 2005.
    [11]
    M. Egele, M. Woo, P. Chapman, and D. Brumley. Blanket execution: Dynamic similarity testing for program binaries and components. In 23rd USENIX Security Symposium (USENIX Security 14), pages 303--317. USENIX Association, Aug. 2014.
    [12]
    Q. Feng, A. Prakash, H. Yin, and Z. Lin. Mace: high-coverage and robust memory analysis for commodity operating systems. In Proceedings of the 30th Annual Computer Security Applications Conference(ACSAC'14), pages 196--205. ACM, 2014.
    [13]
    Y. Fu and Z. Lin. Space traveling across vm: Automatically bridging the semantic-gap in virtual machine introspection via online kernel data redirection. In Proceedings of the 2012 IEEE Symposium on Security and Privacy(Oakland'12), pages 586--600. IEEE, May 2012.
    [14]
    Y. Fu, Z. Lin, and D. Brumley. Automatically deriving pointer reference expressions from executions for memory dump analysis. In Proceedings of the 2015 ACM SIGSOFT International Symposium on Foundations of Software Engineering(FSE'15), 2015.
    [15]
    D. Gao, M. K. Reiter, and D. Song. Binhunt: Automatically finding semantic differences in binary programs. In Information and Communications Security, pages 238--255. Springer, 2008.
    [16]
    T. Garfinkel and M. Rosenblum. A virtual machine introspection based architecture for intrusion detection. In Proceedings of Network and Distributed Systems Security Symposium(NDSS'03), volume 3, pages 191--206, 2003.
    [17]
    B. Hay and K. Nance. Forensics examination of volatile system data using virtual introspection. ACM SIGOPS Operating Systems Review, 42(3):74--82, 2008.
    [18]
    A. Henderson, A. Prakash, L. K. Yan, X. Hu, X. Wang, R. Zhou, and H. Yin. Make it work, make it right, make it fast: Building a platform-neutral whole-system dynamic binary analysis platform. In International Symposium on Software Testing and Analysis(ISSTA'14), pages 248--258. ACM, July 2014.
    [19]
    X. Hu, T.-c. Chiueh, and K. G. Shin. Large-scale malware indexing using function-call graphs. In Proceedings of the 16th ACM conference on Computer and communications security(CCS'09), pages 611--620. ACM, 2009.
    [20]
    J. Jang, M. Woo, and D. Brumley. Towards automatic software lineage inference. In Proceedings of the 22nd USENIX conference on Security(USENIX'13), pages 81--96. USENIX Association, 2013.
    [21]
    X. Jiang, X. Wang, and D. Xu. Stealthy malware detection through VMM-based "out-of-the-box" semantic view reconstruction. In Proceedings of the 14th ACM conference on Computer and Communications Security(CCS'07), pages 128--138. ACM, October 2007.
    [22]
    W. M. Khoo, A. Mycroft, and R. Anderson. Rendezvous: A search engine for binary code. In Proceedings of the 10th Working Conference on Mining Software Repositories, pages 329--338. IEEE, 2013.
    [23]
    C. Kruegel, E. Kirda, D. Mutz, W. Robertson, and G. Vigna. Polymorphic worm detection using structural information of executables. In Recent Advances in Intrusion Detection, pages 207--226. Springer, 2006.
    [24]
    A. Lakhotia, M. D. Preda, and R. Giacobazzi. Fast location of similar code fragments using semantic juice. In Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop, page 5. ACM, 2013.
    [25]
    Z. Lin, X. Zhang, and D. Xu. Automatic reverse engineering of data structures from binary execution. In Proceedings of the 17th Annual Network and Distributed System Security Symposium(NDSS'10), February 2010.
    [26]
    MANDIANT Memoryze. http://www.mandiant.com/resources/download/memoryze.
    [27]
    J. Ming, M. Pan, and D. Gao. ibinhunt: Binary hunting with interprocedural control flow. In In International Conference on Information Security and Cryptology, pages 92--109. Springer, 2013.
    [28]
    S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997.
    [29]
    B. H. Ng and A. Prakash. Expose: Discovering potential binary code re-use. In Computer Software and Applications Conference (COMPSAC'13), 2013 IEEE 37th Annual, pages 492--501, July 2013.
    [30]
    B. D. Payne, M. Carbone, M. Sharif, and W. Lee. Lares: An architecture for secure active monitoring using virtualization. In Proceedings of the 2008 IEEE Symposium on Security and Privacy(Oakland'08), pages 233--247. IEEE, 2008.
    [31]
    B. D. Payne, M. De Carbone, and W. Lee. Secure and flexible monitoring of virtual machines. In Proceedings of the Twenty-Third Annual Computer Security Applications Conference(ACSAC'07), pages 385--397. IEEE, 2007.
    [32]
    N. L. Petroni, Jr., A. Walters, T. Fraser, and W. A. Arbaugh. FATKit: A framework for the extraction and analysis of digital forensic data from volatile system memory. Digital Investigation, 3(4):197 -- 210, 2006.
    [33]
    J. Pewny, B. Garmany, R. Gawlik, C. Rossow, and T. Holz. Cross-architecture bug search in binary executables. In IEEE Symposium on Security and Privacy (Oakland'15). IEEE, 2015.
    [34]
    J. Pewny, F. S. C. Rossow, and T. Holz. Leveraging semantic signatures for bug search in binary programs. In Proceedings of the 30th Annual Computer Security Applications Conference(ACSAC'14), pages 406--415. ACM, 2014.
    [35]
    B. Saltaformaggio, R. Bhatia, Z. Gu, X. Zhang, and D. Xu. Vcr: App-agnostic recovery of photographic evidence from android device memory images. In Proceedings of the 22th ACM SIGSAC Conference on Computer and Communications Security(CCS'15), pages 146--157. ACM, 2015.
    [36]
    R. Sharma, E. Schkufza, B. Churchill, and A. Aiken. Data-driven equivalence checking. In Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages and applications, volume 48, pages 391--406. ACM, 2013.
    [37]
    A. Slowinska, T. Stancescu, and H. Bos. Howard: a dynamic excavator for reverse engineering data structures. In Proceedings of the 18th Annual Network and Distributed System Security Symposium (NDSS'11), 2011.
    [38]
    Volatility: Memory Forencis System. https://www.volatilesystems.com/default/volatility/.

    Cited By

    View all
    • (2023)FirmSoloProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620518(5021-5038)Online publication date: 9-Aug-2023
    • (2023)Memory Analysis Based Estimation of Hook Point by Virtual Machine MonitorInternational Journal of Networking and Computing10.15803/ijnc.13.2_27313:2(273-286)Online publication date: 2023
    • (2023)Extracting Threat Intelligence From Cheat Binaries For Anti-CheatingProceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses10.1145/3607199.3607211(17-31)Online publication date: 16-Oct-2023
    • Show More Cited By

    Index Terms

    1. ORIGEN: Automatic Extraction of Offset-Revealing Instructions for Cross-Version Memory Analysis

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        ASIA CCS '16: Proceedings of the 11th ACM on Asia Conference on Computer and Communications Security
        May 2016
        958 pages
        ISBN:9781450342339
        DOI:10.1145/2897845
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 30 May 2016

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. code search
        2. memory analysis
        3. program analysis

        Qualifiers

        • Research-article

        Funding Sources

        • National Science Foundation
        • Air Force Research Lab
        • DARPA CGC

        Conference

        ASIA CCS '16
        Sponsor:

        Acceptance Rates

        ASIA CCS '16 Paper Acceptance Rate 73 of 350 submissions, 21%;
        Overall Acceptance Rate 418 of 2,322 submissions, 18%

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)11
        • Downloads (Last 6 weeks)0
        Reflects downloads up to 26 Jul 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2023)FirmSoloProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620518(5021-5038)Online publication date: 9-Aug-2023
        • (2023)Memory Analysis Based Estimation of Hook Point by Virtual Machine MonitorInternational Journal of Networking and Computing10.15803/ijnc.13.2_27313:2(273-286)Online publication date: 2023
        • (2023)Extracting Threat Intelligence From Cheat Binaries For Anti-CheatingProceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses10.1145/3607199.3607211(17-31)Online publication date: 16-Oct-2023
        • (2022)NDFuzz: a non-intrusive coverage-guided fuzzing framework for virtualized network devicesCybersecurity10.1186/s42400-022-00120-15:1Online publication date: 1-Nov-2022
        • (2022)Katana: Robust, Automated, Binary-Only Forensic Analysis of Linux Memory SnapshotsProceedings of the 25th International Symposium on Research in Attacks, Intrusions and Defenses10.1145/3545948.3545980(214-231)Online publication date: 26-Oct-2022
        • (2021)AutoProfile: Towards Automated Profile Generation for Memory AnalysisACM Transactions on Privacy and Security10.1145/348547125:1(1-26)Online publication date: 23-Nov-2021
        • (2020)Devil is Virtual: Reversing Virtual Inheritance in C++ BinariesProceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security10.1145/3372297.3417251(133-148)Online publication date: 30-Oct-2020
        • (2019)Efficient and Transparent Method for Large-Scale TLS Traffic Analysis of Browsers and Analogous ProgramsSecurity and Communication Networks10.1155/2019/84670812019Online publication date: 1-Jan-2019
        • (2016)Scalable Graph-based Bug Search for Firmware ImagesProceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security10.1145/2976749.2978370(480-491)Online publication date: 24-Oct-2016

        View Options

        Get Access

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media