contentPane.setPreferredSize(new Dimension(341,129));
JLabel Label1=new JLabel("数据分析完毕,可疑结果已经记录",JLabel.CENTER);
contentPane.add(Label1,BorderLayout.NORTH);
JLabel Label2;
while(search!=null)
{
if(search.Times>3)
{
try
{RandomAccessFile raf = new RandomAccessFile ( " F : \\ Snort \\ rules \\myrules.rules","rw");
System.out.println("File length="+raf.length());
int L=(int)raf.length();
raf.seek(L);
raf.writeBytes("alert tcp "+search.IpSo+" any -> $HOME_NET any;");
raf.close();
IP=IP+" "+search.IpSo;
Label2=new JLabel(IP,JLabel.CENTER);
contentPane.add(Label2,BorderLayout.CENTER);
System.out.println(search.IpSo+":"+search.Times+"次");
}catch(IOException e){System.out.println("addrules.打开文件出错!");}
}
search=search.next;
}
frame.pack();
frame.setVisible(true);
System.out.println("数据已分析处理完毕!");
}
public void onCreation(Object o){
addMobilityListener(new MobilityAdapter(){
public void onArrival(MobilityEvent e){
_theRemote=_theRemote+1; //偶数表示在本地,奇数表示在远程。
}
}
);
}
//程序入口
public void run()
{
if(_theRemote==0)//在本地主机上运行的代码
{
System.out.println("本地");
myJDBC();
addhead();
addnode();
print();
try{
target=new URL("atp://localhost:5000");
dispatch(target);
}catch(Exception e)
{
System.out.println("run1()出错");
}
}
else if(_theRemote==1)
{
System.out.println("远程");
print();
myJDBC();
addnode();
print();
try{
target=new URL("atp://localhost:4434");
dispatch(target);
}catch(Exception e)
{
System.out.println("run2()出错");
}
}
else if(_theRemote==2)
addrule();
}
}
为了避免程序重复,该程序主要使用了方法体来实践各个模块。
由于试验环境的限制,代理遍历在一台机子不同的端口上模拟实现该过程。
运行结果显示在“命令提示符”和“面板中”,如图 4-9和图4-10所示。
图4-9 分析结果
图4-10 结果提示界面
下一步工作
对于本系统采用的移动代理平台Aglet,自身有一些的不足,在Windows系统下运行,会发出没有网络域的警告,而在Linux系统下,却一切正常,一些资料上称这是Aglet本身的一个Bug。
该系统是在windows系统下设计和实现,接下来准备在Linux系统下开展相应的开发工作。因为该系统中,入侵检测的这一过程使用的是现成的Snort工具,还没有真正实现跨平台的入侵检测功能模块。这一板块必须用无平台差异的JAVA语言来开发,但对于快速运行的网络环境,JAVA要实现抓包和捕获入侵数据,困难是不言而喻的,所以用JAVA语言来实现入侵检测功能的很多问题还有待解决。
结 论
本系统是在传统的入侵检测系统的分析基础之上,针对分布式网络的网段攻击,提出了基于Aglet的分布式入侵检测系统,该系统使用日本 IBM公司独立开发的纯JAVA移动代理平台Aglet和入侵检测系统Snort 相结合,实现了快捷的检测相应,解决了一些传统入侵检测的不足,对该系统作了系统的设计和实现。
系统主要分为三个板块:入侵检测、数据收集分析和检测结果处理。
入侵检测。通过运行Snort工具检测网络内外的不法行为,并将其记录在案。
数据收集分析。在Aglet移动代理平台上,通过利用移动代理功能,完成分布式网络检测数据的集中和分析。
检测结果处理。数据分析结果通过系统自动添加相应的规则,禁止相应入侵的继续介入。
总之,在高速发展的网络时代,网络安全也越来越受到人们的重视,在不久的将来开发出更完善,更实用的入侵检测系统。
参考文献
[1] 刘思培.基于移动代理的分布式入侵检测系统的设计与实现[D].吉林:吉林大学[硕士文档],2005。
[2] 黄爱民.基于移动代理的分布式入侵检测系统研究[D].贵州:贵州大学[硕士文档],2006。
[3] 张伟.基于移动代理的分布式入侵检测系统的研究[D].武汉:武汉理工大学[硕士文档],2006。
[4] 包东智.信息安全市场现状及应对策略[J].计算机安全,2006,(11):4-8。
[5] 吴婷.网络入侵检测系统的研究现状与发展趋势[J].中共郑州市委党校学报,2006,82(4):129,132。
[6] 黄烟波,汪建波,王科.入侵检测系统中误报与漏报现象研究[J].中国科技信息,2006,25(3):73-76。
[7] 彭川.基于移动Agent的分布式入侵检测系统[J].中南民族大学学报(自然科学版),2006,24(20):156-157。
[8] 郝东白.IDS发展历史与未来发展趋势[J].网络信息安全,2003,53(5):72-73。
[9] 薛静锋,宁宇鹏,阎慧.入侵检测技术[M].北京: