Для начинающих аудиторов
Небольшая заметка для тех, кто только начинает свой путь в аудитах на популярных площадках, как и я.
Не знаю, каков был ваш путь в обучении, но у меня за последние месяцы упор был на CTF задачи, аудиторские отчеты и статьи по взломам. Отсюда вылезла небольшая проблема, когда я впервые столкнулся с конкурсным аудитом.
Дело в том, что в задачах / отчетах / статьях я имел дело с конкретными функциями или короткими контрактами, зачастую не больше двух. Да и код в них был довольно короткий: 50 - 100 строчек кода.
И вот когда я решил попробовать свои силы в конкурсе, я был слегка обескуражен: количество контрактов было около 15 и строк кода около 3500. И я такой: "Эмм, и что с этим делать"...
Полез сразу в forge init, установку зависимостей и т.д. Открыл первый контракт... Второй... Третий... И ничего не понятно.
Не, функции читаемые, описания есть, но объемы вводят в ступор. Только позже, поэкспериментировав на каникулах, я понял, с чего нужно начинать аудит.
Ответ прост: читайте документацию.
Перед любым аудитом вам стоит потратить пару часов на:
- Прочтение условий конкурса. Порой из 20 контрактов на аудит просят всего 5 из них. Т.е. даже если вы найдете уязвимость в 6 контракте - за него не заплатят.
- Прочтение документации проекта. Посетите их сайт или репо на GitHub, чтобы узнать более детальные подробности о контрактах и логике работы;
- Прочтение архитектуры проекта. Поищите схему взаимодействия контрактов, иногда она публикуется где-то отдельно от обычной документации.
И вот после всего этого, когда вы сможете объяснить необходимость каждого контракта в наборе, вы можете открывать код и приступать к его изучению.
#audit #аудит
Post #592
645
- 👍 4