Skaner MOAD jako praktyka permakultury
Pierwsza zasada permakultury: obserwuj przed działaniem. Spędzaj czas w systemie, który chcesz zmienić. Zrozum jego przepływy, nagromadzenia & strumienie odpadów, zanim zaprojektujesz interwencję. Ogrodnik, który obserwuje, gdzie gromadzi się woda, gdzie dociera światło słoneczne & gdzie koncentrują się składniki odżywcze, sadzi rośliny skuteczniej niż ten, kto postępuje według ogólnego planu.
Skaner MOAD stosuje tę zasadę do ekosystemów oprogramowania. Zanim zgłosisz choćby jeden problem, skanuj projekty i języki programowania. Zmapuj rozkład defektu: ile projektów zawiera CWE-407? Które mają go na ścieżkach o dużym ruchu? Które pakiety upstream, gdyby zostały poprawione, propagowałyby poprawkę do największej liczby zależności? Obserwuj ekosystem, zanim zaczniesz działać na jakimkolwiek węźle.
Porównaj to z praktyką eksploatacyjną: odkryj lukę bezpieczeństwa, sprzedaj ją brokerowi podatności, otrzymaj wynagrodzenie, idź dalej. Badacz wyekstrahował kapitał finansowy z wiedzy i odszedł. Żadna wiedza nie propagowała się dalej. Żaden system się nie poprawił. Przyszli użytkownicy każdego dotkniętego projektu pozostali podatni. Broker przechowuje wiedzę, która traci na wartości w miarę starzenia się luki bez ujawnienia.
Praktyka permakomputera: odkryj defekt, napraw go, ujawnij, zgłoś do upstream, opublikuj łatkę jako własność publiczną. Wiedza propaguje się bez utraty wartości — w rzeczywistości kumuluje się: ujawnione CVE staje się punktem odniesienia, post MOAD uczy wzorca, przyszli badacze znajdą nowe wystąpienia korzystając z tego samego wzorca. Zamknięta pętla zamiast ekstrakcji terminalnej.
Obserwacja permakultury poprzedza działanie permakultury. Skan generuje dane dotyczące wyników surge, grafów zależności & liczby dotkniętych węzłów, zanim jakakolwiek łatka zostanie uruchomiona. Te dane kształtują kolejność wysyłania łatek: węzły o wysokim współczynniku pośrednictwa przed węzłami liśćmi, ponieważ poprawka do szeroko zależnej biblioteki propaguje się dalej przy tym samym nakładzie pracy.
Nie produkuj odpadów: Trzy ścieżki ujawnienia
Trzy ścieżki, jakie może obrać badacz po odkryciu krytycznej luki w popularnej bibliotece open-source:
A. Sprzedaj ją brokerowi podatności za 10 000 USD.
B. Zgłoś ją prywatnie opiekunowi z 90-dniowym harmonogramem ujawnienia, a następnie opublikuj niezależnie od statusu łatki.
C. Zgłoś łatkę jako pull request natychmiast z jednoczesnym publicznym ujawnieniem.
Kumulowanie w systemach otwartych
Druga zasada permakultury: łap i przechowuj energię, gdy płynie obficie, aby mieć rezerwy, gdy jej brakuje. System zbierania deszczówki przechowuje wodę podczas burz na użytek w suchych miesiącach. Las żywności przechowuje energię słoneczną jako owoce i biomasę przez kolejne sezony. Cel: dopasować czas przechowywania do czasu obfitości.
Kumulowanie wiedzy wg Hamminga: każda nowa technika łączy się z Twoją listą ważnych problemów, mnożąc produktywność. Pojedyncze spostrzeżenie o entropii informacji otworzyło Shannonowi dziesięciolecie pracy teoretycznej, ponieważ jednocześnie łączyło się z każdym otwartym pytaniem na jego liście. Przechowywana wiedza przynosiła procent składany.
Kumulowanie open-source działa inaczej niż kumulowanie indywidualne. Poprawka scalona z kanonicznym repozytorium przechowuje energię w miejscu, z którego każdy downstream fork automatycznie czerpie przy kolejnej aktualizacji. Łatka zgłoszona do biblioteki asyncio Pythona w 2022 roku propagowała się do każdego projektu korzystającego z tej biblioteki bez żadnych dodatkowych działań ze strony pierwotnego badacza. Energia przechowywana jest u źródła i kumuluje się przez graf zależności.
Artykuły MOAD przechowują energię inaczej: każdy post uczy wzorca skanowania, a nie tylko ujawnia konkretne wystąpienie. Badacz, który czyta artykuł MOAD o CWE-407, uczy się nie tylko, że Projekt X miał lukę flush, ale jak wygląda wzorzec flush w każdym języku, jak go szukać & jak odróżnić go od podobnego kodu bez wad. Przyszli badacze znajdą nowe wystąpienia korzystając z przechowywanego wzorca, zamiast odkrywać go od podstaw.
Mechanizm przechowywania energii ma równie duże znaczenie, co sama energia. Wiedza przechowywana w prywatnym notatniku kumuluje się tylko dla właściciela notatnika. Wiedza przechowywana w publicznym repozytorium kumuluje się dla każdego, kto je czyta. Wiedza przechowywana w bazie danych CVE kumuluje się dla każdego uruchamiającego skaner bezpieczeństwa. Każde miejsce przechowywania ma inne właściwości kumulowania.
Trackery problemów & osobiste listy problemów
Hamming prowadził listę 10 ważnych problemów, do których regularnie wracał. Lista przygotowywała go do rozpoznania, gdy nowa technika dotyczyła jednego z nich. Lista funkcjonowała jako przechowywana energia osobista: trwała inwestycja w dopasowywanie wzorców, która przynosiła dywidendy za każdym razem, gdy pojawiała się nowa technika.
Pętla MOAD jako system zamknięty
Permakultura: w dobrze zaprojektowanym systemie wynik jednego procesu zasila wejście innego. Żaden wynik nie opuszcza systemu jako odpad. Kurczak w lesie żywności produkuje jaja (pożywienie), obornik (nawóz), kontrolę szkodników (usługę) & grzebanie (napowietrzanie gleby). Każdy wynik trafia do dalszego procesu zamiast opuszczać system.
Model fabryki MOAD buduje podobną zamkniętą pętlę. Każdy etap produkuje wyniki zasilające następny:
Skan produkuje: potwierdzony przypadek defektu, mapę lokalizacji dotkniętych węzłów, szacunek powagi oparty na współczynniku pośrednictwa & ruchu.
Łatka produkuje: poprawkę kodu, test jednostkowy potwierdzający naprawę, diff możliwy do przeglądu przez opiekunów.
Post MOAD produkuje: artykuł w domenie publicznej wyjaśniający klasę defektu, wzorzec skanowania & podejście do naprawy. Kapitał intelektualny trwający dłużej niż jakiekolwiek pojedyncze wystąpienie.
Ujawnienie CVE produkuje: ustandaryzowany rekord w NVD, uruchamiający automatyczne skanery bezpieczeństwa we wszystkich dotkniętych instalacjach. Kapitał społeczny dla społeczności bezpieczeństwa.
PR upstream produkuje: poprawkę w kanonicznym źródle, propagującą się automatycznie do wszystkich downstream forków przy kolejnej aktualizacji zależności.
Każdy wynik zasila z powrotem pętlę: post MOAD uczy badaczy znajdowania nowych wystąpień, co generuje nowe skany. Test jednostkowy staje się strażnikiem regresji. Rekord CVE napędza adopcję łatki przez zespoły operacyjne, które w przeciwnym razie by ją zignorowały. Pętla się zamyka.
Warunek zatrzymania: łatka ujawniona bez potwierdzenia pojemności downstream zalewa kolejkę. MOAD-0001 & MOAD-0005 sprzęgają się: napraw O(N²) w węźle o wysokim współczynniku pośrednictwa & każdy procesor downstream zalewa się jednocześnie. Zasada permakultury 'projektuj z myślą o całym systemie' ma tu również zastosowanie: zoptymalizuj komponent i możesz stworzyć nowe wąskie gardło downstream.
Mapowanie wyników na kapitał
Potok MOAD produkuje pięć wyników: wynik skanu, łatkę, post MOAD, ujawnienie CVE & PR upstream.