Cara mengatasi Memory Dumps dan mencegah hacker mengambil informasi penting saat terjadi crash

Misalkan aplikasi Anda menyimpan data yang berpotensi sensitif dalam memori, dan Anda ingin mencegah data ini ke rewrite ke disk jika program macet, karena penyerang lokal mungkin dapat memeriksa dump inti dan menggunakan informasi itu untuk melancarkan serangannya dikemudian hari.

Perlu diketahui, pada sistem Unix,menggunakan setrlimit () untuk mengatur sumber daya RLIMIT_CORE ke nol, yang akan mencegah sistem operasi dari meninggalkan file inti. Di Windows, tidak mungkin untuk menonaktifkan hal itu, tetapi juga sama tidak ada jaminan bahwa dump memori akan dilakukan. Pengaturan seluruh sistem yang tidak dapat diubah atas dasar per-aplikasi untuk mengontrol tindakan yang diambil Windows saat aplikasi crash.

Pada sebagian besar sistem Unix, program yang macet akan “Dump Core.”

Masalah dengan dumping core adalah program tersebut mungkin mengandung informasi yang berpotensi sensitif dalam memorinya pada saat rewriten ke disk. Bayangkan sebuah program yang baru saja membaca kata sandi pengguna, dan kemudian dipaksa untuk membuang inti sebelum memiliki kesempatan untuk menghapus atau menghapus imformaso seperti kata sandi dalam memori. Karena penyerang mungkin dapat memanipulasi program runtime environment sedemikian rupa sehingga dapat mengambil informasi sensitif ke disk. Jadi, Anda harus mencoba mencegah penyerang yang akan mungkin bisa mendapatkan akses ke file inti tersebut.

Proses dumping inti dapat dibatasi berdasarkan per-aplikasi dengan menggunakan kapabilitas sumber daya terbatas pada sebagian besar sistem Unix. Salah satu batas standar yang dapat diterapkan pada suatu proses adalah ukuran maksimum file inti. Batas ini berfungsi untuk melindungi dari program besar (dalam hal konsumsi memori) yang membuang inti dan berpotensi mengisi semua ruang disk yang tersedia. Tanpa batas ini, bagi penyerang yang telah menemukan cara untuk menyebabkan program crash dari jarak jauh dan membuang inti untuk mengisi semua ruang disk yang tersedia di server.

Jadi dengan menyetel nilai RLIMIT_CORE ke 0 dapat mencegah proses rewritten dump memori apa pun ke disk, alih-alih hanya menghentikan program ketika terjadi masalah fatal.

#include <sys types.h=”types.h”>
#include <sys time.h=”time.h”>
#include <sys resource.h=”resource.h”>

void spc_limit_core(void) {
struct rlimit rlim;

rlim.rlim_cur = rlim.rlim_max = 0;

setrlimit(RLIMIT_CORE, &amp;rlim);
}

Leave a comment