Kirjoittaja Aihe: Scripti DNS-palvelun varmistamiseen  (Luettu 4002 kertaa)

rikonen

  • Käyttäjä
  • Viestejä: 87
  • Linux for ever
    • Profiili
Scripti DNS-palvelun varmistamiseen
« : 02.11.10 - klo:09.13 »
Haluaisin varmistua, että en joudu DNS-huijauksen kohteeksi, ja koska parasta lienee varmistaa DNS-palvelimen oikea toiminta, olisi varmasti hyvä testata se tunnettua listaa vastaan vaikka nslookup:illa. Tunnettua listaa voisi itse tarpeen mukaan päivittää.

Toinen vaihtoehto saattaisi olla hosts-tietojen määrittely hosts-tiedostoon, mutta en ole varma, toimiiko se dhcp-palvelun kanssa varmasti oikein.

Tähän liittyen, voisiko joku auttaa tekemään scriptin, jolla varmistaa nimipalvelimen oikea toiminta? Toiminta voisi olla vaikka sellainen, että scripti tulostaa terminaaliin nslookupin vastauksen (name, address) ja vertailusta saadun statuksen (ok/fail).

Tässä Ficoran katsaus ongelmasta http://www.cert.fi/katsaukset/2008/tietoturvakatsaus32008.html
Be curious and open minded. Be positive.

ditl

  • Vieras
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #1 : 02.11.10 - klo:10.02 »
Selasin tuota Ficoran kuvausta joka koski DNS cache poisoning haavoittuvuutta. Se käsittääkseni menee niin että hyökkääjä saastuttaa DNS palvelimen antamaan vääriä IP osoitteita kysyjälle, esim. kotikäyttäjän koneelle.

Miten nslookup auttaisi paljastamaan saastuneen palvelimen? Myös saastunut palvelin luullakseni vastaisi
oikein nslookup kysymykseen. Selitätkö ideaasi?

odysseus

  • Vieras
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #2 : 02.11.10 - klo:17.41 »
Ei kai tuohon ole muuta keinoa kuin se, että kysytään sitä IP:tä useammalta DNS-palvelimelta ja jos joku on eri kuin muiden, niin se on varmaankin saastunut...

rikonen

  • Käyttäjä
  • Viestejä: 87
  • Linux for ever
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #3 : 02.11.10 - klo:18.37 »
Selasin tuota Ficoran kuvausta joka koski DNS cache poisoning haavoittuvuutta. Se käsittääkseni menee niin että hyökkääjä saastuttaa DNS palvelimen antamaan vääriä IP osoitteita kysyjälle, esim. kotikäyttäjän koneelle.

Miten nslookup auttaisi paljastamaan saastuneen palvelimen? Myös saastunut palvelin luullakseni vastaisi
oikein nslookup kysymykseen. Selitätkö ideaasi?

Itse asiassa törmäsin epäiltyyn väärennökseen eilen, kun Elisan verkkoyhteydet tökkivät joihinkin domaineihin, sitä ongelmaa on ollut viimeviikkoina paljon. Tracerouten avulla näkyi, että vika oli kauempana verkossa, ja jonka takia testasin Elisan nimipalvelimen toimintaa myös (193.229.0.40). Olen sitä varten tehnyt lyhyen lookup-listan muutamasta usein käyttämästäni domainista. Eilen listaa täydentessäni huomasin, että kahden domainin osoite poikkesi ensimäiseltä tavultaan, loppujen tavujen ollessa oikeita (195->192 ja 194 ->148). Kyllä tuossa heräsi vahva epäillys, että tuo oli tarkoitusperäistä!

Ajattelin, että toiminta voisi olla vastaava kuin mitä nyt olen manuaalisesti tehnyt, scripti vain automaattisesti  tarvittaessa tarkistaisi että listan domainit ja IP:t täsmää. Omalle koneelle talletettua listaa voisi päivittää eri lähteistä tarpeen mukaan. Toinen vaihtoehto voisi olla, että domain-ip-parit olisi leivottu scriptin sisään, niin että sitä olisi helppo laajentaa.
« Viimeksi muokattu: 02.11.10 - klo:20.17 kirjoittanut rikonen »
Be curious and open minded. Be positive.

ditl

  • Vieras
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #4 : 02.11.10 - klo:19.09 »
OK, idea on siis pitää yllä listaa aikaisemmin käytetyistä pareista <nimi : ip-osoite> ja tarkistaa että niissä ei tapahdu muutoksia. Listaan voisi laittaa vain kriittiset osoitteet niin satunnainen surffailu ei häiritsisi.
Tekisit softan joka komennettaessa hakisi nimipalvelimelta listan mukaiset osoitteet, vertaisi saamiaan osoitteita aikaisempiin ja hälyttäisi jos ei täsmää.

rikonen

  • Käyttäjä
  • Viestejä: 87
  • Linux for ever
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #5 : 02.11.10 - klo:20.13 »
OK, idea on siis pitää yllä listaa aikaisemmin käytetyistä pareista <nimi : ip-osoite> ja tarkistaa että niissä ei tapahdu muutoksia. Listaan voisi laittaa vain kriittiset osoitteet niin satunnainen surffailu ei häiritsisi.
Tekisit softan joka komennettaessa hakisi nimipalvelimelta listan mukaiset osoitteet, vertaisi saamiaan osoitteita aikaisempiin ja hälyttäisi jos ei täsmää.

Juuri noin. Scripti voisi olla automaattinen tai sen voisi manuaalisesti käynnistää vaikka launch-nappulasta panelissa. Ongelma on vain se, että minä en osaa tehdä ko. scriptiä, siihen tarvitaan apua.
Be curious and open minded. Be positive.

rikonen

  • Käyttäjä
  • Viestejä: 87
  • Linux for ever
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #6 : 03.11.10 - klo:00.06 »
Mun taidoilla ei onnistunut kuin puolimanuaalinen ;D   Saa parannella, mutta laittakaa forumille jakeluun.
Koodia: [Valitse]
# 1. Päivitä lista ja tallenna kotihakemistoon nimellä dns-test
# 2. Kopioi /usr/bin -polkuun komennolla sudo cp dns-test /usr/bin
# 3. Vaihda hakemistoa komennolla cd /usr/bin
# 4. Anna kaikille ajo-oikkarit komennolla sudo chmod a+x dns-test
# 5. Lisää paneliin Custom Application Launcher, valinnoilla:
#    - Type: Application in Terminal
#    - Name: DNS-test
#    - Command: /usr/bin/dns-test
#
# Käyttö: paina launcheria ja vertaa palautettuja osoitteita ilmoitettuun.
#

nslookup skype.com
echo "Oikea:   204.9.163.162 ja 78.141.177.7"
echo ""

nslookup ficora.fi
echo "Oikea:   87.239.125.200"
echo ""

nslookup hs.fi
echo "Oikea:   195.165.77.32"
echo ""

nslookup ts.fi
echo "Oikea:   194.157.163.25 ja 194.157.163.26"
echo ""

nslookup nettihotelli.fi
echo "Oikea:   194.79.17.10"
echo ""

nslookup kolumbus.fi
echo "Oikea:   193.229.3.143"
echo ""

echo "Tulokset yllä, ikkuna sulkeutuu 60 s kuluttua"
sleep 60
Be curious and open minded. Be positive.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #7 : 17.11.10 - klo:11.55 »
Pieni kysymys ylläolevasta:   Mitä palauttaa nslookup jos se menee hakemaan tietoja niin että kohteena on väärennetty nimipalvelin (eli oma koneesi on jo ohjattu väärään paikkaan) ?
Vastausehdotuksia:  Jos väärennös on fiksu niin se palauttaa edelleen oikeita tietoja noista eli muiden nimipalvelimien osoitteet.  Jää väärennös helpommin piiloon.  Mutta vain ne tärkeät yhteydet sitten ohjaantuukin muualle kuin minne oli tarkoitettu.

Tuohon olisi aika helppo koodata scripti joka ajetaan automaattisesti crontab: in kautta vaikka minuutin välein.  Lähestymistapoja on monta mitä tuo scripti sitten tekisi. Helpointa lienee varmistella vain oman koneen asetuksia. Se voisi esim. lukea /etc/ resolv.conf -tiedostosta "name server" rivit ja kirjoittaa raa'asti ne yli jos siellä lukee jotain odottamatonta. Tai voisi ilmottaa käyttäjälle ja kysyä ajetaanko yli.      Tuon /etc/resolv.conf -tiedoston voisi muuten laittaa vaikka "read only" mutta se häirinnee Ubuntun normaalia toimintaa ?

Sen lisäksi olisi tietysti hyvä että jossain olisi jokin nimipalvelimien valvontakone joka huomaa feikit, näitä varmaan lieneekin operaattoreilla ?  Tuollaisessa pitäisi varmaan olla esim. "kova koodattuna" oikeat osoitteet.

Kommentteja ?
« Viimeksi muokattu: 17.11.10 - klo:12.34 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

