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

un

gast
1 / ?
terug naar lessen

Een MOAD Scanner als Permacultuurpraktijk

Het eerste permacultuurprincipe: observeer voordat je handelt. Breng tijd door in het systeem dat je wilt veranderen. Begrijp de stromen, ophopingen en afvalstromen voordat je je interventie ontwerpt. Een tuinier die observeert waar water zich verzamelt, waar zonlicht komt en waar voedingsstoffen zich concentreren, plaatst planten effectiever dan iemand die een generiek plan volgt.

Een MOAD-scanner past dit principe toe op software-ecosystemen. Voordat je een enkel issue indient, scan je over projecten en talen heen. Breng de verdeling van het defect in kaart: hoeveel projecten dragen CWE-407? Welke dragen het in veelgebruikte paden? Welke upstream-pakketten, als ze worden gepatcht, verspreiden de fix naar de meeste afhankelijkheden? Observeer het ecosysteem voordat je op een enkel knooppunt handelt.

Permacultuur Toegepast op Code: scan 2192 store 2192 patch 2192 disclose 2192 loop

Vergelijk dit met een extractieve praktijk: ontdek een kwetsbaarheid, verkoop deze aan een kwetsbaarheidsmakelaar, ontvang betaling en ga verder. De onderzoeker heeft financieel kapitaal uit de kennis gehaald en is vertrokken. Er is geen kennis verspreid. Er is geen systeem verbeterd. Toekomstige gebruikers van elk getroffen project bleven kwetsbaar. De makelaar houdt de kennis, die in waarde daalt naarmate de kwetsbaarheid ouder wordt zonder openbaarmaking.

Permacomputer-praktijk: ontdek een defect, patch het, maak het openbaar, dien het upstream in, en release de patch als public domain. De kennis verspreidt zich zonder verval — sterker nog, ze vermenigvuldigt zich: de openbaar gemaakte CVE wordt een referentie, een MOAD-post leert het patroon, toekomstige onderzoekers vinden nieuwe gevallen met hetzelfde patroon. Een gesloten lus in plaats van een terminale extractie.

Permacultuur-observatie gaat vooraf aan permacultuur-actie. De scan genereert data over surge-scores, afhankelijkheidsgrafieken en aantallen getroffen nodes voordat een patch wordt toegepast. Deze data bepaalt welke patches als eerste worden uitgebracht: nodes met hoge betweenness vóór leaf nodes, omdat een fix in een veelgebruikte bibliotheek verder per inspanningseenheid verspreidt.

Produce No Waste: Drie Disclosure-paden

Drie paden die een onderzoeker kan volgen na het ontdekken van een kritieke kwetsbaarheid in een populaire open-source bibliotheek:

A. Verkoop het aan een vulnerability-broker voor $10.000.

B. Meld het privé aan de maintainer met een 90-daagse disclosure-tijdlijn, en publiceer daarna ongeacht de patch-status.

C. Dien direct een patch in als pull request met gelijktijdige publieke disclosure.

Pas het permacultuur-principe 'produce no waste' toe om elke optie te evalueren. Identificeer welke outputs elk pad produceert, waar die outputs naartoe gaan, en welke outputs het systeem verlaten als waste (niet-gerouteerde energie die niemand ten goede komt).

Compounding in Open Systems

Het tweede permacultuurprincipe: vang en sla energie op wanneer die overvloedig stroomt, zodat je reserves hebt wanneer dat niet het geval is. Een regenwateropvangsysteem slaat water op tijdens stormen voor gebruik in droge maanden. Een voedselbos slaat zonne-energie op als fruit en biomassa over seizoenen heen. Het doel: stem de timing van opslag af op de timing van overvloed.

Hamming’s compound knowledge: elke nieuwe techniek verbindt zich met je lijst van belangrijke problemen en vermenigvuldigt daarmee de productieve output. Een enkel inzicht over information entropy, voor Shannon, ontgrendelde een decennium aan theoretisch werk omdat het tegelijkertijd met elke open vraag op zijn lijst verbonden was. De opgeslagen kennis betaalde samengestelde rente.

Open-source compounding werkt anders dan individueel compounding. Een fix die wordt samengevoegd in een canonieke repository slaat energie op op een plek waar elke downstream fork er automatisch uit put. Een patch die in 2022 werd ingediend bij Python's asyncio-bibliotheek verspreidde zich naar elk project dat die bibliotheek gebruikte, zonder enige extra actie van de oorspronkelijke onderzoeker. De energie slaat op bij de bron en compenseert via de afhankelijkheidsgrafiek.

