xsec-traffic为一款轻量级的恶意流量分析程序,包括传感器sensor和服务端server2个组件。
sensorsensor负责采集流量,然后发到server端,由server来检测是否为恶意流量。
sensor支持采集TCP和UDP的五元组信息支持采集http请求信息支持采集同一局域网中其他机器的以上信息Serverserver端的功能为接收各sensor采集到的流程并判断是否为恶意流量,其中:
IP五元组信息是通过查询恶意IP库来判断的http请求数据的检测还在开发中(暂时会把所有取到的请求信息保存起来,理论上可支持检测所有来自WEB端的攻击类型,如注入、xss等)使用说明Serverserver需要mongodb的支持,在启动前需要事先准备一个有读写权限的mongodb账户,然后修改当前目录下的配置文件conf/app.ini,样例如下:
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=mongodbDB_HOST=127.0.0.1DB_PORT=27017DB_USER=xsec-trafficDB_PASS=7160c452342340787fasdfa5b0a9fe0DB_NAME=xsec-trafficHTTP_HOST和HTTP_PORT表示server端监听的地址及端口DEBUG_MODE表示以debug模式运行SECRET_KEY为sensor与server通讯用的密钥EVIL-IPS部分为恶意IP库的地址database部分为mongodb的配置启动命令如下:
root@xsec:/data/golang/src/xsec-traffic/server#./server[0000]INFOxsectrafficserver:DBType:mongodb,Connecterrstatus:<nil>NAME:xsectrafficserver-xsectrafficserverUSAGE:server[globaloptions]command[commandoptions][arguments...]VERSION:20171210AUTHOR:netxfly<x@xsec.io>COMMANDS:servestartupxsectrafficserverhelp,hShowsalistofcommandsorhelpforonecommandGLOBALOPTIONS:--debug,-ddebugmode--servervalue,-svaluehttpserveraddress--portvalue,-pvaluehttpport(default:1024)--help,-hshowhelp--version,-vprinttheversionroot@xsec:/data/golang/src/xsec-traffic/server#./serverserve[0000]INFOxsectrafficserver:DBType:mongodb,Connecterrstatus:<nil>[0000]INFOxsectrafficserver:runserveron108.61.223.105:4433serve参数表示直接启动server服务器。sensorsensor端也支持配置,修改当前目前下的conf/app.ini即可,详细的配置项如下:
;SensorglobalconfigDEVICE_NAME=en0DEBUG_MODE=trueFILTER_RULE=tcpudp[server]API_URL=https://108.61.223.105:4433API_KEY=xsec_secret_keyDEVICE_NAME表示需要采集流量的网卡名DEBUG_MODE为Debug模式,正式使用时可关掉FILTER_RULE为流量抓取规则,与wireshark的规则一致sensor的命令行如下:
$./xsec_sensor[0000]INFOxsectrafficsensor:Devicename:[en0],ipaddr:[192.168.31.204],Debugmode:[true]NAME:xsectrafficsensor-xsectrafficsensor,SupportnormalandarpspoofmodesUSAGE:xsec_sensor[globaloptions]command[commandoptions][arguments...]VERSION:20171210AUTHOR(S):netxfly<x@xsec.io>COMMANDS:startstartupxsectrafficsensorarpstartuparpspoofmodehelp,hShowsalistofcommandsorhelpforonecommandGLOBALOPTIONS:--debug,-ddebugmode--filtervalue,-fvaluesettingfilters--lengthvalue,-lvaluesettingsnapshotLength(default:1024)--targetvalue,-tvaluetargetipaddress--gatewayvalue,-gvaluegatewayipaddress--help,-hshowhelp--version,-vprinttheversionstart表示直接只采集本地的流量arp模式为arpspoof模式,可以采集同一局域网下的其他机器的流量,详细的命令行如下:sudo./xsec_sensorarp-t192.168.31.215-g192.168.31.1在启动前需要安装libpcap库并将内核参数设为允许转发,以下为3种OS的安装、设置方法:
#OSXsudosysctlnet.inet.ip.forwarding=1#FreeBSDsudosysctl-wnet.inet.ip.forwarding=1#Linuxsudosysctl-wnet.ipv4.ip_forward=1#Fedorasudodnfinstall-ylibpcap-devel#Debian/Ubuntusudoapt-getinstall-ylibpcap-dev#OSXbrewinstalllibpcap#FreeBSDsudopkginstalllibpcap需要指定采集的目标与网关,其中采集的目标的语法与nmap的一致,支持以下几种写法:
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端以正常模式启动sensor端启动后可以看到我本地电脑的有道云音乐正在对外发包。
在小米路由器中查到我Mix2手机的IP地址如下:将我的Mix2手机手工加到恶意IP库中以Arp模式启动,用电脑采集同一lan下Mix2手机的流量可以通过server的简易后台看到检测结果:以下为http全部的请求记录,等检测功能开发完后会改为只记录疑似攻击的请求。参考资料https://github.com/google/gopacket/https://github.com/malfunkt/arpfoxhttps://www.devdungeon.com/content/packet-capture-injection-and-analysis-gopacket
评论