Pemindai MOAD sebagai Praktik Permakultur
Prinsip pertama Permakultur: amati sebelum bertindak. Habiskan waktu dalam sistem yang ingin Anda ubah. Pahami aliran, akumulasi, dan arus limbahnya sebelum merancang intervensi Anda. Seorang petani yang mengamati tempat air menggenang, tempat sinar matahari menjangkau, dan tempat nutrisi terkonsentrasi menempatkan tanaman lebih efektif daripada yang mengikuti rencana generik.
Pemindai MOAD menerapkan prinsip ini pada ekosistem perangkat lunak. Sebelum mengajukan masalah tunggal, pindai seluruh proyek dan bahasa. Petakan distribusi cacat: berapa banyak proyek yang memiliki CWE-407? Mana yang memilikinya di jalur lalu lintas tinggi? Paket hulu mana, jika diperbaiki, akan menyebarkan perbaikan ke sebagian besar dependennya? Amati ekosistem sebelum bertindak pada node tunggal.
Bandingkan ini dengan praktik ekstraktif: menemukan kerentanan, menjualnya ke broker kerentanan, mengumpulkan pembayaran, lanjutkan. Peneliti mengekstrak modal finansial dari pengetahuan dan tidak meninggalkan apa pun. Tidak ada pengetahuan yang menyebar. Sistem tidak meningkat. Pengguna masa depan di setiap proyek yang terpengaruh tetap rentan. Broker memegang pengetahuan, yang menurun nilainya seiring kerentanan yang berusia tanpa pengungkapan.
Praktik Permacomputer: temukan cacat, perbaiki, ungkapkan, kirim hulu, rilis patch sebagai domain publik. Pengetahuan menyebar tanpa peluruhan — bahkan, ini bertambah: CVE yang diungkapkan menjadi referensi, posting MOAD mengajarkan pola, peneliti masa depan menemukan instans baru menggunakan pola yang sama. Loop tertutup daripada ekstraksi terminal.
Observasi Permakultur mendahului tindakan Permakultur. Pemindaian menghasilkan data tentang skor lonjakan, grafik ketergantungan, dan jumlah node yang terpengaruh sebelum patch bergerak. Data ini membentuk patch mana yang dikirim terlebih dahulu: node betweenness tinggi sebelum node daun, karena perbaikan pada perpustakaan yang banyak bergantung menyebar lebih jauh per unit usaha.
Jangan Hasilkan Limbah: Tiga Jalur Pengungkapan
Tiga jalur yang dapat diambil peneliti setelah menemukan kerentanan kritis dalam perpustakaan open-source populer:
A. Jual ke broker kerentanan seharga $10.000.
B. Laporkan secara pribadi kepada pengelola dengan jadwal pengungkapan 90 hari, kemudian publikasikan terlepas dari status patch.
C. Kirim patch sebagai pull request segera dengan pengungkapan publik yang bersamaan.
Pemajemukan dalam Sistem Terbuka
Prinsip kedua Permakultur: tangkap dan simpan energi ketika mengalir berlimpah sehingga Anda memiliki cadangan ketika tidak. Sistem penangkapan air menyimpan air selama badai untuk digunakan di bulan kering. Hutan makanan menyimpan energi matahari sebagai buah dan biomassa di seluruh musim. Tujuannya: cocokkan waktu penyimpanan dengan waktu kelimpahan.
Pengetahuan Hamming yang majemuk: setiap teknik baru terhubung dengan daftar masalah penting Anda, mengalikan output produktif. Wawasan tunggal tentang entropi informasi, bagi Shannon, membuka puluhan tahun pekerjaan teoritis karena terhubung dengan setiap pertanyaan terbuka di daftarnya secara bersamaan. Pengetahuan yang disimpan membayar bunga majemuk.
Pemajemukan open-source bekerja berbeda dari pemajemukan individu. Perbaikan yang digabung ke dalam repositori kanonik menyimpan energi di tempat di mana setiap fork hilir secara otomatis menarik darinya. Patch yang diajukan ke perpustakaan asyncio Python pada 2022 menyebar ke setiap proyek menggunakan perpustakaan itu tanpa tindakan tambahan dari peneliti asli. Energi menyimpan di sumber dan pemajemukan melalui grafik ketergantungan.
Artikel MOAD menyimpan energi secara berbeda: setiap posting mengajarkan pola pemindaian daripada hanya mengungkapkan instans spesifik. Peneliti yang membaca artikel MOAD CWE-407 belajar bukan hanya bahwa Proyek X memiliki kerentanan flush, tetapi seperti apa pola flush dalam bahasa apa pun, cara mencarinya, dan cara membedakannya dari kode serupa yang jinak. Peneliti masa depan menemukan instans baru menggunakan pola yang disimpan daripada menemukannya kembali dari prinsip pertama.
Mekanisme penyimpanan energi sama pentingnya dengan energi itu sendiri. Pengetahuan yang disimpan dalam catatan pribadi hanya pemajemukan untuk pemilik catatan. Pengetahuan yang disimpan di repo publik pemajemukan untuk semua orang yang membacanya. Pengetahuan yang disimpan dalam database CVE pemajemukan untuk semua orang yang menjalankan pemindai keamanan. Setiap lokasi penyimpanan memiliki karakteristik pemajemukan yang berbeda.
Pelacak Masalah & Daftar Masalah Pribadi
Hamming menyimpan daftar 10 masalah penting yang dia kembangkan berulang kali. Daftar itu memulakannya untuk mengenali ketika teknik baru mengatasi salah satunya. Daftarnya berfungsi sebagai energi yang disimpan pribadi: investasi tahan lama dalam pencocokan pola yang memberikan dividen setiap kali teknik baru muncul.
Loop MOAD sebagai Sistem Tertutup
Permakultur: dalam sistem yang dirancang dengan baik, output dari satu proses memberi makan input dari proses lainnya. Tidak ada output yang keluar dari sistem sebagai limbah. Ayam dalam hutan makanan menghasilkan telur (makanan), kotoran (pupuk), pengendalian hama (layanan), dan goresan (aerasi tanah). Setiap output mengarah ke proses hilir daripada meninggalkan sistem.
Model pabrik MOAD membangun loop tertutup yang serupa. Setiap tahap menghasilkan output yang memberi makan yang berikutnya:
Pindai menghasilkan: instans cacat yang dikonfirmasi, peta lokasi node yang terpengaruh, estimasi keparahan berdasarkan betweenness dan lalu lintas.
Patch menghasilkan: koreksi kode, pengujian unit yang mengkonfirmasi perbaikan, diff yang dapat ditinjau oleh pengelola.
Posting MOAD menghasilkan: artikel domain publik yang menjelaskan kelas cacat, pola pemindaian, dan pendekatan perbaikan. Modal intelektual yang bertahan melampaui instans tunggal apa pun.
Pengungkapan CVE menghasilkan: catatan standar dalam NVD, memicu pemindai keamanan otomatis di seluruh instalasi yang terpengaruh. Modal sosial untuk komunitas keamanan.
PR Hulu menghasilkan: perbaikan dalam sumber kanonik, menyebar secara otomatis ke semua fork hilir pada pembaruan ketergantungan berikutnya mereka.
Setiap output memberi makan kembali: posting MOAD mengajarkan peneliti untuk menemukan instans baru, yang menghasilkan pemindaian baru. Pengujian unit menjadi penjaga regresi. Catatan CVE mendorong adopsi patch oleh tim operasi yang sebaliknya akan mengabaikannya. Loop ditutup.
Kondisi halt: patch yang diungkapkan tanpa mengkonfirmasi kapasitas hilir membanjiri antrian. MOAD-0001 dan MOAD-0005 berpasangan: perbaiki O(N²) di node betweenness tinggi dan setiap pemroses hilir membanjir secara bersamaan. Prinsip desain-untuk-seluruh-sistem Permakultur berlaku di sini juga: optimalkan komponen dan Anda mungkin membuat kemacetan hilir baru.
Memetakan Output ke Modal
Pipeline MOAD menghasilkan lima output: hasil pemindaian, patch, posting MOAD, pengungkapan CVE, dan PR hulu.