MOAD სკანერი როგორც პერმაკულტურის პრაქტიკა
პერმაკულტურის პირველი პრინციპი: დააკვირდი მოქმედებამდე. გაატარე დრო იმ სისტემაში, რომლის შეცვლაც გსურს. გაიგე მისი ნაკადები, დაგროვებები და ნარჩენების ნაკადები, სანამ შეიმუშავებ შენს ჩარევას. მებაღე, რომელიც აკვირდება სად გროვდება წყალი, სად აღწევს მზის შუქი და სად კონცენტრირდება საკვები ნივთიერებები, უფრო ეფექტურად ათავსებს მცენარეებს, ვიდრე ის, ვინც მიჰყვება ზოგად გეგმას.
MOAD სკანერი ამ პრინციპს იყენებს პროგრამული ეკოსისტემების მიმართ. ერთი საკითხის შეტანამდე, დაასკანირე პროექტები და ენები. დააკვირდი დეფექტის განაწილებას: რამდენი პროექტი ატარებს CWE-407-ს? რომელი ატარებს მას მაღალი ტრაფიკის გზებზე? რომელი ზემოთ მდებარე პაკეტები, თუ შეივსება, გაავრცელებს შეკეთებას ყველაზე მეტ დამოკიდებულებებზე? დააკვირდი ეკოსისტემას, სანამ მოქმედებას განახორციელებ რომელიმე ერთ კვანძზე.
ამის კონტრასტი მოპოვებით პრაქტიკასთან: აღმოაჩინე დაუცველობა, გაყიდე დაუცველობების ბროკერზე, მიიღე გადახდა, გადადი შემდეგზე. მკვლევარმა ამოიღო ფინანსური კაპიტალი ცოდნიდან და დატოვა. ცოდნა არ გავრცელებულა. სისტემა არ გაუმჯობესებულა. ყველა დაზარალებული პროექტის მომავალი მომხმარებლები დაუცველები დარჩნენ. ბროკერი ფლობს ცოდნას, რომელიც კარგავს ღირებულებას, რადგან დაუცველობა ძველდება გამჟღავნების გარეშე.
Permacomputer-ის პრაქტიკა: აღმოაჩინე დეფექტი, გამოასწორე, გაამჟღავნე, წარადგინე upstream-ში, გამოუშვი პატჩი საჯარო დომენში. ცოდნა ვრცელდება დაშლის გარეშე — სინამდვილეში ის იზრდება: გამჟღავნებული CVE ხდება მითითება, MOAD პოსტი ასწავლის შაბლონს, მომავალი მკვლევარები პოულობენ ახალ შემთხვევებს იგივე შაბლონის გამოყენებით. დახურული მარყუჟი და არა ტერმინალური ამოღება.
პერმაკულტურის დაკვირვება წინ უსწრებს პერმაკულტურის მოქმედებას. სკანირება აწარმოებს მონაცემებს surge ქულების, დამოკიდებულების გრაფებისა და დაზარალებული კვანძების რაოდენობის შესახებ, სანამ რომელიმე პატჩი გადაინაცვლებს. ეს მონაცემები განსაზღვრავს, რომელი პატჩები გაიგზავნება პირველ რიგში: მაღალი-შუალედურობის კვანძები ფოთლოვან კვანძებამდე, რადგან ფართოდ დამოკიდებულ ბიბლიოთეკაში გამოსწორება უფრო შორს ვრცელდება ერთი ძალისხმევის ერთეულზე.
ნარჩენების გარეშე წარმოება: გამჟღავნების სამი გზა
სამი გზა, რომელიც მკვლევარს შეუძლია აირჩიოს პოპულარულ ღია კოდის ბიბლიოთეკაში კრიტიკული მოწყვლადობის აღმოჩენის შემდეგ:
A. გაყიდე იგი მოწყვლადობის ბროკერზე $10,000-ად.
B. შეატყობინე პირადად მომხმარებელს 90-დღიანი გამჟღავნების ვადით, შემდეგ გამოაქვეყნე პატჩის სტატუსის მიუხედავად.
C. დაუყოვნებლივ წარადგინე პატჩი pull request-ის სახით ერთდროული საჯარო გამჟღავნებით.
კომპონირება ღია სისტემებში
პერმაკულტურის მეორე პრინციპი: დაიჭირეთ და შეინახეთ ენერგია, როდესაც ის უხვად მოედინება, რათა გქონდეთ რეზერვები, როდესაც ის არ მოედინება. წვიმის შეგროვების სისტემა ინახავს წყალს ქარიშხლების დროს მშრალი თვეებისთვის. საკვები ტყე ინახავს მზის ენერგიას ხილად და ბიომასად სეზონების განმავლობაში. მიზანი: შენახვის დრო შეესაბამებოდეს სიუხვის დროს.
ჰამინგის კომპონირებული ცოდნა: ყველა ახალი ტექნიკა უკავშირდება თქვენი მნიშვნელოვანი პრობლემების სიას, ამრავლებს პროდუქტიულ გამომავალს. ერთი შეხედულება ინფორმაციის ენტროპიის შესახებ, შენონისთვის, გახსნა ათწლეულის თეორიული მუშაობა, რადგან ის ერთდროულად უკავშირდებოდა მის სიაში ყველა ღია კითხვას. შენახული ცოდნა იხდიდა კომპონირებულ პროცენტს.
Open-source კომპაუნდირება განსხვავებულად მუშაობს ინდივიდუალური კომპაუნდირებისგან. კანონიკურ რეპოზიტორიაში შერწყმული ფიქსი ინახავს ენერგიას იმ ადგილას, სადაც ყველა ქვედა დონის ფორკი ავტომატურად იღებს მას. Python-ის asyncio ბიბლიოთეკაში 2022 წელს წარდგენილი პაჩი გავრცელდა ყველა პროექტზე, რომელიც იყენებს ამ ბიბლიოთეკას, ორიგინალური მკვლევრის მხრიდან დამატებითი ქმედების გარეშე. ენერგია ინახება წყაროში და კომპაუნდირდება დამოკიდებულების გრაფის მეშვეობით.
MOAD სტატიები ინახავს ენერგიას განსხვავებულად: თითოეული პოსტი ასწავლის სკანირების შაბლონს და არა მხოლოდ ავლენს კონკრეტულ შემთხვევას. მკვლევარი, რომელიც კითხულობს CWE-407 MOAD სტატიას, სწავლობს არა მხოლოდ იმას, რომ პროექტ X-ს ჰქონდა flush მოწყვლადობა, არამედ როგორ გამოიყურება flush შაბლონი ნებისმიერ ენაში, როგორ მოძებნოს იგი და როგორ განასხვავოს იგი მსგავსი კეთილგანწყობილი კოდისგან. მომავალი მკვლევრები პოულობენ ახალ შემთხვევებს შენახული შაბლონის გამოყენებით და არა მისი ხელახლა აღმოჩენით პირველი პრინციპებიდან.
ენერგიის შენახვის მექანიზმი ისეთივე მნიშვნელოვანია, როგორც თავად ენერგია. ცოდნა, რომელიც ინახება პირად რვეულში, კომპაუნდირდება მხოლოდ რვეულის მფლობელისთვის. ცოდნა, რომელიც ინახება საჯარო რეპოში, კომპაუნდირდება ყველასთვის, ვინც მას კითხულობს. ცოდნა, რომელიც ინახება CVE მონაცემთა ბაზაში, კომპაუნდირდება ყველასთვის, ვინც იყენებს უსაფრთხოების სკანერს. თითოეულ შენახვის ადგილს აქვს განსხვავებული კომპაუნდირების მახასიათებლები.
Issue Trackers & Personal Problem Lists
ჰამინგი ინახავდა 10 მნიშვნელოვანი პრობლემის სიას, რომელსაც პერიოდულად უბრუნდებოდა. სია ამზადებდა მას, რომ აღიაროს როდის მიმართავს ახალი ტექნიკა ერთ-ერთ მათგანს. მისი სია ფუნქციონირებდა როგორც პირადი შენახული ენერგია: გამძლე ინვესტიცია შაბლონების ამოცნობაში, რომელიც იძლეოდა დივიდენდებს ყოველ ჯერზე, როცა ახალი ტექნიკა ჩნდებოდა.
MOAD მარყუჟი როგორც დახურული სისტემა
პერმაკულტურა: კარგად დაპროექტებულ სისტემაში ერთი პროცესის გამომავალი კვებავს მეორის შეყვანას. არცერთი გამომავალი არ ტოვებს სისტემას როგორც ნარჩენი. ქათამი საკვები ტყეში აწარმოებს კვერცხებს (საკვები), ნაკელს (სასუქი), მავნებლების კონტროლს (მომსახურება) და ნიადაგის აერაციას (ნიადაგის გაფხვიერება). თითოეული გამომავალი მიმართულია ქვედა დინების პროცესისკენ, ვიდრე სისტემის დატოვება.
MOAD ქარხნის მოდელი ქმნის მსგავს დახურულ მარყუჟს. თითოეული ეტაპი აწარმოებს გამომავალს, რომელიც კვებავს შემდეგს:
სკანირება აწარმოებს: დადასტურებულ დეფექტის ინსტანციას, დაზარალებული კვანძების მდებარეობის რუკას, სიმძიმის შეფასებას, რომელიც დაფუძნებულია შუალედურობასა და ტრაფიკზე.
პაჩი აწარმოებს: კოდის კორექციას, ერთეულის ტესტს, რომელიც ადასტურებს გამოსწორებას, diff-ს, რომელიც შეიძლება განიხილონ მომხრეებმა.
MOAD პოსტი აწარმოებს: საჯარო-დომენის სტატიას, რომელიც ახსნის დეფექტის კლასს, სკანირების შაბლონს და გამოსწორების მიდგომას. ინტელექტუალური კაპიტალი, რომელიც გრძელდება ნებისმიერი ერთი შემთხვევის მიღმა.
CVE გამჟღავნება აწარმოებს: სტანდარტიზებულ ჩანაწერს NVD-ში, რაც იწვევს ავტომატური უსაფრთხოების სკანერების გაშვებას ყველა დაზარალებულ ინსტალაციაში. სოციალური კაპიტალი უსაფრთხოების საზოგადოებისთვის.
Upstream PR აწარმოებს: გამოსწორებას კანონიკურ წყაროში, რომელიც ავტომატურად ვრცელდება ყველა ქვედა დონის ფორკზე მათი შემდეგი დამოკიდებულების განახლებისას.
თითოეული გამომავალი კვებავს უკან: MOAD პოსტი ასწავლის მკვლევარებს ახალი შემთხვევების პოვნას, რაც ახალ სკანირებებს წარმოქმნის. ერთეული ტესტი ხდება რეგრესიის დამცველი. CVE ჩანაწერი უზრუნველყოფს პაჩის მიღებას ოპერაციების გუნდების მიერ, რომლებიც სხვაგვარად უგულებელყოფდნენ მას. მარყუჟი იხურება.
შეჩერების პირობა: პაჩის გამჟღავნება ქვედა დონის შესაძლებლობების დადასტურების გარეშე ავსებს რიგს. MOAD-0001 და MOAD-0005 ერთმანეთს უკავშირდება: O(N²) გამოსწორება მაღალი შუალედურობის კვანძში და ყველა ქვედა დონის პროცესორი ერთდროულად იტვირთება. პერმაკულტურის მთლიანი სისტემისთვის დიზაინის პრინციპი აქაც მოქმედებს: კომპონენტის ოპტიმიზაცია შეიძლება ახალი ბოთლის კისრის შექმნა ქვედა დონეზე.
გამომავლების კაპიტალთან დაკავშირება
MOAD მილსადენი აწარმოებს ხუთ გამომავალს: სკანირების შედეგს, პაჩს, MOAD პოსტს, CVE გამჟღავნებას და upstream PR-ს.