...
首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >RoleCast: finding missing security checks when you do not know what checks are
【24h】

RoleCast: finding missing security checks when you do not know what checks are

机译:RoleCast:当您不知道什么是安全检查时,查找丢失的安全检查

获取原文
获取原文并翻译 | 示例
           

摘要

Web applications written in languages such as PHP and JSP are notoriously vulnerable to accidentally omitted authorization checks and other security bugs. Existing techniques that find missing security checks in library and system code assume that (1) security checks can be recognized syntactically and (2) the same pattern of checks applies universally to all programs. These assumptions do not hold for Web applications. EachWeb application uses different variables and logic to check the user's permissions. Even within the application, security logic varies based on the user's role, e.g., regular users versus administrators. This paper describes ROLECAST, the first system capable of statically identifying security logic that mediates securitysensitive events (such as database writes) in Web applications, rather than taking a specification of this logic as input. We observe a consistent software engineering pattern-the code that implements distinct user role functionality and its security logic resides in distinct methods and files-and develop a novel algorithm for discovering this pattern in Web applications. Our algorithm partitions the set of file contexts (a coarsening of calling contexts) on which securitysensitive events are control dependent into roles. Roles are based on common functionality and security logic. ROLECAST identifies security-critical variables and applies rolespecific variable consistency analysis to find missing security checks. ROLECAST discovered 13 previously unreported, remotely exploitable vulnerabilities in 11 substantial PHP and JSP applications, with only 3 false positives. This paper demonstrates that (1) accurate inference of application- and role-specific security logic improves the security of Web applications without specifications, and (2) static analysis can discover security logic automatically by exploiting distinctive software engineering features.
机译:用PHP和JSP等语言编写的Web应用程序极易受到意外遗漏的授权检查和其他安全性漏洞的攻击。在库和系统代码中发现丢失的安全检查的现有技术假定(1)可以在语法上识别安全检查,并且(2)相同的检查模式普遍适用于所有程序。这些假设不适用于Web应用程序。每个Web应用程序使用不同的变量和逻辑来检查用户的权限。即使在应用程序中,安全逻辑也会根据用户的角色(例如,普通用户与管理员)而变化。本文介绍了ROLECAST,这是第一个能够静态标识安全逻辑的系统,该逻辑可以介导Web应用程序中对安全性敏感的事件(例如数据库写入),而不是将该逻辑的规范作为输入。我们观察到一致的软件工程模式-实现不同用户角色功能的代码及其安全逻辑驻留在不同方法和文件中-并开发了一种新颖的算法来发现Web应用程序中的这种模式。我们的算法将文件上下文的集合(调用上下文的粗化)划分为一组,在这些文件上下文中,对安全敏感的事件受控制而成为角色。角色基于通用功能和安全逻辑。 ROLECAST识别关键安全变量,并应用特定于角色的变量一致性分析以查找丢失的安全检查。 ROLECAST在11个主要的PHP和JSP应用程序中发现了13个以前未报告的,可远程利用的漏洞,仅有3个误报。本文证明,(1)准确推断应用程序和特定于角色的安全逻辑可以提高无规范的Web应用程序的安全性;(2)静态分析可以通过利用独特的软件工程特性自动发现安全逻辑。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号