
Von Kprobe-Technologie Open Source Hostbasiertes Intrusion Detection System (HIDS), von E_Bwill.
--Der Name dieses Projekts wurde vom Film "The Matrix" inspiriert
English | 简体中文
Technisch gesehen ist AgentSmith-HIDS kein Host-basiertes Intrusion Detection System (HIDS), da es keine Regel-Engine und Erkennungsfunktionen besitzt. Es kann jedoch als leistungsstarker "Host-Informationssammlungs-Agent" als Teil Ihrer eigenen HIDS-Lösung verwendet werden. Die Vollständigkeit der Informationen, die von diesem Agenten gesammelt werden können, war eines der wichtigsten Kriterien bei der Entwicklung dieses Projekts. Daher wurde es so konzipiert, dass es im Kernel-Stack arbeitet und einen großen Vorteil gegenüber Anwendungen im User-Stack hat, wie z. B.:
| Quelle | Knotenname |
|---|---|
| Host | hostname |
| Docker | Container-Name |
| k8s | Pod-Name |
Erreicht durch Hooking von sys_execve()/sys_execveat()/compat_sys_execve()/compat_sys_execveat(), Beispiel:
{
"uid":"0",
"data_type":"59",
"run_path":"/tmp",
"exe":"/opt/ltp/testcases/bin/growfiles",
"argv":"growfiles -W gf26 -D 0 -b -i 0 -L 60 -u -B 1000b -e 1 -r 128-32768:128 -R 512-64000 -T 4 -f gfsmallio-35861 -d /tmp/ltp-Ujxl8kKsKY ",
"pid":"35861",
"ppid":"35711",
"pgid":"35861",
"tgid":"35861",
"comm":"growfiles",
"nodename":"test",
"stdin":"/dev/pts/1",
"stdout":"/dev/pts/1",
"sessionid":"3",
"sip":"192.168.165.1",
"sport":"61726",
"dip":"192.168.165.128",
"dport":"22",
"sa_family":"1",
"pid_tree":"1(systemd)->1384(sshd)->2175(sshd)->2177(bash)->2193(fish)->35552(runltp)->35711(ltp-pan)->35861(growfiles)",
"tty_name":"pts1",
"socket_process_pid":"2175",
"socket_process_exe":"/usr/sbin/sshd",
"SSH_CONNECTION":"192.168.165.1 61726 192.168.165.128 22",
"LD_PRELOAD":"/root/ldpreload/test.so",
"user":"root",
"time":"1579575429143",
"local_ip":"192.168.165.128",
"hostname":"test",
"exe_md5":"01272152d4901fd3c2efacab5c0e38e5",
"socket_process_exe_md5":"686cd72b4339da33bfb6fe8fb94a301f"
}
Erreicht durch Hooking von sys_bind(), Beispiel:
{
"uid":"0",
"data_type":"49",
"sa_family":"2",
"exe":"/usr/bin/python2.7",
"pid":"109640",
"ppid":"215496",
"pgid":"109640",
"tgid":"109640",
"comm":"python",
"nodename":"n225-117-018",
"sip":"0.0.0.0",
"sport":"8000",
"res":"0",
"sessionid":"30",
"user":"root",
"time":"1587540231936",
"local_ip_str":"10.225.117.18",
"hostname_str":"n225-117-018",
"exe_md5":"4f458165a2129ba549f1b6605ee87e74"
}
Erreicht durch Hooking von tcp_v4_connect()/tcp_v6_connect()/ip4_datagram_connect()/ip6_datagram_connect(), Beispiel:
{
"uid":"0",
"data_type":"42",
"sa_family":"2",
"connect_type":"4",
"dport":"1025",
"dip":"180.101.49.11",
"exe":"/usr/bin/ping",
"pid":"6294",
"ppid":"1941",
"pgid":"6294",
"tgid":"6294",
"comm":"ping",
"nodename":"test",
"sip":"192.168.165.153",
"sport":"45524",
"res":"0",
"sessionid":"1",
"user":"root",
"time":"1575721921240",
"local_ip":"192.168.165.153",
"hostname":"test",
"exe_md5":"735ae70b4ceb8707acc40bc5a3d06e04"
}
Erreicht durch Hooking von udp_recvmsg()/udpv6_recvmsg(), Beispiel: