威胁模型文档

Threat model document

本文关键字:文档 模型 威胁      更新时间:2023-09-26

我正在为我托管的一个应用程序编写威胁模型文档。它是一个Apache网站,允许用户登录,通过添加一些最畅销的产品等来创建他们的小部件。有人可以给我一些关于如何开始的指示吗?

前端使用 javascript + perl,后端是 cpp。我们确实接受来自用户的敏感信息,例如他的姓名,SSN等,并且我们会进行存储会话ID

  • 有哪些方法可以识别应用程序中的安全漏洞?我应该如何开始?
  • 哪些领域应该成为文件的一部分?
  • 我应该阅读哪些威胁,例如DoS等?

请尽可能多的人思考打破系统的方法。他们很可能会想到你不会想到的事情。跳出框框思考至关重要。

正确的威胁树分析从一系列不良结果开始("敏感数据泄露","服务器被劫持以托管恶意软件/发送垃圾邮件/成为僵尸网络的一部分/其他什么","公司因使用被盗的信用卡详细信息而受到欺诈",希望您可以想到更多)并向后工作:发生这种情况需要什么?通常你会发现每个糟糕的结果都会有几个必需的促成事件 - 一个因果链 - 通过比较它们,你可以识别弱点并深入计划你的防御。

这可能无助于构建威胁模型文档,但 OWASP 操作方法可能会帮助您根据行业最佳实践验证应用程序的设计。

我不是安全方面的专家,但这是我的两分钱。

1)你可以放心地认为javascript是完全不安全的,因为你并没有真正控制它的执行。

2)所以,perl部分是第一道防线。阅读perldoc perlsec作为入门。

应该检查包含eval、反引号、systemopen的Perl代码(始终使用树参数打开,以确保)。

此外,应该审查缺乏严格/警告的代码,理想情况下,重写。

任何未经彻底有效性检查的输入都是可疑的。当然,任何未处理的输入(仅由系统存储的用户文件除外)都不应到达后端。

3)根据我最近的经验:

  • 我们有基于将输入提供给正则表达式然后eval的 JSON 反序列化。我已经设法传递了perl代码。失败

  • 我们有一大块代码晦涩难懂,严格,没有任何注释,并且依赖于外部程序的某些行为,迫使我们使用过时的SSH版本。失败。(我承认没有重写它)。

  • 我们有open (FD, "$file");.虽然从$file中删除了前导/..,但显然没有检查管道符号(|)。可以提供精心设计的命令,而不是文件名。失败。始终使用三参数打开。系统/可执行文件也是如此:只有@array变体是可以的,不要依赖愚蠢的ls '$file'

我将不胜感激其他人的补充和/或更正。

有关您的威胁建模方法,请查看MyAppSecurity的威胁建模器。从高级架构图中可视化您的应用程序非常容易,并识别潜在威胁,以及在安全代码和安全控制方面找到补救控制。

干杯

免责声明:

我既不是安全专家,也不是合规专家,也不是律师。不要从表面上接受这个建议。在处理机密信息时,您应该寻求专家建议。

合规性和法规。

我真的无法为您总结,请阅读:http://en.wikipedia.org/wiki/Information_privacy_law

美国 : FISMA 和 FIPS

(包括但不限于...

有标准和法律http://en.wikipedia.org/wiki/Federal_Information_Security_Management_Act_of_2002http://en.wikipedia.org/wiki/Federal_Information_Processing_Standards

FIPS 199:http://csrc.nist.gov/publications/fips/fips199/FIPS-PUB-199-final.pdf

FIPS 200:http://csrc.nist.gov/publications/fips/fips200/FIPS-200-final-march.pdf

回到问题...

我们接受来自用户的敏感信息,如他的姓名,SSN等

FIPS 199 和 200 将为您提供评估需要完成的工作的良好起点。

有哪些方法可以识别应用程序中的安全漏洞?

  • 支付专家审查您的策略。
  • 付钱给专家进行渗透测试
  • 付钱给黑客进行负责任的披露。
  • 查看常见漏洞和披露 (CVE) 数据库:https://cve.mitre.org/
  • 查看漏洞利用数据库:http://www.exploit-db.com/

例如,对于Perl...https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=perl

我应该如何开始?

从信息治理 (IG) 的以下定义开始:http://searchcompliance.techtarget.com/definition/information-governance

评估信息的使用方式和位置。

使用CVE/漏洞利用数据库中的相关信息为您自己的软件编写渗透测试。

哪些领域应该成为文件的一部分?

我发现使用系统架构图有助于确定哪些部分要独立测试和隔离;以及要保护哪些边界。

如果您已经查看了上一节,您应该对可以放入文档中的内容有一个好主意。

我应该阅读哪些威胁,例如DoS等?

这些列在CVE/漏洞利用数据库中。