如何检测恶意数据包?

时间:2011-03-05 19:10:34

标签: java

我用Java实现了一个数据包分析器。现在我想检测捕获的数据包是否是恶意的。例如,如何使用Java代码检测DOS攻击? TCP数据包的合法大小是多少?如果大小超过法定大小,数据包是否可以被视为恶意?

2 个答案:

答案 0 :(得分:5)

测试evil bit

说真的,遗憾的是没有捷径。这有点像问你如何在机场检查站发现恐怖分子。

您需要阅读RFC,研究可能的各种攻击,并确定您想要尝试和检测哪些攻击;根据这些信息,制定出如何检测任何特定类型攻击的机制应该是直截了当的,如果你遇到问题,你可以在这里提出一个更具体的问题。

一些可以帮助您入门的链接:

  • IP datagram format
  • Snort是一个入侵检测系统 - 即执行您正在尝试的软件:捕获流量并根据大量已知恶意模式对其进行检查。它是开源的:您可以查看源代码以了解它是如何工作的,并查看它们的数据库以查看它检查的内容。

与病毒检测一样,构建一个足够大的恶意活动模式数据库是此类项目中的大部分难度/费用,这将使您的工具之间有用与否。制作一个可用于除个人研究以外的任何其他目的的工具/教育自己如何使用这些工具可能需要很多人年。你最好的方法可能是利用现有的开放数据库,比如Snort,或者只是贡献你的时间。

答案 1 :(得分:1)

你在一个秘密地有两个问题:

  1. 将哪些事件序列归类为恶意
  2. 如何检测此类事件序列。
  3. (2)在(1)中相当简单,但是如果没有多年的经验(或借用其他人的经验),正如Christian Sciberras所暗示的那样,回答(1)是困难的。