NTP DoS atakos


Pastaraisiais metais vis svarbesnės tampa ypač pastebimos amplifikuotų reflected DoS atakų tendencijos. Šios atakos pasinaudojant IP protokolo adreso falsifikacija (IP spoofing) paprastai išnaudoja senus ir neapsaugotus servisus, kurie leidžia neautentifikuotam klientui gauti didelio srauto atsakymą į palyginti mažas užklausas be jokio ryšio užtvirtinimo (pvz. „connectionless“ protokolu – UDP). Iš šio atakos principo ir yra kilęs terminas tinklo srauto „amplifikacija“. Šiuo metu žinomiausi tokių servisų pavyzdžiai yra atvirai sukonfigūruoti DNS bei viešai prieinami SNMP serveriai. Šie serveriai yra nuolat masiškai naudojami įgyvendinant planines DDoS atakas.

Globaliems tinklams nuolat augant ir didėjant rizika tampa labiau apčiuopiama. Sistemų administratoriai gali padėti užkirsti kelią šioms problemoms ribodami arba visai išjungdami tokio tipo servisus pagal saugias rekomendacijas. LITNET tinkle mes neseniai pastebėjome įdomesnę bei mažiau populiarią NTP ataką, kurios metu minėtu būdu atakoms vykdyti buvo bandyta išnaudoti mūsų 1/2 NTP Stratum serverius. Tinklo srautų statistika tarp vieno iš NTP serverių ir puolamos aukos atrodė taip:

Date flow start           Duration   Proto   Src IP Addr:Port Dst IP Addr:Port  Flags    Tos   Packets  Bytes
2013-10-21 08:21:17.630   147.610    UDP     X.X.X.X:123 -> Y.Y.Y.Y:25565       ......   0     2.4 M    1.1 G
2013-10-21 08:21:17.630   147.600    UDP     Y.Y.Y.Y:25565 -> X.X.X.X:123       ......   128   24100    867600

Internete informacijos apie šią specifinę NTP ataką gan mažai. Po mažo tyrimo išaiškėjo, kad ataka naudojo NTP protokole esančią MONLIST užklausą, grąžinančią istoriją apie paskutinius NTP klientus. Atakos metu maži 8 baitų UDP paketai su falsifikuotu IP adresu yra pradedami siųsti į pažeidžiamą NTP serverį. Savo ruožtu serveris į kiekvieną paketą atsako daug didesniais atsakymais, rezultate įgyvendinama DoS ataka. Šiuo metu geriausias žinomas sprendimas yra atsinaujinti NTP serverį į 4.2.7p26 versiją, kurioje MONLIST užklausa yra pakeista saugia MRUNLIST funkcija. Ši funkcija naudoja papildomą saugumo mechanizmą, užtikrinantį, kad su užklausos paketu gautas IP adresas atitinka atsakymo laukiantį kliento adresą. Jeigu esate NTP serviso administratorius, šis atnaujinimas yra rekomenduotinas.

Įvykdžius komandas apačioje galėsite pasitikrinti ar lokalus NTP serveris yra pažeidžiamas:

ntpq -c rv
ntpdc -c sysinfo
ntpdc -n -c monlist

Serverį taip pat galima patikrinti nmap scenarijumi ntp-monlist:

nmap -sU -pU:123 -Pn -n --script=ntp-monlist ntp.serveris.lt

Neturint galimybės atsinaujinti, galima uždrausti statistines užklausas /etc/ntp.conf byloje pridedant šias eilutes (ši konfigūracija gali būti pritaikoma ir atskiriems tinklo segmentams):

restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

Tokio pobūdžio atakos paprastai yra sustiprinamos vienu metu naudojant ne vieną pažeidžiamą serverį, kas sukuria savotišką „botnet“ veikimo įvaizdį. Be NTP ir kitų minėtų servisų internete egzistuoja daugybė privačių, bet viešai prieinamų protokolų, kurie gali būti pažeidžiami šio tipo atakoms.

LITNET CERT nuolat stebi tinklo srautus ir siunčia sistemų administratoriams konkrečias rekomendacijas. Šiuo metu automatiškai aptinkami ir apdorojami su atvirais DNS servisais susiję incidentai. Aktyvaus tinklo servisų skenavimo priemonės (pvz. Nessus) leidžia atlikti išsamesnį auditą. Sistemų administratoriams reikėtų labiau atkreipti dėmesį į šias rekomendacijas, nes tokie pažeidžiami servisai ne tik nereikalingai apkrauna serverį ir tinklą bei kenkia reputacijai, bet neretai būna susiję ir su rimtesniais įsilaužimais į sistemą bei virusų veikla.

daugiau informacijos:

http://openntpproject.org/

http://www.kb.cert.org/vuls/id/348126