Kuinka NTP toimii
Segalin laki sanoo
Kellolla varustettu mies tietää kellonajan Mies, jolla on kaksi kelloa, ei ole koskaan varma.
Tietojenkäsittelytieteen tutkija David L. Mills loi NTP: n 1980-luvun alkupuolella synkronoimaan tietokoneen kellot tavalliseen aikaviitteeseen. NTP: n perustamisesta lähtien ryhmä vapaaehtoisia NTP-pooliprojekti on pitänyt yllä suurta, julkisesti saatavilla olevaa ”virtuaalista aikapalvelinkokonaisuutta, joka tarjoaa luotettavaa, helppokäyttöistä NTP-palvelua miljoonille asiakkaille” ympäri maailmaa monille Linux-jakelijoille ja verkkolaitteille.
Kuten yksityiskohtaisesti NTP: ssä .org, NTP toimii hierarkkisesti siirtämällä aikaa kerroksesta toiseen.Esimerkiksi Stratum 0 toimii vertailukellona ja on tarkin ja tarkin aikapalvelin (esim. atomikellot, GPS-kellot ja radiokellot .) Stratum 1 -palvelimet vievät aikansa Stratum 0 -palvelimilta ja niin edelleen Stratum 15: een; Stratum 16 cl ocks ei ole synkronoitu mihinkään lähteeseen. Asiakkaan aika määritetään vaihtamalla paketteja yhden tai useamman kerrospalvelimen kanssa. Nämä paketit asettavat aikaleimat kuhunkin viestiin ja sanomien lähettämiseen kuluva aika ovat tekijöitä algoritmissa, jotta saadaan aikaan konsensus asiakkaalle asetettavasta ajasta.
NTP voi tarjota tarkan aikalähteen yksimielisyyden kanssa useita syöttöpalvelimia. Se voi myös tunnistaa, mitkä käytettävissä olevat aikapalvelimet ovat epätarkkoja. Yksi haaste on, että NTP rakennettiin aikana, jolloin Internet-yhteisö oli ystävällisempi. NTP: n perustamisen aikana NTP-palvelimet eivät huolehtineet käyttäjien todentamisesta. 1980-luvun alkupuolella oli yleistä, että NTP-palvelimet olivat julkisesti saatavilla, koska resurssien kehittäjät voisivat käyttää vianetsintää ja vahvistaakseen oman NTP-ratkaisunsa.
NTP: n vakioprotokolla on User Datagram Protocol (UDP). Tämä suunnittelupäätös loi mahdollisuuksia väärinkäyttöön. UDP, joka on yhteydetön, on parhaan mahdollisen protokollan protokolla ja sen vuoksi altis pakettien huijaamiselle ja menettämiselle kuin TCP (Transmission Control Protocol). Vaikka NTP-poolihanke-vapaaehtoiset ovat jatkaneet NTP: n edistämistä, monien verkonvalvojien ja yritysten omistajien motivaatio korjata omia varusteitaan ei ole yhtä vahva. Alusta lähtien NTP-verkkoprotokolla on integroitu lukemattomiin järjestelmiin, joista monia ei ole korjattu, ja sillä voi olla käynnissä oleva koodi, joka on vähintään 20 versiota.
NTP-haavoittuvuuksiin liittyvät hyökkäykset
Cory Doctorow kirjoitti äskettäin vanhentuneen NTP: n mahdollisesta laskeutumisesta Boing / Boingille:
NTP on se, kuinka käytännössä jokainen tietokone, jonka kanssa olet tekemisissä, pitää kellonsa tarkkana, mikä on Internetin toiminta, jota ei voida yliarvioida … Lisäksi NTP: n haavoittuvuudet olivat muuttaneet Internetin monista aikapalvelimista voimankertoimiksi palvelunestohyökkäyksille, jolloin pelkästään rangaistiin hyökkäyksistä lähes pysäyttämättömiksi. .
Viimeisissä DDoS-hyökkäyksissä käytetty menetelmä ei perustu heikkouksiin vaan huonoon kokoonpanoon. NTP-palvelut vastaavat kyselyyn, joka koskee luetteloa valvotuista palvelimista. Yksi pieni pyyntö, jossa on väärennetty lähde, voi luoda luettelon 600 palvelimesta ja lähettää kohteelle. Vaikka haavoittuvuutta ei olekaan, satoja tai tuhansia näitä palvelimia ohjataan tahattomaan kohteeseen, uhrit eivät välitä heille kipua aiheuttavan ongelman semantiikasta; he haluavat vain helpotusta.
Aikojen synkronointi järjestelmissä tai niiden puuttuminen voi olla merkittävä tekijä haavoittuvuuksissa, jotka voivat vaarantaa järjestelmän perustoiminnot. DTP-hyökkäyksiin vaikuttavan NTP-väärinkäytön lisäksi puute ajan synkronointi verkossa luo mahdollisuuden uusintahyökkäyksille (ts. toistohyökkäyksille), joihin liittyy aito tiedonsiirron väärennetty tai pahantahtoinen toistuva viive.
Esimerkiksi toistohyökkäys voi tapahtua, kun käyttäjä yrittää todistaa henkilöllisyytensä toiselle käyttäjälle. Haitallinen toimija keskellä sieppasi viestin ja estäisi sitä pääsemästä aiottuun kohteeseen. Haitallinen käyttäjä lähettää sitten henkilöllisyyden vahvistamista koskevan pyynnön ja sisällyttää varastetun todistuksen vahvistukseksi. Jos aikaa ei ole synkronoitu, ikkunaa, jonka vaihto sallitaan, voidaan kasvattaa pidemmälle kuin mitä pidetään turvallisena ja joka sallii korvauksen. Tämän seurauksena kelvolliset käyttäjät voidaan huijata ajattelemaan, että heillä on onnistunut ly vahvisti petostajan henkilöllisyyden, joka esiintyy laillisena käyttäjänä. Oikeudenmukaisesti tämäntyyppinen toistohyökkäys on harvinaista ja erittäin haastavaa suorittaa onnistuneesti ilman pääsyä verkkoon, tietoliikennepolulle ja vaarantuneelle koneelle tällä polulla.
Monet turvallisuusasiantuntijat, kuten Shaun Kelly , ovat havainneet, että NTP: tä on käytetty manipuloimaan lokeja ja muuttamaan aikaa tietokonejärjestelmässä muuttamalla tapahtumien järjestystä.Kun kelloja ei synkronoida, verkkoanalyytikoilla on paljon vaikeampaa suorittaa lokikorrelaatiota eri järjestelmissä. NTP: n manipulointi voi tehdä hyökkäykseen johtavan verkon toiminnan ja tapahtumasarjan tunnistamisen paljon vaikeammaksi määrittää.
Muita sovelluksia, jotka saattavat olla vaarassa, koska aika ei toimi oikein, ovat nopeat kauppa- ja valvontakamerat. NTP-heikkouksien takia myös monet aikaherkät salausalgoritmit, joihin sisältyy avainten vaihto ja tunnukset, ovat vaarassa.
NTP: n parhaat käytännöt
Tämän viestin loppuosa kertoo parhaista käytännöistä oman NTP-palvelimen määrittämiseen ja julkisen NTP-palvelimen pyytämiseen.
Käytä julkista NTP: tä ulkoisille isännille. Jos yritys rakentaa valmiuksia, palveluja tai muita sulautettuja alustoja, jotka on tarkoitus ottaa käyttöön yrityksen ulkopuolella, verkonvalvojat saattavat haluta harkita julkisen NTP-palvelimen pyytämistä aiemmin mainittujen käytettävissä olevien palvelimien joukosta.
On tärkeää huomata, että suurin osa julkisista NTP-palvelimista määrittelee aktivointisäännöt. Jos yrityksellä on yrityksessä useita laitteita, jotka käyttävät NTP: tä, olisi järkevää asettaa oma hierarkia synkronoitavaksi sen sijaan, että kilpailisi pääsystä julkisesti saatavilla oleviin palvelimiin.
Määritä oma sisäinen sisäinen NTP-hierarkkinen palvelu verkkoosi. On mahdollista ostaa Stratum 1- tai Stratum 0 NTP -laitteita sisäiseen käyttöön alle tyypillisen palvelimen kustannusten. On myös mahdollista perustaa yksityinen NTP-palvelin erittäin alhaisin kustannuksin. Kaupallisen NOT-palvelimen (COTS) asettamisen toteutettavuus on todistettu äskettäisessä pyrkimyksessä määrittää Raspberry Pi -tietokone Stratum-1-palvelimeksi. Jos päätät määrittää omistamasi, ota huomioon seuraavat parhaat käytännöt:
- Standardoi UTC-aika. Yrityksen sisällä standardisoi kaikki järjestelmät koordinoituun universaaliin aikaan (UTC). UTC-standardointi yksinkertaistaa lokikorrelaatiota organisaatiossa ja ulkopuolisten tahojen kanssa riippumatta siitä, missä aikavyöhykkeessä synkronoitava laite sijaitsee.
- Verkon aikapalvelun suojaaminen. Rajoita komentoja, joita voidaan käyttää kerroksen palvelimissa. Älä salli stratum-palvelinten julkisia kyselyitä. Salli vain tunnettujen verkkojen / isäntien kommunikoida vastaavien osapalvelimiensa kanssa.
- Harkitse salauksen liiketoiminnan tarvetta. Monet järjestelmänvalvojat yrittävät suojata verkkonsa salatulla viestinnällä ja salatulla todennuksella. Esitän tässä huomautuksen varovaisuudesta, koska vaikka NTP: hen liittyy salauspalveluja NTP-viestinnän suojaamiseksi, salauksen käyttö tuo lisää lähteitä ongelmiin, kuten avaimen hallinnan vaatimiseen, ja se vaatii myös suurempia laskennallisia yleiskustannuksia.
- Muista Segalin laki. Ihannetapauksessa se toimisi, jos sinulla olisi vähintään kolme Stratum 0- tai Stratum 1 -palvelinta ja että nämä palvelimet olisivat ensisijaisia päälliköitä. Muista Segalin laki: sinulla on kaksi NTP: tä palvelinten on vaikea tietää, mikä niistä on tarkka. Kaksi Stratum 0 -palvelinta antaisi tarkemman aikaleiman, koska ne käyttävät lopullisena pidettyä aikalähdettä.
Kolmen tai useamman aikalähteen läsnäolo antaisi verkon ylläpitää tarkka aika, vaikka yksi päämestareista epäonnistuu. Ihannetapauksessa NTP-palvelimet sijaittaisivat kolmessa maantieteellisesti eri paikassa. Tämä ryhmä ensisijaisia päälliköitä olisi yrityksen lähde. Heitä pidettäisiin piilotettuina päälliköinä, koska ne tarjoaisivat palveluja vain toissijaisen kerroksen palvelimille. Tämä kokoonpano antaisi palvelimille mahdollisuuden tarjota aikaa toissijaisille päälliköille, jotka tosiasiallisesti tarjoavat palveluja organisaatiolle. Ensisijaiset päälliköt pysyvät piilossa, ja niihin pääsee vain NTP-infrastruktuurin kautta, joka tarjoaa palveluja muualla. Tämän toimitusketjun pitäisi antaa sinun antaa tarkka aika organisaatiossasi ja saada useita lähteitä, jotka tukevat tarkkaa aikalähdettä.
Sijainnit, joissa on enemmän laitteita, joiden aika on synkronoitava, voivat lisätä Stratum 2- tai Stratum 3 -palvelimia ja pyydä heitä luottamaan toissijaisiin päälliköihin sekä toisiinsa jakamaan edelleen järjestelmän kuormitus ja tarjoamalla palveluja suuremmalle NTP-asiakasryhmälle.
Asettamalla sisäinen NTP-palvelu viimeisimmän version perusteella vakaan koodin ja sen käytön standardoinnin vuoksi aikaperusteisten verkkohyökkäysten tai ajasta riippuvien prosessien elinkelpoisuutta on vaikeampaa valita. Tapahtumajärjestyksen tunnistaminen kompromississa on helpompaa, koska lokien ajat voivat nyt olla kirjausjärjestelmiä. Lainvalvontaviranomaisille ja muille tutkintavirastoille tarkat NTP-palvelut voivat olla erittäin rakentavia arvioitaessa todisteita ja järjestämällä tapahtumaketju.
Hahmottaminen ja katse eteenpäin
Hyökkäysten kehittyessä CERT: n verkkoanalyytikkotiimimme löytää yhä useammin Internet-palveluja, joita ei ole otettu hyvin käyttöön verkossa. Kuten Mark Langston kirjoitti äskettäisessä DNS Best Practices -tapahtumassaan, että monet näistä palveluista muodostavat perustan sisäisten ja ulkoisten verkkosovellusten turvallisuudelle ja toiminnalle.
Tämä on viimeisin sarja blogiviestejä, jotka tarjoavat parhaita Näiden perustavien rakenteiden käytännöt auttaakseen valtion virastoja ja muita yrityksiä puuttumaan verkkojen piilotettuihin haavoittuvuuksien lähteisiin. Tiimimme johtaja Rachel Kartch julkaisi tämän sarjan ensimmäisen viestin Distributed Denial of Service Attacks: Four Best Practices for Prevention and Response.