"Bookmark" perangkat keras. Tab perangkat keras Tab perangkat keras pada bus data

Alat manajemen jarak jauh yang nyaman menghemat banyak energi administrator sistem - dan pada saat yang sama menimbulkan risiko keamanan yang sangat besar ketika mereka tidak dapat dinonaktifkan oleh perangkat keras menggunakan jumper atau sakelar pada papan sistem. Blok Intel Management Engine 11 di platform Intel modern benar-benar berbahaya - pada awalnya tidak dapat diputuskan dan, terlebih lagi, beberapa mekanisme inisialisasi dan fungsi prosesor terikat padanya, sehingga penonaktifan yang kasar dapat dengan mudah menyebabkan sistem tidak dapat beroperasi sepenuhnya. Kerentanannya terletak pada Intel Active Management Technology (AMT) dan, dengan serangan yang berhasil, Anda dapat memperoleh kendali penuh atas sistem, seperti yang dilaporkan pada bulan Mei tahun ini. Tapi peneliti dari Positive Technologies.

Prosesor IME itu sendiri merupakan bagian dari System Hub Chip (PCH). Dengan pengecualian slot prosesor PCI Express, semua komunikasi antara sistem dan dunia luar melewati PCH, yang berarti IME memiliki akses ke hampir semua data. Sebelum versi 11, serangan terhadap vektor ini tidak mungkin terjadi: prosesor IME menggunakan arsitekturnya sendiri dengan set instruksi ARC, yang tidak banyak diketahui oleh pengembang pihak ketiga. Tetapi di versi 11, mereka memainkan lelucon buruk dengan teknologi: itu ditransfer ke arsitektur x86, dan MINIX yang dimodifikasi digunakan sebagai OS, yang berarti bahwa studi pihak ketiga tentang kode biner menjadi jauh lebih mudah: baik arsitektur dan OS didokumentasikan dengan baik. Peneliti Rusia Dmitry Sklyarov, Mark Ermolov dan Maxim Goryachy berhasil menguraikan modul yang dapat dieksekusi dari IME versi 11 dan memulai studi menyeluruh mereka.

Intel AMT diberi peringkat 9,8 dari 10 untuk kerentanan. Sayangnya, menonaktifkan IME sepenuhnya pada platform modern tidak mungkin dilakukan karena alasan di atas - subsistem terkait erat dengan inisialisasi dan startup CPU, serta manajemen daya. Tetapi Anda dapat menghapus semua elemen yang tidak diperlukan dari gambar memori flash yang berisi modul IME, meskipun sangat sulit untuk melakukannya, terutama di versi 11. Proyek me_cleaner, sebuah utilitas yang memungkinkan Anda untuk menghapus bagian umum dari gambar dan hanya menyisakan komponen penting, sedang berkembang secara aktif. Tetapi mari kita berikan perbandingan kecil: jika dalam versi IME hingga 11 (sebelum Skylake) utilitas menghapus hampir semuanya, menyisakan sekitar 90 KB kode, maka saat ini perlu untuk menyimpan sekitar 650 KB kode - dan kemudian dalam beberapa kasus sistem mungkin mati setelah setengah jam, karena blokir IME memasuki mode pemulihan.

Namun, ada beberapa kemajuan. Kelompok peneliti yang disebutkan di atas berhasil menggunakan kit pengembangan, yang disediakan oleh Intel sendiri, dan menyertakan utilitas Flash Image Tool untuk mengonfigurasi parameter IME dan flasher Alat Pemrograman Flash yang bekerja melalui pengontrol SPI terintegrasi. Intel tidak membuat program ini tersedia untuk umum, tetapi tidak sulit untuk menemukannya di Internet.

File XML yang diperoleh dengan kit ini dianalisis (berisi struktur firmware IME dan deskripsi mekanisme tali PCH). Satu bit yang disebut "reserve_hap" (HAP) tampak mencurigakan karena deskripsi "Aktifkan Platform Jaminan Tinggi (HAP)". Pencarian web mengungkapkan bahwa ini adalah nama program platform berkekuatan tinggi yang terkait dengan NSA AS. Mengaktifkan bit ini menunjukkan bahwa sistem memasuki Mode Nonaktif Alt. Blok IME tidak menanggapi perintah dan tidak menanggapi pengaruh dari sistem operasi. Ada juga sejumlah nuansa yang lebih halus yang dapat ditemukan dalam artikel di Habrahabr.ru, tetapi versi baru me_cleaner telah menerapkan dukungan untuk sebagian besar modul berbahaya tanpa menyetel bit HAP, yang menempatkan mesin IME ke status "TemporaryDisable".

Modifikasi terbaru me_cleaner hanya menyisakan modul RBE, KERNEL, SYSLIB dan BUP bahkan dalam versi ke-11 IME, tidak ada kode yang ditemukan di dalamnya yang memungkinkan Anda untuk mengaktifkan sistem IME itu sendiri. Selain itu, Anda dapat menggunakan bit HAP untuk memastikan bahwa utilitas tersebut juga dapat melakukannya. Intel telah meninjau temuan penelitian dan mengonfirmasi bahwa sejumlah pengaturan IME memang terkait dengan kebutuhan pemerintah untuk peningkatan keamanan. Pengaturan ini diperkenalkan atas permintaan pelanggan pemerintah AS dan telah menjalani validasi terbatas dan tidak secara resmi didukung oleh Intel. Perusahaan juga menyangkal pengenalan yang disebut pintu belakang ke dalam produknya.

Singkatnya, ini menyatakan yang berikut (selanjutnya, dalam teks, penceritaan kembali subyektif saya).

Diduga, perusahaan besar di seluruh dunia, termasuk Apple, Amazon, dan lainnya seperti mereka, telah memesan server kelas atas yang mahal dari SuperMicro selama bertahun-tahun. Yang terakhir adalah ** makan dari volume pesanan seperti itu, pabriknya sendiri tidak lagi mampu mengatasinya. Kemudian dia memberikan produksi sejumlah motherboard kepada subkontraktor China-nya.

Orang-orang Tionghoa yang sopan mendatangi subkontraktor yang sama ini dan memberi mereka tawaran yang tidak bisa ditolak. Seperti, ayolah, teman-teman, atas permintaan kami, atas permintaan kami, Anda juga akan memasang satu lagi chip yang tidak berdokumen ma-a-a-a-merah di motherboard Anda. Jika Anda melakukannya - kami akan memberi Anda uang tambahan, tetapi jika Anda tidak melakukannya, kami akan menangani bisnis Anda dengan berbagai cek. Akibatnya, motherboard yang "dimodifikasi" dengan cara ini dijual ke seluruh dunia, dan beberapa di antaranya juga berakhir di perusahaan besar Amerika di eselon satu, bank, dan lembaga pemerintah.

Beberapa waktu berlalu. Salah satu divisi Amazon, sebuah perusahaan tertentu bernama "Elements" menjaga keamanan solusinya di bidang pemrosesan massal streaming video. Antara lain, mereka memerintahkan audit keamanan perangkat keras dari perusahaan Kanada tertentu. Dan di sinilah chip tak berdokumen yang tersembunyi dengan terampil dan ditanamkan ke motherboard ditemukan. Yang tidak begitu mudah ditemukan. Karena, pertama, mereka sangat kecil dan berwarna abu-abu. Kedua, mereka menyamar sebagai kopling solder biasa atau kapasitor chip. Ketiga, pada revisi terakhir mereka mulai disembunyikan tepat di ketebalan textolite, sehingga hanya terlihat pada sinar-X.

