Web 应用程序的纵深防御意味着什么?

信息安全 应用安全 Web应用程序 源代码 硬化
2021-08-24 15:58:18

我假设这意味着从应用程序级安全到服务器强化再到人员培训的不同安全层,但是这些层中的每一层是什么,每个防御级别有哪些好的资源?

请按照对 Web 应用程序的重要性排序,标记每一层,简要定义它,然后列出一个或多个资源以获取更多信息。

4个回答

我认为理解“纵深防御”不是什么意思可以说更重要。这并不意味着“一长串令人印象深刻的声音控制,例如防火墙和加密算法”。

纵深防御是一个技术中立的术语,这意味着必须在系统受到损害之前必须有两个或多个独立控制失败。例如,用皮带、背带和绳子撑起你的裤子:-)

这里的关键点是“独立”——如果你的所有控件都有共同的故障模式,或者如果只有其中一个需要在你失败之前失败,那么就没有“纵深防御”。例如,如果您的每一层都可以通过 HTTP 从前一层访问,并且它们都具有相同的漏洞,那么防火墙/DMZ 设置实际上变得无关紧要,因为攻击者可以使用相同的漏洞来拥有它们。

纵深防御范式中最重要的资产是人类智能:雇佣精通安全的人员负责持续和持久的防御。

工具改变、Web 应用程序框架改变、新的漏洞利用技术被发现——这些都是建立强大的人类团队来帮助防御的前奏。

转向战术,但仍处于高水平:

安全编码(应用层)-> 授权团队开发攻击者弹性应用程序-> OWASP

安全基础设施-> 授权团队部署攻击者弹性服务器和支持设备

http://cisecurity.org/ 互联网安全中心 (CIS) 是一家非营利性企业,其基准和度量部门帮助组织降低因技术安全控制不足而导致业务和电子商务中断的风险。该部门为企业提供一致的安全配置最佳实践标准,以及衡量信息安全状态和做出合理安全投资决策的资源。

http://iase.disa.mil/stigs/checklist/ 国防信息系统局 (DISA)

http://web.nvd.nist.gov/view/ncp/repository
http://csrc.nist.gov/fdcc/faq-common_security_configurations.html
由 NIST SP 800-70 定义的国家清单计划 (NCP) Rev. 1 是美国政府公开的安全检查表(或基准)存储库,为设置操作系统和应用程序的安全配置提供详细的低级指导。

有能力的事件检测和响应-> 授权团队检测、控制、响应和修复

收集事件响应清单:http ://www.knowyourenemy.eu/checklists.php

Richard Bejtlich最近在博客中写道:

“用于建立事件响应团队的资源 最近,一位同事向我询问建立事件响应团队的资源。我承诺我会提供一些想法 [...]

CERT.org CSIRT 开发站点可能是最好的起点。从那里您可以找到免费文档、SEI 提供的有关构建 CIRT 的课程的链接等。我认为您无法击败该网站!

我不认为 FIRST 站点上的资源有帮助,但努力成为会员的过程对于新的 CIRT 来说是一个很好的练习。

我的 TaoSecurity 书籍页面列出了几本 CIRT 可能会觉得有帮助的书籍。”

以简洁的名义,也许以上就足够了?

由于您开始专门询问网络应用程序,即从应用程序的角度来看,我将主要关注这一点。按照从外到内的层顺序,这里是一个示例:

  • 安全协议 (SSL/TLS)
  • 防火墙
  • 非军事区
  • WAF
  • 入侵检测系统/IPS
  • 强化操作系统
  • 强化网络服务器
  • 具有强化框架的托管代码
  • 验证
  • 文件访问控制(例如 NTFS ACL)
  • URL 访问控制(例如 ASP.NET 的网络配置)
  • 应用访问控制
  • 输入验证
  • 存储过程
  • db 参数绑定(例如 ADO 命令/参数对象)或 ORM
  • 硬化数据库
  • 对数据库对象的严格权限
  • 输出编码
  • 等等。

请注意,其中大多数本质上是应用性的,并且大多数网络/操作系统项目本质上都是架构性的......

你要求一个相当长的答案,所以我会稍微刺一下。

如果我们从用户的角度来处理 Web 应用程序,那么会有:

  • 网络层(HTTP 数据包/物理线路/路由器/ISP)
    • 见维基百科
  • 服务器软件(又名 IIS/httpd/etc)
    • 这取决于您的服务器堆栈是什么(LAMP/.NET/等)
  • 您的应用程序代码
    • 取决于您的应用程序是由什么组成的
  • 更多,我不会进入。