MOAD-artikelen slaan energie anders op: elke post leert het scanpatroon in plaats van alleen het specifieke geval te onthullen. Een onderzoeker die het CWE-407 MOAD-artikel leest, leert niet alleen dat Project X een flush-kwetsbaarheid had, maar hoe het flush-patroon eruitziet in elke taal, hoe je ernaar zoekt en hoe je het onderscheidt van onschuldige vergelijkbare code. Toekomstige onderzoekers vinden nieuwe gevallen met behulp van het opgeslagen patroon in plaats van het vanaf nul opnieuw te ontdekken.

Het energieopslagmechanisme is net zo belangrijk als de energie zelf. Kennis die in een privé-notitieboek wordt opgeslagen, compenseert alleen voor de eigenaar van het notitieboek. Kennis die in een publieke repo wordt opgeslagen, compenseert voor iedereen die het leest. Kennis die in een CVE-database wordt opgeslagen, compenseert voor iedereen die een security-scanner uitvoert. Elke opslaglocatie heeft verschillende compounding-karakteristieken.

Issue Trackers & Persoonlijke Probleemlijsten

Hamming hield een lijst bij van 10 belangrijke problemen waar hij herhaaldelijk naar terugkeerde. De lijst maakte hem klaar om te herkennen wanneer een nieuwe techniek een van die problemen oploste. Zijn lijst fungeerde als persoonlijke opgeslagen energie: een duurzame investering in patroonherkenning die dividend opleverde telkens wanneer een nieuwe techniek verscheen.

Hoe vervult de issue tracker van een open-source project een vergelijkbare functie als Hamming's persoonlijke lijst van 10 problemen? Waarin verschilt het? Noem minstens één voordeel dat de issue tracker heeft ten opzichte van de persoonlijke lijst en minstens één voordeel dat de persoonlijke lijst heeft ten opzichte van de issue tracker.

Een MOAD-lus als gesloten systeem

Permacultuur: in een goed ontworpen systeem voedt de output van het ene proces de input van het volgende. Geen output verlaat het systeem als afval. Een kip in een voedselbos produceert eieren (voedsel), mest (meststof), plaagbestrijding (dienst) en krabben (bodemverbetering). Elke output wordt naar een volgend proces geleid in plaats van het systeem te verlaten.

Een MOAD-fabriekmodel bouwt een vergelijkbare gesloten lus. Elke fase produceert outputs die de volgende voeden:

Scan produceert: een bevestigd defectinstantie, een locatiekaart van getroffen knooppunten, een ernstschatting op basis van betweenness en verkeer.

Patch produceert: een codecorrectie, een unit test die de fix bevestigt, een diff die door maintainers kan worden beoordeeld.

MOAD-post produceert: een artikel in het publieke domein dat de defectklasse, het scanpatroon en de fix-aanpak uitlegt. Intellectueel kapitaal dat blijft bestaan buiten een enkele instantie.

CVE-openbaarmaking produceert: een gestandaardiseerd record in de NVD, waardoor geautomatiseerde beveiligingsscanners worden geactiveerd bij alle getroffen installaties. Sociaal kapitaal voor de beveiligingsgemeenschap.

Upstream-PR produceert: de fix in de canonieke bron, die automatisch wordt doorgegeven aan alle downstream-forks bij hun volgende afhankelijkheidsupdate.

Elke output voedt terug: een MOAD-post leert onderzoekers nieuwe gevallen te vinden, wat nieuwe scans genereert. De unit-test wordt een regressiebescherming. Het CVE-record stimuleert adoptie van de patch door operationele teams die deze anders zouden negeren. De lus sluit zich.

Stopconditie: een patch die openbaar wordt gemaakt zonder bevestiging van downstream-capaciteit overbelast de wachtrij. MOAD-0001 en MOAD-0005 hangen samen: fix O(N²) bij een knooppunt met hoge betweenness en alle downstream-processors overstromen tegelijk. Het permacultuur-principe “ontwerp voor het hele systeem” geldt hier ook: optimaliseer het onderdeel en je creëert mogelijk een nieuwe bottleneck downstream.

Outputs naar kapitaal mappen

Een MOAD-pijplijn produceert vijf outputs: een scanresultaat, een patch, een MOAD-post, een CVE-openbaarmaking en een upstream-PR.

Map elke output naar de kapitaalvorm die hij primair laat groeien. Identificeer vervolgens welke enkele stap, indien verwijderd, de meeste ‘verspilling’ zou veroorzaken — de meeste ongerouteerde energie in het systeem — en leg uit waarom.