Курс появился в 2011 году и проводился в 9 семестре (1 семестр V курса) под названием "Уязвимости ПО". С 2014 года курс проводится в 8, 9 семестрах.
Целью курса является изучение методов функционирования эксплоитов и шеллкодов для них.
Изучаемые темы:
- Уязвимости в Linux
- создание шеллкодов для эксплоитов;
- эксплоиты для локальных и сетевых программ;
- ошибки переполнения буфера в стеке;
- ошибки переполнения буфера в куче;
- ошибки форматной строки;
- защитные механизмы (ASLR, DEP, stack guard);
- обход защитных механизмов (ret2reg, ret2plt, ret2lib, перебор адресов, memory leak);
- ROP.
- Уязвимости в Windows
- создание шеллкода для эксплоитов;
- ошибки переполнения буфера;
- ошибки форматной строки;
- защитные механизмы (ASLR, DEP, stack guard);
- обход защитных механизмов (ret2reg, ret2jmp, ret2lib, перебор адресов, memory leak);
- ROP.
- Эксплуатация в приложениях
- эксплоиты для браузеров;
- эксплоиты для виртуальных машин;
- эксплоиты для офисных приложений.
- Эксплуатация в ядре
- уязвимости в системных вызовах;
- уязвимости в драйверах.
- Поиск уязвимостей
- исследование кода;
- фаззинг;
- diffing binaries;
- dbi.