xsec-traffic为一款轻量级的恶意流量分析程序,包括传感器sesor和服务端server2个组件。
sesorsesor负责采集流量,然后发到server端,由server来检测是否为恶意流量。
sesor支持采集TCP和UDP的五元组信息支持采集http请求信息支持采集同一局域网中其他机器的以上信息Serverserver端的功能为接收各sesor采集到的流程并判断是否为恶意流量,其中:
IP五元组信息是通过查询恶意IP库来判断的http请求数据的检测还在开发中(暂时会把所有取到的请求信息保存起来,理论上可支持检测所有来自WEB端的攻击类型,如注入、xss等)使用说明Serverserver需要mogodb的支持,在启动前需要事先准备一个有读写权限的mogodb账户,然后修改当前目录下的配置文件cof/app.ii,样例如下:
HTTP_HOST=108.61.223.105HTTP_PORT=4433DEBUG_MODE=TRUESECRET_KEY=xsec_secret_key[EVIL-IPS]API_URL="https://www.xsec.io:8000"[database]DB_TYPE=mogodbDB_HOST=127.0.0.1DB_PORT=27017DB_USER=xsec-trafficDB_PASS=7160c452342340787fasdfa5b0a9fe0DB_NAME=xsec-trafficHTTP_HOST和HTTP_PORT表示server端监听的地址及端口DEBUG_MODE表示以debug模式运行SECRET_KEY为sesor与server通讯用的密钥EVIL-IPS部分为恶意IP库的地址database部分为mogodb的配置启动命令如下:
root@xsec:/data/golag/src/xsec-traffic/server#./server[0000]INFOxsectrafficserver:DBType:mogodb,Coecterrstatus:<il>NAME:xsectrafficserver-xsectrafficserverUSAGE:server[globaloptios]commad[commadoptios][argumets...]VERSION:20171210AUTHOR:etxfly<x@xsec.io>COMMANDS:servestartupxsectrafficserverhelp,hShowsalistofcommadsorhelpforoecommadGLOBALOPTIONS:--debug,-ddebugmode--servervalue,-svaluehttpserveraddress--portvalue,-pvaluehttpport(default:1024)--help,-hshowhelp--versio,-vprittheversioroot@xsec:/data/golag/src/xsec-traffic/server#./serverserve[0000]INFOxsectrafficserver:DBType:mogodb,Coecterrstatus:<il>[0000]INFOxsectrafficserver:ruservero108.61.223.105:4433serve参数表示直接启动server服务器。sesorsesor端也支持配置,修改当前目前下的cof/app.ii即可,详细的配置项如下:
;SesorglobalcofigDEVICE_NAME=e0DEBUG_MODE=trueFILTER_RULE=tcpudp[server]API_URL=https://108.61.223.105:4433API_KEY=xsec_secret_keyDEVICE_NAME表示需要采集流量的网卡名DEBUG_MODE为Debug模式,正式使用时可关掉FILTER_RULE为流量抓取规则,与wireshark的规则一致sesor的命令行如下:
$./xsec_sesor[0000]INFOxsectrafficsesor:Deviceame:[e0],ipaddr:[192.168.31.204],Debugmode:[true]NAME:xsectrafficsesor-xsectrafficsesor,SupportormaladarpspoofmodesUSAGE:xsec_sesor[globaloptios]commad[commadoptios][argumets...]VERSION:20171210AUTHOR(S):etxfly<x@xsec.io>COMMANDS:startstartupxsectrafficsesorarpstartuparpspoofmodehelp,hShowsalistofcommadsorhelpforoecommadGLOBALOPTIONS:--debug,-ddebugmode--filtervalue,-fvaluesettigfilters--legthvalue,-lvaluesettigsapshotLegth(default:1024)--targetvalue,-tvaluetargetipaddress--gatewayvalue,-gvaluegatewayipaddress--help,-hshowhelp--versio,-vprittheversiostart表示直接只采集本地的流量arp模式为arpspoof模式,可以采集同一局域网下的其他机器的流量,详细的命令行如下:sudo./xsec_sesorarp-t192.168.31.215-g192.168.31.1在启动前需要安装libpcap库并将内核参数设为允许转发,以下为3种OS的安装、设置方法:
#OSXsudosysctlet.iet.ip.forwardig=1#FreeBSDsudosysctl-wet.iet.ip.forwardig=1#Liuxsudosysctl-wet.ipv4.ip_forward=1#Fedorasudodfistall-ylibpcap-devel#Debia/Ubutusudoapt-getistall-ylibpcap-dev#OSXbrewistalllibpcap#FreeBSDsudopkgistalllibpcap需要指定采集的目标与网关,其中采集的目标的语法与map的一致,支持以下几种写法:
10.0.0.110.0.0.0/2410.0.0.*10.0.0.1-1010.0.0.1,10.0.0.5-10,192.168.1.*,192.168.10.0/24实战演练启动server端以正常模式启动sesor端启动后可以看到我本地电脑的有道云音乐正在对外发包。
在小米路由器中查到我Mix2手机的IP地址如下:将我的Mix2手机手工加到恶意IP库中以Arp模式启动,用电脑采集同一la下Mix2手机的流量可以通过server的简易后台看到检测结果:以下为http全部的请求记录,等检测功能开发完后会改为只记录疑似攻击的请求。参考资料https://github.com/google/gopacket/https://github.com/malfukt/arpfoxhttps://www.devdugeo.com/cotet/packet-capture-ijectio-ad-aalysis-gopacket
评论