驭龙hids入侵检测功能初探
一、进程实时监控
通过hook技术在windows和Linux操作系统的ring0级别进行监控进程和命令执行。
Windows:
NT式驱动服务开机自启动:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
net start pro
二、网络链接实时监控
通过pcap(gopcap)进行对网络链接进行实时抓包。
Windows:装WinPcap
Linux:装libpcap
三、文件操作实时监控
通过inotify(fsnotify)监控磁盘文件变化。
四、ES索引类型字段
索引:monitor2018_04
类型:connection、file、loginlog、process
字段:data.action、data.command、data.dir、data.hash、data.hostname、data.info、data.local、data.name、data.parentname、data.path、data.pid、data.ppid、data.protocol、data.remote、data.status、data.user、data.username、ip、time
举例:
_index | _type | _id | _score | ip | data.remote | data.status | data.username | time | data.dir | data.local | data.name | data.pid | data.protocol | data.action | data.hash | data.path | data.user | data.command | data.info | data.parentname | data.ppid |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
monitor2018_04 | loginlog | AWKodaW5ZT0_Kn0N9YOy | 1 | 192.168.1.1 | 0 | true | Administrator | 2018-02-17T18:37:44+07:00 | |||||||||||||
monitor2018_04 | connection | AWKpDlutZT0_Kn0N9Ydd | 1 | 192.168.1.1 | 182.118.40.31 | 2018-04-09T14:18:06+08:00 | out | 192.168.1.1:54080 | LiveUpdate360.exe | 3524 | tcp | ||||||||||
monitor2018_04 | file | AWKo3gdkZT0_Kn0N9Ycu | 1 | 192.168.1.1 | 2018-04-09T13:25:21+08:00 | WRITE | 899a5bf1669610cdb78d322ac8d9358b | c:\windows\sysnative\Packet.dll | Administrators | ||||||||||||
monitor2018_04 | process | AWKzeH6oZT0_Kn0N9Y0x | 1 | 192.168.1.1 | 2018-04-11T14:49:43+08:00 | cmd.exe | 2380 | sqlservr.exe | 1392 |
五、MongoDB数据库
1 | >show collections |
字段数据举例:
client:
1 | db.client.find() |
config:
1 | db.config.find() |
file:
1 | > db.file.find() |
info:
1 | > db.info.findOne() |
notice:
1 | > db.notice.findOne() |
rules:
1 | { |
server:
1 | { |
statistics:
1 | { "_id" : ObjectId("5aca09915e2ba50ef1ac00ab"), "uptime" : ISODate("2018-04-11T12:35:13.782Z"), "type" : "loginlog", "info" : "192.168.1.6", "count" : 30, "server_list" : [ "192.168.1.4", "192.168.1.5" ]} |
六、入侵检测功能点和维度
[server]->ScanMonitorThread(安全检测线程)->Run(开始检测)->BlackFilter(黑名单)->WhiteFilter(白名单)->Rules(规则引擎)->Intelligence(威胁情报)
1. webshell写入行为
Linux目前支持Apache和nginx的目录自动监控:
apachectl -V
nginx -V
Windows目前支持IIS6和IIS7:
先在初始化时获取进程列表存库,如果获取到web进程,并web标签入库,则收集web目录,并进行监控:
x32
iis6配置文件:%SystemDrive%\WINDOWS\SysNative\inetsrv\MetaBase.xml
iis7配置文件:%SystemDrive%\Windows\SysNative\inetsrv\config\applicationHost.config
x64
iis6配置文件:%SystemDrive%\WINDOWS\System32\inetsrv\MetaBase.xml
iis7配置文件:%SystemDrive%\Windows\System32\inetsrv\config\applicationHost.config
识别模式:
1)文件监控,通过监控文件WRITE行为,正则匹配文件的后缀类型为黑名单中的后缀进行匹配。bypass 中文.aspx
2)进程监控,父进程是web服务,执行子进程是黑名单进程中的进程名字或命令。
2.异常登录、网络连接行为
统计第n次出现的登录ip、登录用户名告警,原则上MongoDB的statistics表里loginlog(登录的ip)、userlist(登录的用户)、listening(ip监听端口)、crontab(计划任务)、process(进程名字)、startup(启动项名字)、service(服务名字)都存在count字段,都可以通过自定义规则进行告警。
识别模式:
1)进程监控
2)文件监控,登录日志windows《驭龙 EventLog 读取模块的迭代历程》,Linux 登录成功(解析/var/log/wtmp)、登录失败lastb命令;
3)网络流量
3.异常命令调用行为
《Linux System Calls Hooking Method Summary》、《如何在Linux下监控命令执行》、《「驭龙」Linux执行命令监控驱动实现解析》
在驭龙hids官方git上的演示sql注入和命令执行,实际上跟我们平时理解的waf有所区别,没有对web请求进行监控。而是通过规则定义了sqlsrver.exe启动子进程为cmd.exe的调用关系,而在sqlserver上通过xp_cmdshell执行命令就是通过cmd间接执行其他命令的。
在3gstudent和evi1cg.me的博客上有关于win下文件下载、命令执行和sqlserver执行命令的一些姿势,如果理清楚进程的调用关系,相信你一定可以绕过某些安全软件的动作拦截,包括msf的payload去开shell等。
识别模式:
1)进程监控,通过规则定义进程调用关系进行告警
小结
没有小结~
原文作者: pirogue
原文链接: http://pirogue.org/2018/04/20/yulong-hids/
版权声明: 转载请注明出处(必须保留作者署名及链接)