Pengertian CVE (Common Vulnerabilities and Exposures)
Pengertian Tentang CVE (Common Vulnerabilities and Exposures)
Common Vulnerabilities and Exposures atau CVE adalah daftar yang menampilkan keamanan informasi apa saja pada suatu software atau firmware yang cukup rentan hingga berpotensi mendapat serangan siber. CVE diluncurkan oleh sebuah organisasi non profit, MITRE, dan kamu bisa menemukan ‘kamus’ mengenai vulnerabilities dan exposures menggunakan fitur CVEChecker di website MITRE CVE.
Biasanya, penyerang cyber akan menggunakan celah pada software atau website untuk dibobol, baik berupa serangan bug atau virus. Namun, kemungkinan hal ini akan terjadi bisa diperkecil dengan CVE, penyerang atau hacker biasanya akan memanfaatkan celah tersebut untuk mengganggu fungsi website yang dijadikan sebagai target. Ada beberapa jenis CVE yang biasanya digunakan, tergantung CVE ID-nya.
1.) CVE-2018-6389
Di tahun 2018, sempat viral CVE-2018-689, yaitu ketika CVE ID mendapatkan bug WordPress DoS (Denial of Service) Attack yang memungkinkan penyerang memanfaatkan load-script dan load-style.php pada WordPress.
Kerentanan atau vulnerability pada load-script ini ditemukan oleh Barak Tawily, Security Researcher asal Israel. Script default WordPress tersebut memproses permintaan yang diakses pengguna.
Contoh:
https://example.com/wp-admin/load-scripts.php?load=wp-polyfill,lodash,moment,wp-api-fetch,wp-data,wp-date,editor,utils,common,wp-sanitize,sack,quicktags,colorpicker,clipboard,wp-fullscreen-stub,wp-ajax-response,wp-api-request,wp-pointer,autosave,heartbeat,wp-auth-check,wp-lists,prototype,scriptaculous-root,scriptaculous-builder,scriptaculous-dragdrop,scriptaculous-effects,scriptaculous-slider
Akibat load-scripts.php dapat diakses oleh publik, penyerang akhirnya dapat memanfaatkan celah tersebut untuk mengirimkan permintaan atau request sebesar 3 MB secara terus-menerus dan berulang-ulang sehingga dapat menyebabkan server overload.
Setelah penyerang berhasil mengirimkan lebih dari 500 permintaan, kemudian server kewalahan menangani permintaan tersebut sehingga menjadi overload dan website akan mengalami error 502 Bad Gateway akibat server tidak dapat melayani permintaan.
Namun, masalah CVE sebenarnya dapat diatasi dengan melakukan penambahan script pada .htaccess website WordPress kamu menggunakan perintah berikut.
RewriteRule ^wp-admin/load-scripts\.php$ – [R=403,L]
Script tersebut memberikan perintah pada server untuk memberikan respon 403 Forbidden jika ada permintaan dari pengguna yang mencurigakan.
2.) Zerologon (CVE-2020-1472)
Pada 11 Agustus 2020 Microsoft merilis pembaruan keamanan termasuk patch untuk kerentanan kritis dalam protokol NETLOGON (CVE-2020-1472) yang ditemukan oleh peneliti Secura. Karena tidak ada rincian teknis awal yang dipublikasikan, CVE dalam pembaruan keamanan gagal mendapat banyak perhatian, meskipun menerima skor CVSS maksimum 10. Setelah menganalisis whitepaper kerentanan Secura dan eksploitasi yang dirilis, kami yakin ini adalah yang paling kritis Kerentanan Direktori Aktif ditemukan tahun ini. Tingkat keparahannya setara dengan MS-14-068(Ditempa-PAC). Kerentanan ini memungkinkan penyerang yang tidak diautentikasi dengan akses jaringan ke pengontrol domain, membuat sesi Netlogon yang rentan dan pada akhirnya mendapatkan hak administrator domain. Kerentanannya sangat parah karena satu-satunya persyaratan agar eksploitasi berhasil adalah kemampuan untuk membuat koneksi dengan pengontrol domain.
Inti dari kerentanan terletak pada implementasi yang buruk dari panggilan ComputeNetlogonCredential dari Netlogon Remote Protocol ( MS-NRPC ). ComputeNetlogonCredential mengambil tantangan 8 byte sebagai masukan, melakukan transformasi kriptografi menggunakan kunci sesi (yang membuktikan pengetahuan tentang rahasia komputer), dan mengeluarkan hasil 8 byte. Masalahnya terletak pada kelemahan implementasi pada metode AES-CFB8 yang lebih baru (yang juga merupakan satu-satunya metode yang diizinkan di versi Windows yang lebih baru) yang digunakan untuk melakukan transformasi ini.
Untuk menggunakan AES-CFB8 dengan aman, vektor inisialisasi acak (IV) perlu dibuat untuk setiap teks biasa yang akan dienkripsi menggunakan kunci yang sama. Namun, fungsi ComputeNetlogonCredential menetapkan IV ke nilai tetap 16 byte nol. Hal ini mengakibatkan kelemahan kriptografi di mana enkripsi 8-byte nol dapat menghasilkan teks tersandi nol dengan probabilitas 1 dalam 256. Masalah implementasi lain yang memungkinkan serangan ini adalah sesi Netlogon yang tidak terenkripsi tidak ditolak oleh server (secara default ). Kombinasi dari dua kelemahan ini dapat memungkinkan penyerang untuk sepenuhnya mengkompromikan otentikasi, dan dengan demikian meniru server pilihan mereka.
3.) Pwnkit (CVE-2021-4034)
Penasihat baru dari Qualys mengungkapkan bug eskalasi hak istimewa lokal dalam program set SUID 'pkexec'. Cacat tersebut telah ditetapkan sebagai ID CVE CVE-2021-4034 dan dijuluki “pwnkit” oleh pencari kerentanan. Skor dasar CVSSv3 dihitung sebagai 7,8 dari 10,0.
Program rentan adalah bagian dari Polkit , yang mengelola hak istimewa proses. Pkexec Polkit memungkinkan proses yang tidak memiliki hak istimewa untuk berkomunikasi dengan proses yang memiliki hak istimewa , serta menginstrumentasikan penggunaan eskalasi hak istimewa yang sah dan sah yang serupa dengan ' sudo '.
Cacat kerusakan memori terjadi ketika tidak ada argumen yang diteruskan ke fungsi. Dengan memanipulasi variabel lingkungan, penyerang dapat mengelabui 'pkexec' untuk memuat dan mengeksekusi kode arbitrer dengan hak pengguna super.
Cacat ini muncul hampir 13 tahun yang lalu saat program pertama kali dirilis pada tahun 2009. Ini berarti bahwa hampir setiap instalasi Linux dan Unix di dunia saat ini mungkin terpengaruh !
Kerentanannya menarik, karena penyerang dapat memanfaatkan kerusakan memori tanpa perlu mengontrol penunjuk instruksi (EIP dalam perakitan x86). Dalam serangan berbasis memori yang khas seperti heap overflow , penunjuk instruksi ditimpa untuk mengarahkan proses yang dieksploitasi untuk menjalankan kode shell yang terletak di tempat lain di memori. Namun, di sini kita cukup memberitahu 'pkexec' di mana program yang akan dijalankan berada dalam variabel lingkungan kita.
Biasanya, program membaca argumen eksplisit dan variabel lingkungan implisit untuk mengetahui tugas apa yang harus dilakukan. Dalam kasus 'pkexec', argumen yang diharapkan adalah program yang harus dijalankan. Jika ditentukan bahwa pengguna yang meminta berwenang untuk melakukan tindakan tersebut, maka program tersebut akan dijalankan sebagai root. Jika tidak ada argumen yang diberikan, ia hanya mencetak pesan bantuan penggunaan dan keluar. Namun, karena cara 'pkexec' memproses argumen, ia juga akan secara diam-diam menempatkan variabel lingkungan di ruang memori argumen dengan penulisan di luar batas. 'pkexec' akan mencari program untuk dijalankan di ruang itu, tetapi tidak menemukannya dan keluar seperti yang diharapkan.
Jadi, agar penyerang dapat mengeksploitasi hal ini, mereka perlu meletakkan lokasi kode shell mereka di variabel lingkungan agar 'pkexec' dapat diteruskan ke root land secara tidak terduga .
Trik untuk meneruskan variabel lingkungan “tidak aman” terletak pada cara 'pkexec' mencetak pesan kesalahan. 'pkexec' bergantung pada perpustakaan GNOME GLib untuk memformat pesan dengan benar dalam berbagai rangkaian karakter (format bahasa).
Anda mungkin membaca ini dalam format ASCII atau UTF-8 . Jika Anda pernah melihat dokumen yang berisi karakter dari bahasa seperti Arab atau Ibrani, kemungkinan besar dokumen tersebut berformat UTF-16 atau UTF-32.
Dengan memberitahu Glib untuk menggunakan rangkaian karakter yang tidak diketahuinya, Glib akan mencoba mencari perpustakaan untuk melakukan pemformatan dengan mencari di variabel lingkungan GCONV_PATH . Biasanya, ini bukan variabel yang diteruskan ke root, namun karena cara kerja kerentanan ini, variabel GCONV_PATH dapat diselundupkan ke variabel lain seperti PATH dan ditambahkan kembali ke lingkungan pengguna super. Jadi, penyerang memerlukan shell tingkat pengguna untuk menjalankan 'pkexec', menyebabkan kesalahan, menggunakan rangkaian karakter yang tidak valid, dan menyetel GCONV_PATH ke lokasi kode shell berbentuk perpustakaan mereka.
Karena kerentanan sudah ada sejak lama, pada dasarnya setiap sistem mirip Unix yang menggunakan Polkit rentan. OpenBSD adalah pengecualian dan sudah memiliki mitigasi untuk tidak mengizinkan panggilan sistem execve jika argc kosong, sehingga menghilangkan harapan untuk mengeksploitasi ini pada OS yang berfokus pada keamanan.
Mitigasi sementara dilakukan dengan mengorbankan kemampuan pkexec. Dengan menghapus izin SUID, program tidak dapat menjalankan proses sebagai root. Namun, setiap proses yang mengandalkannya untuk operasi normal akan terpengaruh. Izin SUID dapat dihapus dengan chmod, sebagai berikut:
chmod 0755 /usr/bin/pkexec
Pengguna disarankan untuk menerapkan patch keamanan terbaru dari distribusi Linux mereka untuk memperbaiki masalah ini.
CVE ini menunjukkan bahwa perangkat lunak yang lebih tua dan tepercaya tidak selalu bebas dari kerentanan.
Posting Komentar untuk "Pengertian CVE (Common Vulnerabilities and Exposures)"