ditl

  • Vieras
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #8 : 17.11.10 - klo:16.39 »
En tarkemmin tunne tätä DNS cache poisoning hyökkäystä kuin sen vähän mitä selasin tuota Ficoran tiedotetta. Siitä jäi sellainen käsitys että tässä hyökkäyksessä DNS palvelimen muistiin ujutetaan vääriä osoitteita. Tämä voi tapahtua silloin kun DNS palvelin ei tunne ko. osoitetta ja joutuu kysymään sitä toiselta DNS palvelimelta. Nämä kyselyt on olleet salaamattomia. Korjaustoimenpiteenä liikenne salataan. Se miten fyysisesti on mahdollista päästä tuohon väliin en osaa kuvitella. DNS palvelimen koodia ei sotketa ja se ei voi tietää mitään tapahtuneesta. Oman koneen asetukset /etc/resolv.conf on root oikeuksien takana ja yhtä hyvässä turvassa kuin koko kone ylipäänsä.
Osa operaattoreista on tiedotteen mukaan siirtynyt salatun liikenteen käyttöön. Toivottavasti loputkin päivittävät ohjelmansa pian ja tämä ongelma on poissa.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #9 : 17.11.10 - klo:17.14 »
Tosi on.  Sain hieman väärän ajatuksen kun vilkasin tuota scriptiä yllä.  Saastunutta oikeata nimipalvelinta vastaan on hieman vaikea varustautua varmaan muuten kuin kysymällä useammalta palvelimelta ja vertaamalla tulosta.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

rikonen

  • Käyttäjä
  • Viestejä: 87
  • Linux for ever
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #10 : 17.11.10 - klo:20.08 »
Se miten fyysisesti on mahdollista päästä tuohon väliin en osaa kuvitella. DNS palvelimen koodia ei sotketa ja se ei voi tietää mitään tapahtuneesta. Oman koneen asetukset /etc/resolv.conf on root oikeuksien takana ja yhtä hyvässä turvassa kuin koko kone ylipäänsä.

Yksi paikka on saastunut DHCP-palvelin; jos koneesi käyttää ADSL-purkin DHCP-palvelua, menee kyselyt sen kautta. Mikäli tähän ADSL-purkiin pääsee tavalla tai toisella kiinni, tai verkossa on ylimääräinen DHCP-palvelin (esim. lasten saastunut winukka), on vaara, että koneesi saa väärennettyä DNS-tietoa.

Operattoripuolen jutuista en tiedä, enkä satavarmasti osaa sanoa missä nuo löytämäni väärennökset tehtiin, ip-osoitteet oli kuitenkin väärennetty taitavasti, niin että ei niitä ihan ensisilmäyksellä olisi huomannut (194.79.17.10 -> 148.79.17.10 ja 195.165.77.32 -> 192.165.77.32).  

Itse olen sitä mieltä, että riittää kunhan tärkeimmät osoitteet on varmennettu, täydellistä varmuutta näistä tuskin helpolla saa.
« Viimeksi muokattu: 17.11.10 - klo:20.14 kirjoittanut rikonen »
Be curious and open minded. Be positive.

ditl

  • Vieras
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #11 : 17.11.10 - klo:21.02 »
Ficoran raportoima ongelma taisi kuitenkin olla operaattorien palvelimissa jolloin johonkin niistä on pitänyt ensin päästä syöttämään virheellistä tietoa. Sieltä se sitten leviää alaspäin. Onkohan tuo mennyt niin että kun yhteydet on olleet salaamattomia, niin hyökkääjä on voinut yksinkertaisesti lähettää palvelimellle viestejä DNS protokollan mukaan mistä tahansa koneelta.
ADSL purkkiin kai on helpompi murtautua mutta silloin ongelma taitaa jäädä paikalliseksi tai ei ainakaan kriittiseksi.
Miltä tuo väärennetty osoite 148.79.17.10 näytti? Oliko siellä yritetty matkia tavoittelemaasi sivua? Vai olikohan joku vain kokeillut miten helposti tuo käy.

rikonen

  • Käyttäjä
  • Viestejä: 87
  • Linux for ever
    • Profiili
Vs: Scripti DNS-palvelun varmistamiseen
« Vastaus #12 : 18.11.10 - klo:00.45 »
Miltä tuo väärennetty osoite 148.79.17.10 näytti? Oliko siellä yritetty matkia tavoittelemaasi sivua? Vai olikohan joku vain kokeillut miten helposti tuo käy.

Tuo paljastui vasta jälkikäteen, kun vertailin aiemin ylösottamiani ip-osoitteita traceroutea varten. Syy tracerouten käyttämiseen oli verkkoyhteyksien tökkiminen, halusin selvittää muutamalla domainilla missä tökkii.

Väärennetty ip-osoite on erään wepihotellin, mutta en muista huomanneeni sen käytössä mitään poikkeavaa, jotain ylimääräistä lagia on joskus ollut, en muista, liityykö se tähän. Syy minkä takia olen erittäin huolissani on se, että yritykseni sähköpostit ja kaikki verkkoliikenne ovat olleet vaarassa - vaikka ovathan ne muutenkin. Pitäisi kryptata kaikki ... ongelma on vain, kun muut eivät sitä halua.
Be curious and open minded. Be positive.