The BGP FlowSpec extension (RFC 5575: Dissemination of Flow Specification Rules) provides a method of transmitting traffic filters that selectively block the attack traffic while allowing normal traffic to pass. BGP FlowSpec support has recently been added to sFlow-RT and this article demonstrates the new capability.
This demonstration uses the test network described in Remotely Triggered Black Hole (RTBH) Routing. The network was constructed using free components: VirtualBox, Cumulus VX, and Ubuntu Linux. BGP FlowSpec on white box switch describes how to implement basic FlowSpec support on Cumulus Linux.
The following flowspec.js sFlow-RT script detects and blocks UDP-Based Amplification attacks:
var router = '10.0.0.141'; var id = '10.0.0.70'; var as = 65141; var thresh = 1000; var block_minutes = 1; setFlow('udp_target',{keys:'ipdestination,udpsourceport',value:'frames'}); setThreshold('attack',{metric:'udp_target', value:thresh, byFlow:true}); bgpAddNeighbor(router,as,id,{flowspec:true}); var controls = {}; setEventHandler(function(evt) { var key = evt.flowKey; if(controls[key]) return; var now = (new Date()).getTime(); var [ip,port] = key.split(','); var flow = { 'match':{ 'protocol':'=17', 'source-port':'='+port, 'destination': ip }, 'then': {'traffic-rate':0} }; controls[key] = {time:now, target: ip, port: port, flow:flow}; bgpAddFlow(router, flow); logInfo('block target='+ip+' port='+port); },['attack']); setIntervalHandler(function() { var now = (new Date()).getTime(); for(var key in controls) { if(now - controls[key].time < 1000 * 60 * block_minutes) continue; var control = controls[key]; delete controls[key]; bgpRemoveFlow(router,control.flow); logInfo('allow target='+control.target+' port='+control.port); } });See Writing Applications for more information on sFlow-RT scripting and APIs.
Start sFlow-RT:
env "RTPROP=-Dscript.file=flowspec.js -Dbgp.start=yes" ./start.shSimulate a DNS amplification attack using hping:
sudo hping3 --flood --udp -k -s 53 172.16.140.1The screen capture shows the results. The left of the chart shows a simulated attack without mitigation. The attack reaches a sustained rate 30,000 packets per seconds. The right half of the chart shows an attack with automatic mitigation enabled. The target IP address and UDP source port associated with the amplification attack are immediately identified and a BGP FlowSpec filter is pushed to the upstream service provider router, sp-router, where the attack traffic is immediately dropped.
this script run on open daylight uaing sflow-rt ti mitigation hping3 attack??
ReplyDelete