代码之家  ›  专栏  ›  技术社区  ›  Chris

如何扫描/模糊我的代码的漏洞?

  •  8
  • Chris  · 技术社区  · 16 年前

    我正在寻找一种自动化的方式模糊我的应用程序或扫描它的漏洞。请假设我的黑客知识是0。此外,源代码是在我的本地主机,所以我需要一种方法来模糊它本地不依赖于互联网连接。一些安全专家能给我一些提示或建议吗?我不知道什么样的选择是最好的。

    编辑:

    我想说得更具体一些(因为这有助于回答问题),但不要影响别人的意见,也不要听起来像是在为某个特定的产品做广告。我在找这样的东西 wapiti (很抱歉提到了名字,但不得不这么说,因为到目前为止,诸如了解sql注入、xss等答案显然不是这个问题的真正“专家”答案。我已经知道了( 说真的,这个问题听起来像是不懂安全的人问的吗? )

    是否 我想我应该测试一下 怎样 已经决定了 为了实现自动化(除非有人给我一个专家的答案,证明它是无用的,否则这个决定是没有回头路的),所以请尊重我的决定,我想自动化。我不想浏览每一个编译过的xss、sql注入等黑客列表,然后在我的站点上手动尝试 (即使是黑客也不会这么做)

    有人在问为什么不学习。 最佳实践(我知道)与了解黑客不一样。有些人想说他们是一个掷硬币,但我绝对不同意:)因此我需要一个保护工具的人与“黑客的心态”。这怎么会痛呢,事实上,你也应该试试看;) 专家的答案请从那些知道。

    8 回复  |  直到 12 年前
        1
  •  7
  •   Byron Whitlock    16 年前

    services 这将自动扫描漏洞。它们不会捕捉到所有的东西,但会帮助你发现问题。您的最佳选择是使用这些服务之一并学习一些安全最佳实践。

    开始学习 sql injection cross site scripting . 这些是最大的和最容易修复的漏洞。

    没有什么可以代替你自己去理解这些问题。

        2
  •  3
  •   Collin    16 年前

    要严格回答你的问题,你应该用一个工具来测试。您可以使用两种主要工具,一种是主动探测正在运行的网站的安全扫描程序,另一种是运行在用于构建webapp的源代码上的静态分析工具。

    简而言之,你需要一个安全扫描工具,如马鹿或打嗝。像这样的工具为您的站点动态地构造和执行唯一的安全测试。您可以手动尝试利用自己的网站,但这将花费大量时间,不会提供任何价值。浏览已知xss或sql注入问题的列表是没有用的,因为每个问题对于它所应用的站点都是唯一的。此外,这些工具可以更好地攻击你的网站,然后你可以给你一个更严格的安全压力测试。

    您可以使用两种主要工具:静态分析工具和动态分析工具。静态分析工具读入源代码,找出数据流经应用程序的方式,并查找安全问题。从根本上说,大多数安全问题都是允许用户控制流入应用程序不适当部分的某些数据,因此即使应用程序没有运行并且遇到了停止问题,静态分析方法“猜测”并尝试每个代码路径也能产生好的结果。静态分析工具依赖于语言,而且大多数都很昂贵。一些免费的是fxcop(C#)、PMD和findbugs(java),请参阅 http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

    动态分析工具(通常称为“安全扫描程序”)要求你设置你的webapp,这样它就可以对它运行测试,这听起来更像是你想要的。我最喜欢的工具是打嗝,一些免费的包括马鹿,这是很好的。这些工具将研究你的应用程序如何处理数据,寻找输入,并用恶意数据填充它们,试图触发漏洞。如果javascript页面上有一个cross-ystd值,那么可以查看每个页面上的一个cross-ystd值。

    你可能不需要或不想要毛绒机。当存在大量解析代码时,模糊化工具主要是帮助您的,因此模糊化器不是最适合webapp的,而适合您正在制定的协议。上面列出的安全扫描工具中的模糊功能有限,您可能不需要更多。fuzzer也需要时间来构建。fuzzer经常在c/c++代码中找到更多的东西,因为已经在做正确的事情的内置库较少,在webapp的情况下,可以说“fuzzer可以玩的空间”较少。

        3
  •  0
  •   Kevin Peno    16 年前

    在你对自动化发狂(这可能会产生你可能不理解的结果)之前,我建议你读一读写安全代码的经验,学会识别你做错了什么。以下是一些入门教程:

    http://php.net/manual/en/security.php

    祝你好运!

        4
  •  0
  •   Zephyr Pellerin    16 年前

    如果你了解C,你可以使用spike,手动检查最终用户可能碰到的任何东西的溢出总是很好的,通常的%x%x%x格式字符串攻击测试,只是在你的静态分析中要勤勉。

    如果做不到这一点,写你自己的是微不足道的。

        5
  •  0
  •   user121356 user121356    16 年前

    基本上,我是说,你需要知道你在做什么,如果你想这是一个真正的增值。你不能仅仅选择一个工具,运行它,然后期望得到好的结果。你需要有人谁做这种类型的测试工作,要么与你或为你。工具是有用的,但是只有在本领域技术人员使用时才能产生有用的结果。

        6
  •  0
  •   bagnap    13 年前

    我用过帕罗斯- http://www.parosproxy.org/ -它免费,易于使用,并显示了错误的原因,可能的修复和如何复制它(通常是一个链接)。

    它也有一个gui。

    它很老,但它很好,很容易。

    我试图配置马鹿,但这对我来说太难了。

        7
  •  0
  •   bagnap    13 年前

    我已经为自己的应用程序研究这个主题很多年了,最近发现了一个基于PAROS的很棒的工具(见上面我的另一个答案)

    它的ZAP来自OWASP,是鸭子的坚果。

    您可以做的最好的事情之一是将ZAP集成到您的项目自动化/构建中,因此每当您进行构建时,都会运行测试。

    更好的是,你可以坐在你的selenium自动测试旁边“收集”你测试的页面,然后……扫描掉它们!

    您可能还需要考虑其他一些工具

    我发现这个工具…非常容易使用而且非常全面。

    每当我用ZAP得到我认为是“假阳性”的结果时,我都会用SQLmap扫描页面(你必须弄清楚如何使用Python——很简单,花了几个小时),SQLmap要么验证假阳性,要么找到漏洞。