防范web应用攻击的方法、挑战和启示

作者:{Esi}@ArkTeam

原文作者:Dimitris Mitropoulos; Panos Louridas ; Michalis Polychronakis ; Angelos Dennis Keromytis

原文标题:Defending Against Web Application Attacks: Approaches, Challenges and Implications

原文出处:IEEE Transactions on Dependable and Secure Computing, 2017.

Web应用程序攻击可能涉及安全性错误配置,破坏的身份验证和会话管理或其他问题。但是,一些最危险和最流行的Web应用程序攻击利用与不正确的验证或不受信任的输入过滤相关,从而导致注入恶意脚本,例如xss和sql注入等,尽管在过去几年中采取了一系列对策来应对这些攻击,但这些攻击一直高居各种安全排行榜前列。在本文中,作者分析了针对Web代码注入攻击的各种防御机制,提出了一个模型,突出实现这些攻击的关键弱点,并为研究可用的防御提供了一个共同的视角。

作者提供了逐步开发模型,以帮助对Web应用程序执行代码注入攻击过程的理解。图1说明了不同类别攻击所需的步骤,例如sql注入,xss和csrf。步骤之间的链接标记为使用该路径的不同攻击,而攻击标签旁边的数字表示特定攻击的步骤序列。大多数步骤在所有攻击中都很常见,因为不同的攻击类型遵循类似的利用路径,过渡时的大”X”标记对应于我们在此工作中考虑的防御检测或防止攻击的点。


图1攻击模型

作者提出Web应用攻击防御机制的研究具有双重性。首先,防御机制可能很重要,因为它可以用可靠的方式检测或阻止攻击;其次,防御机制可能不仅仅是一项研究贡献,而是作为一种实用工具。作者从准确性、可用性、运行时性能、易用性、安全性和检测点6个维度进行了分析,并提出了相对应的6个标准。

针对注入攻击的Web应用程序防御的分类。我们可以分为三大类:内因,外表特征和混合原因。内因是根据其原因和起源阻止攻击的机制。外表特征类别包含各种方案,用于检查应用程序的行为并根据其不良状态检测攻击。混合机制基于上述两个类别的特征。

作者总结一共有3种主要的内因方法用于保护Web应用程序免受注入攻击,分别是:解析树验证,策略实施和指令集随机化。

基于外表特征主要遵循两种方法。跟踪不受信任的输入并禁止对其进行某些操作;和了解要信任的代码,然后批准他们认为安全的执行代码。

作者通过观察为开发人员提供了一些有用的经验和建议。特别是,要求提高实验测试和代码可用性的准确性,同时旨在降低性能开销和部署障碍。

本文的主要贡献有以下三点:

·基于代码注入为不同类型的Web应用程序攻击提供统一的开发模型。

·使用一套对建立保护机制很重要的标准对提议的防御进行分类和分析。

·根据分析中出现的问题提供见解,强调可能阻碍保护机制广泛部署的因素,以及工具从研究到实践的过渡。

最后作者提出改善测试不佳,开销高,缺乏可公开的原型,部署困难,安全性受损这些方面中的任何一个问题不仅会增加研究工作作为实用工具的价值,而且还会提高其研究价值。准确的检测报告有助于评估不同的方法,广泛的性能测量可以揭示不切实际的设计并将重点放在其他地方,源代码的可用性增强了基本的科学任务,如验证和复现性,易于部署带来了实验的简便性,安全方法可以构成开发覆盖范围更广的方法的基础。

发表评论

电子邮件地址不会被公开。 必填项已用*标注