Jika Anda percaya teks tersebut, maka melalui microcode tertanam, chip mata-mata melalui modul BMC secara berkala "ping" salah satu "dalang" anonimnya, dari siapa ia menerima instruksi lebih lanjut untuk bertindak. Dan bahkan musuh yang disebutkan di atas dapat mengunduh "dari mana" beberapa kode, yang kemudian disuntikkan langsung ke kernel sistem operasi yang sedang berjalan atau ke kode aplikasi.

Nah, ocehan lebih lanjut mengikuti tentang seberapa besar lubang keamanan, jenis kambing orang Cina ini, apa keberanian dan kelancangan mereka, semua kambing tidak dapat dipercaya, "sekarang kita semua akan mati" dan itu saja. Penalaran yang menarik secara teknis berakhir di sana.

Secara umum, saya orang yang sangat skeptis dalam hidup. Tanpa menyangkal kejeniusan orang Cina, beberapa momen secara pribadi bagi saya tampak tidak realistis. Ambillah begitu saja, diam-diam dari para insinyur dan manajemen, dan melakukan perubahan pada desain motherboard di tingkat pabrikan, tanpa mengganggu kinerjanya? Dan jika dengan pengetahuan manajemen, lalu bagaimana dia termotivasi untuk mengekspos semua bisnis besar tersebut pada risiko reputasi yang begitu serius? Masukkan kode Anda ke dalam sistem operasi dan aplikasi? Nah, dengan Windows, tidak apa-apa, saya siap percaya dengan derit. Tetapi di Linux, di mana Anda tidak tahu sebelumnya siapa yang membuatnya dan bagaimana? Latihan aktivitas jaringan tanpa jari? Yang, jika diinginkan, dapat dideteksi dan disaring. Belum lagi fakta bahwa admin normal tidak pernah mengekspos BMC "untuk menunjukkan pantat telanjang mereka di Internet", dan admin yang baik biasanya membuangnya ke VLAN terpisah tanpa kemampuan untuk mengakses di mana pun.

Nah, sekali lagi, baru-baru ini beberapa mata-mata mania dan paranoia berkembang di kalangan orang Amerika. Dan mereka juga memutuskan untuk bertengkar dengan China. Jadi objektivitas dan ketidakberpihakan dari artikel asli adalah pertanyaan besar. Di sisi lain, saya tidak begitu mengerti dari mana mereka mendapatkan subjek yang begitu indah. Pada tahun 2011 lalu, majalah tabloid "Ksakep" menulis tentang penanda berbahasa Mandarin yang sama pada level microcode di flash drive BMC. Artikel itu juga bernada paranoid delirium, tapi tidak ada asap tanpa api. Atau apakah itu terjadi?

Secara umum, bagikan pendapat Anda di komentar. Sangat menarik untuk mendengar Kamerad kvazimoda24 tentang kemungkinan untuk mengintegrasikan beberapa jenis sirkuit mikro mata-mata ke dalam ketebalan PCB.

