Rumah > Tutorial sistem > LINUX > Pengenalan untuk mengesan kelemahan kernel Linux dengan tepat

Pengenalan untuk mengesan kelemahan kernel Linux dengan tepat

王林
Lepaskan: 2024-02-13 18:27:27
ke hadapan
863 orang telah melayarinya

Mod biasa untuk memetik perisian sumber terbuka ialah memperkenalkan perpustakaan dinamik atau pakej jar perisian sumber terbuka Oleh itu, kadar penggera palsu kerentanan akan menjadi sangat rendah semasa pengesanan kerentanan, tetapi ia berbeza dalam kernel Linux kerana kernel Linux. modul fungsi sangat kaya dan Pangda akan disesuaikan mengikut keperluan perniagaan semasa penggunaan sebenar Oleh itu, cara untuk mencapai pengesanan kerentanan yang tepat dan mengurangkan kadar pengesanan kerentanan positif palsu dalam senario ini adalah amat ketara.

Struktur kernel Linux:

Inti Linux terdiri daripada tujuh bahagian, dan setiap bahagian berbeza terdiri daripada berbilang modul kernel Gambar rajah blok struktur adalah seperti berikut:

Pengenalan untuk mengesan kelemahan kernel Linux dengan tepat

Analisis adegan pemangkasan Linux:

Dengan menganalisis kod sumber kernel Linux, anda boleh melihat bahawa kod pelaksanaan modul yang berbeza disimpan dalam direktori yang berbeza Pada masa yang sama, anda boleh menggunakan maklumat yang dikonfigurasikan dalam konfigurasi semasa penyusunan untuk mengawal modul yang disusun ke dalam binari akhir. dan modul yang dipangkas Sebagai contoh, Ambil modul IPV6 sebagai contoh Nama konfigurasi yang mengawal modul ini ialah CONFIG_IPV6 Jika item konfigurasi ditetapkan kepada y, ini bermakna modul fungsi belum disusun ke dalam binari akhir fail, seperti yang ditunjukkan di bawah:

Pengenalan untuk mengesan kelemahan kernel Linux dengan tepat

Jika modul fungsi dipotong, walaupun kelemahan tidak diperbaiki oleh tampalan, kelemahan yang ada dalam modul fungsi tidak akan terjejas dalam binari Oleh itu, kelemahan yang berkaitan dengan IPV6 harus dilaporkan semasa pengesanan kerentanan kerana tidak terjejas oleh kerentanan ini, seperti CVE-2013-0343 (fungsi ipv6_create_tempaddr dalam net/ipv6/addrconf.c dalam versi sebelum kernel Linux 3.8 tidak mengendalikan isu penjanaan alamat sementara IPv6 dengan betul, membenarkan penyerang jauh melalui Iklan Penghala ICMPv6 (RA), menyebabkan penafian perkhidmatan dan kemudian mendapatkan maklumat sensitif).

Analisis sebab alat SCA binari dalam industri tidak dapat mengesan:

Sebab mengapa alat SCA binari biasa dalam industri tidak dapat mengesan dengan tepat adalah kerana alat SCA binari dalam industri mengaitkan senarai kelemahan yang diketahui berdasarkan nama dan nombor versi perisian sumber terbuka yang dikesan, dan analisis kelemahan jenis ini dengan memotong modul berfungsi Untuk menggunakan kernel Linux, nama dan nombor versi perisian sumber terbuka tidak akan berubah, jadi alat itu tidak dapat mengesannya dengan tepat.

Cara alat SCA binari melaksanakan fungsi ini:

Untuk mencapai pengesanan tepat terhadap kelemahan yang diketahui dalam senario penyesuaian kernel Linux, alat SCA binari mesti melaksanakan teknologi pengesanan butiran halus yang dikemas kini berdasarkan pengesanan asal nama perisian sumber terbuka dan nombor versi, berdasarkan kebutiran dan fungsi fail kod sumber keupayaan membolehkan pengesanan tepat kelemahan yang diketahui dalam menyesuaikan senario, iaitu, anda boleh mengetahui kod yang disusun ke dalam fail binari akhir dan kod yang tidak termasuk dalam kompilasi. Pada masa yang sama, pustaka kerentanan juga mesti menyokong dimensi yang terperinci, iaitu, maklumat kerentanan mesti mengesan serpihan kod dengan tepat di mana fail dan fungsi diperkenalkan.
Mengambil CVE-2013-0343 sebagai contoh, dengan menganalisis maklumat perihalan kerentanan dan kod sumber kernel Linux, kami boleh mendapatkan maklumat kedudukan yang berkaitan dengan kerentanan dan kod lokasi berikut:

"CVE-2013-0343": {
"net/ipv6/addrconf.c": [
“addrconf_add_ifaddr”,
“addrconf_dad_begin”,
“addrconf_dad_stop”,
“addrconf_dad_work”,
“addrconf_del_ifaddr”,
“addrconf_prefix_rcv”,
“addrconf_verify_rtnl”,
“addrconf_verify_work”,
“inet6_addr_add”,
“inet6_addr_del”,
“inet6_addr_modify”,
“inet6_rtm_deladdr”,
“inet6_rtm_newaddr”,
“inet6_set_iftoken”,
“inet6_set_link_af”,
“ipv6_create_tempaddr”,
“manage_tempaddrs”
]
}
Salin selepas log masuk

Ringkasan

Berdasarkan prinsip bahawa jika kod sumber yang memperkenalkan kerentanan tidak mengambil bahagian dalam menyusun binari, maka binari yang disusun tidak mempunyai kelemahan oleh itu, selagi alat SCA binari dapat mengesan kod sumber di atas lokasi tidak mengambil bahagian dalam menyusun fail binari vmlinux akhir, maka fail vmlinux ini tidak terjejas oleh kerentanan CVE-2013-0343.

Untuk membantu kakitangan keselamatan dengan lebih baik dalam melaksanakan audit keselamatan dan mengurangkan kadar positif palsu pengesanan kerentanan, alat SCA binari mesti berkembang kepada dimensi pengesanan yang lebih halus, bukan sahaja pada tahap perisian sumber terbuka, tetapi juga untuk meningkatkan perpustakaan kerentanan Keperluan juga memerlukan cabaran maklumat tepat yang terperinci.

Atas ialah kandungan terperinci Pengenalan untuk mengesan kelemahan kernel Linux dengan tepat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:lxlinux.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan