PortScan_preprocessor
向标准记录设备中记录从一个源IP地址来的端口扫描的开始和结束。如果指定了一个记录文件,在记录扫描类型的同时也记录目的IP地址和端口。端口扫描定义为在时间T(秒)之内向超过P个端口进行TCP连接尝试,或者在时间T(秒)之内向超过P个端口发送UDP数据包。端口扫描可以是对任一IP 地址的多个端口,也可以是对多个IP地址的同一端口进行。现在这个版本可以处理一对一和一对多方式的端口扫描,分布式的端口扫描(多对一或多对多)。端口扫描也包括单一的秘密扫描(stealth scan)数据包,比如NULL,FIN,SYNFIN,XMAS等。如果包括秘密扫描的话,端口扫描模块会对每一个扫描数据包告警。为避免这种情况,可以在Snort标准发行版中的scan-lib文件里把有关秘密扫描数据包的小节注释掉,这样对每次扫描就只记录一次。如果使用外部记录特性,可以在记录文件中看到(端口扫描的)技术和类型。
支持的端口扫描大类:
- Portscan
端口扫描是基本的一个主机对于另外一个主机的多个端口的扫描行为。如果有少数主机试图连接大量主机的大量端口或者存在大量的异常连接,我们就认为它在进行端口扫描。
- Decoy Portscan
在大量主机试图连接同一主机的不同端口的时候我们会认为他是分布式的端口扫描,
- Distributed Portscan
是分布式端口扫描的一种,与其不同是扫描主机试图多次连接被扫描的主机的特定端口。我们可以得到其扫描的轨迹。
- Portsweep
是某一主机试图连接一群主机的一部分端口。如果某一主机连接了很多主机的同一端口,我们认为它在进行Portsweep。
参数的详细设置:
typedef struct s_PS_ALERT_CONF
{
short connection_count; //连接通过的数据包数
short priority_count; //优先级
<