Apakah ASLR, dan Bagaimana Ia Menjaga Keselamatan Anda?
Rujukan Layout Ruang Ruang (ASLR) adalah teknik keselamatan yang digunakan dalam sistem pengendalian, yang pertama kali dilaksanakan pada tahun 2001. Versi terkini semua sistem operasi utama (iOS, Android, Windows, macOS, dan Linux) mempunyai perlindungan ASLR. Tetapi pada minggu lalu, kaedah baru melangkau ASLR telah dijumpai. Jadi, sekiranya anda bimbang?
Bagi mereka tanpa latar belakang pengaturcaraan peringkat rendah, ASLR boleh mengelirukan. Untuk memahaminya, anda mesti terlebih dahulu memahami ingatan maya.
Apakah Memori Maya?
Memori Maya adalah teknik pengurusan memori dengan banyak faedah, tetapi ia dibuat terutamanya untuk memudahkan pengaturcaraan. Bayangkan anda mempunyai Google Chrome, Microsoft Word, dan beberapa program lain yang dibuka pada komputer dengan 4 GB RAM. Sebagai keseluruhan, program-program pada komputer ini menggunakan lebih daripada 4 GB RAM. Walau bagaimanapun, tidak semua program akan aktif sepanjang masa, atau memerlukan akses serentak pada RAM tersebut.
Sistem operasi mengagihkan ketulan memori ke program yang dipanggil halaman. Sekiranya RAM tidak mencukupi untuk menyimpan semua halaman sekaligus, halaman yang paling mungkin diperlukan disimpan pada pemacu keras yang lebih perlahan (tetapi lebih luas). Apabila halaman yang disimpan diperlukan, mereka akan menukar ruang dengan halaman yang kurang diperlukan saat ini dalam RAM. Proses ini dipanggil paging, dan meminjamkan namanya ke fail pagefile.sys pada Windows.
Memori maya memudahkan untuk program menguruskan memori mereka sendiri, dan juga membuat mereka lebih selamat. Program tidak perlu bimbang tentang mana program lain menyimpan data, atau berapa banyak RAM yang tersisa. Mereka hanya boleh meminta sistem operasi untuk memori tambahan (atau memulangkan memori yang tidak digunakan) seperti yang diperlukan. Semua program yang dilihat adalah satu bahagian memori berterusan untuk kegunaan eksklusifnya, yang dipanggil alamat maya. Program ini tidak dibenarkan untuk melihat memori program yang lain.
Apabila program perlu mengakses memori, ia memberikan sistem operasi alamat maya. Sistem pengendalian menghubungi unit pengurusan memori CPU (MMU). MMU menerjemahkan antara alamat maya dan fizikal, mengembalikan maklumat tersebut ke sistem operasi. Tidak ada program yang secara langsung berinteraksi dengan RAM.
Apakah ASLR?
Alamat Ruang Rawak Rawak (ASLR) terutamanya digunakan untuk melindungi terhadap serangan limpahan limpahan. Dalam limpahan penyangga, penyerang memakan fungsi sebagai data sampah yang banyak yang dapat dikendalikan, diikuti oleh muatan jahat. Muatan akan menimpa data yang hendak dicapai oleh program. Arahan untuk melompat ke titik lain dalam kod adalah muatan biasa. Kaedah JailbreakMe yang terkenal untuk jailbreaking iOS 4, misalnya, menggunakan serangan limpahan buangan, mendorong Apple untuk menambahkan ASLR ke iOS 4.3.
Limpahan penimbunan memerlukan penyerang tahu di mana setiap bahagian program terletak di dalam memori. Memikirkan ini biasanya merupakan proses percubaan dan kesukaran yang sukar. Setelah menentukan itu, mereka mesti membuat muatan dan mencari tempat yang sesuai untuk menyuntiknya. Jika penyerang tidak tahu di mana kod sasarannya terletak, ia boleh menjadi sukar atau mustahil untuk mengeksploitasinya.
ASLR berfungsi bersama pengurusan memori maya untuk meramalkan lokasi bahagian-bahagian yang berlainan dalam program memori. Setiap kali program dijalankan, komponen (termasuk timbunan, tumpukan, dan perpustakaan) dipindahkan ke alamat lain dalam memori maya. Penyerang tidak boleh lagi belajar di mana sasaran mereka melalui percubaan dan kesilapan, kerana alamatnya akan berbeza setiap kali. Umumnya, aplikasi perlu dikompilasi dengan sokongan ASLR, tetapi ini menjadi lalai, dan bahkan diperlukan pada Android 5.0 dan kemudian.
Begitu juga ASLR Masih Melindungi Anda?
Selasa lalu, para penyelidik dari SUNY Binghamton dan University of California, Riverside, menyampaikan kertas yang disebut Jump Over ASLR: Predictors Cabang Serangan untuk Bypass ASLR. Makalah itu menunjukkan cara untuk menyerang Penargetan Sasaran Cawangan (BTB). BTB adalah sebahagian daripada pemproses yang mempercepatkan jika pernyataan dengan meramalkan hasilnya. Menggunakan kaedah pengarang, adalah mungkin untuk menentukan lokasi arahan cawangan yang diketahui dalam program yang sedang berjalan. Serangan yang dipersoalkan itu dilakukan pada mesin Linux dengan pemproses Intel Haswell (mula dikeluarkan pada tahun 2013), tetapi kemungkinan besar akan digunakan untuk sistem operasi dan prosesor moden.
Yang berkata, anda tidak semestinya berputus asa. Kertas ini menawarkan beberapa cara yang membolehkan pembangun sistem perkakasan dan operasi dapat mengurangkan ancaman ini. Teknik ASLR yang lebih bijak, bijirin memerlukan lebih banyak usaha daripada penyerang, dan meningkatkan jumlah entropi (rawak) dapat membuat serangan Jump Over infeasible. Kemungkinan besar, sistem operasi dan pemproses yang lebih baru akan menjadi kebal terhadap serangan ini.
Jadi apa yang tersisa anda untuk melakukan? Lompat Lompat Lebih baru, dan masih belum terlihat di alam liar. Apabila penyerang memanfaatkannya, cacat akan meningkatkan kerosakan yang berpotensi penyerang boleh menyebabkan pada peranti anda. Tahap akses ini tidak pernah berlaku sebelum ini; Microsoft dan Apple hanya melaksanakan ASLR dalam sistem operasi mereka yang dikeluarkan 2007 dan kemudiannya. Walaupun gaya serangan ini menjadi perkara biasa, anda tidak akan menjadi lebih buruk daripada anda kembali pada zaman Windows XP.
Perlu diingat bahawa penyerang masih perlu mendapatkan kod mereka pada peranti anda untuk melakukan apa-apa kemudaratan. Kesilapan ini tidak memberi mereka sebarang cara tambahan untuk menjangkiti anda. Seperti biasa, anda harus mengikuti amalan terbaik keselamatan. Gunakan antivirus, menjauhkan diri dari laman web dan program yang samar, dan pastikan perisian anda sentiasa terkini. Dengan mengikuti langkah-langkah ini dan menjaga pelaku jahat dari komputer anda, anda akan selamat seperti yang pernah anda lakukan.
Kredit Imej: Steve / Flickr