Security
Tool extracts hidden database access rules from web application code
Researchers developed a system that automatically uncovers what data web applications are accessing, revealing bugs in developers' hand-written security policies.
The problem with scattered access controls#
Most web developers protect sensitive data by embedding access-control rules throughout their application code—hidden in permission checks and database query filters. This piecemeal approach is inherently fragile: individual checks can be placed incorrectly or specified wrong, and without a centralized policy, no one can easily verify what data the application is actually authorized to access. As teams change and code evolves, understanding the true access rules becomes increasingly difficult.
Extracting policies automatically#
Researchers have introduced Ote, a tool that automatically extracts database access-control policies from Ruby on Rails applications by analyzing their code. Rather than relying on developers' manual documentation, Ote uses concolic execution—a hybrid testing technique that combines symbolic and concrete program analysis—to trace multiple execution paths through an application. As it runs, the tool records every SQL query and the conditions required to trigger it, then synthesizes this data into a simplified, unified policy.
Real-world validation#
The team applied Ote to three production web applications and compared the extracted policies against the developers' own documented specifications. The comparison surfaced several errors in the hand-written policies, demonstrating that the automated extraction can catch inconsistencies humans miss. Once extracted and vetted, a policy can serve as a standalone specification and be enforced to maintain compliance as the codebase changes.
Why it matters#
This approach addresses a core security challenge: the gap between what developers intend to control and what their code actually controls. By making implicit policies explicit and testable, Ote helps teams reduce data-access vulnerabilities and establish clearer security baselines. The technique is particularly valuable in complex systems where manual auditing of all access paths becomes impractical.

