入侵检测系统,简称IDC,是一种基于硬件的防火墙,通过建控以知系统漏洞,黑客入侵手法并记录下来,通过分析数据包,安全的就通过。危险的就拦截,通过日志记录可轻松追查到入侵者的IP,用于取证。
入侵检测技术(IDS)可以被定义为对计算机和网络资源的恶意使用行为进行识别和相应处理的系统。包括系统外部的入侵和内部用户的非授权行为,是为保证计算机系统的安全而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术,是一种用于检测计算机网络中违反安全策略行为的技术。
入侵,就是恶意攻击者(俗称黑客),不经授权的控制、使用我方资源(读写文件、执行命令、控制网络资源等)
入侵本身是手段,GetShell只是开始,目的是为了之后对资源的控制和数据的窃取。而内鬼本身拥有合法的权限,可以合法接触敏感资产,但是基于工作以外的目的对这些资源进行非法处置,包括拷贝副本、转移外泄、篡改数据牟利等
根据特征进行模式匹配;(黑特征法,例如WebShell关键字匹配)
根据业务历史行为(生成基线模型),对入侵行为做异常对比;(非白既黑),如果业务的历史行为不够收敛,就用加固的手段对其进行收敛,再挑出不合规的小众异常行为。
针对一个明确的“目标”,它被访问的渠道可能是有限集,被攻击的必经路径也有限。一个可以成功入侵的 攻击方法 + 目标 合并起来,就称为一个“攻击向量”
因此,谈入侵检测模型效果时,需要先明确攻击向量,针对不同的攻击路径,采集对应的数据,才可能做对应的检测模型。比如,基于SSH登录后的SHELL命令采集,是不会让你发现Webshell的攻击的。而基于网络流量的采集数据,也不会让你获悉黑客是否在SSH后的SHELL环境里执行了什么文件切割打包的动作。
所谓APT,就是高级的持续威胁。既然是高级的,按照一般的描述,他们的木马是免杀的(不能假定我们可以发现这个木马)、他们的漏洞不公开的(不能假定我们可以加固抵抗)、他们的手法是高级的(不能假定这个手法在已知的范畴里)。
所以,实际上APT的意思就几乎等同于我们不能发现的入侵事件了。
但是,业界总还有APT检测产品、解决方案的厂商在混饭吃,他们是怎么做的呢?
- 说木马免杀的,他们用沙箱+人工分析,哪怕效率低一些,还是试图做出定性,并快速的把IOC(威胁情报)同步给其它客户,发现1例,全网都去排查。
- 说流量变形对抗的,他们用异常检测的模型,把一些不认识的可疑的IP关系、payload给识别出来——当然,识别出来之后,也要运营人员跟进得仔细才能定性。
- 说攻击手法高级的,他们还是会假定黑客就用鱼叉、水坑之类的已知手法去执行,然后在邮箱附件、PC终端等环节采集日志,对用户行为进行分析,UEBA试图寻找出用户异于平常的动作。
蜜罐其实就是一个“陷阱”程序,这个陷阱是指对人侵者而特意设计出来的-些伪造的系统漏洞。这些伪造的系统漏洞,在引诱入侵者扫描或攻击时,就会激活能够触发报警事件的软件。这样一来,网管就可以立即知晓有入侵者侵入了。
也就是说通过设置蜜罐程序,一旦操作系统中出现入侵事件,那么系统就可以很快发出报警。在许多大的网络中。一般都设计有专门的蜜罐程序。蜜罐程序一般分为两种:一种是只发现人侵者而不对其采取报复行动,另一种是同时采取报复行动。
0K,在进行了初步的了解后,请读者先来牢记两个英文的含义:
Honeypot:是一种故意存在着缺陷的虛拟系统,用来对黑客进行欺骗。
Honeynet:是一个很有学习价値的工具,它能使我们了解黑客人侵的攻击方式。
作为一个包含漏洞的系统,它可以帮助有特殊要求的网络模拟出一个或多个易受攻的主机,给xp系统下载黑客提供易受攻击的口标,让黑客误认为入侵成功,可以为所欲为了。使用蜜罐,主要是为了能够套住黑客,以便网络保安系统和人员能够将之“锁定”。
基于Ruby开发,面向GNU/Linux系统,且兼容Windows、MacOS、Android等系统。
主要用于帮助安全人员对网络、系统的安全性和稳定性进行测试。但它常被用作黑客工具套件,尤其是它提供的NetDoSTest(网络压力测试)。
根据上面选项,选择Network Tool。然后进行以下选择:
若有人连接则会显示
HONEYPOT ACTIVATED ON PORT 80其中80为域名
rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root权限登录到系统。
rootkit主要有两种类型:文件级别和内核级别,下面分别进行简单介绍。
/bin/login
程序都会运行,系统将通过/bin/login
来收集并核对用户的账号和密码,而rootkit就是利用这个程序的特点,使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者通过输入设定好的密码就能轻松进入系统。此时,即使系统管理员修改root密码或者清除root密码,攻击者还是一样能通过root用户登录系统。攻击者通常在进入Linux系统后,会进行一系列的攻击动作,最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据。在默认情况下,Linux中也有一些系统文件会监控这些工具动作,例如ifconfig命令,所以,攻击者为了避免被发现,会想方设法替换其他系统文件,常见的就是ls、ps、ifconfig、du、find、netstat等。如果这些文件都被替换,那么在系统层面就很难发现rootkit已经在系统中运行了。这就是文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么很可能系统已经遭受了rootkit入侵。检查件完整性的工具很多,常见的有Tripwire、 aide等,可以通过这些工具定期检查文件系统的完整性,以检测系统是否被rootkit入侵。
内核级rootkit主要依附在内核上,它并不对系统文件做任何修改,因此一般的检测工具很难检测到它的存在,这样一旦系统内核被植入rootkit,攻击者就可以对系统为所欲为而不被发现。目前对于内核级的rootkit还没有很好的防御工具,因此,做好系统安全防范就非常重要,将系统维持在最小权限内工作,只要攻击者不能获取root权限,就无法在内核中植入rootkit。
chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,那么依赖的系统命令可能也已经被入侵者替换,此时chkrootkit的检测结果将变得完全不可信。为了避免chkrootkit的这个问题,可以在服务器对外开放前,事先将chkrootkit使用的系统命令进行备份。
RKHunter是一款专业的检测系统是否感染rootkit的工具,它通过执行一系列的脚本来确认服务器是否已经感染rootkit。在官方的资料中,RKHunter可以作的事情有:
MD5校验测试,检测文件是否有改动
检测rootkit使用的二进制和系统工具文件
检测特洛伊木马程序的特征码
检测常用程序的文件属性是否异常
检测系统相关的测试
检测隐藏文件
检测可疑的核心模块LKM
检测系统已启动的监听端口
从官网上下载安装,安装完成:
注:上图中的错误并不影响下面的操作
cd ..
cp -r chkrootkit-* /usr/local/chkrootkit
拷贝一份文件
rm -rf chkrootkit-*
安装完的chkrootkit程序位于/usr/local/chkrootkit目录下,执行如下命令即可显示chkrootkit的详细用法,如图下所示:
/usr/local/chkrootkit/chkrootkit -h
下面是为上图的各参数进行解释,含义如图下所示:
-h 显示帮助信息
-v 显示版本信息
-l 显示测试内容
-d debug模式,显示检测过程的相关指令程序
-q 安静模式,只显示有问题的内容
-x 高级模式,显示所有检测结果
-r dir设置指定的目录为根目录
-p dir1:dir2:dirN指定chkrootkit检测时使用系统命令的目录
chkrootkit的使用比较简单,直接执行chkrootkit -x进入高级模式,显示所有检测结果,检测结果如图下所示:
/usr/local/chkrootkit/chkrootkit -x
官网:http://www.rootkit.nl/projects/rootkit_hunter.html
解压之后进入目录,对文件进行编译,结果如图下所示:
cd rkhunter-1.4.6
./installer.sh --layout default --install
-c, --check必选参数,表示检测当前系统
–configfile 使用特定的配置文件
–cronjob作为cron任务定期运行
–sk, --skip-keypress自动完成所有检测,跳过键盘输入
–summary显示检测结果的统计信息
–update检测更新内容
-V, --version显示版本信息
–versioncheck检测最新版本
下面是通过rkhunter对某个系统的检测,结果如图下所示:
执行:/usr/local/bin/rkhunter -c
Suricata是一个高性能的网络IDS,IPS和网络安全监控引擎。
IPS:入侵预防系统(IPS: Intrusion Prevention System)是电脑网络安全设施,是对防病毒软件(Antivirus Programs)和防火墙(Packet Filter, Application Gateway)的补充。 入侵预防系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。是新一代的侵入检测系统(IDS)。
Suricata是一个网络入侵检测和防护引擎,由开放信息安全基金会及其支持的厂商开发。该引擎是多线程的,内置支持IPV6。可加载现有的Snort规则和签名,支持Barnyard 和 Barnyard2 工具.
IDS:英文“Intrusion Detection Systems”的缩写,中文意思是“入侵检测系统”。依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。
Barnyard:知名的开源IDS的日志工具,具有快速的响应速度,优异的数据库写入功能,是做自定义的入侵检测系统不可缺少的插件。
随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要。然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的入侵检测越来越困难。其中一种提升入侵检测系统性能的途径是多线程入侵检测系统,它将 CPU 密集型的深度包检测工作并行的分配给多个并发任务来完成。这样的并行检测可以充分利用多核硬件的优势来轻松提升入侵检测系统的吞吐量。在这方面有两个知名的开源项目,分别是 Suricata 和 Bro.
apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config
wget http://www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz
cd suricata-2.0.8
./configure --sysconfdir=/etc --localstatedir=/var
make && make install
ls /root/apps/rules
ldconfig
vi /etc/suricata/suricata.yaml
/usr/local/bin/suricata --list-runmodes
2.将主目录suricata-2.0.8/rlues下的tls-events.rules,复制到/etc/suricata/rules下
指令:
cd suricata-2.0.8/rules/
cp tls-events.rules /etc/suricata/rules
rm /etc/suricata/rules
mkdir /etc/suricata/rules
cp /root/apps/rules/* /etc/suricata/rules
再将本身自带的规则也添加到/etc/suricata/rules目录。
指令:cp /root/suricata-2.0.8/rules/* /etc/suricata/rules/
将 Suricata 运行起来,结果如图所示:
指令:/usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal
注:图中的警告可以忽略,它只是意味着你的网卡不支持LRO。
查看ip地址并创建hongya用户和密码。
ifconfig
useradd hongya
passwd hongya
登录目标机,进行ssh连接操作机。
指令:ssh [email protected]
执行完 按ctrl+c结束 然后vi查看/var/log/suricata/fast.log
日志文件,因为suricata检测日志存储在/var/log/suricata
目录下,结果如图下所示:
指令:vi /var/log/suricata/fast.log
AIDE的基本功能
对CentOS来说,最流行的入侵检测系统之一就是AIDE。这种系统可以创建数据库,用来核实你机器上文件的完整性。AIDE的主要功能如下:
支持md5、sha1、rmd160、tiger、crc32、sha256和sha512摘要算法
支持这些文件类型:权限、Inode、UID、GID、链接名称、大小、块数量、链接数量、mtime、ctime和atime等文件属性
支持这些文件系统属性:Posix ACL、SELinux、XAttrs和Extended
支持正则表达式,可以选择性地添加或排除文件/目录
支持GZIP数据库压缩
安装指令:yum install aide
初始化:aide --init
运行检查,初始化数据库后,它会创建/var/lib/aide/aide.bb.new.gz,执行命令aide --check
进行检查,结果如图所示:
从上图中我们可以看出命令失败了,那是因为,要想使用AIDE来运行检查,数据库必须位于/var/lib/aide/aide.db.gz.。为了解决这个问题,你得使用这个命令更名刚创建的数据库,然后在运行检查结果如图下所示:
执行命令:mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
再执行:aide --check
注:我们这里面的数据库没有修改东西,所以全部文件都匹配,否则会生成一份报告
不妨测试一下AIDE的准确性。创建假文件/usr/bin/aidetest,结果如图所示:
touch /usr/bin/aidetest
cd /usr/bin