Sebuah backdoor dalam sistem komputer (atau cryptosystem atau algoritma) adalah metode melewati otentikasi normal, mengamankan akses tidak sah ke komputer, memperoleh akses ke plaintext, dan sebagainya, ketika mencoba untuk tetap tidak terdeteksi. Backdoor dapat berupa bagian tersembunyi dari sebuah program, program yang terpisah dapat menumbangkan sistem melalui rootkit
Password default dapat berfungsi sebagai backdoors jika tidak diubah oleh pengguna. Beberapa fitur debugging juga dapat bertindak sebagai backdoors jika mereka tidak dihapus dalam versi rilis.
Overview
Ancaman backdoors muncul ketika multiuser dan sistem operasi jaringan menjadi diadopsi secara luas. Petersen dan Belok dibahas subversi komputer dalam sebuah makalah yang diterbitkan dalam prosiding 1967 AFIPS Conference. Mereka mencatat kelas serangan infiltrasi aktif yang menggunakan "pintu jebakan" titik masuk ke dalam sistem untuk memotong fasilitas keamanan dan memungkinkan akses langsung ke data. Penggunaan pintu jebakan kata di sini jelas bertepatan dengan definisi yang lebih baru dari backdoor. Namun, sejak munculnya kriptografi kunci publik pintu jebakan istilah telah memperoleh arti yang berbeda (lihat fungsi trapdoor), dan dengan demikian istilah "backdoor" sekarang lebih disukai. Secara umum, pelanggaran keamanan seperti telah dibahas panjang lebar dalam laporan satuan tugas RAND diterbitkan di bawah ARPA sponsor oleh JP Anderson dan DJ Edwards pada tahun 1970.
Sebuah backdoor dalam sistem login mungkin mengambil bentuk kombinasi pengguna dan password kode keras yang memberikan akses ke sistem. Sebuah contoh yang terkenal semacam ini backdoor digunakan sebagai perangkat plot di 1983 Film WarGames, di mana arsitek "WOPR" sistem komputer telah dimasukkan password hardcoded (nama anak yang sudah meninggal dunia) yang memberikan akses pengguna ke sistem , dan untuk bagian yang tak tercatat dari sistem (khususnya, permainan seperti modus simulasi video dan interaksi langsung dengan kecerdasan buatan).
Meskipun jumlah backdoors dalam sistem yang menggunakan perangkat lunak berpemilik (perangkat lunak yang kode sumber tidak tersedia untuk umum) tidak banyak dikreditkan, mereka tetap sering terkena. Programmer bahkan berhasil diam-diam menginstal jumlah besar kode jinak sebagai telur Paskah dalam program, meskipun kasus tersebut dapat melibatkan kesabaran resmi, jika tidak izin yang sebenarnya.
Examples
Banyak cacing komputer, seperti So Big dan Mydoom, menginstal backdoor pada komputer yang terkena (biasanya PC pada broadband menjalankan Microsoft Windows dan Microsoft Outlook). Backdoors tersebut tampaknya dipasang sehingga spammer dapat mengirim junk e-mail dari mesin yang terinfeksi. Lainnya, seperti rootkit Sony / BMG didistribusikan diam-diam pada jutaan CD musik melalui akhir tahun 2005, dimaksudkan sebagai server pusat tindakan-dan DRM, dalam kasus itu, sebagai agen pengumpulan data, karena kedua program sembunyi-sembunyi mereka diinstal secara rutin dihubungi.
Upaya canggih untuk menanam backdoor di kernel Linux, terpapar pada November 2003, menambahkan perubahan kode kecil dan halus dengan menumbangkan sistem kontrol revisi. Dalam hal ini, perubahan dua baris muncul untuk memeriksa izin akses root pemanggil ke fungsi sys_wait4, tetapi karena menggunakan tugas = bukan kesetaraan memeriksa ==, itu benar-benar diberikan izin untuk sistem. Perbedaan ini mudah diabaikan, dan bahkan bisa diartikan sebagai kesalahan ketik disengaja, daripada serangan yang disengaja.
Pada bulan Januari 2014, backdoor ditemukan pada beberapa produk Samsung Android, seperti perangkat Galaxy. Samsung proprietary versi Android dilengkapi dengan backdoor yang menyediakan akses remote ke data yang tersimpan pada perangkat. Secara khusus, perangkat lunak Samsung Android yang bertugas menangani komunikasi dengan modem, menggunakan protokol Samsung IPC, menerapkan kelas permintaan yang dikenal sebagai server file jarak jauh (RFS) perintah, yang memungkinkan operator untuk melakukan backdoor melalui modem jarak jauh I / O operasi pada perangkat hard disk atau penyimpanan lainnya. Seperti modem berjalan Samsung proprietary software Android, ada kemungkinan bahwa ia menawarkan over-the-air remote control yang kemudian dapat digunakan untuk menjalankan perintah RFS dan dengan demikian untuk mengakses sistem file pada perangkat.
Object code backdoors
Sulit untuk mendeteksi backdoors melibatkan kode objek memodifikasi, bukan kode sumber - kode objek jauh lebih sulit untuk memeriksa, seperti yang dirancang untuk dapat dibaca oleh mesin, bukan manusia-dibaca. Backdoors ini dapat dimasukkan secara langsung dalam kode obyek pada-disk, atau dimasukkan di beberapa titik selama kompilasi, perakitan menghubungkan, atau bongkar - dalam kasus yang terakhir backdoor tidak pernah muncul pada disk, hanya dalam memori. Backdoors kode objek yang sulit dideteksi dengan pemeriksaan kode objek, tetapi mudah dideteksi hanya dengan memeriksa perubahan (perbedaan), terutama panjang atau checksum, dan dalam beberapa kasus dapat dideteksi atau dianalisis dengan membongkar kode objek. Selanjutnya, backdoors kode objek dapat dihapus (code asumsi sumber tersedia) hanya dengan mengkompilasi ulang dari sumber.
Jadi untuk backdoors tersebut untuk menghindari deteksi, semua salinan yang masih ada dari biner harus ditumbangkan, dan setiap checksum validasi juga harus dikompromikan, dan sumber harus tersedia, untuk mencegah kompilasi ulang. Atau, alat-alat lainnya (cek panjang, diff, checksumming, disassemblers) dapat sendiri dikompromikan untuk menyembunyikan backdoor, misalnya mendeteksi bahwa biner ditumbangkan sedang checksummed dan mengembalikan nilai yang diharapkan, bukan nilai yang sebenarnya. Untuk menyembunyikan ini subversions lanjut, alat-alat juga harus menyembunyikan perubahan dalam diri mereka sendiri - misalnya, checksummer ditumbangkan juga harus mendeteksi jika checksum itu sendiri (atau alat ditumbangkan lainnya) dan kembali nilai-nilai palsu. Hal ini menyebabkan perubahan yang luas dalam sistem dan alat-alat yang diperlukan untuk menyembunyikan satu perubahan.
Karena kode objek dapat diregenerasi dengan mengkompilasi ulang (pemasangan kembali, relinking) kode sumber asli, membuat kode objek terus-menerus backdoor (tanpa memodifikasi kode sumber) membutuhkan menumbangkan compiler itu sendiri - sehingga ketika mendeteksi bahwa itu adalah kompilasi program diserang itu menyisipkan backdoor - atau alternatif assembler, linker, atau loader. Karena ini membutuhkan menumbangkan compiler, ini pada gilirannya dapat diperbaiki dengan mengkompilasi ulang compiler, menghapus kode penyisipan backdoor. Pertahanan ini pada gilirannya dapat ditumbangkan dengan menempatkan sumber meta-backdoor di compiler, sehingga ketika mendeteksi bahwa itu kompilasi sendiri kemudian menyisipkan meta-backdoor ini Generator, bersama-sama dengan generator backdoor asli untuk program asli diserang. Setelah ini dilakukan, sumber meta-backdoor dapat dihapus, dan compiler dikompilasi ulang dari sumber asli dengan compiler dieksekusi dikompromikan: backdoor telah dinyalakan. Serangan ini tanggal ke Karger & Schell (1974), dan dipopulerkan di Thompson (1984), yang berjudul "Refleksi Mempercayai Trust"; itu maka bahasa sehari-hari dikenal sebagai "Mempercayai Trust" serangan. Lihat backdoors compiler, bawah, untuk rincian. Serangan serupa dapat menargetkan tingkat yang lebih rendah dari sistem, seperti sistem operasi, dan dapat dimasukkan selama proses booting sistem; ini juga disebutkan dalam Karger & Schell (1974), dan kini ada dalam bentuk virus boot sector.
Asymmetric backdoors
Sebuah backdoor tradisional adalah backdoor simetris: siapa pun yang menemukan backdoor pada gilirannya dapat menggunakannya. Gagasan sebuah backdoor asimetris diperkenalkan oleh Adam Young dan Moti Yung di Proceedings of Kemajuan Kriptologi: Crypto '96. Sebuah backdoor asimetris hanya dapat digunakan oleh penyerang yang menanam itu, bahkan jika implementasi penuh backdoor menjadi publik (misalnya, melalui penerbitan, yang ditemukan dan diungkapkan oleh reverse engineering, dll). Selain itu, komputasi terselesaikan untuk mendeteksi keberadaan sebuah backdoor asimetris bawah query kotak hitam. Kelas ini serangan telah kleptography disebut; mereka dapat dilakukan dalam perangkat lunak, perangkat keras (misalnya, Smartcard), atau kombinasi dari keduanya. Teori backdoors asimetris adalah bagian dari bidang yang lebih besar sekarang disebut cryptovirology. Khususnya, NSA memasukkan backdoor kleptographic ke standar Dual_EC_DRBG.
Terdapat sebuah backdoor asimetris eksperimental di RSA pembangkitan kunci. Ini backdoor OpenSSL RSA dirancang oleh Young dan Yung, menggunakan twisted pair kurva eliptik, dan telah tersedia.
Compiler backdoors
Bentuk canggih kotak hitam backdoor adalah backdoor compiler, di mana tidak hanya kompilator ditumbangkan (untuk menyisipkan backdoor di beberapa program lain, seperti program login), tapi itu lebih dimodifikasi untuk mendeteksi ketika sedang mengkompilasi sendiri dan kemudian menyisipkan kedua kode backdoor penyisipan (penargetan program lainnya) dan kode memodifikasi diri kompilasi, seperti mekanisme bagaimana retrovirus menginfeksi inangnya. Hal ini dapat dilakukan dengan memodifikasi kode sumber, dan dikompromikan compiler (kode objek) yang dihasilkan dapat mengkompilasi kode asli (dimodifikasi) sumber dan masukkan sendiri: mengeksploitasi telah boot-kekurangan.
Serangan ini awalnya disajikan dalam Karger & Schell (1974, p 52, bagian 3.4.5. "Perangkap Pintu Penyisipan"), yang merupakan analisis keamanan Amerika Serikat Angkatan Udara Multics, di mana mereka digambarkan seperti serangan pada PL / Aku compiler, dan menyebutnya sebagai "compiler perangkap pintu"; mereka juga menyebutkan varian mana kode inisialisasi sistem dimodifikasi untuk memasukkan backdoor selama booting, karena ini adalah kompleks dan kurang dipahami, dan menyebutnya "inisialisasi pintu jebakan"; ini sekarang dikenal sebagai virus boot sector. [9]
Serangan ini kemudian benar-benar dilaksanakan dan dipopulerkan oleh Ken Thompson di Thompson (1984), dalam pidato penerimaan Turing Award pada tahun 1983 (diterbitkan 1984), "Refleksi Mempercayai Trust", yang menunjukkan bahwa kepercayaan adalah relatif, dan satu-satunya perangkat lunak satu benar-benar dapat kepercayaan adalah kode di mana setiap langkah bootstrap telah diperiksa. Mekanisme backdoor ini didasarkan pada kenyataan bahwa orang hanya meninjau sumber (manusia-ditulis) kode, dan kode mesin tidak dikompilasi (kode objek). Sebuah program yang disebut compiler yang digunakan untuk membuat kedua dari yang pertama, dan compiler biasanya dipercaya untuk melakukan pekerjaan yang jujur.
- Makalah Thompson menjelaskan versi modifikasi dari Unix C compiler yang akan:
- Pasang backdoor terlihat dalam perintah masuk Unix ketika melihat bahwa program login tengah disusun, dan sebagai twist
- Juga menambahkan fitur ini undetectably versi compiler masa depan pada kompilasi mereka juga.
Karena compiler itu sendiri adalah sebuah program yang dikompilasi, pengguna akan sangat tidak mungkin untuk melihat instruksi kode mesin yang melakukan tugas tersebut. (Karena tugas kedua, kode sumber compiler akan muncul "bersih".) Yang lebih parah, dalam bukti Thompson pelaksanaan konsep, compiler ditumbangkan juga ditumbangkan program analisis (disassembler), sehingga siapa pun yang memeriksa binari dalam cara yang biasa tidak akan benar-benar melihat kode nyata yang berjalan, tetapi sesuatu yang lain sebagai gantinya.
Sebuah analisis terbaru dari aslinya mengeksploitasi diberikan dalam Karger & Schell (2002, Bagian 3.2.4: Compiler perangkap pintu), dan tinjauan historis dan survei literatur diberikan di Wheeler (2009, Bagian 2: Latar Belakang dan kerja terkait) .
Occurrences
Versi Thompson itu, secara resmi, tidak pernah dilepaskan ke alam liar. Hal ini diyakini, bagaimanapun, bahwa versi didistribusikan ke BBN dan setidaknya satu penggunaan backdoor tercatat. Ada laporan anekdotal tersebar backdoors seperti di tahun-tahun berikutnya.
Serangan ini baru-baru ini (Agustus 2009) ditemukan oleh laboratorium Sophos: The terinfeksi W32 / Induc-A virus compiler program Delphi, bahasa pemrograman Windows. Virus memperkenalkan kode sendiri untuk penyusunan program Delphi baru, yang memungkinkan untuk menginfeksi dan menyebarkan ke banyak sistem, tanpa sepengetahuan programmer software. Sebuah serangan yang menyebar dengan membangun Trojan horse sendiri bisa sangat sulit untuk menemukan. Hal ini diyakini bahwa Induc-Virus telah menyebarkan selama setidaknya satu tahun sebelum ditemukan.
Countermeasures
Setelah sistem telah diganggu dengan backdoor atau Trojan horse, seperti compiler Mempercayai Trust, sangat sulit untuk "sah" pengguna untuk mendapatkan kembali kontrol dari sistem - biasanya kita harus membangun kembali sistem yang bersih dan transfer data (tapi tidak executables!) atas. Namun, beberapa kelemahan praktis dalam skema Mempercayai Kepercayaan telah diusulkan. Sebagai contoh, pengguna cukup termotivasi dengan susah payah bisa meninjau kode mesin compiler dipercaya sebelum menggunakannya. Sebagaimana disebutkan di atas, ada cara untuk menyembunyikan Trojan horse, seperti menumbangkan disassembler; tetapi ada cara untuk melawan pertahanan itu juga, seperti menulis disassembler Anda sendiri dari awal.
Sebuah metode umum untuk melawan percaya serangan kepercayaan disebut Beragam dua Kompilasi (DDC). Metode ini membutuhkan compiler yang berbeda dan kode sumber dari compiler-under-test. Sumber itu, yang disusun dengan baik kompiler, menghasilkan dua yang berbeda tahap-1 compiler, yang bagaimanapun harus memiliki perilaku yang sama. Dengan demikian sumber yang sama dikompilasi dengan kedua tahap-1 compiler maka harus menghasilkan dua identik tahap-2 compiler. Sebuah bukti formal diberikan bahwa perbandingan kedua menjamin bahwa kode sumber yang diklaim dan eksekusi dari compiler-under-test sesuai, di bawah beberapa asumsi. Metode ini diterapkan oleh penulisnya untuk memverifikasi bahwa compiler C dari GCC suite (v. 3.0.4) tidak mengandung trojan, menggunakan ICC (v. 11.0) sebagai compiler yang berbeda.
Dalam prakteknya verifikasi tersebut tidak dilakukan oleh pengguna akhir, kecuali dalam keadaan ekstrim deteksi intrusi dan analisis, karena kelangkaan serangan canggih tersebut, dan karena program biasanya didistribusikan dalam bentuk biner. Menghapus backdoors (termasuk backdoors compiler) biasanya dilakukan hanya dengan membangun kembali sistem yang bersih. Namun, verifikasi canggih yang menarik bagi vendor sistem operasi, untuk memastikan bahwa mereka tidak mendistribusikan sistem dikompromikan, dan pengaturan keamanan tinggi, di mana serangan tersebut menjadi perhatian realistis.
List of known backdoors
- Kembali Lubang diciptakan pada tahun 1998 oleh hacker dari Cult dari kelompok Sapi Mati sebagai alat administrasi remote. Ini memungkinkan komputer Windows untuk dikendalikan dari jarak jauh melalui jaringan dan dieksploitasi kesamaan nama dengan Microsoft BackOffice.
- The Dual_EC_DRBG kriptografi aman pembangkit bilangan pseudorandom terungkap pada tahun 2013 untuk mungkin memiliki backdoor kleptographic sengaja dimasukkan oleh NSA, yang juga memiliki kunci pribadi untuk backdoor.
- Beberapa backdoors dalam bajakan Wordpress plug-in yang ditemukan pada bulan Maret 2014. Mereka dimasukkan sebagai kode JavaScript dikaburkan dan diam-diam dibuat, misalnya, akun admin dalam database situs. Skema serupa kemudian terbuka di Plugin Joomla.
- Versi Borland Interbase 4.0 melalui 6.0 memiliki backdoor keras-kode, diletakkan di sana oleh para pengembang. Kode server berisi disusun-in account backdoor (username: politik, password: benar), yang dapat diakses melalui koneksi jaringan, dan sekali pengguna login dengan itu, ia bisa mengambil kontrol penuh atas semua database Interbase. Backdoor terdeteksi pada 2001 dan patch dirilis.