Potentielle NTP Amplification auf Cisco


Auf vielen Cisco Devices bekommt man per Default die Peerlist und eine Statusinformation, z.B. so:
-----------------
rwein@workhorse:~$ ntpq -c rv -p -n -4 <ziel>
associd=0 status=061c leap_none, sync_ntp, 1 event, clock_step,
version="4", processor="unknown", system="UNIX", leap=00, stratum=2,
precision=-22, rootdelay=3f?, rootdisp=3f, refid=193.171.23.163,
reftime=d71ee260.1033e4d1  Thu, May 15 2014  6:51:12.063,
clock=d71ee2a0.0c6cd79a  Thu, May 15 2014  6:52:16.048, peer=61776, tc=6,
mintc=3, offset=3f?, frequency=3f?, sys_jitter=3f, clk_jitter=3f,
clk_wander=3f
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*193.171.23.163  .4s.             1 u   64   64  377    0.000    0.000   0.000
+131.130.251.107 .4s.             1 u    4   64  377    0.000    0.000   0.000
193.171.23.244  193.171.23.163   2 u    5   64  377    0.000    0.000   0.000
rwein@workhorse:~$ 
-----------------


Das funktioniert meist auch in IPv6.


Das stellt zumindest Information Disclosure dar, bei ausreichend langer Peerlist kann man damit NTP Reflection Attacks fahren, wenn auch mit einer wesentlich kleineren Amplification.
Schlußendlich kann man damit auch Last auf der Control Plane triggern.


Stichproben zeigen, dass manchmal die ASBR von ACOnet-Teilnehmern antworten.


Abhilfe:

-----------------

ipv6 access-list no_ntp
permit ipv6 <peer-Netze> any 
deny ipv6 any any

 

access-list 8 permit <Peer-Netze>
access-list 8 deny any


ntp access-group peer 8
ntp access-group serve 8
ntp access-group serve-only 8
ntp access-group query-only 8
ntp access-group ipv6 peer no_ntp
ntp access-group ipv6 serve no_ntp
ntp access-group ipv6 serve-only no_ntp
ntp access-group ipv6 query-only no_ntp


-----------------

Der Ordnung halber der Disclaimer: Das hat für uns funktioniert, daher kein Anspruch auf Vollständigkeit und Funktion, wir können da keine Betriebsverantwortung von Ihnen übernehmen.






Zuletzt noch ein Hinweis: Als ich das auf SUP2T mit IOS 15.1 SY anwenden wollte, bin ich in zwei Bugs gelaufen:

CSCuj66318
CSCtl20300

Zusammenfassung: Die ACL ist hier wirkungslos, der Counter beim deny inkrementiert, die Antwort kommt trotzdem, weiters ist "ntp disable" auf den Interfaces offenbar wirkungslos.
Der proposed Workaround ist hier ntp authentication.

  • No labels