English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gość
1 / ?
powrót do lekcji

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.

Permakultura zastosowana do kodu: skanuj 2192 przechowuj 2192 łataj 2192 ujawniaj 2192 pętla

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.

Zastosuj zasadę permakultury 'nie produkuj odpadów', aby ocenić każdą opcję. Zidentyfikuj, jakie wyniki produkuje każda ścieżka, dokąd te wyniki trafiają & które wyniki opuszczają system jako odpady (energia bez kierunku, która nikomu nie przynosi korzyści).

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.

W jaki sposób tracker problemów projektu open-source pełni podobną funkcję do osobistej listy 10 problemów Hamminga? Czym się różni? Wskaż co najmniej jedną przewagę trackera problemów nad listą osobistą & co najmniej jedną przewagę listy osobistej nad trackerem problemów.

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.

Zmapuj każdy wynik na formę kapitału, którą głównie rozwija. Następnie zidentyfikuj, który pojedynczy krok, gdyby go usunąć, wytworzyłby najwięcej 'odpadów' — najbardziej niekierowaną energię w systemie — i wyjaśnij dlaczego.