网络攻击源监测系统的设计与实现

时间:2022-09-25 05:19:16

网络攻击源监测系统的设计与实现

摘要:

关键词:蜜罐原理 开源软件 网络攻击源

中图分类号: TP393.08文献标识码:A 文章编号:1672-3791(2016) 04(c)-0000-00

一、引言

近年来随着社会的进步,计算机网络变得发达,人们之间的沟通变得方便了许多。而随之而来的就是网络安全的问题,其影响足以引发每个人的关注。本文将围绕网络安全问题对网络攻击源进行有针对性的信息搜集和监测。

本文针对网路攻击源主要对其攻击行为进行搜集和监测工作,包括仿冒低安全性的主机并搜集监测攻击者的登录信息(攻击时间,攻击者IP,攻击者输入的用户名、密码等)和攻击行为[1]。

二、监测系统原理

本系统根据攻击者的攻击行为在Linux系统上制定了一系列的监测防御措施,采用Linux Shell,php,curl,python等脚本语言对总系统进行编写。

此系统总共分为两部分:监测搜集信息部分和信息处理部分。监测搜集信息部分旨在将含有攻击行为的举动进行搜集,并能够实时监测其举动,达到未受到攻击先进行预防的目的。信息处理部分将会对搜集的攻击信息进行实时分析处理,录入数据库,并能够对数据库进行分组排序,实时统计,最终呈现在客户端, 清晰明了,简单实用[2]。

三、监测系统应用范围

此监测系统可以对有攻击行为的攻击源进行搜集和监测。其功能能够搜集攻击源的攻击时间,攻击IP,记录攻击者输入的用户名,密码,最终能够对这些搜集的信息以某种媒体的方式呈现出来。

四、系统流程

下面是监测系统总的流程:

搜集攻击源信息-远程上传至中心服务器-分析攻击源信息-中心数据库进行处理-中心数据库数据统计-攻击源监测客户端呈现。

五、信息搜集服务器工作原理

信息搜集服务器为分散在各地的子服务器,专门用来搜集具有攻击行为的攻击源。

其中中心处理服务器将负责收集由各地子服务器上传上来的攻击信息,进行选取实时录入数据库。

六、基于蜜罐原理的信息搜集系统的设计

1.蜜罐技术的发展背景

网络与信息安全技术的核心问题是对计算机系统和网络进行有效的防护,而蜜罐技术可以采取主动的方式来进行防护。顾名思义,就是用特有的特征吸引攻击者,同时对攻击者的各种攻击行为进行分析并找到有效的对付办法 [3]。

2.kojoney开源软件介绍

Kojoney是一套仿SSH 服务器的低阶互动式诱补系统。本软件是以Python 所写的daemon,使用Twisted Conch 函数库。

3.文件上传部分的设计

上传部分代码主要分为两部分:upload.sh和upload.php。

upload.sh负责在子服务器上将含有攻击信息的文本文件attacklist.txt上传到中心处理服务器,upload.php负责将上传上来的文件转移到其他的目录下,等待中心服务器来进行处理。

以下为upload.sh主要代码:

#To upload file to remote service

curl -F userfile=@attacklist.txt -F username=$usr -F password=$pass $URL

下面介绍upload.php主要流程和代码:

upload.php流程分两部分:数据库验证部分和文件转移部分。

下面是upload.php的主要代码:

//put the file where we like it

$upfile ='/uploads/'.$_FILES['userfile']['name'];

4.数据处理和统计部分的设计

将攻击信息录入数据库,通过shell脚本将attacklist.txt中的攻击信息录入到MySQL数据库中,其关键代码为:

INSERT INTO info(datetime,ip,user,pass) VALUES('$J','$K','$L','$M')

以下为mysql_in.sh中主要循环遍历的代码:

for J in ${datetime[@]}

do

mysql -uroot -proot -e "INSERT INTO info(datetime,ip,user,pass) VALUES('$J','$K','$L','$M')" attack[18]

done

5.数据库实时统计

需要有一定的MySQL数据库命令经验,选取相对数据信息进行分组并降序排序,取前10位记录量最多的元素进行显示,其中主要MySQL代码为:

select pass,count(pass) as count from info group by pass order by count desc limit 0,10

select user,count(user) as count from info group by user order by count desc limit 0,10

以下为mysql_count.sh的主要代码:

mysql -uroot -proot -e "select pass,count(pass) as count from info group by pass order by count desc limit 0,10;" attack | grep -v count > pass

mysql_in.sh负责将上传上来的攻击信息逐条录入数据库,mysql_count.sh负责将数据库中录入的攻击信息进行分组排序,实时汇总。

七、信息部分的设计

平台是以Javascript+flash结合,通过对含有攻击信息的xml文件或文本文件进行读取,将信息以饼状图或云图的形式实时显示出来。本人通过编写脚本将密码,用户名,攻击IP记录量最多的前10位的记录载入平台的攻击信息记录文本文件中,最后形成了数据库信息与平台的交互过程。

以下是数据库中攻击信息传递给饼状图过程的主要代码:

echo "" > "$pass_file"

cat pass | sed -e 's/\t/">/g' | sed 's@^@

echo "" >> "$pass_file"

本部分利用javascript+flash的饼状图结合自己编写的程序,将数据库中统计的攻击信息传递给饼状图程序,使其能够形象直观的显示出来。

参考文献

1. 王登第, 柴乔林, 孙翔飞. 新的传感器网络假冒攻击源检测方案[J].计算机应用, 2010, 08: 65-70.

2. 谢磊, 王惠斌, 祝跃飞. 一种传感器网络假冒攻击源的测定方法[J].计算机科学, 2009, 06: 83-85.

3. 张艳萍. 网络攻击源的反向追踪技术[J]. 微型电脑应用, 2007,36(7): 218-220.

上一篇:基于多Agent平台的MES系统设计 下一篇:一种高速公路雾霾路况下激光道路标识装置的设...