MOAD-сканер як практика пермакультури
Перший принцип пермакультури: спостерігай перед дією. Витратьте час у системі, яку ви хочете змінити. Зрозумійте її потоки, накопичення й потоки відходів перед тим, як проектувати своє втручання. Садівник, який спостерігає, де скупляється вода, куди досягає сонячне світло й де концентруються поживні речовини, розташовує рослини ефективніше, ніж той, хто слідує універсальному плану.
MOAD-сканер застосовує цей принцип до екосистем програмного забезпечення. Перед тим, як подати навіть одну проблему, сканове проекти й мови. Нанесіть на карту розподіл дефекту: скільки проектів містять CWE-407? Які містять його у високонавантажених шляхах? Які вищестоящі пакети, якщо виправити, поширять виправлення на найбільшу кількість залежних? Спостерігайте екосистему перед тим, як діяти на будь-якому одному вузлі.
Порівняйте це з видобувною практикою: виявіть вразливість, продайте її брокеру вразливостей, збирайте платіж, рухайтеся далі. Дослідник видобув фінансовий капітал зі знань і залишив. Жодне знання не поширилось. Жодна система не покращилась. Майбутні користувачі кожного проекту, що постраждав, залишились вразливими. Брокер тримає знання, яке зменшується в ціні зі старінням вразливості без розкриття.
Практика перммакомп'ютера: виявіть дефект, виправте його, розкрийте його, подайте вище за течією, випустіть виправлення як громадське надбання. Знання поширюється без розпаду — насправді воно складається: розкритий CVE стає посиланням, MOAD пост навчає шаблону, майбутні дослідники знаходять нові екземпляри, використовуючи той самий шаблон. Замкнений цикл, а не термінальна видобудок.
Спостереження пермакультури передує дії пермакультури. Сканування генерує дані про оцінки всплеску, графіки залежностей & кількості задіяних вузлів перед тим, як будь-яке виправлення рухається. Ці дані формують, які виправлення доставляються першими: вузли з високим коефіцієнтом центральності перед листовими вузлами, тому що виправлення широко використовуваної бібліотеки поширюється далі на одиницю зусилля.
Не створюй відходів: три шляхи розкриття
Три шляхи, які дослідник може вибрати після виявлення критичної вразливості в популярній бібліотеці з відкритим кодом:
A. Продайте її брокеру вразливостей за 10 000 доларів.
B. Приватно повідомте супроводжувача з 90-денною шкалою розкриття, потім опублікуйте незалежно від статусу виправлення.
C. Надішліть виправлення як запит на об'єднання одночасно з публічним розкриттям.
Складність у відкритих системах
Другий принцип пермакультури: захоплюй & зберігай енергію, коли вона тече abundantly, щоб у вас були запаси, коли вона не течене. Система збору дощової води зберігає воду під час штормів для використання у сухі місяці. Харчовий ліс зберігає сонячну енергію як фрукти й біомасу протягом сезонів. Мета: збігти часовість зберігання з часовістю достатку.
Складне знання Хеммінга: кожна нова техніка з'єднується з вашим списком важливих проблем, множачи продуктивний результат. Один вислід про інформаційну ентропію, для Шеннона, розблокував десятиліття теоретичної роботи, тому що він з'єднувався з кожним відкритим питанням у його списку одночасно. Зберігаємо знання щорічне складне відсоток.
Складність відкритого кода працює по-іншому від індивідуальної складності. Виправлення, об'єднане до канонічного сховища, зберігає енергію в місці, де кожен нижче за течією форк автоматично витягує з нього. Виправлення, відправлене до бібліотеки asyncio Python у 2022 році, поширилось на кожен проект, який використовує цю бібліотеку, без будь-яких додаткових дій оригінального дослідника. Енергія зберігається у джерелі й складується через граф залежностей.
Статті MOAD зберігають енергію по-іншому: кожен пост навчає шаблону сканування, а не просто розкриває конкретний екземпляр. Дослідник, який читає статтю MOAD про CWE-407, дізнається не просто те, що Project X мав вразливість промивання, але що шаблон промивання виглядає як у будь-якій мові, як його шукати, & як розрізнити його від доброго подібного коду. Майбутні дослідники знаходять нові екземпляри, використовуючи збережений шаблон, а не відкривають його з першоумовного.
Механізм зберігання енергії як важливий як сама енергія. Знання, збережене в приватному зошиті, складається лише для власника зошита. Знання, збережене в публічному репозиторії, складається для всіх, хто його читає. Знання, збережене в базі даних CVE, складається для всіх, хто запускає сканер безпеки. Кожне місце зберігання має різні характеристики складання.
Трекери проблем & особисті списки проблем
Хеммінг вів список 10 важливих проблем, до яких він постійно повертався. Список підготував його до розпізнавання, коли нова техніка відповідала одній з них. Його список функціонував як особисто зберігаючи енергію: міцна інвестиція в розпізнавання шаблонів, яка приносила дивіденди щоразу, коли з'являлась нова техніка.
Цикл MOAD як замкнута система
Пермакультура: у добре спроектованій системі результат одного процесу живить введення іншого. Жодний результат не виходить із системи як відходи. Курка в харчовому лісі виробляє яйця (їжа), гній (добриво), контроль шкідників (послуга) & дряпання (аерація грунту). Кожен результат направляється до процесу нижче за течією, а не залишає систему.
Модель фабрики MOAD будує подібний замкнений цикл. Кожна стадія виробляє результати, які живлять наступну:
Сканування виробляє: підтверджений екземпляр дефекту, карту місцезнаходження задіяних вузлів, оцінку серйозності на основі коефіцієнта центральності & трафіку.
Виправлення виробляє: виправлення коду, модульний тест, що підтверджує виправлення, дифф, придатний для перегляду супроводжувачами.
Пост MOAD виробляє: публічно-доменну статтю, яка пояснює клас дефекту, шаблон сканування & підхід до виправлення. Інтелектуальний капітал, який зберігається далеко за межами будь-якого одного екземпляра.
Розкриття CVE виробляє: стандартизований запис в NVD, який запускає автоматизовані сканери безпеки по всіх задіяних установках. Соціальний капітал для спільноти безпеки.
Вище по течії PR виробляє: виправлення в канонічному джерелі, поширюючись автоматично до всіх форків нижче за течією при їх наступному оновленні залежності.
Кожен результат живить назад: пост MOAD навчає дослідників знаходити нові екземпляри, які генерують нові сканування. Модульний тест стає регресійним охоронцем. Запис CVE підхоплює прийняття виправлення командами операцій, які інакше ігнорували б його. Цикл закривається.
Умова зупинки: виправлення розкрито без підтвердження пропускної здатності нижче за течією затоплює чергу. MOAD-0001 & MOAD-0005 связані: виправте O(N²) у вузлі з високим коефіцієнтом центральності й кожен процесор нижче за течією затоплюється одночасно. Принцип пермакультури дизайну для цілої системи також застосовується тут: оптимізуйте компонент, й ви можете створити нову вузька грла нижче за течією.
Відображення результатів на капітал
Конвеєр MOAD виробляє п'ять результатів: результат сканування, виправлення, пост MOAD, розкриття CVE & вище по течії PR.