Situasi: dua kerentanan dalam tumpukan Linux kernel TCP ditutup

Awal bulan ini, pakar keamanan menemukan dua kerentanan baru di kernel Linux: SegmentSmack dan FragmentSmack. Keduanya terkait dengan pekerjaan TCP stack dan memungkinkan penyerang untuk melakukan serangan DoS dan DDoS pada sistem korban. "Patch" untuk sebagian besar distribusi telah dirilis.

Di bawah potongan - lebih lanjut tentang esensi.


/ foto Eli Duke CC

Mengapa kerentanan ini berbahaya?


"Root of evil" SegmentSmack - berfungsi tcp_collapse_ofo_queue () dan tcp_prune_ofo_queue (). Seorang penyerang memanggil mereka menggunakan segmen TCP yang dimodifikasi khusus yang dikirim ke server korban, komputer pribadi atau perangkat seluler.

Hal ini menyebabkan penggunaan memori dan sumber daya prosesor yang berlebihan. Dengan demikian, seorang hacker dapat "menggantung" host atau perangkat dengan lalu lintas hanya 2 ribu paket per detik.

Situs web RedHat memberikan contoh hasil dari serangan semacam itu. Perintah teratas menunjukkan beban penuh dari empat inti CPU dan keterlambatan dalam pemrosesan paket jaringan:

$ top %Cpu25 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.5 si, 0.0 st %Cpu26 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st %Cpu28 : 0.0 us, 0.3 sy, 0.0 ni, 0.7 id, 0.0 wa, 0.0 hi, 99.0 si, 0.0 st %Cpu30 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 141 root 20 0 0 0 0 R 97.3 0.0 1:16.33 ksoftirqd/26 151 root 20 0 0 0 0 R 97.3 0.0 1:16.68 ksoftirqd/28 136 root 20 0 0 0 0 R 97.0 0.0 0:39.09 ksoftirqd/25 161 root 20 0 0 0 0 R 97.0 0.0 1:16.48 ksoftirqd/30 

Perhatikan bahwa mempertahankan "kondisi DoS" memerlukan sesi TCP terbuka, sehingga serangan tidak dapat dilakukan dengan menggunakan IP spoofing.

Serangan FragmentSmack mengeksploitasi fitur fragmentasi datagram IP . Ketika datagram IP ditransmisikan ke lapisan tautan, itu terfragmentasi jika tidak masuk ke dalam bingkai . Dengan demikian, ia ditransmisikan menjadi beberapa bagian, dan tuan rumah kemudian mengumpulkannya bersama-sama. Namun, ia hanya tahu panjang terakhir datagram ketika ia menerima fragmen terakhir.

Penyerang menggunakan fitur ini dan menyesuaikan nilai offset fragmen sehingga prosesor server secara konstan merakit paket IPv4 dan IPv6.

FragmentSmack memungkinkan Anda untuk bekerja dengan alamat IP palsu untuk mengelabui sistem keamanan (Anda dapat menggunakan spoofing IP). Namun, itu membutuhkan paket pengiriman lebih cepat daripada SegmentSmack - 30 ribu paket per detik.

RedHat juga memberikan hasil serangan yang sama (kernel dimuat 99%):

 top - 08:59:45 up 1:34, 2 users, load average: 0.39, 0.15, 0.08 %Cpu9 : 0.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi,100.0 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 54 root 20 0 0 0 0 R 99.7 0.0 0:47.53 ksoftirqd/9 

Kerentanan semacam itu tidak ditemukan untuk pertama kalinya. Pada tahun sembilan puluhan, bug serupa ditemukan di Windows NT 4.0, Windows 95 dan versi kernel Linux hingga 2.0.32. Eksploitasi dikenal sebagai serangan tetesan air mata - penyerang juga mengirim paket terfragmentasi ke perangkat target (jaringan), menyebabkan DoS. Kerentanan telah ditambal, tetapi muncul kemudian.

Pada 2009, bug itu ditemukan lagi di Windows 7 dan Windows Vista.

Siapa yang terluka


FragmentSmack mengancam semua versi kernel Linux dimulai dengan 3.9, dan SegmentSmack mengancam dengan 4.9. Anda dapat menemukan daftar vendor yang sistemnya memiliki kerentanan ini di situs web CERT .

Pekan lalu, Cisco melaporkan bahwa sistem operasi mereka AsyncOS diserang oleh SegmentSmack dan FragmentSmack. Karena itu, perusahaan merilis sejumlah tambalan.

Seperti dicatat dalam Cisco, "gejala" kerentanan dapat dilacak menggunakan perintah netstat (contohnya ada di situs web Cisco di bagian Indicators of Compromise ). Jika output perintah menunjukkan sejumlah besar koneksi TCP dalam keadaan CLOSE_WAIT, maka perangkat kemungkinan akan terpengaruh oleh kerentanan ini.

Apa yang harus diobati?


Rincian tentang tambalan SegmentSmack untuk sejumlah distribusi telah diterbitkan di CVE (misalnya, berikut adalah tambalan untuk Ubuntu 14.04 LTS ). Di sana Anda akan menemukan instruksi dan menambal file untuk semua distribusi Linux. Sedangkan untuk FragmentSmack, tambalan terhadap kerentanan ini telah diluncurkan oleh pengembang Ubuntu, Red Hat, Debian dan OS Android.


/ foto Christopher Michel CC

Sebagai solusi sementara untuk masalah FragmentSmack (jika tambalan tidak dapat dipasang karena beberapa alasan), Anda dapat mengubah nilai net.ipv4.ipfrag_high_thresh dan net.ipv4.ipfrag_low_thresh masing-masing menjadi 256 dan 192 KB (alih-alih 4 MB dan 3 MB).

Parameter pertama menetapkan jumlah maksimum memori yang dialokasikan untuk antrian paket yang terfragmentasi. Jika panjang antrian melebihi itu, pawang fragmen akan mengabaikan semua paket sampai panjang antrian kurang dari nilai ipfrag_low_thresh.

Pemilik Android, menurut Kevin Beaumont, pakar keamanan dunia maya (serta penulis blog independen tentang topik tersebut), dapat mengubah nilai-nilai ini menggunakan perintah tersebut (mereka harus bekerja tanpa me-reboot perangkat).



Apa yang kami lakukan di IT-GRAD - area utama:

Infrastruktur Virtual (IaaS)Hosting PCI DSSCloud FZ-152



Konten lain dari blog IaaS kami:



Source: https://habr.com/ru/post/id421207/


All Articles