Saya bukan seorang profesional di bidang keamanan informasi, bidang minat saya adalah sistem komputasi berkinerja tinggi. Saya sampai pada topik keamanan informasi secara tidak sengaja, dan inilah yang akan dibahas lebih lanjut. Saya pikir cerita fiksi ini akan lebih menjelaskan masalah yang terkait dengan perangkat keras virtualisasi daripada pernyataan fakta yang kering. Bahkan sebelum pengumuman resmi prosesor Intel baru dengan dukungan untuk virtualisasi perangkat keras (pada awal 2007), saya membayangkan menggunakan chip ini untuk membuat sistem komputasi tunggal berdasarkan beberapa server, yang akan menjadi unit komputasi tunggal dengan arsitektur SMP untuk OS dan aplikasi. Untuk melakukan ini, diperlukan untuk menulis hypervisor kompak dengan fungsionalitas non-standar, fitur utamanya bukanlah pembagian sumber daya unit komputasi tunggal antara OS yang berbeda, tetapi, sebaliknya, penyatuan sumber daya beberapa komputer menjadi satu kompleks, yang akan dikontrol oleh satu OS. Pada saat yang sama, OS tersebut bahkan tidak perlu menebak bahwa ia tidak berurusan dengan satu sistem, tetapi dengan beberapa server. Perangkat keras virtualisasi memberikan kesempatan seperti itu, meskipun awalnya tidak dimaksudkan untuk menyelesaikan masalah seperti itu. Sebenarnya, sistem di mana perangkat keras virtualisasi akan digunakan untuk komputasi kinerja tinggi belum dibuat, dan bahkan pada saat itu saya secara umum adalah pelopor dalam bidang ini. Hypervisor untuk tugas ini, tentu saja, ditulis dari awal. Pada dasarnya penting untuk menjalankan OS yang sudah ada di platform virtual sehingga dari perintah pertama OS loader semuanya akan berfungsi di lingkungan virtual. Untuk melakukan ini, kami harus memvirtualisasi model sebenarnya dan semua mode operasi prosesor dan memulai virtualisasi segera setelah menginisialisasi platform sebelum memuat OS. Karena sistem virtualisasi untuk tujuan ini ternyata non-standar dan tampak seperti modul perangkat lunak kompak yang sepenuhnya otonom (ukuran kode tidak lebih dari 40-60 Kb), bahasa tersebut entah bagaimana tidak berani menyebutnya hypervisor, dan saya mulai menggunakan istilah "hyperdriver", karena lebih akurat menyampaikan inti dari tujuan fungsional sistem. Peralatan serial dengan perangkat keras virtualisasi belum tersedia pada saat itu, namun berkat kerja sama dengan Craftway, saya memiliki akses ke sampel praproduksi prosesor dan motherboard dengan dukungan virtualisasi, yang belum dirilis secara resmi (disebut sampel, yang dengan ramah Intel berikan kepada mitra bisnis). Oleh karena itu, pekerjaan mulai mendidih pada peralatan "sampel" ini. Maket dirakit, hyperdriver ditulis, semuanya berfungsi sebagaimana mestinya. Saya harus mengatakan bahwa pada saat itu perangkat keras virtualisasi sangat "mentah", oleh karena itu berulang kali menolak untuk bekerja seperti yang tertulis dalam dokumentasi. Saya harus berurusan dengan setiap perintah perakitan, dan perintah untuk perangkat keras virtualisasi harus ditulis dalam kode mesin, sejak saat itu tidak ada kompiler yang mendukung perintah virtualisasi. Saya bangga dengan hasil yang didapat, saya merasa hampir menjadi penguasa dunia maya ... tetapi euforia saya tidak bertahan lama, hanya sebulan. Pada saat itu, saya sudah menyusun tata letak berdasarkan server dengan peralatan virtualisasi, sampel serial pertama baru saja muncul, tetapi tata letak tidak berfungsi. Saya mulai mencari tahu dan menyadari bahwa sistem saya hang saat menjalankan perintah virtualisasi perangkat keras. Kesan yang dibuat adalah bahwa keduanya tidak berfungsi sama sekali, atau bekerja entah bagaimana di luar kotak. Gantung hanya terjadi ketika perangkat keras virtualisasi berjalan dalam mode nyata, tetapi jika sistem saya dimulai dari mode terlindungi setelah OS dimuat, maka semuanya baik-baik saja. Para profesional mengetahui bahwa dalam revisi awal, perangkat keras virtualisasi Intel tidak mendukung operasi prosesor waktu nyata. Ini membutuhkan lapisan tambahan yang cukup besar untuk meniru x86 virtual. Karena hyperdriver dimulai sebelum sistem operasi dimuat, sehingga dapat sepenuhnya percaya pada konfigurasi virtual baru, sebagian kecil kode boot OS dijalankan dalam mode prosesor yang sebenarnya. Sistem mati tepat pada penangan emulasi mode-nyata di hyperdriver. Awalnya saya berpikir bahwa saya salah paham, tidak mengerti sesuatu, lupa tentang sesuatu. Saya memeriksa semuanya hingga bit terakhir dalam kode saya, saya tidak menemukan kesalahan apa pun dan mulai berbuat dosa bukan pada diri saya sendiri, tetapi pada rekan-rekan saya dari balik bukit. Hal pertama yang saya lakukan adalah mengganti prosesor, tetapi itu tidak membantu. Pada motherboard saat itu, perangkat keras virtualisasi hanya ada di BIOS, di mana ia diinisialisasi ketika server dihidupkan, jadi saya mulai membandingkan bios pada motherboard (motherboard dengan jenis yang sama dengan sampel) - semuanya cocok dengan byte dan nomor BIOS itu sendiri. Saya jatuh pingsan dan, tidak lagi tahu apa yang harus dilakukan, menerapkan pilihan terakhir - "metode poke". Apa yang tidak saya lakukan, tidak lagi berpikir, tetapi hanya menggabungkan, dan pada akhirnya saya dengan bodoh mengunduh bios dari situs web resmi Intel dan menulis ulang mereka ke motherboard, setelah itu semuanya bekerja ... Tidak ada batasan yang mengejutkan saya: nomor BIOS sama , gambar BIOS cocok dengan byte demi byte, tetapi untuk beberapa alasan motherboard serial hanya mulai berfungsi ketika saya mengunggah BIOS yang sama yang diambil dari situs web Intel ke dalamnya. Lantas, alasannya masih di motherboard? Tetapi satu-satunya perbedaan mereka adalah pada penandaannya: Assembled Canada tertulis pada sampel, dan Assembled China pada papan serial. Jelas terlihat bahwa papan dari China berisi modul perangkat lunak tambahan yang tertanam di BIOS, tetapi modul ini tidak terlihat oleh program analisis standar. Mereka, tampaknya, juga bekerja dengan perangkat keras virtualisasi dan, karenanya, dapat menyembunyikan konten BIOS yang sebenarnya. Alasan pembekuan hyperdriver saya pada papan bahasa Mandarin ini juga menjadi jelas: dua sistem perangkat lunak bekerja secara bersamaan dengan perangkat keras virtualisasi yang sama, yang tidak mengizinkan berbagi sumber daya mereka. Saya ingin berurusan dengan biografi berbahaya ini, dan tanpa berpikir dua kali tentang "bookmark", "pintu belakang", "fitur tak berdokumen", yang ada hanyalah minat akademis, dan tidak lebih. Saya harus mengatakan bahwa bersamaan dengan pengenalan perangkat keras virtualisasi, Intel secara radikal memperbarui chipset. Chipset bernomor 5000x ini masih diproduksi dengan beberapa modifikasi. Jembatan selatan dari chipset ini, 631xESB / 632xESB I / O Controller Hub, yang menghubungkan sirkuit mikro dengan bios, praktis tidak berubah sejak 2007 dan digunakan sebagai chip dasar untuk hampir semua server dalam versi dua soket. Saya mengunduh lembar data untuk jembatan selatan, membaca deskripsinya dan tercengang. Ternyata tiga chip memori flash terhubung ke jembatan selatan baru ini: yang pertama adalah BIOS standar, yang kedua didedikasikan untuk program prosesor pengontrol jaringan, dan yang ketiga ditujukan untuk unit BMC yang terintegrasi ke jembatan selatan. Unit manajemen sistem (BMC) adalah sarana kendali jarak jauh dan pemantauan fasilitas komputasi. Ini sangat diperlukan untuk ruang server yang besar, di mana tidak mungkin untuk tinggal dalam waktu lama karena kebisingan, suhu, dan angin kencang. Fakta bahwa unit BMC memiliki prosesor sendiri dan, karenanya, memori flash untuk program-programnya, tentu saja, bukanlah berita, tetapi sampai sekarang prosesor dan memori seperti itu diambil pada papan terpisah yang terhubung ke motherboard: jika Anda mau, taruh, Anda tidak mau jangan taruh itu. Sekarang Intel telah mengimplementasikan komponen-komponen ini di jembatan selatan, terlebih lagi, itu menghubungkan unit ini ke bus sistem dan tidak menggunakan saluran jaringan khusus (sebagaimana disediakan oleh standar IPMI yang menjelaskan fungsi unit BMC) untuk pengoperasian jaringan layanan, tetapi menyalurkan semua lalu lintas jaringan layanan ke jaringan utama adaptor. Kemudian saya belajar dari dokumentasi bahwa program-program pada sirkuit mikro flash dari unit BMC dienkripsi, dan modul kriptografi perangkat keras khusus, juga diintegrasikan ke dalam jembatan selatan, digunakan untuk membukanya. Unit Angkatan Laut seperti itu belum pernah saya temui sebelumnya. Bukan tidak berdasar, berikut petikan dari dokumentasi jembatan selatan ini:

  • Prosesor ARC4 bekerja pada kecepatan 62,5 MHz.
  • Antarmuka ke kedua port LAN Intel® 631xESB / 632xESB I / O Controller Hub memungkinkan koneksi langsung ke internet dan akses ke semua register LAN.
  • Modul kriptografi, mendukung algoritma enkripsi AES dan RC4 dan algoritma otentikasi SHA1 dan MD5.
  • Mekanisme aman untuk FW Teregulasi yang dapat dimuat.
