威胁模型文档

时间:2011-05-19 09:57:36

标签: javascript perl apache threat-model

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

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

  • 我可以通过哪些方法识别应用程序中的安全漏洞?我该怎么做呢?
  • 哪些领域应该成为文件的一部分?
  • 我应该阅读哪些像DoS等威胁?

5 个答案:

答案 0 :(得分:3)

尽可能多地询问人们如何思考打破系统的方法。他们很可能会想到你不会想到的事情。在盒子外面思考是至关重要的。

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

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

应检查包含eval,反引号,systemopen的Perl代码(始终使用树参数打开,只是为了确定)。

还应审查缺乏严格/警告的代码,并且理想情况下,重写代码。

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

3)根据我最近的经验:

  • 我们基于将输入提供给正则表达式然后eval来进行JSON反序列化。我设法通过perl代码。的 FAIL 即可。

  • 我们有一大堆代码是模糊的,严格的,没有任何评论,并依赖于外部程序的某些行为,迫使我们使用过时的ssh版本。的 FAIL 即可。 (我承认没有改写它。)

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

我希望得到其他人的补充和/或更正。

答案 3 :(得分:0)

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

干杯

答案 4 :(得分:0)

声明:

  

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

合规性和法规。

我真的不能为你总结,请阅读: http://en.wikipedia.org/wiki/Information_privacy_law

美国:FISMA和FIPS

(包括但不限于......)

有标准和法律 http://en.wikipedia.org/wiki/Federal_Information_Security_Management_Act_of_2002 http://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将为您评估需要完成的工作提供良好的起点。

  

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

e.g。对于perl ... https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=perl

  

我该怎么做呢?

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

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

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

  

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

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

如果您已查看过上一节,那么您应该对文档中的内容有所了解。

  

我应该阅读哪些像DoS等威胁?

这些列在CVE / Exploit数据库中。