Атаки на целостность
1. ФИЛОСОФСКО-МЕТОДОЛОГИЧЕСКАЯ ОСНОВА
Цель: Сформировать понимание того, что целостность — это не статическое свойство “неизменности”, а гарантия того, что данные и системы обрабатываются только авторизованными способами и субъектами.
Ключевая парадигма: Атаки на целостность — это атаки на доверие. Нарушитель стремится подорвать доверие к данным, коду, конфигурации или процессу. В отличие от атак на конфиденциальность (часто пассивных), атаки на целостность по своей природе всегда активны.
2. ДЕТАЛИЗИРОВАННАЯ ТАКСОНОМИЯ АТАК НА ЦЕЛОСТНОСТЬ
Таксономия строится на основе объекта атаки и механизма модификации.
2.1. По объекту атаки
Кластер A: Атаки на целостность данных (Data Integrity)
- Цель: Несанкционированное изменение информации на отдыхе (at rest) или в движении (in transit).
| Тактический класс | Конкретные техники | Технические детали | Меры противодействия |
|---|---|---|---|
| Изменение данных в хранилище | Прямая модификация файлов/БД | Доступ к файловой системе или СУБД и изменение содержимого (например, изменение суммы счета в базе данных). | Контроль доступа: RBAC, Mandatory Access Control (MAC). Мониторинг: FIM (File Integrity Monitoring). Резервное копирование. |
| Изменение данных в процессе передачи | Man-in-the-Middle (MitM) с модификацией | Перехват пакета между A и B, изменение его payload и пересылка дальше. | Криптография: Цифровые подписи (ECDSA, RSA-PSS), коды аутентичности сообщений (HMAC). Защита канала: TLS с аутентификацией сервера (и клиента). |
| Подмена пакетов | TCP Session Hijacking | Предсказание/подбор порядкового номера (Sequence Number) для вставки “чужого” пакета в установленное TCP-соединение. | Криптография: Шифрование на сетевом/транспортном уровне (IPsec, TLS). Случайность: Использование трудно предсказуемых ISN. |
| Эскалация привилегий для модификации | SQL Injection (SQLi) | Внедрение произвольного SQL-кода в запрос для модификации, удаления или создания данных в БД. | Валидация входных данных: Parameterized Queries (Prepared Statements), ORM. Принцип наименьших привилегий: Отказ учетной записи приложения от прав на MODIFY/DELETE. |
Кластер B: Атаки на целостность кода (Code Integrity)
- Цель: Изменение логики выполнения приложения или ОС.
| Тактический класс | Конкретные техники | Технические детали | Меры противодействия |
|---|---|---|---|
| Внедрение вредоносного кода | Бэкдоры, Трояны | Модификация легитимного ПО для обеспечения скрытого удаленного доступа. | Целостность кода: Digital Signatures, Secure Boot, Trusted Boot. Контроль: Application Whitelisting. |
| Изменение среды выполнения | DLL Hijacking / Side-Loading | Подмена легитимной динамической библиотеки (DLL) на вредоносную, которая загружается приложением. | ОС Hardening: SafeDLLSearchMode, Code Signing для библиотек. |
| Эксплойты памяти | Buffer Overflow | Запись данных за пределы выделенного буфера для перезаписи адреса возврата и выполнения произвольного кода. | Защита компилятора: ASLR, DEP/NX Bit, Stack Canaries, CFG. |
| Return-Oriented Programming (ROP) | Использование уже существующих фрагментов кода (“гаджетов”) в памяти для построение вредоносной логики, обходящей DEP. | Advanced ASLR, Control Flow Integrity (CFI). |
Кластер C: Атаки на целостность сетевого трафика (Network Traffic Integrity)
- Цель: Нарушение порядка, времени или факта доставки пакетов.
| Тактический класс | Конкретные техники | Технические детали | Меры противодействия |
|---|---|---|---|
| Повторная передача | Replay Attack | Перехват и повторная отправка легитимного пакета (например, команды “перевести 100$”). | Механизмы защищенности: Использование одноразовых номеров (nonce), временных меток, инкрементирующихся счетчиков. |
| Создание пакетов | IP Spoofing + Raw Socket | Создание IP-пакетов с поддельным исходным адресом для обмана систем, полагающихся на IP-аутентификацию. | Фильтрация: Ingress/Egress Filtering (BCP38). Отказ от IP-based auth. |
| Манипуляция маршрутизацией | BGP Hijacking | Объявление ложных маршрутов через BGP для перенаправления трафика через сеть злоумышленника с целью его анализа и модификации. | Защита инфраструктуры: RPKI (Resource Public Key Infrastructure), BGPsec. |
Кластер D: Атаки на целостность процессов и логики (Process & Logic Integrity)
- Цель: Обход бизнес-логики или манипуляция процессами для достижения непредусмотренного результата.
| Тактический класс | Конкретные техники | Технические детали | Меры противодействия |
|---|---|---|---|
| Обход бизнес-ограничений | Parameter Tampering | Изменение параметров, передаваемых между клиентом и сервером (например, цены товара в price=100 меняется на price=1). | Валидация на сервере: Любые данные с клиента не заслуживают доверия. |
| Нарушение временной логики | Race Condition (TOCTOU) | Изменение условия между моментом его проверки (Time-of-Check) и моментом использования (Time-of-Use). Классический пример: смена симлинка на файл с правами доступа. | Атомарные операции, использование дескрипторов вместо имен файлов. |
| Манипуляция учетными данными | Session Hijacking | Кража идентификатора сессии (cookie, token) для получения прав другого пользователя. | Защита сессии: Secure/HttpOnly флаги у cookie, короткое время жизни токенов, инвалидация сессии на сервере. |
3. МЕТОДИКА РАЗБОРА ОЛИМПИАДНЫХ ЗАДАЧ (АЛГОРИТМ ДЛЯ ЦЕЛОСТНОСТИ)
- Идентификация актива: Что является объектом атаки? (Файл, пакет, процесс, запись в БД, сессия).
- Определение механизма модификации: Как происходит изменение? (Прямая запись, внедрение кода, подмена, повтор).
- Анализ точки приложения: Где происходит атака? (Клиент, сервер, канал, память).
- Поиск корневой причины: Какая уязвимость позволяет провести атаку? (Недостаточная аутентификация, отсутствие контроля целостности, ошибка валидации).
- Подбор криптографического или системного контрмеханизма: Какой механизм гарантирует, что изменение будет обнаружено или невозможно? (Подпись, хэш, контроль доступа, атомарность).
4. ПРАКТИКУМ: РАЗБОР КОМПЛЕКСНОГО КЕЙСА ДЛЯ ВСОШ
Кейс: “Цифровая платема для голосования”
Сценарий: Разработано веб-приложение для голосования. Пользователь аутентифицируется, получает сессионную cookie, выбирает кандидата, нажимает “Голосовать”. Приложение отправляет POST-запрос с
vote_id. Голос хранится в БД.Задание: Проанализируйте не менее 4 (четырех) различных векторов атак на целостность процесса голосования, классифицируйте их и предложите парирующие меры.
Эталонный ответ (макет):
| № | Объект атаки / Цель | Класс атаки | Конкретная техника | Меры противодействия |
|---|---|---|---|---|
| 1 | Целостность транзакции | Data Integrity, Logic | Replay Attack: Повторная отправка легитимного POST-запроса с vote_id для многократного голосования. | Контрмера: Использование одноразового токена (nonce), привязка транзакции к сессии, который инвалидируется после первого использования. |
| 2 | Целостность данных запроса | Data Integrity | Parameter Tampering (Client-Side): Изменение vote_id в POST-запросе с помощью инструментов разработчика (F12) перед отправкой. | Контрмера: Валидация на стороне сервера. Сервер должен проверять, имеет ли право данный пользователь голосовать за данного кандидата. Не доверять данным от клиента. |
| 3 | Целостность сессии | Process Integrity | Session Hijacking: Кража сессионной cookie через XSS-уязвимость на сайте для голосования от имени пользователя. | Контрмера 1: Установка флагов HttpOnly и Secure для кук.Контрмера 2: Регулярная ротация сессионных идентификаторов. |
| 4 | Целостность данных в БД | Data Integrity | SQL Injection: Внедрение в параметр vote_id модифицирующего SQL-запроса, например, для изменения всех голосов в пользу одного кандидата (' OR 1=1; UPDATE votes SET candidate_id=... --). | Контрмера: Строгое использование Parameterized Queries (Prepared Statements). Учетная запись веб-приложения должна иметь минимально необходимые права (только INSERT в таблицу votes, но не UPDATE/DELETE). |
5. ТЕХНИЧЕСКИЕ ДЕТАЛИ ДЛЯ УГЛУБЛЕННОГО ИЗУЧЕНИЯ
- HMAC (Hash-based Message Authentication Code): Механизм, позволяющий удостовериться в целостности и аутентичности сообщения. Требует наличия у обеих сторон общего секретного ключа.
HMAC = Hash( (Key ⊕ opad) || Hash( (Key ⊕ ipad) || Message ) ) - Цифровая подпись (Digital Signature): Использует асимметричную криптографию. Отправитель подписывает хэш сообщения своим приватным ключом. Получатель проверяет подпись с помощью публичного ключа отправителя. Гарантирует целостность, аутентификацию источника и неотрекаемость (non-repudiation).
- ASLR (Address Space Layout Randomization): Техника, затрудняющая эксплуатацию уязвимостей памяти за счет случайного расположения в адресном пространстве процессов ключевых областей (стек, куча, библиотеки).
- DEP (Data Execution Prevention) / NX Bit: Техника, помечающая определенные области памяти (например, стек) как неисполняемые, предотвращая выполнение кода, внедренного в эти области.
6. КРИТЕРИИ ОЦЕНКИ ЭКСПЕРТНОГО УРОВНЯ
Учащийся демонстрирует профессиональный уровень, если в ответе:
- Четко разделяет объекты атаки: Понимает разницу между атакой на целостность данных в БД и целостность кода в памяти.
- Объясняет механизм работы контрмер: Не просто говорит “использовать HMAC”, а объясняет, что он защищает от модификации сообщения в канале и гарантирует его аутентичность.
- Видит разницу между профилактикой и обнаружением: Понимает, что контроль доступа предотвращает модификацию, а цифровая подпись обнаруживает факт модификации постфактум.
- Оперирует сложными концепциями: Может объяснить, чем ROP-атака опаснее простого stack-based overflow и почему ASLR сама по себе не является панацеей.
- Анализирует атаки на логику приложения: Видит угрозы, не связанные с прямым взломом, например, Race Condition или Parameter Tampering.
