With the success of the Cyber Grand Challenge (CGC) sponsored by DARPA, the
topic of Autonomous Cyber Reasoning System (CRS) has recently attracted
extensive attention from both industry and academia. Utilizing automated system
to detect, exploit and patch software vulnerabilities seems so attractive
because of its scalability and cost-efficiency compared with the human expert
based solution. In this paper, we give an extensive survey of former
representative works related to the underlying technologies of a CRS, including
vulnerability detection, exploitation and patching. As an important supplement,
we then review several pioneer studies that explore the potential of machine
learning technologies in this field, and point out that the future development
of Autonomous CRS is inseparable from machine learning.