Bonjour! This post aims to collect several interesting research papers using machine learning for security. I am too lazy and noob in ML to write a summary for each paper. Note that all links are found on the Internet. Please ping me for an update or pull request.

TODO: Add summaries (at least for some fuzzing-related papers).

Survey

  1. [arxiv] Using Deep Learning to Solve Computer Security Challenges: A Survey (paper)
  1. [SEC’14] Byteweight: Learning to recognize functions in binary code (paper, project, slides, talk)
  2. [SEC’15] Recognizing Functions in Binaries with Neural Networks (paper, talk)
  3. [POPL’16] Estimating Types in Binaries using Predictive Modeling (paper, talk)
  4. [SEC’17] Neural Nets Can Learn Function Type Signatures From Binaries (paper, project, talk)
  5. [EUROSP’17] Compiler-Agnostic Function Detection in Binaries (paper, project, slides)
  6. [CCS’17] Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection (paper, slides)

Vulnerabilities detection

  1. [CODASPY’16] Toward large-scale vulnerability discovery using Machine Learning (paper, slides, talk)
  2. [ACSAC’17] Machine-Learning-Guided Typestate Analysis for Static Use-After-Free Detection (paper)

Symbolic execution

  1. [NDSS’19] Neuro-Symbolic Execution: Augmenting Symbolic Execution with Neural Constraints (paper)

Taint analysis

  1. [arxiv] Neutaint: Efficient Dynamic Taint Analysis with Neural Networks (paper)
  2. [arxiv] Fine Grained Dataflow Tracking with Proximal Gradients (paper)

Testing deep learning system

  1. [SOSP’17] DeepXplore: Automated Whitebox Testing of Deep Learning Systems (paper)
  2. [ASE’18] DeepGauge: Multi-Granularity Testing Criteria for Deep Learning Systems (paper, project)
  3. [ASE’18] Concolic Testing for Deep Neural Networks (paper, project)
  4. [FSE’18] DLFuzz: Differential Fuzzing Testing of Deep Learning Systems (paper)
  5. [PLMR’19] TensorFuzz: Debugging Neural Networks with Coverage-Guided Fuzzing (paper, project)
  6. [ISSTA’19] DeepHunter: Hunting Deep Neural Network Defects via Coverage-Guided Fuzzing (paper)
  7. [TSE] Grammar Based Directed Testing of Machine Learning Systems (paper)
  8. [arxiv] Machine Learning Testing: Survey, Landscapes and Horizons (paper)

Fuzzing

  1. [ASE’17] Learn&Fuzz: Machine Learning for Input Fuzzing (paper)
  2. [PAC’17] ExploitMeter: Combining Fuzzing with Machine Learning for Automated Evaluation of Software Exploitability (paper)
  3. [arxiv] Not all bytes are equal: Neural byte sieve for fuzzing (paper)
  4. [arxiv] Deep Reinforcement Fuzzing (paper)
  5. [arxiv] FuzzerGym: A Competitive Framework for Fuzzing and Learning (paper)
  6. [ISSTA’18] Compiler Fuzzing through Deep Learning (paper)
  7. [SP’19] NEUZZ: Efficient Fuzzing with Neural Program Smoothing (paper, project, slides, talk)
  8. [arxiv] A Review of Machine Learning Applications in Fuzzing (paper)
  9. [SEC’19] EnFuzz: Ensemble Fuzzing with Seed Synchronization among Diverse Fuzzers (paper, project, talk)
  10. [CCS’19] Learning to Fuzz from Symbolic Execution with Application to Smart Contracts (paper, project, slides)
  11. [ICST’19] Directing a Search Towards Execution Properties with a Learned Fitness Function (paper)
  12. [SEC’20] FuzzGuard: Filtering out Unreachable Inputs in Directed Grey-box Fuzzing through Deep Learning (paper, project)

Program analysis

  1. [Keynote-CAV’19] Machine Learning as Program Synthesis (slides, blog: AI Safety as a PL problem)
  2. [SEC’19] DEEPVSA: Facilitating Value-set Analysis with Deep Learning for Postmortem Program Analysis (paper, project, talk)
  3. [arxiv] MCPA: Program Analysis as Machine Learning (paper)