Post #1188
1.27K
Пара слов о современном аудите
Уже более полугода я веду отдельный канал, где каждый день публикую разборы уязвимостей по аудиторским отчетам с конкурсных платформ, типа code4rena, codehawks, sherlock и других. И хочу сказать пару слов тем, кто планирует начать свой путь в аудитах и конкурсах.
Не надейтесь на легкие деньги!
Это года два назад можно было получить пару сот долларов за то, что в контракте был использован transferFrom вместо safeTransferFrom и подобные популярные баги. Сейчас это уже прекрасно отлавливают статические анализаторы и боты. Посмотрите на один из лучших ботов сейчас - lightchaser. Он может отловить более 700 популярных багов! Это значит, что как минимум это количество просто уйдет в "невалид" при аудите.
Я бы разбил поиск багов на несколько уровней:
1. Проход ботами и детекторами. Базовая вещь, которая находит мелкие и средние недочеты.
2. Аудит на внимательность. Аудитор проходит код и ищет простые несовпадения по контрактам. Это может быть не правильные хеширования функций для подписи, несоответствия стандартам и другие мелкие ошибки, который бот не сможет найти.
3. Аудит на "нишевые" места. Тут помогает знание других протоколов и их работы. Например, вы прекрасно знаете как работает Uniswap V3: тики, twap, дельта - и можете найти в аудируемом протоколе места, где есть ошибки в коде.
4. Аудит с пониманием кода. Место откуда начинается настоящий аудит. Для того, что понимать код потребуется потрать некоторое время. И я говорю не просто о том, "как работает эта функция", а о том, что вообще происходит внутри нее.
Так, обычный transfer() можно понимать, как перевод токенов с одного адреса на другой. Но аудитор должен учитывать многие другие параметры: как изменятся балансы пользователей, totalSupply, награды, комиссии, изменения в других переменных состояния и многое другое. И чем сложнее функция, тем больше времени уйдет на ее разбор.
5. Аудит с деталями и математикой. Тут аудитор должен понимать не только, что делает код, но и то, что он делать не должен, или что он вообще не делает. Это то место, когда аудитор буквально занимает место разработчика и говорит ему, почему код работает не верно.
2 и 3 пункты этого списка можно усвоить и регулярно практиковать на любых конкурсных аудитах, выделяя по 5-6 часов. Помогут тут и чтение отчетов, и разборы багов, и простое внимание в код. Но и заработок тут будет никакой: 20-30 долларов в лучшем случае за весь конкурс.
На 4 пункт нужно будет потратить достаточно количество времени, более 20-30 часов. В итоге, можно будет заработать пару сотен.
На 5 пункт вы затратите максимум времени: возможно, весь период конкурса. И только тут сможете получить достаточную прибыль.
Аудит - это полноценная работа. Та работа, которая будет занимать у вас 8-9 часов каждый день.
Это уже не легкие деньги, и на курсах этому не научат. Только практика и вникание в код.
Да, изучение отчетов очень помогает, так как ты начинаешь понимать, куда смотреть в код и где могут быть слабые места. Но чтобы подтвердить свои догадки, нужно тратить время на понимание работы функции.
Аудиторы хорошо получают. Но они и времени отдают в профессию очень много.
#audit
Уже более полугода я веду отдельный канал, где каждый день публикую разборы уязвимостей по аудиторским отчетам с конкурсных платформ, типа code4rena, codehawks, sherlock и других. И хочу сказать пару слов тем, кто планирует начать свой путь в аудитах и конкурсах.
Не надейтесь на легкие деньги!
Это года два назад можно было получить пару сот долларов за то, что в контракте был использован transferFrom вместо safeTransferFrom и подобные популярные баги. Сейчас это уже прекрасно отлавливают статические анализаторы и боты. Посмотрите на один из лучших ботов сейчас - lightchaser. Он может отловить более 700 популярных багов! Это значит, что как минимум это количество просто уйдет в "невалид" при аудите.
Я бы разбил поиск багов на несколько уровней:
1. Проход ботами и детекторами. Базовая вещь, которая находит мелкие и средние недочеты.
2. Аудит на внимательность. Аудитор проходит код и ищет простые несовпадения по контрактам. Это может быть не правильные хеширования функций для подписи, несоответствия стандартам и другие мелкие ошибки, который бот не сможет найти.
3. Аудит на "нишевые" места. Тут помогает знание других протоколов и их работы. Например, вы прекрасно знаете как работает Uniswap V3: тики, twap, дельта - и можете найти в аудируемом протоколе места, где есть ошибки в коде.
4. Аудит с пониманием кода. Место откуда начинается настоящий аудит. Для того, что понимать код потребуется потрать некоторое время. И я говорю не просто о том, "как работает эта функция", а о том, что вообще происходит внутри нее.
Так, обычный transfer() можно понимать, как перевод токенов с одного адреса на другой. Но аудитор должен учитывать многие другие параметры: как изменятся балансы пользователей, totalSupply, награды, комиссии, изменения в других переменных состояния и многое другое. И чем сложнее функция, тем больше времени уйдет на ее разбор.
5. Аудит с деталями и математикой. Тут аудитор должен понимать не только, что делает код, но и то, что он делать не должен, или что он вообще не делает. Это то место, когда аудитор буквально занимает место разработчика и говорит ему, почему код работает не верно.
2 и 3 пункты этого списка можно усвоить и регулярно практиковать на любых конкурсных аудитах, выделяя по 5-6 часов. Помогут тут и чтение отчетов, и разборы багов, и простое внимание в код. Но и заработок тут будет никакой: 20-30 долларов в лучшем случае за весь конкурс.
На 4 пункт нужно будет потратить достаточно количество времени, более 20-30 часов. В итоге, можно будет заработать пару сотен.
На 5 пункт вы затратите максимум времени: возможно, весь период конкурса. И только тут сможете получить достаточную прибыль.
Аудит - это полноценная работа. Та работа, которая будет занимать у вас 8-9 часов каждый день.
Это уже не легкие деньги, и на курсах этому не научат. Только практика и вникание в код.
Да, изучение отчетов очень помогает, так как ты начинаешь понимать, куда смотреть в код и где могут быть слабые места. Но чтобы подтвердить свои догадки, нужно тратить время на понимание работы функции.
Аудиторы хорошо получают. Но они и времени отдают в профессию очень много.
#audit
- 🤔 7
- 👍 3
- ❤ 1
- 🔥 1


