snort源码
㈠ 怎样用snort搭建防火墙 选修课考试 拜托了
Snort是一个着名的免费而又功能强大的轻量级入侵检测系统,具有使用简便、轻量级以及封堵效率高等特点,本文从实用操作的角度介绍了如何用Snort保证上网主机的安全。
入侵检测技术是继“防火墙”、“数据加密”等传统安全保护措施之后的新一代安全保障技术。它对计算机和网络资源上的恶意使用行为进行识别和响应,它不仅检测来自外部的入侵行为,同时也监督内部用户的未授权活动。而且,随着网络服务器对安全性要求的不断增大,如何在linux环境下抵御黑客入侵和攻击,切实保证服务器的安全具有重大的实践意义。
Snort是一个强大的轻量级的免费网络入侵检测系统,其特点如下:
1.轻量级的网络入侵检测系统
Snort虽然功能强大,但其代码非常简洁、短小,源代码压缩包只有1.8M多。
2.Snort的可移植性好
Snort的跨平台性能极佳,目前已经支持类Unix下Linux、Solaris、Freebsd、Irix、HP-ux、微软的Windows2000等服务器系统。
3.Snort的功能非常强大
Snort具有实时流量分析和日志IP网络数据包的能力,能够快速检测网络攻击,及时发出报警。利用XML插件,Snort可以使用SNML(简单网络标志语言)把日志放到一个文件或者适时报警。Snort能够进行协议分析和内容的搜索/匹配,现在Snort能分析的协议有TCP、UDP、ICMP,将来可能增加对ARP、IPX等协议的支持。它能够检测多种方式的攻击和探测,例如缓冲区溢出、秘密端口扫描、CGI攻击、SMB探测、探测存在系统指纹特征的企图等。Snort的日志格式既可以是tcpmp式的二进制格式,也可以解码成ASCⅡ字符格式,更加便于用户尤其是新手检查。使用数据库输出插件,Snort可以把日志记录进数据库。使用TCP流插件,Snort可以对TCP包进行重组。
4.Snort的扩展性较好,对于新的攻击反应迅速
作为一个轻量级的网络入侵检测系统,Snort有足够的扩展能力。它使用一种简单的规则描述语言,最基本的规则只是包含四个域:处理动作、协议、方向、注意的端口,例如“log tcp any any-> 192.168.0.1/24 79”。发现新的攻击后,可以很快根据“bugtraq”邮件列表,找出特征码,写出检测规则。因为规则语言简单,所以容易上手,节省人员的培训费用。
5.遵循公共通用许可证GPL
Snort遵循通用公共许可证GPL,所以只要遵守GPL ,任何组织和个人都可以自由使用。
Snort的体系结构
包解码 Snort的包解码支持以太网和SLIP及PPP媒体介质。包解码所做的工作就是为探测引擎准备数据,其功能是捕获网络传输数据并按照TCP/IP协议的不同层次将数据包进行解析。Snort利用libpcap库函数进行数据采集, 该库函数可以为应用程序提供直接从链路层捕获数据包的接口函数,并可以设置数据包过滤器来捕获指定的数据。网络数据采集和解析机制是整个NIDS实现的基础,其中最关键的是要保证高速和低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析机制来说,能够处理数据包的类型的多样性也同样非常重要。
探测引擎 探测引擎是Snort的心脏,它主要负责的工作是:按照启动时加载的规则,对每个数据包进行分析。探测引擎将Snort规则分解为链表头和链表选项进行引用。链表头由诸如源/目标IP地址及端口号这些普通信息标识,链表选项定义一些更详细的信息如TCP 标志、ICMP代码类型、特定的内容类型、负载容量等。探测引擎按照Snort规则文件中定义的规则依次分析每个数据包。与数据包中数据匹配的第一条规则触发在规则定义中指定的动作,凡是与规则不匹配的数据包都会被丢弃。
日志记录/告警系统 告警和日志是两个分离的子系统。日志允许将包解码收集到的信息以可读的格式或以tcpmp格式记录下来。可以配置告警系统,使其将告警信息发送到syslog、flat文件、Unix套接字或数据库中。在进行测试或在入侵学习过程当中,还可以关掉告警。缺省情况下,所有的日志将会写到/var/log/Snort文件夹中,告警文件将会写到/var/log/Snort/alerts文件中。Snort的数据包记录器子系统主要提供了如下方式:“Fast Model”,采取tcpmp的格式记录信息 ;“Readable Model”,按照协议格式记录,易于用户查看;“Alert to syslog”,向syslog发送报警信息;“Alert to text file”,以明文形式记录报警信息。
值得提出的是,Snort考虑到用户需要高性能的时候,即网络数据流量非常大,可以将数据包信息进行压缩从而实现快速报警。
㈡ linux下,安装snort,输入 ./configure --prefix=/usr/local/snort --enable-mysql=/usr/local/mysql/
对啊 这个说明源码包里没给你定制这个功能的权利 没办法啊 装就是了
㈢ 特洛伊 木马!
特洛伊木马是一种恶意程序,它们悄悄地在宿主机器上运行,就在用户毫无察觉的情况下,让攻击者获得了远程访问和控制系统的权限。一般而言,大多数特洛伊木马都模仿一些正规的远程控制软件的功能,如Symantec的pcAnywhere,但特洛伊木马也有一些明显的特点,例如它的安装和操作都是在隐蔽之中完成。攻击者经常把特洛伊木马隐藏在一些游戏或小软件之中,诱使粗心的用户在自己的机器上运行。最常见的情况是,上当的用户要么从不正规的网站下载和运行了带恶意代码的软件,要么不小心点击了带恶意代码的邮件附件。
大多数特洛伊木马包括客户端和服务器端两个部分。攻击者利用一种称为绑定程序的工具将服务器部分绑定到某个合法软件上,诱使用户运行合法软件。只要用户一运行软件,特洛伊木马的服务器部分就在用户毫无知觉的情况下完成了安装过程。通常,特洛伊木马的服务器部分都是可以定制的,攻击者可以定制的项目一般包括:服务器运行的IP端口号,程序启动时机,如何发出调用,如何隐身,是否加密。另外,攻击者还可以设置登录服务器的密码、确定通信方式。
服务器向攻击者通知的方式可能是发送一个email,宣告自己当前已成功接管的机器;或者可能是联系某个隐藏的Internet交流通道,广播被侵占机器的IP地址;另外,当特洛伊木马的服务器部分启动之后,它还可以直接与攻击者机器上运行的客户程序通过预先定义的端口进行通信。不管特洛伊木马的服务器和客户程序如何建立联系,有一点是不变的,攻击者总是利用客户程序向服务器程序发送命令,达到操控用户机器的目的。
特洛伊木马攻击者既可以随心所欲地查看已被入侵的机器,也可以用广播方式发布命令,指示所有在他控制之下的特洛伊木马一起行动,或者向更广泛的范围传播,或者做其他危险的事情。实际上,只要用一个预先定义好的关键词,就可以让所有被入侵的机器格式化自己的硬盘,或者向另一台主机发起攻击。攻击者经常会用特洛伊木马侵占大量的机器,然后针对某一要害主机发起分布式拒绝服务攻击(Denial of Service,即DoS),当受害者觉察到网络要被异乎寻常的通信量淹没,试图找出攻击者时,他只能追踪到大批懵然不知、同样也是受害者的DSL或线缆调制解调器用户,真正的攻击者早就溜之大吉。
二、极度危险的恶意程序
对于大多数恶意程序,只要把它们删除,危险就算过去,威胁也不再存在,但特洛伊木马有些特殊。特洛伊木马和病毒、蠕虫之类的恶意程序一样,也会删除或修改文件、格式化硬盘、上传和下载文件、骚扰用户、驱逐其他恶意程序,例如,经常可以看到攻击者霸占被入侵机器来保存游戏或攻击工具,用户所有的磁盘空间几乎都被侵占殆尽,但除此之外,特洛伊木马还有其独一无二的特点——窃取内容,远程控制——这使得它们成为最危险的恶意软件。
首先,特洛伊木马具有捕获每一个用户屏幕、每一次键击事件的能力,这意味着攻击者能够轻松地窃取用户的密码、目录路径、驱动器映射,甚至医疗记录、银行帐户和信用卡、个人通信方面的信息。如果PC带有一个麦克风,特洛伊木马能够窃听谈话内容。如果PC带有摄像头,许多特洛伊木马能够把它打开,捕获视频内容——在恶意代码的世界中,目前还没有比特洛伊木马更威胁用户隐私的,凡是你在PC前所说、所做的一切,都有可能被记录。
一些特洛伊木马带有包嗅探器,它能够捕获和分析流经网卡的每一个数据包。攻击者可以利用特洛伊木马窃取的信息设置后门,即使木马后来被清除了,攻击者仍可以利用以前留下的后门方便地闯入。
其次,如果一个未经授权的用户掌握了远程控制宿主机器的能力,宿主机器就变成了强大的攻击武器。远程攻击者不仅拥有了随意操控PC本身资源的能力,而且还能够冒充PC合法用户,例如冒充合法用户发送邮件、修改文档,当然还可以利用被侵占的机器攻击其他机器。二年前,一个家庭用户请我帮忙,要我帮他向交易机构证明他并没有提交一笔看来明显亏损的股票交易。交易机构确实在该笔交易中记录了他的PC的IP地址,而且在他的浏览器缓冲区中,我也找到了该笔有争议的交易的痕迹。另外,我还找到了SubSeven(即Backdoor_G)特洛伊木马的迹象。虽然没有证据显示出特洛伊木马与这笔令他损失惨重的股票交易直接有关,但可以看出交易发生之时特洛伊木马正处于活动状态。
三、特洛伊木马的类型
常见的特洛伊木马,例如Back Orifice和SubSeven等,都是多用途的攻击工具包,功能非常全面,包括捕获屏幕、声音、视频内容的功能。这些特洛伊木马可以当作键记录器、远程控制器、FTP服务器、HTTP服务器、Telnet服务器,还能够寻找和窃取密码。攻击者可以配置特洛伊木马监听的端口、运行方式,以及木马是否通过email、IRC或其他通信手段联系发起攻击的人。一些危害大的特洛伊木马还有一定的反侦测能力,能够采取各种方式隐藏自身,加密通信,甚至提供了专业级的API供其它攻击者开发附加的功能。由于功能全面,所以这些特洛伊木马的体积也往往较大,通常达到100 KB至300 KB,相对而言,要把它们安装到用户机器上而不引起任何人注意的难度也较大。
对于功能比较单一的特洛伊木马,攻击者会力图使它保持较小的体积,通常是10 KB到30 KB,以便快速激活而不引起注意。这些木马通常作为键记录器使用,它们把受害用户的每一个键击事件记录下来,保存到某个隐藏的文件,这样攻击者就可以下载文件分析用户的操作了。还有一些特洛伊木马具有FTP、Web或聊天服务器的功能。通常,这些微型的木马只用来窃取难以获得的初始远程控制能力,保障最初入侵行动的安全,以便在不太可能引起注意的适当时机上载和安装一个功能全面的大型特洛伊木马。
随便找一个Internet搜索网站,搜索一下关键词Remote Access Trojan,很快就可以得到数百种特洛伊木马——种类如此繁多,以至于大多数专门收集特洛伊木马的Web网站不得不按照字母顺序进行排列,每一个字母下有数打甚至一百多个木马。下面我们就来看看两种最流行的特洛伊木马:Back Orifice和SubSeven。
■ Back Orifice
1998年,Cult of the Dead Cow开发了Back Orifice。这个程序很快在特洛伊木马领域出尽风头,它不仅有一个可编程的API,还有许多其他新型的功能,令许多正规的远程控制软件也相形失色。Back Orifice 2000(即BO2K)按照GNU GPL(General Public License)发行,希望能够吸引一批正规用户,以此与老牌的远程控制软件如pcAnywhere展开竞争。
但是,它默认的隐蔽操作模式和明显带有攻击色彩的意图使得许多用户不太可能在短时间内接受。攻击者可以利用BO2K的服务器配置工具可以配置许多服务器参数,包括TCP或UDP、端口号、加密类型、秘密激活(在Windows 9x机器上运行得较好,在Windows NT机器上则略逊一筹)、密码、插件等。
Back Orifice的许多特性给人以深刻的印象,例如键击事件记录、HTTP文件浏览、注册表编辑、音频和视频捕获、密码窃取、TCP/IP端口重定向、消息发送、远程重新启动、远程锁定、数据包加密、文件压缩,等等。Back Orifice带有一个软件开发工具包(SDK),允许通过插件扩展其功能。
默认的bo_peep.dll插件允许攻击者远程控制机器的键盘和鼠标。就实际应用方面而言,Back Orifice对错误的输入命令非常敏感,经验不足的新手可能会使它频繁地崩溃,不过到了经验丰富的老手那里,它又会变得驯服而又强悍。
■ SubSeven
SubSeven可能比Back Orifice还要受欢迎,这个特洛伊木马一直处于各大反病毒软件厂商的感染统计榜前列。SubSeven可以作为键记录器、包嗅探器使用,还具有端口重定向、注册表修改、麦克风和摄像头记录的功能。图二显示了一部分SubSeven的客户端命令和服务器配置选项。
SubSeven具有许多令受害者难堪的功能:攻击者可以远程交换鼠标按键,关闭/打开Caps Lock、Num Lock和Scroll Lock,禁用Ctrl+Alt+Del组合键,注销用户,打开和关闭CD-ROM驱动器,关闭和打开监视器,翻转屏幕显示,关闭和重新启动计算机,等等。
SubSeven利用ICQ、IRC、email甚至CGI脚本和攻击发起人联系,它能够随机地更改服务器端口,并向攻击者通知端口的变化。另外,SubSeven还提供了专用的代码来窃取AOL Instant Messenger(AIM)、ICQ、RAS和屏幕保护程序的密码。
四、检测和清除特洛伊木马
如果一个企业网络曾经遭受病毒和Email蠕虫的肆虐,那么这个网络很可能也是特洛伊木马的首选攻击目标。由于木马会被绑定程序和攻击者加密,因此对于常规的反病毒软件来说,查找木马要比查找蠕虫和病毒困难得多。另一方面,特洛伊木马造成的损害却可能远远高于普通的蠕虫和病毒。因此,检测和清除特洛伊木马是系统管理员的首要任务。
要反击恶意代码,最佳的武器是最新的、成熟的病毒扫描工具。扫描工具能够检测出大多数特洛伊木马,并尽可能地使清理过程自动化。许多管理员过分依赖某些专门针对特洛伊木马的工具来检测和清除木马,但某些工具的效果令人怀疑,至少不值得完全信任。不过,Agnitum的Tauscan确实称得上顶级的扫描软件,过去几年的成功已经证明了它的效果。
特洛伊木马入侵的一个明显证据是受害机器上意外地打开了某个端口,特别地,如果这个端口正好是特洛伊木马常用的端口,木马入侵的证据就更加肯定了。一旦发现有木马入侵的证据,应当尽快切断该机器的网络连接,减少攻击者探测和进一步攻击的机会。打开任务管理器,关闭所有连接到Internet的程序,例如Email程序、IM程序等,从系统托盘上关闭所有正在运行的程序。注意暂时不要启动到安全模式,启动到安全模式通常会阻止特洛伊木马装入内存,为检测木马带来困难。
大多数操作系统,当然包括Windows,都带有检测IP网络状态的Netstat工具,它能够显示出本地机器上所有活动的监听端口(包括UDP和TCP)。打开一个命令行窗口,执行“Netstat -a”命令就可以显示出本地机器上所有打开的IP端口,注意一下是否存在意外打开的端口(当然,这要求对端口的概念和常用程序所用的端口有一定的了解)。
显示了一次Netstat检测的例子,检测结果表明一个Back Orifice使用的端口(即31337)已经被激活,木马客户程序使用的是远程机器(ROGERLAP)上的1216端口。除了已知的木马常用端口之外,另外还要特别留意未知的FTP服务器(端口21)和Web服务器(端口80)。
但是,Netstat命令有一个缺点,它能够显示出哪些IP端口已经激活,但却没有显示出哪些程序或文件激活了这些端口。要找出哪个执行文件创建了哪个网络连接,必须使用端口枚举工具,例如,Winternals Software的TCPView Professional Edition就是一个优秀的端口枚举工具。Tauscan除了能够识别特洛伊木马,也能够建立程序与端口的联系。另外,Windows XP的Netstat工具提供了一个新的-o选项,能够显示出正在使用端口的程序或服务的进程标识符(PID),有了PID,用任务管理器就可以方便地根据PID找到对应的程序。
如果手头没有端口枚举工具,无法快速找出幕后肇事者的真正身份,请按照下列步骤操作:寻找自动启动的陌生程序,查找位置包括注册表、.ini文件、启动文件夹等。然后将机器重新启动进入安全模式,可能的话,用Netstat命令确认一下特洛伊木马尚未装入内存。接下来,分别运行各个前面找出的有疑问的程序,每次运行一个,分别用Netstat命令检查新打开的端口。如果某个程序初始化了一个Internet连接,那就要特别小心了。深入研究一下所有可疑的程序,删除所有不能信任的软件。
Netstat命令和端口枚举工具非常适合于检测一台机器,但如果要检测的是整个网络,又该怎么办?大多数入侵检测系统(Intrusion Detection System,IDS)都具有在常规通信中捕获常见特洛伊木马数据包的能力。FTP和HTTP数据具有可识别的特殊数据结构,特洛伊木马数据包也一样。只要正确配置和经常更新IDS,它甚至能够可靠地检测出经过加密处理的Back Orifice和SubSeven通信。请参见http://www.snort.org,了解常见的源代码开放IDS工具。
五、处理遗留问题
检测和清除了特洛伊木马之后,另一个重要的问题浮现了:远程攻击者是否已经窃取了某些敏感信息?危害程度多大?要给出确切的答案很困难,但你可以通过下列问题确定危害程度。首先,特洛伊木马存在多长时间了?文件创建日期不一定值得完全信赖,但可资参考。利用Windows资源管理器查看特洛伊木马执行文件的创建日期和最近访问日期,如果执行文件的创建日期很早,最近访问日期却很近,那么攻击者利用该木马可能已经有相当长的时间了。
其次,攻击者在入侵机器之后有哪些行动?攻击者访问了机密数据库、发送Email、访问其他远程网络或共享目录了吗?攻击者获取管理员权限了吗?仔细检查被入侵的机器寻找线索,例如文件和程序的访问日期是否在用户的办公时间之外?
在安全要求较低的环境中,大多数用户可以在清除特洛伊木马之后恢复正常工作,只要日后努力防止远程攻击者再次得逞就可以了。至于安全性要求一般的场合,最好能够修改一下所有的密码,以及其他比较敏感的信息(例如信用卡号码等)。
在安全性要求较高的场合,任何未知的潜在风险都是不可忍受的,必要时应当调整管理员或网络安全的负责人,彻底检测整个网络,修改所有密码,在此基础上再执行后继风险分析。对于被入侵的机器,重新进行彻底的格式化和安装。
特洛伊木马造成的危害可能是非常惊人的,由于它具有远程控制机器以及捕获屏幕、键击、音频、视频的能力,所以其危害程度要远远超过普通的病毒和蠕虫。深入了解特洛伊木马的运行原理,在此基础上采取正确的防卫措施,只有这样才能有效减少特洛伊木马带来的危害.
㈣ Linux下按装snort遇到了包依赖关系.
要么yum install snort;
要么yum install rpmlib libdnet.1 libpcap.so.1 libsfbpf.so.0,然s后rpm -ivh snort-2.9.2.3-1.RHEL6.I386.RPM
要不rpm -ivh snort-2.9.2.3-1.RHEL6.I386.RPM --nodeps装上,但不一定能用
㈤ linux下如何编译运行snort的源代码急急急
首先你查看源代码中是否有configure.或是install.sh或是install或是make之类的文件,一般的情况应该有configure,那么你先运行./configure,执行完后执行make,之后执行make install即可安装了
㈥ 配制snort的时候这个报错怎么解决
您好,是这样的:
1、安装一下libdnet试试看
2、编译snort的时候man看看是否有类似--with-libdnet之类的参数,这个报错就是找不到libdnet,
如果是64位系统的话find找一下,注意/lib和/lib64这两个lib库是否都有libdnet。
3、Snort 是一个开源的轻量级入侵监测系统,可以监测网络上的异常情况,给出报告;
安装新版本的iptables软件
可以到
http://www.netfilter.org
的网站下载最新版本的iptables源代码,目前最新的版本是1.2.9。
从网站上下载的源代码是“tar.bz2”格式的,编译源代码的第一步工作是解压缩,命令如下:
#/bin/tar xjvf iptables-1.2.9.tar.bz2
解压缩后,进入源代码的安装目录,开始编译:
# make install-devel KERNEL_DIR=/usr/include/linux/
如果一切正常,那么iptables应该编译好了,接下来可以进行安装了,安装命令非常简单:
#make install KERNEL_DIR=/usr/include/linux/
#setup->firewall configure->enable
#vi /etc/sysconfig/iptables ;add ssh (tcp port 22).etc...
service iptables start
chkconfig --level 35 iptables start
㈦ 有研究apache模块或是其源代码的吗进来一下!!!对我来说实在太难了。我是新手,没什么分。但问题很难
hp时需要用--with-apxs2指定apxs的位置,如果有mysql,需要用--with-mysql指定mysql的安装位置,写个全的给你吧:
编译apache前你这样:
./configure --prefix=/etc/httpd --enable-so --enable-rewrite --enable-mole-so --enable-ssl --with-ssl=/usr/share/ssl
编译php前你这样:
./configure --prefix=/usr/local/php --with-apxs2=/etc/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml
然后在/etc/httpd/conf/httpd.conf里加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php3
这样你启动了apache后,就可以直接支持php和mysql了。
以上的方法适合于apache2.0x和php4.x.x。
我就是这样配置和编译的。。。
另外,虚机团上产品团购,超级便宜
㈧ Snort入侵检测实用解决方案的内容简介
《网站入侵与脚本攻防修炼》从“攻”、“防”两个角度,通过现实中的入侵实例,并结合原理性的分析,图文并茂地展现网站入侵与防御的全过程。全书共分8章,系统地介绍网站入侵的全部过程,以及相应的防御措施和方法。其中包括网站入侵的常见手法、流行网站脚本入侵手法揭密与防范、远程攻击入侵网站与防范、网站源代码安全分析与测试等。《网站入侵与脚本攻防修炼》尤其对网站脚本漏洞原理进行细致的分析,帮助网站管理员、安全人员、程序编写者分析、了解和测试网站程序的安全性漏洞。《网站入侵与脚本攻防修炼》用图解的方式对网站入侵步骤及安全防范设置都进行详细的分析,并且对一些需要特别注意的安全事项进行重点提示,过程中还加入一些安全技巧。
随书所配光盘内容包括书中涉及的源代码、视频教程和演示动画,方便读者学习和参考。
《网站入侵与脚本攻防修炼》适合于网络安全技术爱好者、网络管理员、网站程序编写人员阅读,也可作为相关专业学生的学习及参考资料。
㈨ centos安装snort, libpcap的版本太低怎么办
这种企业大版本内的升级一般不会涉及重要软件的大版本升级,这是为了保证用户业务的连续性、兼容性。安装最新版的三种方法:1、使用源代码安装。但我说过:不用包管理器安装软件的99%都是耍流氓。2、使用软件提供...
㈩ 要做linux的入侵检测,要学那些知识有好的网站吗,最好是有源代码免费下载的
snort就是做入侵检测的,然后就可以把snort和防火墙做个联动什么的。