Баллы за практику
Задание | Баллы |
---|---|
Практическое задание 1 | 0 — 20 |
Практическое задание 2 | 0 — 10 |
Практическое задание 3 | 0 — 30 |
Всего | 0 — 60 |
Оценка за практику
Оценка | Баллы |
---|---|
«Отлично» | ≥ 48 (80%) |
«Хорошо» | ≥ 36 (60%) |
«Удовлетворительно» | ≥ 24 (40%) |
Итоговая оценка
Прак. — 5 | Прак. — 4 | Прак. — 3 | Прак. — 2 | |
---|---|---|---|---|
Экз. — 5 | 5 | 5 | 4 | 3 |
Экз. — 4 | 5 | 4 | 4 | 3 |
Экз. — 3 | 4 | 3 | 3 | 3 |
Экз. — 2 | 3 | 2 | 2 | 2 |
Общая информация о курсе
Консультация
Программа экзамена
- Этапы жизненного цикла ПО. Модели жизненного цикла: каскадная, спиральная, итеративная.
- Технологии и принципы разработки безопасного ПО. Microsoft Secure Development Lifecycle, Cisco Secure Development Lifecycle. Поверхность атаки. Классификация угроз.
- Основные понятия безопасности информации: конфиденциальность, целостность, доступность. Виды защиты информации. Модель Белла-Лападулы.
- Понятие ошибки и уязвимости в ПО. Жизненный цикл уязвимости. Понятие и структура эксплоита. Классификация ошибок в ПО. Классификатор CWE. Оценка критичности ошибки по CVSS.
- Ошибка типа «переполнение буфера». Выполнение произвольного кода на исполнимом стеке. Противодействие выполнению кода на стеке: «канарейка», DEP.
- Выполнение произвольного кода на неисполнимом стеке. Return-to-libc. Противодействие return-to-libc: ASLR. Return-oriented programming (ROP). Аудит передач управления.
- Статический анализ исходного кода с целью поиска ошибок. Методы поиска ошибок. Ограничения формальных подходов. Интерпретация результатов анализа. Качество результата анализа.
- Представления программы, использующиеся при поиске ошибок в исходном коде. Потоковая и контекстная чувствительность. Типы обнаруживаемых ошибок. Путь распространения ошибки.
- Абстрактная интерпретация. Понятие решётки. Понятия конкретного и абстрактного состояний. Связь абстрактной интерпретации и анализа потока данных.
- Вычисление необходимых условий для поиска переполнения буфера. Понятия полноты и корректности. Примеры абстракций: интервальная абстракция, предикатная абстракция. SMT-решатели.
- Применение отладки для оценки возможности эксплуатации уязвимостей. Технологии отладки. Отладка пользовательского кода. Полносистемная отладка в виртуальной машине.
- Статическое и динамическое инструментирование. Получение данных для оффлайн-анализа.
- Фаззинг: определение, применение, принципы. Схема инструмента. Разновидности фаззинга: черный ящик, белый ящик, серый ящик. Генетические алгоритмы в фаззинге.
- Символьное выполнение: основные понятия. Варианты использования. Схема работы системы символьного выполнения. Предикат пути, предикат безопасности. Ограничения подхода и способы их преодоления.
- Программный слайсинг: определение, свойства, применение. Алгоритм обратного статического салйсинг. Виды зависимостей. Статический, динамический, условный слайсинг.
- Межпроцедурный слайсинг. Методы вычисления слайса: анализ потоков данных и достижимость на графах. Выявление пути распространения ошибки.
- Необходимость и преимущества анализа бинарного кода для обеспечения безопасности. Задачи в анализе бинарного кода. WYSINWYX: определение, примеры, причины возникновения.
- Статический и динамический подходы к анализу бинарного кода. Получение и анализ трасс. Повышение уровня представления.
- Статическое дизассемблирование. Задача различения кода и данных в программе. Дизассемблирование последовательным просмотром (linear sweep) и методом рекурсивного спуска (recursive descent).
- Форматы исполняемых и объектных файлов на примере ELF. Секции и сегменты. Таблицы символов и перемещений. Статическая компоновка. PIC и PIE: способы организации.
- Описание межпроцедурного потока управления. Восстановление потока управления программы по ее образу и по трассе выполнения. Нереализуемые пути и автомат с магазинной памятью (PDS).
- Восстановление функций: статический и динамический подходы. Идентификация библиотечных функций по сигнатурам. Технология FLIRT. Структура данных «модифицированное префиксное дерево». Алгоритм Ахо-Корасик.
- Выделение алгоритма в бинарном коде. Слайсинг по трассе. Слайсинг с учетом зависимостей по управлению.
- Анализ помеченных данных: источники, рапространение, обнаружение уязвимостей, варианты использования. Ограничения анализа помеченных данных. Поиск утечек конфиденциальных данных.
- Сетевая безопасность. Защита периметра. Системы защиты от вторжений.