Program ini memenangkan tempat pertama di DARPA Cyber Grand Challenge, yang didedikasikan untuk otomatisasi peretasan etis

Pada 2011, ketika investor Mark Andrissen
mengatakan bahwa "program memakan dunia," ide ini segar. Sekarang jelas bahwa perangkat lunak menembus semua aspek kehidupan kita. Dari perangkat elektronik yang kompleks seperti peralatan medis dan robomobiles hingga yang paling sederhana, seperti bola lampu yang terhubung ke Internet dan termometer, perangkat lunak mengelilingi kita.
Dan ini berarti bahwa kita rentan terhadap serangan pada perangkat lunak ini tidak seperti sebelumnya.
Setiap tahun,
111 miliar baris kode ditambahkan ke program yang ada, dan masing-masingnya berfungsi sebagai sasaran potensial baru. Steve Morgan, pendiri dan pemimpin redaksi perusahaan riset
Cybersecurity Ventures, memperkirakan bahwa peretasan sistem yang dilakukan melalui kerentanan yang sebelumnya tidak diketahui - apa yang disebut industri sebagai "kerentanan nol hari" - akan terjadi di AS setiap hari pada tahun 2021, meskipun itu terjadi
setiap minggu pada tahun 2015 .
Untuk mengatasi masalah ini, kolega saya dari Carnegie Mellon University dan saya menghabiskan hampir 10 tahun menciptakan teknologi yang secara otomatis dapat membuat perangkat lunak aman. Kemudian pada tahun 2012, kami mendirikan
ForAllSecure untuk memperkenalkan produk kami kepada dunia. Kami hanya perlu membuktikan bahwa kami dapat melakukan apa yang kami katakan, dan kami melakukannya dalam bentuk partisipasi dalam kompetisi.
The Magnificent Seven: Komputer-komputer yang bersaing bersinar di depan para penonton final Cyber Grand Challenge, yang diadakan di Las Vegas pada 2016.Maju cepat ke 2016: grup kami telah menumpuk di toilet sebuah hotel di Las Vegas dan menggigit kukunya, memastikan bahwa ia telah kehilangan kompetisi, yang membutuhkan beberapa ribu jam untuk bersiap. Itu adalah DARPA Cyber Grand Challenge (CGC), salah satu dari banyak acara (seperti Kompetisi Robot Mobil pada awal 2000-an) yang diselenggarakan oleh Proyek Penelitian Lanjutan Departemen Pertahanan AS untuk merangsang terobosan teknologi untuk memastikan keamanan nasional. CGC muncul karena DARPA menyadari bahwa hari itu akan tiba bagi Amerika Serikat ketika mereka tidak memiliki cukup orang atau alat untuk mengusir serangan cyber.
Ada peretas yang paham teknologi di medan perang demi keamanan siber, dan di antara yang terbaik di antara mereka adalah mereka yang mampu secara kreatif mengeksploitasi kelemahan perangkat lunak untuk menembus pertahanan organisasi. Penjahat yang melakukan ini untuk tujuan pribadi mereka disebut peretas topi hitam, dan sering kali mereka membuat alat dengan skrip kiddies, orang yang menggunakan program yang sudah jadi, dapat membuat kekacauan, seperti, misalnya, terjadi pada 2016, ketika botnet internet Hal meluncurkan serangan besar-besaran di Internet, mendapatkan akses ke kamera pengintai di rumah-rumah orang biasa. Sebaliknya, peretas etis, atau perusak, gunakan keterampilan mereka untuk mencegah serangan semacam itu. Tapi peretas etis tidak cukup untuk melindungi semua perangkat lunak, yang jumlahnya di dunia komersial berkembang pesat, belum lagi infrastruktur umum dan platform militer, penting untuk keamanan nasional dan global.
Pada 2014, DARPA mengumumkan Cyber Grand Challenge - proyek dua tahun untuk menguji kelayakan pengembangan sistem AI yang dapat menemukan, memverifikasi, dan menambal kelemahan perangkat lunak. Pada 2015, seratus tim memasuki fase pra-kualifikasi. Pada tahun 2016, tujuh dari mereka mencapai final, di mana mereka perlu mempresentasikan sistem yang dapat beralasan - sistem yang tidak hanya akan melihat masalah, tetapi juga membuat asumsi tentang asalnya. Sang juara menerima $ 2 juta, dan tempat kedua dan ketiga - $ 1 juta dan $ 750.000.
Setelah DARPA merilis perincian ini, rekan saya dan saya segera menyadari bahwa ini akan menjadi kesempatan besar untuk menunjukkan bahwa sistem keamanan siber otomatis kami bukanlah mainan teoretis yang sederhana. Ketika kami berbicara tentang ForAllSecure, kami selalu dihadapkan dengan skeptis tentang kepraktisan solusi kami. Kami memutuskan bahwa kami perlu memenangkan kompetisi, mengingat kami telah mengerjakannya selama satu dekade.
Penelitian kami di universitas dimulai dengan asumsi sederhana: orang memerlukan cara untuk menguji perangkat lunak yang mereka beli untuk memastikan keamanannya. Programmer, tentu saja, akan melakukan segala upaya untuk menghilangkan masalah keamanan, tetapi tugas utama mereka lebih sederhana: mereka harus merilis produk tepat waktu dan memastikan bahwa ia melakukan apa yang diperlukan. Masalahnya adalah bahwa peretas akan menemukan cara untuk mendapatkan perangkat lunak untuk melakukan apa yang tidak seharusnya.
Saat ini, praktik terbaik di bidang keamanan perangkat lunak melibatkan penggunaan alat khusus untuk meninjau kode sumber dan mengidentifikasi kelemahan potensial. Proses ini menghasilkan banyak hasil positif palsu - menandai tempat yang tidak benar-benar lemah - sehingga seseorang harus memeriksa semuanya dan memeriksa masing-masing. Untuk meningkatkan kecepatan deteksi kesalahan, beberapa perusahaan mengandalkan peretas etis yang melakukan analisis satu kali atau berpartisipasi dalam program pencarian bug dengan biaya, dan membayar mereka untuk jumlah dan tingkat keparahan bug yang terdeteksi. Tetapi hanya perusahaan paling sukses yang mampu menguji program dengan kualitas terbaik. Dan masalahnya hanya menjadi lebih rumit ketika berbagai komponen open source dan pekerjaan lain dari pihak ketiga termasuk dalam produk akhir.
Kami mempresentasikan sistem Mayhem di kompetisi, yang mengotomatiskan pekerjaan peretas etis. Dia tidak hanya menunjukkan kelemahan yang mungkin, dia mengeksploitasi kelemahan ini, membuktikan kelemahan mereka. Ini juga merupakan titik kunci di CGC - menunjukkan bukti kerentanan dan menciptakan eksploitasi kerja adalah beberapa cara untuk mendapatkan poin kemenangan. Dan karena Mayhem adalah mesin yang dapat diskalakan, analisis semacam itu dapat terjadi pada kecepatan yang tidak dapat diakses manusia.
Mayhem, seperti enam pesaingnya, membutuhkan pendinginan air. Tetapi statistik tentang konsumsi dan suhu menunjukkan bahwa Mayhem bekerja lebih aktif daripada yang lain.Kami mendekati pembuatan Mayhem, memiliki sistem analisis perangkat lunak siap pakai yang dikembangkan oleh kami di universitas, dan berdasarkan pada analisis formal teks program. Metode ini dapat dibandingkan dengan rumus matematika yang menggambarkan setiap jalur yang dapat diambil oleh suatu program, yaitu mengeluarkan pohon analitis yang terus bercabang. Pohon seperti itu dapat dengan cepat menjadi terlalu besar untuk dikerjakan, tetapi kami telah menemukan cara cerdas untuk menghilangkan beberapa jalur yang mengurangi seluruh pohon menjadi beberapa cabang. Setelah itu, kita sudah bisa mempelajari cabang-cabang yang tersisa secara lebih rinci.
Eksekusi simbolik menciptakan persamaan yang menunjukkan seluruh logika program - misalnya, x + 5 = 7 - dan kemudian memecahkan persamaan ini. Bandingkan strategi ini dengan metode analisis perangkat lunak lain,
fuzzing , ketika Anda mencoba untuk memberi nilai acak ke program dalam upaya untuk menjatuhkannya, setelah itu Anda sudah dapat mengidentifikasi kerentanan yang menyebabkan penutupan dan bagaimana mereka dapat digunakan dalam serangan yang disengaja. Fuzzing memasukkan data acak hingga nilai persamaan benar, menentukan bahwa x = 2.
Kedua pendekatan memiliki kekuatan masing-masing, tetapi selama bertahun-tahun fuzzing memiliki keuntungan dari kemudahan implementasi dan kecepatan pemrosesan data input. Performa simbolis penuh dengan potensi besar dan belum dimanfaatkan bagi siapa pun yang bisa menjinakkannya. Dalam sistem Mayhem, yang kami mulai ciptakan pada tahun 2010, kami dapat mencapai ini dengan menggabungkan kedua pendekatan.
Fuzzing adalah upaya untuk membuat asumsi berdasarkan kecepatan yang luar biasa tentang jenis input data apa yang dapat menyebabkan program berperilaku dengan cara baru, dan kemudian melacak data apa yang benar-benar mengarah pada hasil ini. Eksekusi simbolis adalah upaya untuk meminta ahli matematika untuk secara formal menyimpulkan data input mana yang dapat membantu membuat exploit. Kami menemukan bahwa beberapa kesalahan paling baik ditemukan melalui tebakan cepat, dan lainnya menggunakan pendekatan matematika. Oleh karena itu, kami memutuskan untuk menggunakan kedua metode secara paralel. Eksekusi simbolik masuk lebih dalam ke studi berurutan satu bagian dari program, dan memberikan input yang menjalankan bagian kode ini. Kemudian sistem meneruskan data ini ke program fuzzing, yang mulai memalu pada bagian kode ini dengan sangat cepat, menghilangkan kerentanan darinya.
Kemampuan Mayhem lainnya adalah bekerja secara langsung dengan kode biner, tidak seperti orang yang mempelajari file teks, yaitu kode sumber. Ini berarti bahwa sistem dapat menganalisis program tanpa bantuan orang yang mengembangkannya, dan ini sangat penting dalam kasus program yang menyertakan komponen yang ditulis oleh pengembang pihak ketiga yang kode sumbernya tidak lagi dapat ditemukan. Tetapi sulit untuk membuat penilaian tentang kode biner, karena, tidak seperti kode sumber, ia tidak memiliki fungsi, atau variabel logis, atau abstraksi data. Kode biner hanya memiliki satu keping memori dan vektor bit dengan panjang tetap - struktur penyimpanan data yang efisien. Untuk bekerja dengan kode seperti itu, Anda harus menjadi mesin, dan untuk membuat mesin yang dapat bekerja dengan batasan seperti itu, para insinyur benar-benar harus banyak bekerja.
Setelah menentukan kerentanannya, Mayhem menghasilkan exploit yang berfungsi - kode yang bisa digunakan oleh hacker topi hitam untuk memecahkannya. Tujuannya adalah untuk menunjukkan bahwa exploit dapat digunakan untuk mendapatkan akses istimewa ke sistem operasi. Akibatnya, Mayhem mengidentifikasi kerentanan dengan kepastian mutlak, dan tidak hanya mencatat kemungkinan masalah, seperti yang dilakukan sebagian besar alat analisis kode.
Pada tahun 2014, kami menguji Mayhem pada semua program yang termasuk dalam distribusi Debian, versi Linux yang populer yang digunakan di seluruh dunia untuk komputer kerja dan server. Mayhem menemukan hampir 14.000 kerentanan unik, dan kemudian mempersempit daftar menjadi 250 yang baru yang layak mendapat prioritas tertinggi. Seluruh pengujian memakan waktu satu minggu, karena kami menskalakan Mayhem ke banyak server di cloud Amazon, dan praktis tidak memerlukan intervensi manusia. Kami mengirim temuan paling penting ke komunitas Debian untuk ditinjau. Salah satu alasan keputusan kami untuk mengubah proyek penelitian menjadi perusahaan komersial adalah keinginan kami untuk berkolaborasi dalam skala sedemikian dengan pengembang, menganalisis ribuan program untuk mencari sejumlah besar kerentanan.
Tim proyek Mayhem: Insinyur ForAllSecure berpose dengan latar belakang gagasan mereka pada upacara penutupan. Penulis artikel, David Bramley, ada di barisan depan, ketiga dari kiri.Pada 3 Juni 2015, lebih dari seratus peserta diterima ke babak kualifikasi, dan mereka diberikan 131 tugas unik, masing-masing memiliki kerentanan yang diketahui. Tujuh tim dengan poin terbanyak (dikeluarkan untuk menemukan kerentanan dan tambalan untuk mereka) berhasil mencapai final Cyber Grand Challenge. ForAllSecure lebih dari dua kali lipat pencapaian peserta yang berada di urutan kedua dalam poin. Dan momen sukacita yang singkat ini dengan cepat memberi jalan pada kesadaran bahwa tekanan yang sebenarnya baru dimulai sekarang!
Tugas menciptakan sistem pengambilan keputusan siber yang sepenuhnya otonom berdasarkan teknologi Mayhem ternyata merupakan usaha yang sangat sulit. Secara khusus, kami berhasil melakukan ini berkat fakta bahwa DARPA mengalokasikan tujuh finalis keuangan yang cukup untuk mendukung pembangunan selama setahun penuh. Di antara komponen utama teknologi adalah seperangkat alat yang menerjemahkan program yang dapat dieksekusi ke dalam bahasa yang relatif mudah dipahami dan dianalisis, serta alat aktif untuk menemukan dan mengeksploitasi kerentanan, alat pelindung untuk secara otomatis membuat tambalan untuk kode biner yang rusak, dan program untuk koordinasi kerja yang efisien.
Dalam persiapan untuk final, kami menghadapi dua kesulitan serius. Pertama-tama, meskipun kami senang dengan cara Mayhem menangani pencarian kerentanan, bagi kami tampaknya patch tidak akan cukup efektif. Dalam kompetisi, seperti pada kenyataannya, tidak masuk akal untuk menambahkan tambalan yang akan menghabiskan lebih banyak waktu prosesor daripada biaya untuk menyelesaikan masalah ini. Karenanya, kami bekerja sangat lama pada sistem untuk menambahkan tambalan otomatis yang meningkatkan konsumsi tidak lebih dari 5%.
Kedua, kami membutuhkan strategi kemenangan. Misalkan kita menemukan kerentanan dan membuat tambalan untuk itu. Mungkin Anda sebaiknya tidak langsung menggulirkannya jika program terlalu lambat. Kadang sepadan dengan menunggu dan menerapkan tambalan hanya sebagai pilihan terakhir. Kami telah mengembangkan sistem pakar yang membuat keputusan tentang kapan akan menambal program.
Ketika tim kami memasuki ballroom Las Vegas, tempat final berlangsung pada 5 Agustus 2016, kami melihat tujuh rak besar dengan lampu yang terletak di atas panggung besar, di bawahnya ada sebuah tangki dengan 180 ton air yang mendinginkan komputer para peserta. Peserta perlu menyiapkan mobil pada malam sebelum dimulainya kompetisi, dan kemudian DARPA mengambil semua akses ke mereka. Mobil terputus dari internet dan umumnya dari dunia luar. Kami hanya bisa memantau cara kerja Mayhem, mengamati konsumsi daya dan suhu sistem, statistik yang ditampilkan di sebelah setiap rak. Mayhem terus-menerus bekerja lebih aktif daripada lawan - dan kami berharap ini pertanda baik.
Selama hampir 100 putaran, sistem yang bersaing menerima program baru, dan harus menganalisis kode untuk kerentanan dan mengeluarkan tambalan yang diperlukan untuk perlindungan hanya dalam beberapa menit. Poin di setiap putaran diberikan untuk kemampuan mesin untuk menemukan dan membuktikan adanya kerentanan, serta untuk efektivitas tambalan.
Kemenangan dengan margin lebar: Mayhem berhasil menciptakan margin besar, dan kemudian jatuh setelah putaran ke-40. Tetapi tim tidak tahu apa-apa tentang kesenjangan ini sampai akhir kompetisi.Untuk membuat presentasi lebih menarik, panitia memutuskan untuk menginformasikan poin akhir hanya di akhir kompetisi. Ini berarti bahwa dalam proses kami tidak tahu apakah kami menang atau kalah, kami hanya melihat Mayhem mengirim pesan tentang kerentanan yang ditemukan. Namun, beberapa jam setelah dimulainya kompetisi, setelah putaran ke-40, menjadi jelas bagi kami bahwa Mayhem berhenti mengirim pesan. Program macet.
Segala sesuatu di dalam diri kita menyusut, karena bagi kita tampaknya mimpi terburuk kita telah berubah menjadi kenyataan. Kami meminta panitia kesempatan untuk memulai kembali program, tetapi mereka tidak mengizinkan kami untuk melakukan ini. Dan karena hanya setengah dari kompetisi selesai, kami mulai mempersiapkan kekalahan yang memalukan.
Panitia mulai mengomentari situasi di akhir kompetisi, dan visualisasi yang indah menunjukkan kepada kita bagaimana mesin dari masing-masing tim menemukan dan memperbaiki masalah keamanan dalam program dalam hitungan detik, dibandingkan dengan bulan atau tahun yang orang habiskan untuk itu. Aula itu dihadiri oleh lebih dari 5.000 orang, dan komentator tamu - seorang astrofisikawan dan peretas terkenal - menghangatkan minat mereka. Kami mempersiapkan mereka untuk mengumumkan kekalahan kami dan mengonfirmasinya dengan informasi di layar.
Namun, menonton poin yang ditambahkan setelah setiap putaran, kami tiba-tiba menyadari bahwa celah awal Mayhem cukup untuk mempertahankan tempat pertama, meskipun ia selesai bekerja setelah putaran ke-40. Setelah pengumuman hasil putaran terakhir, rasanya seperti gunung jatuh dari pundak kami. Kami telah menang.
Mike Walker, direktur program DARPA, mengatakan demonstrasi pertahanan dunia maya yang otonom ini "hanyalah awal dari sebuah revolusi" di dunia keamanan perangkat lunak. Dia membandingkan hasilnya dengan penerbangan pertama Wright bersaudara, yang tidak terbang jauh, tetapi menunjukkan jalan ke penerbangan lintas benua.
Sejauh ini, ForAllSecure menjual versi pertama dari layanan barunya kepada pelanggan awal, termasuk pemerintah AS dan perusahaan teknologi tinggi dan dirgantara. Pada tahap ini, layanan pada dasarnya menentukan apakah ada masalah yang kemudian diperbaiki oleh para ahli manusia. Untuk beberapa waktu, sistem seperti Mayhem akan bekerja sama dengan orang-orang, pakar keamanan, menjadikan dunia perangkat lunak tempat yang lebih aman. Tapi kami percaya bahwa di masa depan yang jauh, kecerdasan mesin akan mampu mengatasi tugas ini sendiri.