Inference and Regeneration of Programs that Manipulate Relational Databases
Name
MIT-CSAIL-TR-2017-012.pdf
Size
788.92 KB
Format
Adobe PDF
Checksum (MD5)
40bcb22a15dfe3847bb5e0c02472a976
Download all files submitted through automated deposit
Author(s) •
Shen, Jiasi
Rinard, Martin
Advisor(s)
Martin Rinard
Date Issued
August 29, 2017
Series/Report no.
MIT-CSAIL-TR-2017-012
Abstract
We present a new technique that infers models of programs that manipulate relational databases. This technique generates test databases and input commands, runs the program, then observes the resulting outputs and updated databases to infer the model. Because the technique works only with the externally observable inputs, outputs, and databases, it can infer the behavior of programs written in arbitrary languages using arbitrary coding styles and patterns. We also present a technique for automatically regenerating an implementation of the program based on the inferred model. The regenerator can produce a translated implementation in a different language and systematically include relevant security and error checks. We present results that illustrate the use of the technique to eliminate SQL injection vulnerabilities and the translation of applications from Java and Ruby on Rails to Python.
Persistent DSpace Link