C++ Siberia 2020: Павел Филонов - Защищая C++
Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
— — . . . В одной статье автор размышляет на тему сравнения языков программирования с различными видами оружия. С++ предлагается сравнять с нунчаками: в умелых руках -- это эффективный инструмент, а в руках новичка - опасность для собственного здоровья. Это сравнение очевидно навеяно мнением об С++ как небезопасном языке программирования. Некоторые новые языки даже используют это мнение для собственного продвижения. Но какие конкретно опасности скрываются за термином «небезопасный»? Развёрнутый ответ очевидно поднимет несколько направлений, одним из которых будет кибербезопасность. В докладе я хочу показать простые примеры эксплуатации уязвимостей C/C++ кода: выполнение shell-кода на стеке Возврат в libc Переписывание vptr Переполнение кучи Но главный упор сделать на средства защиты от подобных атак: канарейка на стеке ASLR Неисполнимые области Тестирование и санитайзеры Fuzzing SDL процессы