① 入侵检测模块
入侵检测模块是系统最核心的模块。本文以snort入侵检测系统实现。主要包括对snort源码的编译、snort运行环境的配置、规则文件的选择等。它的主要功能是对数据进行检索、分析、判断是否存在非法行为,同时通过snort把异常的数据传给数据库服务器。本部分主要包括两个组件:winpcap和snort。因为snort没有自己的数据采集工具,所以它需要外部的数据包捕获程序库winpcap。当检测到符合自定义的snort规则行为时,就会把异常数据传给服务器。
② 信息存储模块
信息存储模块主要功能就是存储报警信息。数据库服务器负责将入侵检测系统输出的报警数据存入到关系数据库中,MySQL对其进行进行查询,分类和按优先级组织排序等处理。snort支持多种数据库,如MySQL、Postgre SQL、Qracle等。在本系统中我们采用基于客户机/服务器结构的SQL数据库管理系统--MySQL数据库。当接收到来自入侵检测模块的告警信息时,存到相应数据库。
③数据分析模块
数据分析采用BASE,BASE(Basic Analysis and Security Engine)是基于Web方式的入侵数据分析管理系统。它通过一Web前端来访问和分析来自snort入侵检测系统的告警信息,以可视化、图形化、简洁查询的方式来向用户显示。它自身带有权限控制,管理员可以设置其他用户查看信息,同时也可以查看并分析告警数据,及时作出响应,为网络管理提供安全保障的依据。
④ 利用默认snort规则对小众银行系统进行测试
入侵检测系统中的snort规则已经预先定义了许多规则,可以会利用这些默认规则来进行测试银行系统是否遭到了恶意攻击,如信息泄露、木马等。发现入侵企图或异常现象,这是入侵检测的核心功能,包括两个方面:一是对进出网络的数据流进行监控,查看是否存在入侵行为;二是评估系统关键资源和数据文件的完整性,查看是否已经遭受了入侵行为。前者作为预防,后者用来吸取经验以免下次再遭受攻击;然后针对不同的攻击,首先应该记录它们的基本情况,然后再做出相应的响应。本文会通过模拟文件上传、XSS攻击、SQL注入、木马攻击等攻击,在安装部署系统之后进行测试。为后续自定义snort规则奠定基础。
⑤ 自定义snort规则对小众银行系统进行测试
通过学习snort官方规则,自定义snort规则,利用自定义规则测试银行系统是否遭到恶意攻击,如果遭到攻击,及时响应。
snort规则被分为两个逻辑部分,规则头和规则选项。规则头包含规则的操作、协议、源和目标IP地址,以及源和目标端口信息。规则选项部分包含警报消息和应该检查数据包的哪些部分的信息,以确定是否应该采取规则操作。在snort中又五种动作:alert、log、pass、active、dynamic。除了上述动作外,可以定义自己的动作,以用于不同的目的。如:非管理员身份登录系统报警、nmap XMAS和nmap FIN扫描检测等。
非管理员身份登录系统报警检测规则:
alert tcp $EXTERNAL_NET any -> $HOME_NET 23 (content:"USER";msg:task1: "telnet login";sid:1000001;)
以上规则的目的是匹配任意外部源IP和源端口到任意内部目的IP和23端口的TCP数据包,在搜索数据包净载中存在USER字符串时,触发报警信息,并在报警信息和包日志中打印task1:"telnet login提示信息,规则号id为1000001。
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (content:"USER";msg:task2: "FTP login";sid:1000002;)
以上规则的目的是匹配任意外部源IP和源端口到任意内部目的IP和21端口的TCP数据包,在搜索数据包净载中存在USER字符串时,触发报警信息,并在报警信息和包日志中打印task1:"FTP login提示信息,规则号id为 1000002。
nmap FIN和nmap XMAS扫描规则检测:
alert tcp any any -> $HOME_NET any (msg:"Nmap FIN Scan"; flags:F;classtype: network-scan; ack:0; dsize:0; detection_filter:track by_src,count 100,seconds 5;sid: 1000003; rev:1;)
以上规则的目的是匹配任意源IP和源端口到任意内部目的IP和端口,并检查是否存在特定的F序列号,并把规则分类为检测网络扫描,TCP首部的32位确认序号字段为0,数据包载荷大小为0,在规则生成事件之前,5秒的周期内,源IP匹配超过100次的数据请求后将触发规则报警消息,并显示msg标记信息,sid为1000003,优先级为1。
alert tcp any any -> $HOME_NET any (msg:"Nmap XMAS Tree Scan";flags:FPU; classtype:network-scan; ack:0; dsize:0; detection_filter:track by_src,count 100,seconds 5; sid:1000004; rev:1;)
以上规则的目的是匹配任意源IP和源端口到任意内部目的IP和端口,并检查是否存在特定的FPU序列号,并把规则分类为检测网络扫描,TCP首部的32位确认序号字段为0,数据包载荷大小为0,在规则生成事件之前,5秒的周期内,源IP匹配超过100次的数据请求后将每次触发规则报警消息,并显示msg标记信息,sid为 1000004,优先级为1。