Penggunaan alat kriptografi asing dengan panjang kunci lebih dari 40 bit dilarang di wilayah Rusia oleh hukum, tetapi di sini - tolong! - di setiap server Intel ada cryptomodule dengan kunci 256-bit yang tidak diketahui. Selain itu, kunci ini digunakan untuk mengenkripsi program yang tertanam di chip motherboard selama produksi. Ternyata unit Angkatan Laut Rusia di server Intel, yang menyertakan chipset 5000x, harus dinonaktifkan. Namun, unit-unit ini, sebaliknya, selalu berfungsi dengan baik, bahkan jika unit komputasi itu sendiri dimatikan (untuk pengoperasian IUD, tegangan siaga cukup, yaitu kabel daya server dimasukkan ke soket). Semua ini bagi saya pada saat itu merupakan kepentingan sekunder, karena pertama-tama saya perlu mencari tahu sirkuit mikro flash mana yang berisi modul perangkat lunak yang bekerja dengan perangkat keras virtualisasi dan mengganggu hyperdriver saya, dan saya mulai bereksperimen dengan firmware. Setelah membaca dokumentasi, saya berjaga-jaga, dan ketika saya menemukan bahwa kinerja hyperdriver dipulihkan tepat setelah menginstal flash chip unit IUD, saya bahkan tidak terkejut. Tidak mungkin untuk memahami lebih lanjut tanpa pendirian khusus, karena kriptografi sepenuhnya memblokir kemungkinan pembalikan kode untuk Angkatan Laut. Saya tidak menemukan dokumentasi apa pun tentang arsitektur internal IUD terintegrasi ini, di lembar data untuk jembatan selatan, Intel hanya menjelaskan register antarmuka untuk mengelola unit ini menggunakan metode akses standar, yang menghasilkan "kotak hitam" klasik. Totalitas fakta mengkhawatirkan dan menyebabkan pikiran paranoid dalam gaya detektif mata-mata. Fakta-fakta ini dengan jelas menunjukkan hal-hal berikut:
  • Papan server seri 5000 Intel yang baru berisi program yang tertanam dalam memori flash unit BMC dan dijalankan pada prosesor pusat, dan program ini berjalan menggunakan perangkat keras virtualisasi dari prosesor pusat.
  • Gambar memori flash dari situs web resmi Intel tidak berisi modul perangkat lunak tersebut, oleh karena itu, modul perangkat lunak yang mengganggu saya di-flash secara ilegal ke motherboard selama tahap produksi.
  • Memori flash unit BMC berisi modul perangkat lunak terenkripsi yang tidak dapat dirakit dan dituangkan ke dalam memori flash tanpa mengetahui kunci enkripsi, oleh karena itu, orang yang memasukkan modul perangkat lunak ilegal ini mengetahui kunci enkripsi, yaitu memiliki akses ke informasi rahasia yang sebenarnya.
