Generating Adversarial Computer Programs using Optimized Obfuscations
Shashank Srikant, Sijia Liu, Tamara Mitrovska, Shiyu Chang, Quanfu, Fan, Gaoyuan Zhang, Una-May O'Reilly

TL;DR
This paper introduces a novel method for generating adversarial computer programs by applying optimized obfuscations, which deceive machine learning models without changing program functionality, and evaluates its effectiveness on Python and Java programs.
Contribution
It presents a general formulation and optimization algorithms for creating adversarial programs through multiple obfuscations, improving attack success and robustness of models against such attacks.
Findings
Achieves 52% improvement over existing attack methods.
Effective in fooling models on Python and Java program summarization.
Enhances training of models to be more robust against adversarial perturbations.
Abstract
Machine learning (ML) models that learn and predict properties of computer programs are increasingly being adopted and deployed. These models have demonstrated success in applications such as auto-completing code, summarizing large programs, and detecting bugs and malware in programs. In this work, we investigate principled ways to adversarially perturb a computer program to fool such learned models, and thus determine their adversarial robustness. We use program obfuscations, which have conventionally been used to avoid attempts at reverse engineering programs, as adversarial perturbations. These perturbations modify programs in ways that do not alter their functionality but can be crafted to deceive an ML model when making a decision. We provide a general formulation for an adversarial program that allows applying multiple obfuscation transformations to a program in any language. We…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
Taxonomy
TopicsAdversarial Robustness in Machine Learning · Advanced Malware Detection Techniques · Software Testing and Debugging Techniques
MethodsRandomized Smoothing · Tanh Activation · Sigmoid Activation · Long Short-Term Memory · Sequence to Sequence
