- Joined
- Apr 19, 2022
- Messages
- 24
- Reaction score
- 20
- Points
- 3
Kiitos, että käytit aikaa tämän lukemiseen! Emme ole Tor-verkoston asiantuntijoita, mutta tunnemme itsemme.
Jos jokin tässä kuvatuista asioista on mielestäsi järkevää ja/tai sinulla on epäilyksiä siitä, mistä on kyse, kaikenlainen palaute on erittäin tervetullutta!
1. Mitä tapahtuu?
Palvelumme toimi hyvin ja vakaasti pitkään. Yhtäkkiä palvelussamme ilmeni ensin lieviä, sitten vakavia suorituskykyongelmia, minkä jälkeen se muuttui täysin tavoittamattomaksi.
Tämä ei näytä olevan "tavallinen" DDoS-hyökkäys. Kyseessä näyttää olevan DoS-hyökkäys, mutta ei mikään tunnettu hyökkäys, sillä se näyttää olevan hyökkäys pelkästään Tor-demonia vastaan. Kaikki tähän mennessä kokeilemamme vastatoimet eivät onnistuneet. Hyökkäystä ei ole havaittavissa varsinaisiin käynnissä oleviin palveluihin (http, ssh, ftp, sähköposti jne.), vaan ainoastaan itse Tor-yhteyteen.
Vaikka teimme syvällisen tutkimuksen ja selvityksen, tapahtuma näyttää olevan käsittämätön. Dokumentteja aiemmista hyökkäyksistä Tor Hidden Services -palveluihin on harvoin löydettävissä, eikä niissä ole mitään järkeä sen suhteen, mitä me olemme kokeneet.
Kieltäydymme uskomasta, että on olemassa hyökkäysskenaario, joka on tuntematon ja jota ei voida torjua, koska se tekisi jokaisen Tor-kätköpalvelun haavoittuvaksi sille, ja vastustajat voisivat ottaa minkä tahansa Tor-kätköpalvelun offline-tilaan muutamassa minuutissa määräämättömäksi ajaksi. Vaikutus Tor-yhteisöön olisi ylivoimainen.
Toivomme, että joku, jolla on tarvittava näkemys ja asiantuntemus, voi edes antaa meille vihjeen siitä, mistä tarkalleen ottaen on kyse, ja ohjata meitä oikeaan suuntaan löytämään ratkaisun tämän hyökkäyksen lopettamiseksi tai sen vaikutusten vähentämiseksi järjestelmiimme ja tällaisten hyökkäysten estämiseksi tulevaisuudessa. Tämä auttaisi suojelemaan Tor Hidden Services -palveluita kaikkialla maailmassa tulevilta hyökkäyksiltä, kuten nyt tapahtuneelta.
2. Mikä on asetelma?
- Järjestelmä toimii nykyisellä ja aina ajan tasalla olevalla linux-palvelimella (amd64).
- Kaikki liikenne ohjataan Torin kautta Tor transportin kautta porttiin 9040, myös DNS-kyselyt ratkaistaan Torin kautta.
- Tor Hidden Service on v3
- Tor on versio 0.4.7.8, joka toimii Libevent 2.1.12-stable, OpenSSL 1.1.1n, Zlib 1.2.11, Liblzma 5.2.5, Libzstd 1.4.8 ja Glibc 2.31 libc:nä.
- Tor on käännetty GCC:n versiolla 10.2.1. Vanguards 0.3.1 on myös asennettu.
- Tor toimii systemd-palveluna
- Vanguards toimii systemd-palveluna
torrc-konfiguraatio:
CookieAuthentication 1
HashedControlPassword 16:<hash>
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 127.0.0.0.1:9040
DNSPort 127.0.0.0.1:53
HiddenServiceDir /var/lib/tor/hidden_service
HiddenServicePort 80 127.0.0.0.1:80
HiddenServiceVersion 3
HiddenServiceAllowUnknownPorts 0
3. Mitkä ovat oireet?
- Alle minuutti Torin käynnistämisen jälkeen, kun Hidden Service on käytössä, CPU nousee 100 %:iin, muistiin ei näytä vaikuttavan.
- Käytetty kaistanleveys kasvaa noin 100 kb/s.
- Piilotetun palvelun kuvaajaa ei ole saavutettavissa.
- Järjestelmä pystyy edelleen ratkaisemaan clearnet- ja Tor-osoitteet.
- Järjestelmä voi edelleen muodostaa yhteyden lähteviin palveluihin (esim. curl verkkosivuille).
- Järjestelmään tulvii saapuvia tcp-paketteja loopback-liitännän kautta.
- Kun Tor käynnistetään uudelleen, tulva loppuu muutamaksi sekunniksi ja alkaa sitten uudelleen.
- Kun Tor käynnistetään ilman, että Piilotettu palvelu on käytössä, ongelmaa ei näytä olevan.
- Kun Tor käynnistetään toisen piilopalvelun ollessa käytössä, molemmat piilopalvelun kuvaajat pysyvät tavoittamattomissa:
Tor-selain ensisijaisessa HS:ssä:
Onionsite Has Disconnected
Todennäköisin syy on, että onionsite on offline. Ota yhteyttä onionsite-ylläpitäjään.
Yksityiskohdat: 0xF2 - Käyttöönotto epäonnistui, mikä tarkoittaa, että kuvaaja löytyi, mutta palvelu ei ole enää yhteydessä käyttöönottopisteeseen. On todennäköistä, että palvelu on muuttanut kuvaajaansa tai että se ei ole käynnissä.
tai
Yhteys on katkennut
Palvelin osoitteessa (hyökätty piilotettu palvelukuvaaja).onion vastaa liian kauan.
Sivusto voi olla tilapäisesti poissa käytöstä tai liian kiireinen. Yritä uudelleen hetken kuluttua.
Tor-selain Seconday HS:ssä:
Tor: Yhteyden muodostaminen ei onnistu
Firefox ei pysty muodostamaan yhteyttä palvelimeen osoitteessa (secondary hidden service descriptor).onion.
Sivusto ei ehkä ole tilapäisesti käytettävissä tai se on liian kiireinen. Yritä uudelleen hetken kuluttua.
- Kun Tor käynnistetään toisen piilopalvelun ollessa käytössä, joka on suojattu OnionAuthenticationilla, ensisijainen Hidden Service Descriptor jää saavuttamatta,
toinen (suojattu) piilopalvelun kuvaaja on tavoitettavissa.
- Kun Tor käynnistetään vain toisen piilotetun palvelun ollessa käytössä (OnionAuthenticationin kanssa tai ilman sitä), ongelmaa ei näytä olevan.
- Kun Tor käynnistetään niin, että ensisijainen piilotettu palvelu on suojattu OnionAuthenticationilla, piilotetun palvelun kuvaaja on tavoitettavissa.
- Hyökkäyksen yhteydessä nämä merkinnät näkyvät Tor-lokitiedostossa:
Aug 24 19:42:18.000 [notice] Bootstrapped 100% (done): Done
Aug 24 19:42:34.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun palauttaminen 60000ms:iin 18 aikakatkaisun ja 388 buildtimen jälkeen.
Aug 24 19:42:39.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 240 rakentamisajan jälkeen.
Aug 24 19:42:53.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 489 rakentamisajan jälkeen.
Aug 24 19:43:11.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 659 rakentamisajan jälkeen.
...
Aug 24 19:46:09.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:46:09.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:46:09.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun arvoksi 60000ms 18 aikakatkaisun ja 114 rakentamisajan jälkeen.
Aug 24 19:46:15.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 125 rakentamisajan jälkeen.
...
Aug 24 19:47:08.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:10.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellohyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:10.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:13.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:14.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun arvoksi 60000ms 18 aikakatkaisun ja 495 rakentamisajan jälkeen.
Aug 24 19:47:18.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 124 rakennusajan jälkeen.
Aug 24 19:47:21.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:23.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
...
Aug 24 19:47:55.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun 60000ms:iin 18 aikakatkaisun ja 1000 buildtimen jälkeen.
Aug 24 19:47:59.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 117 buildtimen jälkeen.
...
Aug 24 19:52:43.000 [notice] Piirin rakentamisajan outo arvo: 121581msec. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:52:43.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun arvoksi 120000ms 18 aikakatkaisun ja 57 rakentamisajan jälkeen.
Aug 24 19:52:53.000 [notice] Keskeytys: poistuminen siististi.
4. Mitä on yritetty ongelman ratkaisemiseksi?
- Perustimme täysin uuden palvelimen tyhjästä, jossa on vain peruskäyttöjärjestelmä sekä tor ja vanguardit vakiokokoonpanossa, jotta suljimme pois mahdollisuuden, että kyseinen palvelin olisi konfiguroitu väärin. Heti kun tor käynnistettiin hyökkäyksen kohteena olevalla kuvaajalla, tapahtuivat täsmälleen samat asiat.
- Yritimme jakaa palvelimemme kuorman OnionBalance-ohjelman avulla tässä kokoonpanossa:
Server1: Onionbalance ensisijaiselle piilotetulle palvelukuvaajalle.
Palvelin2/3/4: Suorittaa Hidden Service -palvelua uusilla ja eri Hidden Service -kuvaajilla.
- Tämä ei herätä alkuperäistä Hidden Service -kuvaajaa henkiin.
- Palvelimien 2/3/4 palvelinkuvaajat ovat tavoitettavissa, kun ne avataan suoraan, mutta eivät nyt tasapainotetun ensisijaisen kuvaajan kautta.
- Palvelinten 2/3/4 suorittimet nousevat 100 prosenttiin niin kauan kuin hyökkäys tapahtuu, kun taas palvelimen 1 (tasapainottaja) suorittimet pysyvät normaaleina.
- Tasapainottajan lisäys useampiin taustapalvelimiin ei myöskään vaikuttanut asiaan.
- Lisäsimme nämä direktiivit torrc:n piilotettuun palvelulohkoon ja kokeilimme erilaisia asetuksia:
HiddenServiceEnableIntroDoSDefense 1
HiddenServiceEnableIntroDoSBurstPerSec <testattu eri arvoilla>.
HiddenServiceEnableIntroDoSRatePerSec <testattu eri arvoilla>.
Tämä vähensi CPU-kuormitusta merkittävästi palvelimilla 2/3/4, mutta tasapainotettu palvelukuvaaja on edelleen saavuttamattomissa.
- Kokeilimme muuttaa eri asetuksia vanguards.conf-tiedostossa, mutta ei onnistunut.
- Yritimme tunnistaa hyökkäävät tcp-paketit ja estää ne iptablesin kautta, mutta ei onnistunut.
Asiantuntemuksemme ei riitä siihen, että voisimme päätellä, mitä tarkalleen ottaen tapahtuu tarkastelemalla mainittujen tcp-pakettien sisältöä, joka näyttää tältä:
19:45:27.839934 IP (tos 0x0, ttl 64, id 35746, offset 0, flags [DF], proto TCP (6), length 4100).
127.0.0.0.1.9051 > 127.0.0.0.1.46712: Flags [P.], cksum 0x0df9 (virheellinen -> 0xe713), seq 1543428574:1543432622, ack 1711981309, win 512, options [nop,nop,TS val 2971851406 ecr 2971851369], length 4048.
E.....@[email protected]........#[.x[...f
.............
."...".i650 CIRC 9802 EXTENDED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7B46F20449D6F25150E189428B62E1E3BA5848A9~galtlandeu,$BF93594384A02DE7689C4FD821E2638DA2CD4792~labaliseridicule BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.060324
650 CIRC 9802 BUILT $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7B46F20449D6F25150E189428B62E1E3BA5848A9~galtlandeu,$BF93594384A02DE7689C4FD821E2638DA2CD4792~labaliseridicule BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.060324
650 CIRC_MINOR 9802 PURPOSE_CHANGED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7B46F20449D6F25150E189428B62E1E3BA5848A9~galtlandeu,$BF93594384A02DE7689C4FD821E2638DA2CD4792~labaliseridicule BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_JOINED REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajaan)---------| TIME_CREATED=2022-08-24T19:45:22.060324 OLD_PURPOSE=HS_SERVICE_REND OLD_HS_STATE=HSSR_CONNECTING
650 CIRC 9818 EXTENDED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7A319C431F38CB30A0BC0C49144369A611920725~BahnhufPowah2,$8587A1B4CCD0700F164CCD588F79743C74FE8700~mev4PLicebeer16b BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.493699
650 CIRC 9818 BUILT $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7A319C431F38CB30A0BC0C49144369A611920725~BahnhufPowah2,$8587A1B4CCD0700F164CCD588F79743C74FE8700~mev4PLicebeer16b BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.493699
650 CIRC_MINOR 9818 PURPOSE_CHANGED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7A319C431F38CB30A0BC0C49144369A611920725~BahnhufPowah2,$8587A1B4CCD0700F164CCD588F79743C74FE8700~mev4PLicebeer16b BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_JOINED REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajan kimppuun)---------| TIME_CREATED=2022-08-24T19:45:22.493699 OLD_PURPOSE=HS_SERVICE_REND OLD_HS_STATE=HSSR_CONNECTING
650 CIRC 9997 EXTENDED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$8D896C8B367813030591A00DB7E7722EF6C4C23C~Luxembourg,$FF353F5D011E69ECDA10A57B46D06BC7B3FEB196~fuego,$347253D1D5246CB1C4CF8088C6982FE77CF7AB9C~ph3x,$E84F41FA1D1FA303FD7A99A35E50ACEF4269868C~Quetzalcoatl BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajan kimppuun)---------| TIME_CREATED=2022-08-24T19:45:25.100429
650 CIRC 9997 BUILT $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$8D896C8B367813030591A00DB7E7722EF6C4C23C~Luxembourg,$FF353F5D011E69ECDA10A57B46D06BC7B3FEB196~fuego,$347253D1D5246CB1C4CF8088C6982FE77CF7AB9C~ph3x,$E84F41FA1D1FA303FD7A99A35E50ACEF4269868C~Quetzalcoatl BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajan kimppuun)---------| TIME_CREATED=2022-08-24T19:45:25.10
Tässä Tor on käynnissä yhdellä palvelimella. Tasapainotettaessa |---------(attacked hidden service descriptor)---------| korvataan palvelimen 2/3/4 backends-palvelukuvaajilla.
Tarvittaessa voimme antaa käyttöön laajemman tcpdump-pätkän.
5. Johtopäätökset
Uskomme, että vastustajalla on kyky "keskeyttää" Piilotetun palvelun kuvaaja (ja siten itse Piilotettu palvelu) tulvimalla Tor-demonia lukemattomilla tcp-paketeilla, joissa pyydetään rakentamaan piirejä. Tämä aiheuttaa suorittimen kuormittumisen ja lopulta tekee Piilotetun palvelun kuvaajan käyttökelvottomaksi.
Voiko joku vahvistaa tämän?
Koska direktiivit, kuten mainitut HiddenServiceEnableIntroDoSDefense, HiddenServiceEnableIntroDoSBurstPerSec ja HiddenServiceEnableIntroDoSRatePerSec, näyttävät olevan tarkoitettu puolustautumaan tämäntyyppisiä hyökkäyksiä vastaan, aivan kuten vanguardienkin pitäisi, emme voi selittää, miksi ne jäävät tehottomiksi. Ehkä näiden arvojen joitakin hyvin erikoistuneita asetuksia tarvitaan, jotta ne olisivat tehokkaita. Valitettavasti nämä direktiivit (samoin kuin vanguards.config-tiedoston asetukset) on kuvattu vain epämääräisesti.
Tietääkö kukaan, miten nämä on asetettava oikein, jotta ne olisivat tehokkaita?
Tässä vaiheessa olemme etsineet kaikki tor- ja vanguards-konfiguraatiota koskevat viitteet, jotka löysimme verkosta.
Jälleen kerran, mikä tahansa apu tai tieto tästä asiasta olisi erittäin tervetullutta! Emme usko, että tähän ei ole ratkaisua.
Jos jokin tässä kuvatuista asioista on mielestäsi järkevää ja/tai sinulla on epäilyksiä siitä, mistä on kyse, kaikenlainen palaute on erittäin tervetullutta!
1. Mitä tapahtuu?
Palvelumme toimi hyvin ja vakaasti pitkään. Yhtäkkiä palvelussamme ilmeni ensin lieviä, sitten vakavia suorituskykyongelmia, minkä jälkeen se muuttui täysin tavoittamattomaksi.
Tämä ei näytä olevan "tavallinen" DDoS-hyökkäys. Kyseessä näyttää olevan DoS-hyökkäys, mutta ei mikään tunnettu hyökkäys, sillä se näyttää olevan hyökkäys pelkästään Tor-demonia vastaan. Kaikki tähän mennessä kokeilemamme vastatoimet eivät onnistuneet. Hyökkäystä ei ole havaittavissa varsinaisiin käynnissä oleviin palveluihin (http, ssh, ftp, sähköposti jne.), vaan ainoastaan itse Tor-yhteyteen.
Vaikka teimme syvällisen tutkimuksen ja selvityksen, tapahtuma näyttää olevan käsittämätön. Dokumentteja aiemmista hyökkäyksistä Tor Hidden Services -palveluihin on harvoin löydettävissä, eikä niissä ole mitään järkeä sen suhteen, mitä me olemme kokeneet.
Kieltäydymme uskomasta, että on olemassa hyökkäysskenaario, joka on tuntematon ja jota ei voida torjua, koska se tekisi jokaisen Tor-kätköpalvelun haavoittuvaksi sille, ja vastustajat voisivat ottaa minkä tahansa Tor-kätköpalvelun offline-tilaan muutamassa minuutissa määräämättömäksi ajaksi. Vaikutus Tor-yhteisöön olisi ylivoimainen.
Toivomme, että joku, jolla on tarvittava näkemys ja asiantuntemus, voi edes antaa meille vihjeen siitä, mistä tarkalleen ottaen on kyse, ja ohjata meitä oikeaan suuntaan löytämään ratkaisun tämän hyökkäyksen lopettamiseksi tai sen vaikutusten vähentämiseksi järjestelmiimme ja tällaisten hyökkäysten estämiseksi tulevaisuudessa. Tämä auttaisi suojelemaan Tor Hidden Services -palveluita kaikkialla maailmassa tulevilta hyökkäyksiltä, kuten nyt tapahtuneelta.
2. Mikä on asetelma?
- Järjestelmä toimii nykyisellä ja aina ajan tasalla olevalla linux-palvelimella (amd64).
- Kaikki liikenne ohjataan Torin kautta Tor transportin kautta porttiin 9040, myös DNS-kyselyt ratkaistaan Torin kautta.
- Tor Hidden Service on v3
- Tor on versio 0.4.7.8, joka toimii Libevent 2.1.12-stable, OpenSSL 1.1.1n, Zlib 1.2.11, Liblzma 5.2.5, Libzstd 1.4.8 ja Glibc 2.31 libc:nä.
- Tor on käännetty GCC:n versiolla 10.2.1. Vanguards 0.3.1 on myös asennettu.
- Tor toimii systemd-palveluna
- Vanguards toimii systemd-palveluna
torrc-konfiguraatio:
CookieAuthentication 1
HashedControlPassword 16:<hash>
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 127.0.0.0.1:9040
DNSPort 127.0.0.0.1:53
HiddenServiceDir /var/lib/tor/hidden_service
HiddenServicePort 80 127.0.0.0.1:80
HiddenServiceVersion 3
HiddenServiceAllowUnknownPorts 0
3. Mitkä ovat oireet?
- Alle minuutti Torin käynnistämisen jälkeen, kun Hidden Service on käytössä, CPU nousee 100 %:iin, muistiin ei näytä vaikuttavan.
- Käytetty kaistanleveys kasvaa noin 100 kb/s.
- Piilotetun palvelun kuvaajaa ei ole saavutettavissa.
- Järjestelmä pystyy edelleen ratkaisemaan clearnet- ja Tor-osoitteet.
- Järjestelmä voi edelleen muodostaa yhteyden lähteviin palveluihin (esim. curl verkkosivuille).
- Järjestelmään tulvii saapuvia tcp-paketteja loopback-liitännän kautta.
- Kun Tor käynnistetään uudelleen, tulva loppuu muutamaksi sekunniksi ja alkaa sitten uudelleen.
- Kun Tor käynnistetään ilman, että Piilotettu palvelu on käytössä, ongelmaa ei näytä olevan.
- Kun Tor käynnistetään toisen piilopalvelun ollessa käytössä, molemmat piilopalvelun kuvaajat pysyvät tavoittamattomissa:
Tor-selain ensisijaisessa HS:ssä:
Onionsite Has Disconnected
Todennäköisin syy on, että onionsite on offline. Ota yhteyttä onionsite-ylläpitäjään.
Yksityiskohdat: 0xF2 - Käyttöönotto epäonnistui, mikä tarkoittaa, että kuvaaja löytyi, mutta palvelu ei ole enää yhteydessä käyttöönottopisteeseen. On todennäköistä, että palvelu on muuttanut kuvaajaansa tai että se ei ole käynnissä.
tai
Yhteys on katkennut
Palvelin osoitteessa (hyökätty piilotettu palvelukuvaaja).onion vastaa liian kauan.
Sivusto voi olla tilapäisesti poissa käytöstä tai liian kiireinen. Yritä uudelleen hetken kuluttua.
Tor-selain Seconday HS:ssä:
Tor: Yhteyden muodostaminen ei onnistu
Firefox ei pysty muodostamaan yhteyttä palvelimeen osoitteessa (secondary hidden service descriptor).onion.
Sivusto ei ehkä ole tilapäisesti käytettävissä tai se on liian kiireinen. Yritä uudelleen hetken kuluttua.
- Kun Tor käynnistetään toisen piilopalvelun ollessa käytössä, joka on suojattu OnionAuthenticationilla, ensisijainen Hidden Service Descriptor jää saavuttamatta,
toinen (suojattu) piilopalvelun kuvaaja on tavoitettavissa.
- Kun Tor käynnistetään vain toisen piilotetun palvelun ollessa käytössä (OnionAuthenticationin kanssa tai ilman sitä), ongelmaa ei näytä olevan.
- Kun Tor käynnistetään niin, että ensisijainen piilotettu palvelu on suojattu OnionAuthenticationilla, piilotetun palvelun kuvaaja on tavoitettavissa.
- Hyökkäyksen yhteydessä nämä merkinnät näkyvät Tor-lokitiedostossa:
Aug 24 19:42:18.000 [notice] Bootstrapped 100% (done): Done
Aug 24 19:42:34.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun palauttaminen 60000ms:iin 18 aikakatkaisun ja 388 buildtimen jälkeen.
Aug 24 19:42:39.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 240 rakentamisajan jälkeen.
Aug 24 19:42:53.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 489 rakentamisajan jälkeen.
Aug 24 19:43:11.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 659 rakentamisajan jälkeen.
...
Aug 24 19:46:09.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:46:09.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:46:09.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun arvoksi 60000ms 18 aikakatkaisun ja 114 rakentamisajan jälkeen.
Aug 24 19:46:15.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 125 rakentamisajan jälkeen.
...
Aug 24 19:47:08.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:10.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellohyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:10.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:13.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:14.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun arvoksi 60000ms 18 aikakatkaisun ja 495 rakentamisajan jälkeen.
Aug 24 19:47:18.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 124 rakennusajan jälkeen.
Aug 24 19:47:21.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 122s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:47:23.000 [notice] Piirin rakentamisen aikakatkaisun erittäin suuri arvo: 123s. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
...
Aug 24 19:47:55.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun 60000ms:iin 18 aikakatkaisun ja 1000 buildtimen jälkeen.
Aug 24 19:47:59.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Aikakatkaisun nollaaminen 60000ms:iin 18 aikakatkaisun ja 117 buildtimen jälkeen.
...
Aug 24 19:52:43.000 [notice] Piirin rakentamisajan outo arvo: 121581msec. Oletetaan kellon hyppy. Tarkoitus 14 (Piirin aikakatkaisun mittaaminen)
Aug 24 19:52:43.000 [notice] Verkkoyhteyden nopeus näyttää muuttuneen. Nollaa aikakatkaisun arvoksi 120000ms 18 aikakatkaisun ja 57 rakentamisajan jälkeen.
Aug 24 19:52:53.000 [notice] Keskeytys: poistuminen siististi.
4. Mitä on yritetty ongelman ratkaisemiseksi?
- Perustimme täysin uuden palvelimen tyhjästä, jossa on vain peruskäyttöjärjestelmä sekä tor ja vanguardit vakiokokoonpanossa, jotta suljimme pois mahdollisuuden, että kyseinen palvelin olisi konfiguroitu väärin. Heti kun tor käynnistettiin hyökkäyksen kohteena olevalla kuvaajalla, tapahtuivat täsmälleen samat asiat.
- Yritimme jakaa palvelimemme kuorman OnionBalance-ohjelman avulla tässä kokoonpanossa:
Server1: Onionbalance ensisijaiselle piilotetulle palvelukuvaajalle.
Palvelin2/3/4: Suorittaa Hidden Service -palvelua uusilla ja eri Hidden Service -kuvaajilla.
- Tämä ei herätä alkuperäistä Hidden Service -kuvaajaa henkiin.
- Palvelimien 2/3/4 palvelinkuvaajat ovat tavoitettavissa, kun ne avataan suoraan, mutta eivät nyt tasapainotetun ensisijaisen kuvaajan kautta.
- Palvelinten 2/3/4 suorittimet nousevat 100 prosenttiin niin kauan kuin hyökkäys tapahtuu, kun taas palvelimen 1 (tasapainottaja) suorittimet pysyvät normaaleina.
- Tasapainottajan lisäys useampiin taustapalvelimiin ei myöskään vaikuttanut asiaan.
- Lisäsimme nämä direktiivit torrc:n piilotettuun palvelulohkoon ja kokeilimme erilaisia asetuksia:
HiddenServiceEnableIntroDoSDefense 1
HiddenServiceEnableIntroDoSBurstPerSec <testattu eri arvoilla>.
HiddenServiceEnableIntroDoSRatePerSec <testattu eri arvoilla>.
Tämä vähensi CPU-kuormitusta merkittävästi palvelimilla 2/3/4, mutta tasapainotettu palvelukuvaaja on edelleen saavuttamattomissa.
- Kokeilimme muuttaa eri asetuksia vanguards.conf-tiedostossa, mutta ei onnistunut.
- Yritimme tunnistaa hyökkäävät tcp-paketit ja estää ne iptablesin kautta, mutta ei onnistunut.
Asiantuntemuksemme ei riitä siihen, että voisimme päätellä, mitä tarkalleen ottaen tapahtuu tarkastelemalla mainittujen tcp-pakettien sisältöä, joka näyttää tältä:
19:45:27.839934 IP (tos 0x0, ttl 64, id 35746, offset 0, flags [DF], proto TCP (6), length 4100).
127.0.0.0.1.9051 > 127.0.0.0.1.46712: Flags [P.], cksum 0x0df9 (virheellinen -> 0xe713), seq 1543428574:1543432622, ack 1711981309, win 512, options [nop,nop,TS val 2971851406 ecr 2971851369], length 4048.
E.....@[email protected]........#[.x[...f
.............
."...".i650 CIRC 9802 EXTENDED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7B46F20449D6F25150E189428B62E1E3BA5848A9~galtlandeu,$BF93594384A02DE7689C4FD821E2638DA2CD4792~labaliseridicule BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.060324
650 CIRC 9802 BUILT $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7B46F20449D6F25150E189428B62E1E3BA5848A9~galtlandeu,$BF93594384A02DE7689C4FD821E2638DA2CD4792~labaliseridicule BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.060324
650 CIRC_MINOR 9802 PURPOSE_CHANGED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7B46F20449D6F25150E189428B62E1E3BA5848A9~galtlandeu,$BF93594384A02DE7689C4FD821E2638DA2CD4792~labaliseridicule BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_JOINED REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajaan)---------| TIME_CREATED=2022-08-24T19:45:22.060324 OLD_PURPOSE=HS_SERVICE_REND OLD_HS_STATE=HSSR_CONNECTING
650 CIRC 9818 EXTENDED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7A319C431F38CB30A0BC0C49144369A611920725~BahnhufPowah2,$8587A1B4CCD0700F164CCD588F79743C74FE8700~mev4PLicebeer16b BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.493699
650 CIRC 9818 BUILT $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7A319C431F38CB30A0BC0C49144369A611920725~BahnhufPowah2,$8587A1B4CCD0700F164CCD588F79743C74FE8700~mev4PLicebeer16b BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(attacked hidden service descriptor)---------| TIME_CREATED=2022-08-24T19:45:22.493699
650 CIRC_MINOR 9818 PURPOSE_CHANGED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$CED577F091DCB15AD8C87FBD452A51EA9E60BFC2~strayWires,$CC8B218ED3615827A5DCF008FC62598DEF533B4F~mikrogravitation02,$7A319C431F38CB30A0BC0C49144369A611920725~BahnhufPowah2,$8587A1B4CCD0700F164CCD588F79743C74FE8700~mev4PLicebeer16b BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_JOINED REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajan kimppuun)---------| TIME_CREATED=2022-08-24T19:45:22.493699 OLD_PURPOSE=HS_SERVICE_REND OLD_HS_STATE=HSSR_CONNECTING
650 CIRC 9997 EXTENDED $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$8D896C8B367813030591A00DB7E7722EF6C4C23C~Luxembourg,$FF353F5D011E69ECDA10A57B46D06BC7B3FEB196~fuego,$347253D1D5246CB1C4CF8088C6982FE77CF7AB9C~ph3x,$E84F41FA1D1FA303FD7A99A35E50ACEF4269868C~Quetzalcoatl BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajan kimppuun)---------| TIME_CREATED=2022-08-24T19:45:25.100429
650 CIRC 9997 BUILT $2BCA0A8B5759DBD764BF9FA5D1B3AEE9D74D2B68~Waeswynn,$8D896C8B367813030591A00DB7E7722EF6C4C23C~Luxembourg,$FF353F5D011E69ECDA10A57B46D06BC7B3FEB196~fuego,$347253D1D5246CB1C4CF8088C6982FE77CF7AB9C~ph3x,$E84F41FA1D1FA303FD7A99A35E50ACEF4269868C~Quetzalcoatl BUILD_FLAGS=IS_INTERNAL,NEED_CAPACITY PURPOSE=HS_SERVICE_REND HS_STATE=HSSR_CONNECTING REND_QUERY=|---------(hyökkäsi piilotetun palvelun kuvaajan kimppuun)---------| TIME_CREATED=2022-08-24T19:45:25.10
Tässä Tor on käynnissä yhdellä palvelimella. Tasapainotettaessa |---------(attacked hidden service descriptor)---------| korvataan palvelimen 2/3/4 backends-palvelukuvaajilla.
Tarvittaessa voimme antaa käyttöön laajemman tcpdump-pätkän.
5. Johtopäätökset
Uskomme, että vastustajalla on kyky "keskeyttää" Piilotetun palvelun kuvaaja (ja siten itse Piilotettu palvelu) tulvimalla Tor-demonia lukemattomilla tcp-paketeilla, joissa pyydetään rakentamaan piirejä. Tämä aiheuttaa suorittimen kuormittumisen ja lopulta tekee Piilotetun palvelun kuvaajan käyttökelvottomaksi.
Voiko joku vahvistaa tämän?
Koska direktiivit, kuten mainitut HiddenServiceEnableIntroDoSDefense, HiddenServiceEnableIntroDoSBurstPerSec ja HiddenServiceEnableIntroDoSRatePerSec, näyttävät olevan tarkoitettu puolustautumaan tämäntyyppisiä hyökkäyksiä vastaan, aivan kuten vanguardienkin pitäisi, emme voi selittää, miksi ne jäävät tehottomiksi. Ehkä näiden arvojen joitakin hyvin erikoistuneita asetuksia tarvitaan, jotta ne olisivat tehokkaita. Valitettavasti nämä direktiivit (samoin kuin vanguards.config-tiedoston asetukset) on kuvattu vain epämääräisesti.
Tietääkö kukaan, miten nämä on asetettava oikein, jotta ne olisivat tehokkaita?
Tässä vaiheessa olemme etsineet kaikki tor- ja vanguards-konfiguraatiota koskevat viitteet, jotka löysimme verkosta.
Jälleen kerran, mikä tahansa apu tai tieto tästä asiasta olisi erittäin tervetullutta! Emme usko, että tähän ei ole ratkaisua.
Last edited: