Интересный доклад Андрея Карпова "Ошибки в коде: ожидания и реальность" на SafeCode. Идея в том, что у разработчика средства анализа кода (или исследователя) могут быть ожидания по типам ошибок, которые должны часто встречаться в исследуемом коде. А на практике получается, что одни типы ошибок практически не встречаются (неинициализированные переменные, деление на ноль, выход за границу массива, присвоения вместо сравнения), либо встречаются, но практически не влияют на работу приложений (нулевые ссылки и указатели).
С другой стороны, встречаются пласты ошибок, о которых и не думали:
🔸 CWE-14 (исчезновение memset)
🔸 Повторная запись в переменную
🔸 Проверка указателя после new
🔸 Опечатки вида (А == A)
Лучше не увлекаться ошибками, которые взяты из книг, а брать их из реальной жизни (свой код, сторонний код, код с ошибками, присланный пользователями анализатора).
Важно не фокусироваться на анализе потока данных и не делать инструмент анализа однобоким.
Привет! Меня зовут Александр. Я специалист по Управлению Уязвимостями. Подробнее обо мне можно прочитать здесь. Приглашаю подписаться на мой канал в Telegram @avleonovrus. Я обновляю его чаще, чем этот сайт. Вы можете обсудить мои посты или задать вопросы в @avleonovchat или в группе ВКонтакте.
And I invite all English-speaking people to another telegram channel @avleonovcom.