In tests on 50 popular Web applications written using Ruby on Rails, the system found 23 previously undiagnosed security flaws, and it took no more than 64 seconds to analyze any given program.
Ruby on Rails is distinguished from other frameworks because it defines even its most basic operations in libraries. MIT's researchers took advantage of that fact by rewriting those libraries so that the operations defined in them describe their own behavior in a logical language.
That turns the Rails interpreter, which converts high-level Rails programs into machine-readable code, into a static-analysis tool that describes how data flows through the program. The result is that running a Rails program through the interpreter produces a formal, line-by-line description of how the program handles data.
Dubbed Space, the new debugger focuses on a program’s data-access procedures using a simple logical model that describes what operations a user can perform on what data and under what circumstances. From the descriptions generated by the hacked libraries, Space can automatically determine whether the program adheres to those models; if it doesn’t, there’s likely to be a security flaw.
The researchers will present their results next month at the International Conference on Software Engineering.