Saya memberi tahu manajemen Kraftway tentang masalah dengan memori flash unit Angkatan Laut dan situasi yang meragukan dari sudut pandang undang-undang dengan chipset Intel baru, yang mana saya menerima tanggapan yang cukup diharapkan dalam gaya "jangan mengacaukan, mengganggu bisnis." Saya harus tenang, karena Anda tidak bisa benar-benar menginjak-injak majikan. Tangan diikat, tetapi "pikiranku, kudaku" tidak memberiku istirahat, tidak jelas mengapa kesulitan ini dan bagaimana semuanya dilakukan. Jika Anda memiliki kesempatan untuk menempatkan perangkat lunak Anda sendiri di memori unit Angkatan Laut, mengapa Anda memerlukan semua kerumitan ini dengan prosesor pusat? Satu-satunya alasan yang masuk akal adalah bahwa masalah yang sedang diselesaikan memerlukan kontrol dari konteks komputasi saat ini pada prosesor pusat. Jelas bahwa tidak mungkin untuk melacak informasi yang sedang diproses pada sistem komputer utama hanya dengan menggunakan prosesor kecepatan rendah periferal dengan frekuensi 60 MHz. Dengan demikian, tampaknya tugas dari sistem ilegal ini adalah mengambil informasi yang diproses di fasilitas komputer utama menggunakan perangkat keras virtualisasi. Tentu saja, lebih mudah untuk mengontrol dari jarak jauh seluruh sistem ilegal dari prosesor unit BMC, karena ia memiliki akses independennya sendiri ke adaptor jaringan pada motherboard dan alamat MAC dan IP-nya sendiri. Pertanyaan "bagaimana ini dilakukan?" bersifat lebih akademis, karena seseorang berhasil membuat hypervisor yang dapat berbagi sumber daya perangkat keras virtualisasi dengan hypervisor lain dan melakukan ini dengan benar untuk semua mode kecuali mode nyata dari CPU. Sekarang Anda tidak akan mengejutkan siapa pun dengan sistem seperti itu, tetapi kemudian, lima tahun lalu, sistem tersebut dianggap sebagai keajaiban, selain itu, kecepatan emulasinya luar biasa - tidak mungkin meniru host secara terprogram tanpa kehilangan performa yang signifikan. Untuk memperjelas, Anda harus membahas teori lebih dalam. Arsitektur sistem virtualisasi Intel dan AMD tidak menyiratkan adanya beberapa hypervisor pada platform sekaligus, namun hypervisor yang diluncurkan pertama kali dapat meniru pekerjaan pada perangkat keras virtualisasi nyata untuk hypervisor yang diluncurkan setelahnya. Dalam kasus ini, semua hypervisor diluncurkan setelah dijalankan pertama kali di lingkungan host yang diemulasi. Prinsip ini saya sebut "hak malam pertama". Ini dapat dengan mudah diimplementasikan menggunakan penangan khusus pada host root tanpa mengubah mode tugas secara signifikan dan host hypervisor sekunder berjalan dalam mode tugas untuk host root. Mode emulasi tidak sulit untuk diatur, namun ada masalah dengan kinerja. Perangkat keras virtualisasi bekerja terutama dengan blok VMCB (VMCS), program host terus-menerus mengakses blok ini, dan setiap akses tersebut membutuhkan 0,4-0,7 μs. Hampir tidak mungkin untuk menyembunyikan emulasi host perangkat lunak tersebut untuk sistem virtualisasi Intel, terlalu banyak perintah virtualisasi yang harus diemulasi perangkat lunak melalui output ke host root, alih-alih menjalankannya pada perangkat keras yang sebenarnya. Saya akan memberi tahu Anda sedikit tentang perbedaan antara arsitektur virtualisasi. Sistem virtualisasi perangkat keras dari Intel dan AMD sangat berbeda satu sama lain. Perbedaan arsitektural utama antara sistem ini adalah mode operasi host. Pada sistem AMD, host berjalan dengan perangkat keras virtualisasi dinonaktifkan, yang berarti programnya berjalan pada prosesor yang sebenarnya. Virtualisasi host sekunder pada sistem AMD memerlukan virtualisasi hanya untuk perintah VMRUN (Anda dapat berasumsi bahwa tidak ada perintah lain). Bekerja dengan blok kontrol VMCB dalam arsitektur AMD terjadi melalui perintah biasa untuk mengakses RAM, yang memungkinkan host sekunder untuk mengontrol hanya pelaksanaan perintah VMRUN dengan bantuan host sekunder dan memperbaiki blok VMCB jika perlu sebelum benar-benar memasuki mode tugas. Event loop masih dapat digandakan, dan emulasi ini dapat dijalankan pada platform AMD. Sistem virtualisasi Intel jauh lebih rumit. Untuk mengakses blok VMCB, perintah VMREAD dan VMLOAD khusus digunakan, yang harus divirtualisasikan. Biasanya, penangan host mengakses lusinan bidang VMCB, jika tidak ratusan kali, dan setiap operasi semacam itu perlu diemulasikan. Pada saat yang sama, terlihat bahwa kecepatan turun dengan urutan besarnya, ini sangat tidak efektif. Jelas terlihat bahwa kolega yang tidak dikenal menggunakan mekanisme persaingan yang berbeda dan lebih efisien. Dan petunjuk tentang yang saya temukan di dokumentasi. Host Intel sendiri merupakan lingkungan virtual, yang sebenarnya tidak ada, dalam hal ini, berbeda dari lingkungan eksekusi tugas dan hanya dikontrol oleh VMCB lain (lihat diagram). Selain itu, dokumentasi menjelaskan konsep "monitor ganda" untuk memvirtualisasikan mode SMM (mode manajemen sistem), ketika dua host benar-benar aktif sekaligus dan, oleh karena itu, dua blok VMСB, dan host yang memvirtualisasikan mode manajemen sistem mengontrol host utama sebagai tugas tetapi hanya pada titik panggilan interupsi manajemen sistem. Bukti tidak langsung ini menunjukkan bahwa perangkat keras virtualisasi Intel mungkin memiliki mekanisme untuk mengontrol beberapa host sekunder yang dikelola oleh host root, meskipun mekanisme ini tidak dijelaskan di mana pun. Selain itu, ini adalah cara kerja sistem saya, dan saya masih tidak memiliki penjelasan lain untuk tindakan yang hampir tidak terlihat dari root hypervisor. Ini menjadi lebih menarik: tampaknya seseorang memiliki akses ke fitur yang tidak terdokumentasi ini dan menggunakannya dalam praktik. Sekitar enam bulan sebelum akhir kerja sama dengan Craftway, saya mengambil posisi sebagai pengamat pasif, namun terus meluncurkan sistem saya secara teratur pada batch baru motherboard serial dari China dan sampel baru. Pada sampel semuanya terus bekerja dengan stabil. Ketika saya beralih ke papan Cina, semakin banyak keajaiban muncul di sistem. Sepertinya kolega dari luar negeri secara aktif meningkatkan kinerja hypervisor root mereka. Batch terakhir dari papan yang mencurigakan berperilaku hampir normal, yaitu, peluncuran pertama hyperdriver saya menyebabkan sistem reboot selama dimulainya OS, tetapi semua peluncuran hyperdriver dan OS berikutnya berjalan tanpa hambatan. Pada akhirnya, apa yang sudah lama saya perkirakan terjadi: batch baru motherboard mainstream tiba yang tidak membekukan hyperdriver saya sama sekali. Saya sudah mulai mempertanyakan kecurigaan paranoid saya, tetapi insiden baru memperkuatnya. Perlu dicatat bahwa Intel secara aktif meningkatkan perangkat keras virtualisasi. Jika revisi pertama dari perangkat keras yang saya mulai kerjakan adalah nomor 7, maka situasi yang dijelaskan terjadi pada revisi ke-11, yaitu dalam waktu sekitar satu tahun revisi tersebut diperbarui dua kali (untuk beberapa alasan, revisi hanya memiliki angka ganjil). Jadi, pada revisi 11, kondisi untuk memasuki host sesuai dengan status tugas untuk perangkat keras virtualisasi telah berkembang secara signifikan, yang menurutnya bidang kontrol baru bahkan diperkenalkan di blok VMCB. Ketika prosesor sampel dengan revisi perangkat keras virtualisasi ini muncul, saya ingin mencoba kemungkinan baru dalam praktik. Saya meningkatkan hyperdriver karena fitur-fitur baru dari revisi ke-11 dari perangkat keras virtualisasi, memasang prosesor sampel pada papan serial dari China, di mana semuanya bekerja tanpa komentar, dan mulai melakukan debug. Kemampuan baru peralatan itu tidak memanifestasikan dirinya dengan cara apa pun, dan saya kembali bersujud, berdosa pada prosesor sampel dan dokumentasi. Setelah beberapa saat, motherboard diperlukan untuk tugas lain, dan, setelah melanjutkan eksperimen, untuk alasan keamanan, saya mengatur ulang prosesor dengan revisi ke-11 dari perangkat keras virtualisasi ke sampel Kanada. Bayangkan betapa terkejutnya saya ketika semuanya bekerja pada sampel ini! Pada awalnya saya berpikir bahwa saya telah mengacaukan papan serial di suatu tempat, karena keluaran baru ke host tidak ada hubungannya dengan motherboard, yah, sama sekali tidak ada, ini adalah fungsi prosesor murni. Untuk mengujinya, saya menukar prosesor sampel ke papan serial, dan semuanya berhenti bekerja lagi. Ini berarti bahwa saya tidak mengacaukan apa pun, dan masalahnya terletak pada kenyataan bahwa motherboard entah bagaimana memengaruhi kemampuan baru perangkat keras virtualisasi prosesor. Mempertimbangkan kecurigaan saya, satu-satunya kesimpulan menyarankan dirinya sendiri - host root ilegal dari kolega dari luar negeri, dijahit ke memori flash motherboard, tidak tahu tentang revisi baru dari perangkat keras virtualisasi. Ketika perangkat keras yang tidak dikenal ini mulai bekerja, perangkat itu tidak akan lagi merutekan keluaran dengan benar dari status tugas ke host sekunder saya melalui pengendali kejadiannya sendiri. Setelah mengetahui cara mengatasi momok ini, saya mengunggah firmware untuk unit BMC ke papan serial dari situs web Intel, menyalakan sistem dengan keyakinan bahwa semuanya akan langsung berfungsi, dan sekali lagi mempercepat, karena pembekuan tetap ada. Ini adalah sesuatu yang baru. Menurut teori saya, hypervisor ilegal menjadi kurang ajar dan menjadi yakin akan kekebalannya. Rupanya, penulisnya menganggap bahwa gagasan mereka telah melewati tahap pengujian dan tidak perlu lagi menutupi perangkat lunak yang tidak terselesaikan di bawah kegagalan BIOS. Setelah fungsi melindungi kode inisialisasi agar tidak ditimpa di memori flash diaktifkan, penunjuk menjadi hampir tidak mungkin untuk dihapus. Saya tidak percaya pada kebenaran saya, saya membutuhkan eksperimen kontrol. Saya harus menemukan metode saya sendiri untuk mendeteksi hypervisor perangkat keras. Namun kemudian, ternyata saya yang menemukan sepeda. Metode ini memungkinkan pengontrolan waktu eksekusi perintah sistem yang memerlukan emulasi wajib di host hypervisor. Sebagai pengatur waktu, saya menggunakan penghitung bingkai siklik di perangkat keras pengontrol USB, dan menulis program untuk operasi nyata untuk meminimalkan interupsi palsu dan tidak terkontrol yang menutupi waktu eksekusi sebenarnya dari instruksi sistem. Pemeriksaan pertama yang saya lakukan adalah untuk sistem yang bersih berdasarkan motherboard sampel dari Kanada.
Waktu eksekusi yang ditunjukkan di foto adalah nilai kondisional tertentu, kira-kira sesuai dengan siklus prosesor. Kemudian saya menjalankan tes yang sama pada motherboard serial dan memastikan asumsi paranoid saya - siklus perintah diperpanjang secara signifikan.
Artinya, dalam memori flash unit BMC papan server dari China, yang diproduksi di bawah label Intel, terdapat modul perangkat lunak yang tidak dideklarasikan dipasang pada tahap produksi, yang beroperasi sebagai host hypervisor. Tetap meyakinkan orang lain tentang ini. Hal pertama yang saya lakukan adalah menghubungi perwakilan Intel Rusia. Itu tidak sulit sama sekali, karena pegawai kantor Rusia sering muncul di Craftway. Saya memberi tahu dan menunjukkan semuanya, tetapi saya tidak yakin apakah teknisi memahami segalanya. Yang disebut spesialis teknis ini sedikit berbeda dari manajer dalam hal kompetensi mereka. Namun, dia berjanji akan melaporkan semuanya kepada manajemen. Saya tidak tahu apakah dia melakukannya, tetapi tidak ada tanggapan dari Intel, semuanya berjalan seperti pasir. Pada saat itu, pekerjaan saya di Craftway telah berakhir, dan saya memulai proyek baru di sebuah perusahaan yang berkaitan dengan sistem keamanan informasi. Pimpinan firma ini, yang dengannya saya berbagi "penemuan" saya, menanggapi kata-kata saya dengan serius. Sehubungan dengan hal tersebut, diputuskan untuk menghubungi pimpinan Pusat Perlindungan Informasi dan Komunikasi Khusus FSB. Struktur dalam FSB ini terlibat dalam memastikan keamanan informasi di negara tersebut dan mengatur aktivitas organisasi negara dan komersial yang terkait dengan perlindungan informasi. Ini juga mengatur langkah-langkah perlindungan informasi untuk lembaga pemerintah dan perusahaan komersial yang memproses informasi rahasia dan rahasia. Perusahaan tempat saya bekerja pada saat itu memelihara kontak resmi dengan Pusat untuk mengesahkan dan melisensikan proyek komersial mereka, jadi cukup mudah untuk mengatur pertemuan di tingkat spesialis. Diasumsikan bahwa para ahli dari Pusat akan mengkomunikasikan pendapat mereka kepada manajemen, dan jika setelah itu manajemen menganggap perlu untuk mendengarkan kami, tahap selanjutnya adalah pertemuan di tingkat yang lebih tinggi. Pertemuan itu berlangsung, saya memberi tahu dan menunjukkan semua yang bisa saya temukan, kemudian mendemonstrasikan keberadaan modul perangkat lunak ilegal menggunakan contoh papan dari Kanada dan China. Ngomong-ngomong, itu pertama kalinya saya mendengar istilah profesional "bookmark", yang berarti modul semacam itu. Ketika percakapan beralih ke Angkatan Laut, kesalahpahaman muncul di mata rekan-rekan dari Pusat. Saya harus melakukan program pendidikan. Dalam prosesnya, ternyata mereka bahkan tidak mencurigai adanya mikroprosesor khusus di jembatan selatan dengan akses ke adaptor jaringan dan keberadaan modul kriptografi di unit angkatan laut yang melanggar hukum Rusia. Sebagai kesimpulan, kami secara tidak terduga mendengar bahwa model ancaman ini telah diselidiki, serangkaian tindakan penanggulangan sedang diterapkan terkait dengan mereka, dan secara umum, kami tidak takut dengan bookmark, karena sistem kami tidak memiliki koneksi Internet. Pertanyaan lebih lanjut tidak mengarah pada apa pun, semuanya bertumpu pada kerahasiaan, seperti, kami cerdas dan super melek, dan Anda tidak seharusnya tahu tentang apa pun. Namun, saya sangat meragukan literasi teknis mereka, karena mereka sama sekali tidak memahami sebagian besar dari apa yang saya ceritakan dan tunjukkan. Kami berpisah tentang apa yang akan mereka laporkan kepada atasan mereka, dan hanya mereka yang akan memutuskan tindakan lebih lanjut. Kemudian saya menemukan apa "metode rahasia" untuk mendeteksi program host itu. Dan saya menemukan secara tidak sengaja, selama negosiasi di perusahaan - pemegang lisensi Pusat, berwenang untuk memeriksa BIOS untuk bookmark. Pakar teknis perusahaan ini, yang melakukan penelitian tentang BIOS, mengatakan bahwa modul perangkat lunaknya yang menggunakan perangkat keras virtualisasi harus dicari dengan tanda tangan dari perintah virtualisasi. Memang, instruksi prosesor untuk perangkat keras virtualisasi mengandung tiga hingga empat byte dalam kode program, tetapi siapa yang mengatakan bahwa mereka akan menemukan kode program ini dalam bentuk tidak terenkripsi pada sirkuit mikro flash? Bagaimana mereka memindai kode ini ke dalam RAM jika area memori ini dilindungi dari tampilan oleh perangkat keras? Secara umum, hasil dari pertemuan pertama meninggalkan rasa yang tidak menyenangkan, dan dalam suasana yang paling suram saya mengharapkan perkembangan acara. Satu setengah bulan kemudian, kami diundang ke Pusat Perlindungan Informasi dan Komunikasi Khusus itu sendiri, sehingga kami dapat mendemonstrasikan penanda yang kami temukan. Kali ini bukan karyawan biasa yang berkumpul untuk mendengarkan kami, tetapi manajer dan spesialis terkemuka (setidaknya begitulah cara mereka memperkenalkan diri). Pertemuan itu berubah menjadi ceramah, mereka mendengarkan saya dengan penuh perhatian selama hampir tiga jam, jelas mereka baru pertama kali mendengar apa yang saya sampaikan kepada mereka. Saya telah membuat daftar kerentanan baru di platform x86, menunjukkan bookmark dan memberi tahu cara mendeteksinya, dan menjawab banyak pertanyaan. Akhir kata, mereka mengucapkan terima kasih kepada kami, mengatakan bahwa topik tersebut perlu dikembangkan dalam kerangka proyek penelitian khusus, dan untuk itu kami berpisah. Euforia lenyap ketika informasi sampai kepada kami melalui saluran tidak resmi yang mereka tidak ingin mempercayai kami. Namun, ini tidak mendinginkan keinginan saya untuk membuktikan kasus saya. Bagi saya saat itu, solusinya ada di permukaan: perlu untuk menulis sendiri modul program seperti itu untuk bookmark. Saya tidak akan bisa menempatkan bookmark di memori flash Angkatan Laut, tetapi saya bisa saja memasukkannya ke dalam BIOS utama. Saya memutuskan untuk melengkapi hypervisor dengan modul keamanannya sendiri untuk menutupi memori dan sirkuit mikro flash, serta menulis blok ke sirkuit mikro flash di mana kode bookmark akan ditempatkan, setelah itu akan mungkin untuk menghapusnya hanya dengan menghapus BIOS dan memprogram ulang pada programmer eksternal. Tinggal memutuskan fungsi "jahat" yang harus dijalankan oleh hypervisor. Saya ingat pernyataan salah satu spesialis FSB bahwa mereka tidak takut dengan bookmark, karena sistem mereka terputus dari jaringan global. Tetapi informasi dari dunia luar entah bagaimana harus masuk ke jaringan lokal yang aman ini, setidaknya melalui disk optik sekali pakai. Jadi, saya sampai pada kesimpulan yang jelas dan memutuskan untuk menganalisis aliran informasi yang masuk di tab melalui hyperdriver untuk mengimplementasikan, bisa dikatakan, senjata kiamat, yaitu, menggunakan tab untuk menghancurkan sistem komputasi pada perintah eksternal, meneruskannya melalui aliran informasi input, secara steganografis. Untuk memindai arus informasi secara rahasia, tanpa kehilangan kinerja, hanya perangkat keras virtualisasi yang dapat menanganinya. Pada titik apa untuk memindai, juga jelas: di buffer I / O sistem disk dan adaptor jaringan. Memindai buffer I / O adalah masalah besar untuk perangkat keras virtualisasi. Tidak lama lagi diucapkan daripada dilakukan! Hyperdriver semacam itu, berukuran sekitar 20 KB, terdaftar di bios motherboard dan dilengkapi dengan fungsi anti-deteksi. Itu memblokir upaya untuk menimpanya ketika memperbarui BIOS dan melakukan satu-satunya fungsi: itu mengatur ulang chip flash BIOS ketika perintah untuk penghancuran diterima. Untuk kemudahan implementasi, perintah itu sendiri dijahit menjadi file teks berformat DOC di tag pengaturan. Ketika semuanya sudah siap, manajemen perusahaan kembali ke FSB dengan proposal untuk melihat pekerjaan penunjuk milik kami sendiri dan memastikan bahwa teknologi virtualisasi menimbulkan ancaman nyata. Tetapi tidak ada yang ingin melihat bookmark kami dalam kasus ini, sebuah perintah datang dari paling atas (saya tidak pernah tahu siapa urutan tepatnya) untuk tidak berkomunikasi dengan kami lagi. Pejuang utama keamanan informasi tidak mau mendengarkan kami. Lalu, udah berharap apa-apa, nyatanya untuk menjernihkan hati nurani, kami coba sampaikan informasi tentang masalah tersebut kepada para pengguna sistem keamanan informasi. Kami menghubungi Gazprom untuk memberi tahu spesialis perusahaan tentang ancaman saat ini terhadap sistem kontrol proses terdistribusi. Kami berhasil mengatur pertemuan dengan manajemen keamanan perusahaan dan manajemen sistem keamanan kompleks perusahaan ini. Versi bookmark yang lebih visual dengan antarmuka perintah yang disederhanakan telah disiapkan khusus untuk mereka. Bookmark diaktifkan setelah mengunduh file teks ke komputer, yang isinya termasuk dua kata - "Gazprom" dan "stop" - diatur dalam urutan acak. Setelah itu, komputer mati, tetapi tidak segera, tetapi dengan penundaan selama lima menit. Tentu, memang mungkin untuk membuat penundaan selama sehari, tetapi kemudian kami tidak akan memenuhi waktu yang dialokasikan untuk demonstrasi. Karyawan "Gazprom" mengeluhkan rendahnya tingkat keamanan informasi dan mengatakan bahwa ini bukan urusan mereka, karena mereka dipandu oleh persyaratan dan aturan yang ditetapkan oleh FSB. Lingkaran ditutup, menjadi jelas bahwa sistem monolitik dari "informasi tidak bertanggung jawab" tidak dapat ditembus. Selama lebih dari tiga tahun yang telah berlalu sejak itu, saya belum pernah mendengar ada orang yang berbicara tentang perangkat keras virtualisasi sebagai alat untuk menembus sistem target. Paradoks? Saya kira tidak. Kekhususan topiknya adalah kita hanya belajar tentang teknologi yang gagal. Kami tidak tahu tentang teknologi yang belum ditemukan, dan penulisnya, tentu saja, diam. Perlu diingat bahwa penempatan bookmark yang andal di BIOS hanya mungkin dilakukan di pabrik. Dalam kondisi operasi, ini memerlukan fokus pada model motherboard tertentu, dan opsi semacam itu tidak terlalu menarik bagi peretas. Mereka membutuhkan karakter massa, mereka bekerja, seperti yang mereka katakan, "berdasarkan area". Namun, ada orang yang menyerang dengan membidik, "gaya penembak jitu". Teknologi untuk menempatkan bookmark di BIOS, dan bahkan dengan aktivasi perangkat keras virtualisasi, yang memungkinkan Anda menyembunyikannya secara efektif, tentu saja, merupakan alat yang nyaman untuk "penembak jitu" semacam itu. Suatu ketika mereka hampir tertangkap, dan hampir secara tidak sengaja. Saya pikir sekarang tidak mungkin untuk melakukan ini, dan tidak ada yang ditangkap, seperti yang mungkin Anda pahami.

