Tiga kelemahan yang terdapat di tumpukan TCP Linux menyebabkan penolakan perkhidmatan dari jauh

linux crash

Baru-baru ini mengeluarkan berita mengenai pengenalan beberapa kerentanan kritikal dalam susunan TCP Linux dan FreeBSD itu membolehkan penyerang memulakan kegagalan kernel dari jarak jauh atau menyebabkan penggunaan sumber yang berlebihan dengan memproses paket TCP yang dibuat khas (paket kematian).

Masalahnya disebabkan oleh kesalahan pada pegangan ukuran maksimum blok data dalam paket TCP (MSS, Ukuran segmen maksimum) dan mekanisme untuk pengecaman sambungan selektif (SACK, Selective TCP recognition).

Apakah pengiktirafan selektif?

Pengiktirafan TCP Selektif (SACK) ini adalah mekanisme di mana penerima data dapat memberitahu pengirim mengenai semua segmen yang telah berjaya diterima.

Ini Membolehkan pengirim menghantar semula segmen aliran yang hilang dari himpunannya yang 'terkenal'. Apabila TCP SACK dilumpuhkan, satu set penghantaran semula yang jauh lebih besar diperlukan untuk menghantar semula keseluruhan urutan.

Dalam kernel Linux, masalahnya diperbaiki dalam versi 4.4.182, 4.9.182, 4.14.127, 4.19.52 dan 5.1.11. Penyelesaian untuk FreeBSD tersedia sebagai tambalan.

Kemas kini pakej Kernel dikeluarkan untuk Debian, RHEL, SUSE / openSUSE, ALT, Ubuntu, Fedora, dan Arch Linux.

CVE-2019-11477 (Panik SACK)

Masalahnya memanifestasikan dirinya dalam kernel Linux pada 2.6.29 dan membolehkan anda menghancurkan kernel (panik) semasa menghantar rangkaian paket SACK kerana limpahan bilangan bulat pada pengawal.

Untuk serangan, cukup untuk menetapkan nilai MSS menjadi 48 bait untuk sambungan TCP dan menghantar urutan paket SACK yang disusun dengan cara tertentu.

Inti masalahnya ialah strukturnya tcp_skb_cb (Penyangga Soket) direka untuk menyimpan 17 serpihan ("Tentukan MAX_SKB_FRAGS (65536 / PAGE_SIZE + 1) => 17").

Dalam proses menghantar paket, ia dimasukkan ke dalam antrian kirim dan tcp_skb_cb menyimpan perincian mengenai paket, seperti nombor urutan, bendera, serta bidang "tcp_gso_segs" dan "tcp_gso_size", yang digunakan untuk mengirim maklumat segmentasi ke pengawal (TSO, Segment Segment Download) untuk memproses segmen di bahagian kad rangkaian.

Potongan disimpan apabila kehilangan paket atau keperluan penghantaran semula paket terpilih berlaku, jika SACK diaktifkan dan TSO disokong oleh pemacu.

Sebagai penyelesaian untuk perlindungan, anda boleh melumpuhkan pemprosesan SACK atau menyekat sambungan dengan MSS kecil (hanya berfungsi apabila anda menetapkan sysctl net.ipv4.tcp_mtu_probing ke 0 dan mungkin tidak normal dengan MSS rendah).

CVE-2019-11478 (SACK Kelambatan)

Kegagalan ini menyebabkan gangguan mekanisme SACK (semasa menggunakan kernel Linux dalam 4.15) atau penggunaan sumber yang berlebihan.

Masalahnya terserlah apabila paket SACK yang dibuat khas diproses yang dapat digunakan untuk memecahkan antrean penghantaran semula (penghantaran semula TCP). Penyelesaian untuk perlindungan serupa dengan kelemahan sebelumnya

CVE-2019-5599 (SACK Kelambatan)

Membolehkan menyebabkan pemecahan peta paket yang dihantar semasa memproses urutan SACK dalam satu sambungan TCP dan menyebabkan operasi pencarian senarai intensif sumber dijalankan.

Masalahnya muncul dalam FreeBSD 12 dengan mekanisme pengesanan kehilangan paket RACK. Sebagai penyelesaian anda boleh mematikan modul RACK (ia tidak dimuat secara lalai, ia dilumpuhkan dengan menentukan sysctl net.inet.tcp.functions_default = freebsd)

CVE-2019 11479-

Kekurangan itu membolehkan penyerang membuat kernel Linux membagi tindak balas menjadi beberapa segmen TCP, masing-masing merangkumi hanya 8 bait data, yang dapat menyebabkan peningkatan lalu lintas yang signifikan, peningkatan beban CPU, dan saluran komunikasi yang tersumbat.

Di samping itu, ia menggunakan sumber tambahan (kuasa pemproses dan kad rangkaian).

Serangan ini memerlukan usaha berterusan dari pihak penyerang dan serangan akan berakhir tidak lama setelah penyerang berhenti menghantar lalu lintas.

Sementara serangan ini sedang berlangsung, sistem akan berjalan pada kapasitas yang berkurang, menyebabkan penolakan perkhidmatan untuk beberapa pengguna.

Pengguna jarak jauh dapat mencetuskan masalah ini dengan menetapkan ukuran segmen maksimum (MSS) sambungan TCP pada had terendahnya (48 bait) dan menghantar urutan paket SACK yang dibuat khas.

Sebagai jalan penyelesaian, disarankan untuk menyekat sambungan dengan MSS rendah.


Menjadi yang pertama untuk komen

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.