Większość projektów kryptowalutowych podchodzi do bezpieczeństwa w sposób odwrotny: najpierw budują, a potem zabezpieczają. Zanurzmy się w to, co i dlaczego każdy projekt powinien wdrożyć PRZED przystąpieniem do audytu, używając analogii piramidy bezpieczeństwa.
2/8 Poziom 1 (Fundament): Przegląd kodu Ten poziom przynosi największy wpływ przy najniższych kosztach. Zespoły muszą wdrożyć przeglądy rówieśnicze poprzez odpowiednie przepływy pracy git i unikać syndromu "bohatera pełnego stosu", gdzie jedna osoba zajmuje się wszystkim. Wielu par oczu na kodzie zapobiega większej liczbie luk niż same audyty.
3/8 Poziom 2: Testy jednostkowe Uzyskaj 90-100% pokrycia testami przed jakąkolwiek audytą. Pisząc testy, używaj innego języka niż ten, w którym zaimplementowano kod, aby uniknąć powielania błędów logicznych. Testuj przypadki brzegowe, a nie tylko ścieżki szczęśliwe – szczególnie w blockchainie, gdzie kod jest trudniejszy do aktualizacji.
5/8 Poziom 4: Testowanie fuzzingowe Święty Graal: fuzzing oparty na właściwościach z inwariantami dla złożonych protokołów, ukierunkowane fuzzing na konkretne ścieżki kodu oraz testowanie różnicowe w porównaniu do implementacji referencyjnych. Fuzzing to najlepsze narzędzie do znajdowania złożonych przypadków brzegowych.
6/8 Nad piramidą znajduje się audyt. To również dlatego, że jego skuteczność zależy całkowicie od fundamentu. Projekty, które pomijają niższe poziomy, często napotykają 20+ krytycznych problemów w audytach. Te, które wdrażają wszystkie 4 poziomy, zazwyczaj mają 1-2 krytyczne problemy maksymalnie.
7/8 zespołów stosujących te najlepsze praktyki wychwytuje krytyczne problemy, które w przeciwnym razie mogłyby umknąć. To obniża koszty audytu i umożliwia wdrażanie bardziej bezpiecznych protokołów ogólnie. Bezpieczeństwo to sposób budowania od samego początku, a nie tylko jeden ostateczny punkt do zlecenia.
2,03K