Dahulu kala, ketika komputer pribadi dibeli di luar negeri dalam beberapa ratus keping, dan bukan dalam jutaan "sirkulasi", di bawah naungan salah satu departemen KGB, kantor komersial kecil diorganisir untuk "mencari pembatas buku." Sekarang kita semua mengerti betul bahwa ini adalah salah satu cara jujur \u200b\u200buntuk mengambil uang, karena pada tingkat dukungan dan organisasi itu mungkin untuk menemukan apa pun, tetapi tidak hanya tab dalam komposisi chip. Tetapi pembeli besar dari sejumlah kantor negara dan perusahaan masih tidak punya tujuan. Mereka membayar.

periklanan

Saat ini Intel bahkan tidak menyembunyikan fakta bahwa alat untuk kendali PC jarak jauh dibangun ke dalam prosesor dan chipset platform komputer modern. Active Management Technology (AMT) Intel yang sangat dipublikasikan akan membantu menyederhanakan pemeliharaan sistem jarak jauh - diagnostik dan pemulihan - tanpa campur tangan pengguna. Tetapi tidak ada yang diasuransikan bahwa hak administrator AMT juga dapat digunakan untuk tujuan jahat dan, ternyata, bukan hanya penunjuk, ada "hipotek" secara keseluruhan.

