Misbruik van Cisco routers voor NTP DDoS Amplification voorkomen

Is uw router op tijd?
Veel routers hebben een ingebouwde RTC, oftewel Real-time Clock. Deze wordt vaak ook gevoed door een batterij zodat bij spanningsverlies de ingestelde tijd niet direct verloren gaat. Het is gebruikelijk om de klok van de router in te stellen. Dit kan bijvoorbeeld nuttig zijn bij troubleshooting van issues waarbij de syslog op de router wordt geraadpleegd om te achterhalen op welk tijdstip een issue heeft plaatsgevonden en is ook nodig bij het gebruik van digitale certificaten op de router. Omdat batterijen na verloop van tijd minder betrouwbaar worden, gebruikt men vaak ook NTP om de tijd te synchroniseren met een centrale NTP bron of server. De synchronisatie vindt plaats wanneer de router weer netwerkverbinding heeft na spanningsverlies. Dit proces wordt uitgevoerd door de NTP client op de router.

De duistere kant van NTP
Dat NTP ook ernstig misbruikt kan worden voor DDoS aanvallen zal weinig mensen zijn ontgaan. Door een kwetsbaarheid in het NTP protocol is het mogelijk om met kleine hoeveelheden data (verzoeken) veel grotere hoeveelheden data terug te krijgen (antwoorden). Men spreekt dan van een "Amplification Attack". De mate van amplificatie wordt bepaald door de hoeveelheid data die terug komt in het antwoord. Deze geamplificeerde DDoS aanvallen gaan meestal gepaard met vervalsing van het "source IP address" veld in de "IP packet header" van een IP datapakket. Dit veld wordt dan herschreven naar het IP adres van een systeem dat men wil aanvallen. Diepgaande inhoudelijke technische details vallen buiten de scope van deze tekst maar kunnen worden geraadpleegd via externe bronnen.

Cisco IOS software en NTP
In 2014 werd in Cisco IOS software en andere varianten van deze software (IOS XE, IOS XR, NX-OS) een kwetsbaarheid ontdekt waarbij de NTP service op apparaten, die deze software hebben als besturingssysteem, misbruikt kan worden voor geamplificeerde NTP DDoS aanvallen. Het gaat om kwetsbaarheid op basis van de zogenaamde "NTP Control Mode 7 packets". Cisco heeft software uitgebracht waarin deze kwetsbaarheid zou zijn verholpen. U moet in het bezit zijn van een geldig servicecontract met Cisco om deze software te kunnen downloaden.

NTP mode 6
Naast de NTP mode 7 kwetsbaarheid (tot 5500x amplificatie) bestaat er ook een kwetsbaarheid waarbij NTP mode 6 kan worden misbruikt (tot 40x amplificatie). Uiteraard moet een aanvaller vanwege de beperkte schaalbaarheid van NTP mode 6 aanval, veel meer kwetsbare systemen opnemen in de aanval wat de effectiviteit enigszins beperkt.

Met behulp van de linux tool 'ntpq' kan worden getest of een systeem reageert op NTP mode 6.

[iemand@host ~]# ntpq -c rv 10.10.10.10
associd=0 status=06f4 leap_none, sync_ntp, 15 events, freq_mode,
version="ntpd 4.1.1c-rc1@1.836 Mon Sep  3 11:11:56 KST 2012 (413)",
processor="ppc", system="Linux2.4.18_mvl30", leap=00, stratum=3,
precision=-18, rootdelay=26.354, rootdispersion=4112.253, peer=9861,
refid=20.20.20.20,
reftime=d6bf2df9.26b8b695  Mon, Mar  3 2014 17:36:09.151, poll=17,
clock=d8433d60.6e06961c  Tue, Dec 23 2014  2:01:20.429, state=4,
offset=-111.503, frequency=10.054, jitter=52.726, stability=0.277
[iemand@host ~]#

Cisco routers die specifieke versies van IOS (of een variant daarvan) als besturingssysteem hebben, reageren op NTP mode 6 query's. Dit doen zij ook als ze enkel als NTP client zijn ingesteld.

Beperken van NTP response op Cisco routers
De beste oplossing is de IOS software te upgraden naar een versie waarin deze kwetsbaarheden zijn verholpen. Als workaround kan er ook worden beperkt welke systemen NTP query's mogen versturen naar de router met behulp van zogenaamde "NTP access groups". Deze workaround geldt voor zowel NTP mode 7 als NTP mode 6 query's.

Voorbeeld IOS configuratie:

!
access-list 60 permit 213.144.235.2
access-list 60 permit 213.144.235.1
!
ntp access-group peer 60
!

Het gevolg van deze configuratie is dat alleen 213.144.235.2 en 213.144.235.1 query's mogen versturen naar de router. Het is wel belangrijk om ook de IP adressen van NTP servers in deze access-list op te nemen die eventueel zouden zijn ingesteld op de router omdat de router anders zelf geen NTP synchronisatie meer kan doen met NTP servers. Zou men nu 'ntpq' uitvoeren vanaf een systeem waarvan het IP adres niet expliciet is gedefinieerd, dan zou dit het resultaat moeten zijn:

[iemand@host ~]# ntpq -c rv 10.10.10.10
10.10.10.10: timed out, nothing received
***Request timed out

Referenties
NTP Access control: http://blog.internetworkexpert.com/2008/07/28/ntp-access-control/
Cisco Event Response: Network Time Protocol Amplification Distributed Denial of Service Attacks: http://www.cisco.com/web/about/security/intelligence/ERP-NTP-DDoS.html
IOS Configuration Fundamentals Command Reference: http://www.cisco.com/c/en/us/td/docs/ios/12_2/configfun/command/reference/ffun_r/frf012.html
NTP Version: https://www.shadowserver.org/wiki/pmwiki.php/Services/NTP-Version

Terug naar overzicht

Deel dit artikel via: