Tri šibke točke, ki jih najdemo v sklopih TCP za Linux, kar vodi do oddaljene zavrnitve storitve

zrušitev linuxa

Recientemente objavil novico o prepoznavanju več kritičnih ranljivosti v sklopih TCP za Linux in FreeBSD omogoča napadalcu, da na daljavo sproži okvaro jedra ali povzroči prekomerno porabo virov z obdelavo posebej izdelanih paketov TCP (paket smrti).

Težave povzročajo napake v ročajih največje velikosti podatkovnega bloka v paketu TCP (MSS, največja velikost segmenta) in mehanizem za selektivno prepoznavanje povezave (SACK, selektivno prepoznavanje TCP).

Kaj je selektivno priznanje?

Selektivno prepoznavanje TCP (SACK) gre za mehanizem, pri katerem lahko prejemnik podatkov pošiljatelja obvesti o vseh uspešno sprejetih segmentih.

To Pošiljatelju omogoča ponovno oddajo manjkajočih segmentov toka iz njegovega 'dobro znanega' sklopa. Ko je TCP SACK onemogočen, je za ponovno oddajanje celotnega zaporedja potreben veliko večji nabor ponovnih prenosov.

V jedru Linuxa so težave odpravljene v različicah 4.4.182, 4.9.182, 4.14.127, 4.19.52 in 5.1.11. Rešitev za FreeBSD je na voljo v obliki popravka.

Posodobitve jedrnega paketa so izdane za Debian, RHEL, SUSE / openSUSE, ALT, Ubuntu, Fedora in Arch Linux.

CVE-2019-11477 (Panika v vreči)

Problem se kaže v jedrih Linuxa od 2.6.29 in vam omogoča zrušitev jedra (panika) pri pošiljanju vrste paketov SACK zaradi celoštevilčnega prelivanja v krmilniku.

Za napad je dovolj, da nastavite vrednost MSS na 48 bajtov za povezavo TCP in pošiljanje zaporedja urejenih paketov SACK na določen način.

Bistvo problema je v tem, da je struktura tcp_skb_cb (vtičnica vtičnice) je zasnovan za shranjevanje 17 drobcev ("Določite MAX_SKB_FRAGS (65536 / PAGE_SIZE + 1) => 17").

Med pošiljanjem paketa se postavi v čakalno vrsto za pošiljanje, tcp_skb_cb pa shrani podrobnosti o paketu, na primer zaporedno številko, zastavice ter polji "tcp_gso_segs" in "tcp_gso_size", ki se uporabljajo za pošiljanje paketa. informacije o segmentaciji krmilniku (TSO, Segment Segment Download) za obdelavo segmentov na strani omrežne kartice.

Kosi se shranijo, ko pride do izgube paketov ali potrebe po selektivnem ponovnem prenosu paketov, če je omogočen SACK in gonilnik podpira TSO.

Kot rešitev za zaščito lahko onemogočite obdelavo SACK ali blokirate povezave z majhnim MSS-jem (deluje samo, če sysctl net.ipv4.tcp_mtu_probing nastavite na 0 in lahko z nizkim MSS-om prekine nekaj običajnega).

CVE-2019-11478 (SACK Počasnost)

Ta neuspeh povzroči prekinitev delovanja mehanizma SACK (pri uporabi jedra Linuxa v 4.15) ali pretirana poraba virov.

Težava se pojavi pri obdelavi posebej izdelanih paketov SACK, ki jih lahko uporabimo za fragmentiranje čakalne vrste za ponovno oddajo (ponovna oddaja TCP). Rešitve za zaščito so podobne prejšnjim ranljivostim

CVE-2019-5599 (SACK Počasnost)

Omogoča razdrobljenost zemljevida paketov, poslanih pri obdelavi zaporedja SACK znotraj ene povezave TCP in povzroči zagon operacije iskanja po seznamu, ki zahteva veliko virov.

Težava se kaže v FreeBSD 12 z mehanizmom za zaznavanje izgube paketov RACK. Kot rešitev lahko onemogočite modul RACK (privzeto ni naložen, onemogočen z določitvijo sysctl net.inet.tcp.functions_default = freebsd)

CVE-2019-11479

Napaka napadalcu omogoča, da jedro Linuxa razdeli odzive na več segmentov TCP, od katerih vsak vključuje le 8 bajtov podatkov, kar lahko privede do znatnega povečanja prometa, večje obremenitve procesorja in zamašenega komunikacijskega kanala.

Poleg tega porabi dodatna sredstva (moč procesorja in omrežna kartica).

Ta napad zahteva stalna prizadevanja napadalca in zadetki se končajo kmalu po tem, ko napadalec preneha pošiljati promet.

Medtem ko ta napad traja, bo sistem deloval z zmanjšano zmogljivostjo, kar bo nekaterim uporabnikom povzročilo zavrnitev storitve.

Oddaljeni uporabnik lahko to težavo sproži z nastavitvijo največje velikosti segmenta (MSS) povezave TCP na najnižji meji (48 bajtov) in pošiljanje zaporedja posebej izdelanih paketov SACK.

Kot rešitev je priporočljivo blokirati povezave z nizkim MSS.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.