Menurut publikasi pakar keamanan Damien Zammit, chipset Intel modern memiliki chip mikrokontroler Intel Management Engine (Intel ME) lokal dan terisolasi. Ini adalah solusi dengan firmware sendiri yang tidak tersedia untuk pemeriksaan oleh alat pihak ketiga dan dengan kontrol penuh atas prosesor, memori, dan sistem secara keseluruhan. Selain itu, pengontrol dapat bekerja dengan PC dimatikan, selama daya disuplai ke memori. Tentu saja, sistem operasi dan utilitas tidak akan tidur atau secara spiritual tidak mengetahui aktivitas pengontrol dan tidak akan membunyikan alarm saat bekerja dengan sistem dan data.

Kekhawatiran bahwa dengan tingkat teknis musuh yang memadai, ada bahaya melakukan modifikasi tersembunyi pada chip apa pun. Chip yang dimodifikasi akan bekerja di node kritis, dan "kuda Trojan" atau "tulang punggung perangkat keras" yang diperkenalkan tidak akan diketahui, merusak pertahanan negara pada tingkat yang paling mendasar. Untuk waktu yang lama, ancaman semacam itu tetap bersifat hipotesis, tetapi tim peneliti internasional baru-baru ini dapat menerapkannya di tingkat fisik.

Georg T. Becker dari Universitas Massachusetts, bersama dengan rekan dari Swiss dan Jerman, sebagai bagian dari bukti konsep, membuat dua versi "trojan tingkat perangkat keras" yang mengganggu (pseudo) pembuat angka acak (PRNG) di blok kriptografi prosesor Intel Ivy. Jembatan. Kunci kriptografi yang dibuat menggunakan PRNG yang dimodifikasi untuk sistem enkripsi apa pun akan mudah diprediksi.

Kehadiran tab perangkat keras sama sekali tidak ditentukan oleh tes internal yang dirancang khusus untuk ini, atau oleh pemeriksaan eksternal prosesor. Bagaimana ini bisa terjadi? Untuk menjawab pertanyaan ini, perlu kembali ke sejarah munculnya perangkat keras PRNG dan berkenalan dengan prinsip-prinsip dasar operasinya.

Saat membuat sistem kriptografi, perlu untuk menghilangkan kemungkinan pemilihan kunci yang cepat. Panjang dan tingkat ketidakpastian mereka secara langsung mempengaruhi jumlah opsi yang harus disortir oleh pihak penyerang. Panjangnya dapat diatur secara langsung, tetapi jauh lebih sulit untuk mencapai keunikan varian utama dan probabilitasnya yang setara. Untuk melakukan ini, nomor acak digunakan selama pembuatan kunci.

Saat ini, secara umum diterima bahwa karena algoritma perangkat lunak saja tidak mungkin untuk mendapatkan aliran angka yang benar-benar acak dengan distribusi kacau yang seragam di seluruh himpunan yang ditentukan. Mereka akan selalu memiliki frekuensi tinggi di beberapa bagian rentang dan tetap dapat diprediksi. Oleh karena itu, sebagian besar penghasil angka yang digunakan dalam praktik harus dianggap sebagai pseudo-random. Mereka jarang cukup dapat diandalkan secara kriptografis.

Untuk mengurangi efek prediktabilitas, generator bilangan apa pun membutuhkan sumber benih acak yang andal. Biasanya, hasil pengukuran dari beberapa proses fisik yang kacau digunakan seperti itu. Misalnya, fluktuasi intensitas getaran cahaya atau pencatatan gangguan frekuensi radio. Akan lebih mudah secara teknis untuk menggunakan elemen keacakan seperti itu (dan seluruh perangkat keras PRNG) dalam versi yang ringkas, dan idealnya membuatnya menjadi built-in.

Intel telah membangun (pseudo) generator nomor acak ke dalam chipnya sejak akhir tahun sembilan puluhan. Sebelumnya, sifat mereka analog. Nilai acak pada keluaran diperoleh karena pengaruh proses fisik yang sulit diprediksi - gangguan termal dan gangguan elektromagnetik. Generator analog relatif mudah diimplementasikan sebagai blok terpisah, tetapi sulit untuk diintegrasikan ke sirkuit baru. Karena prosesnya menjadi lebih kecil, diperlukan langkah kalibrasi yang baru dan panjang. Selain itu, penurunan tegangan suplai secara teratur memperburuk rasio signal-to-noise dalam sistem tersebut. PRNG bekerja terus-menerus dan menghabiskan banyak energi, dan kecepatan pekerjaan mereka masih jauh dari yang diinginkan. Kekurangan ini memberlakukan pembatasan pada aplikasi yang memungkinkan.

Ide generator bilangan acak (pseudo) dengan sifat serba digital tampak aneh, jika tidak masuk akal, untuk waktu yang lama. Bagaimanapun, keadaan sirkuit digital apa pun selalu sangat deterministik dan dapat diprediksi. Bagaimana cara memasukkan elemen keacakan yang diperlukan jika tidak ada komponen analog?

Upaya untuk menciptakan kekacauan yang diinginkan berdasarkan elemen digital saja telah dilakukan oleh para insinyur Intel sejak 2008 dan telah dinobatkan dengan sukses setelah beberapa tahun melakukan penelitian. Karya tersebut dipresentasikan pada 2010 di VLSI Summer Symposium di Honolulu dan membuat revolusi kecil dalam kriptografi modern. Untuk pertama kalinya, PRNG yang sepenuhnya digital, cepat, dan hemat energi telah diimplementasikan dalam prosesor tujuan umum komersial.

Judul kerja pertamanya adalah Bull Mountain. Kemudian diganti namanya menjadi Secure Key. Blok kriptografi ini terdiri dari tiga modul dasar. Yang pertama menghasilkan aliran bit acak dengan kecepatan yang relatif lambat 3 Gbps. Yang kedua mengevaluasi variansnya dan menggabungkannya ke dalam blok 256 bit, yang digunakan sebagai sumber benih acak. Setelah serangkaian prosedur matematika, aliran angka acak 128-bit dihasilkan pada kecepatan yang lebih tinggi di blok ketiga. Atas dasar mereka, dengan menggunakan instruksi RdRand baru, jika perlu, nomor acak dengan panjang yang dibutuhkan dibuat dan ditempatkan dalam register yang dirancang khusus: 16, 32 atau 64 bit, yang akhirnya ditransfer ke program yang memintanya.

Kesalahan dalam generator bilangan acak (palsu) dan modifikasinya yang berbahaya menyebabkan hilangnya kepercayaan pada produk kriptografi populer dan prosedur sertifikasi mereka.

Karena pentingnya PRNG yang luar biasa untuk sistem kriptografi apa pun, pengujian dibuat ke dalam Kunci Aman untuk memeriksa kualitas nomor acak yang dihasilkan, dan kelompok ahli terkemuka dilibatkan untuk sertifikasi. Seluruh unit memenuhi kriteria standar ANSI X9.82 dan NIST SP 800-90. Selain itu, tersertifikasi NIST FIPS 140-2 Level 2.

Hingga saat ini, sebagian besar pekerjaan pada perangkat keras Trojans hanya bersifat hipotesis. Peneliti mengusulkan desain tambahan dari sirkuit logika kecil yang harus ditambahkan dengan cara tertentu ke chip yang ada. Misalnya, Samuel Talmadge King dan rekan penulisnya mempresentasikan di LEET-08 versi trojan perangkat keras semacam itu untuk prosesor pusat yang akan memberikan kendali penuh atas sistem kepada penyerang jarak jauh. Dengan hanya mengirimkan paket UDP yang dikonfigurasi, seseorang dapat membuat perubahan apa pun pada komputer tersebut dan mendapatkan akses tak terbatas ke memorinya. Namun, rangkaian logis tambahan relatif mudah diidentifikasi dengan mikroskop, belum lagi metode khusus untuk mencari modifikasi tersebut. Kelompok Becker pergi ke arah lain:

Alih-alih menghubungkan sirkuit tambahan ke chip, kami mengimplementasikan tab level perangkat keras kami hanya dengan mengubah operasi beberapa mikrotransistor yang sudah ada di dalamnya. Setelah beberapa kali mencoba, kami dapat secara selektif mengubah polaritas dopan dan membuat modifikasi yang diinginkan pada pengoperasian seluruh unit kriptografi. Oleh karena itu, keluarga Trojan kami telah terbukti tahan terhadap sebagian besar metode deteksi, termasuk pemindaian mikroskop dan perbandingan dengan chip referensi. "

Sebagai hasil dari pekerjaan yang dilakukan, alih-alih nomor unik dengan panjang 128 bit, blok Kunci Aman ketiga mulai mengakumulasi urutan di mana hanya 32 bit yang berbeda. Kunci kriptografi yang dihasilkan atas dasar bilangan acak semu seperti itu sangat dapat diprediksi dan dapat dipecahkan dalam beberapa menit di komputer rumah biasa.

Perubahan selektif dalam konduktivitas listrik yang mendasari tab perangkat keras diterapkan dalam dua versi:

  1. pemrosesan digital sinyal dari Intel Secure Key;
  2. digunakan pada saluran samping menggunakan metode kotak Substitusi.

Metode terakhir lebih fleksibel dan dapat diterapkan dengan sedikit modifikasi pada chip lain.

Kemampuan untuk menggunakan PRNG onboard melalui instruksi RdRand pertama kali muncul di prosesor Intel Ivy Bridge. Intel telah menulis panduan terperinci untuk pemrogram. Mereka menjelaskan metode untuk implementasi optimal dari algoritme kriptografi dan memberikan tautan ke deskripsi tentang cara kerja Secure Key. Untuk waktu yang lama, upaya para pakar keamanan ditujukan untuk menemukan kerentanan di bagian perangkat lunak. Mungkin, untuk pertama kalinya, intervensi tersembunyi di tingkat perangkat keras ternyata merupakan teknologi yang jauh lebih berbahaya dan cukup memungkinkan.