Объекты уязвимости
Объекты уязвимости в компьютерных системах
Понятие и классификация объектов уязвимости
Понятие и классификация объектов уязвимости
Понятие и классификация объектов уязвимости
Понятие и классификация объектов уязвимости
Понятие и классификация объектов уязвимости
Понятие и классификация объектов уязвимости
Понятие и классификация объектов уязвимости
Порядок действий для анализа уязвимостей ПО
Порядок действий для анализа уязвимостей ПО
Порядок действий для анализа уязвимостей ПО
Порядок действий для анализа уязвимостей ПО
Шаблон оформления документации
Шаблон оформления документации
Шаблон оформления документации
Примеры оформления документации
Примеры оформления документации
Примеры оформления документации
Практические задания
Практические задания
Практические задания
Практические задания
Практические задания
Практические задания
Благодарю за внимание
6.73M

2. Объекты уязвимости

1. Объекты уязвимости

2. Объекты уязвимости в компьютерных системах

Объекты уязвимости — это элементы, компоненты или аспекты
компьютерных систем, которые могут стать источником или каналом для
реализации угроз информационной безопасности. При разработке ПО анализ
и управление такими объектами — ключевая задача для поддержания
устойчивости, надёжности и защищённости ИТ-инфраструктуры.

3. Понятие и классификация объектов уязвимости

Объект уязвимости — это любая часть системы (аппаратная, программная,
информационная, организационная), обладающая недостатками, которые
могут быть использованы злоумышленником для нарушения
конфиденциальности, целостности или доступности информации.

4. Понятие и классификация объектов уязвимости

Основные классы объектов уязвимости:

5. Понятие и классификация объектов уязвимости

Причины возникновения уязвимостей:
• Ошибки проектирования — недостатки архитектуры, неучтённые
сценарии использования.
• Ошибки реализации — программные баги, некорректная обработка
исключений.
• Ошибки эксплуатации — неправильная настройка, использование
устаревших версий ПО.
• Человеческий фактор — слабые пароли, социальная инженерия.

6. Понятие и классификация объектов уязвимости

Методы выявления и анализа объектов уязвимости:
• Сканирование уязвимостей — автоматизированный поиск известных
уязвимостей (например, с помощью Nessus, OpenVAS).
• Пенетрационное тестирование — имитация атак для выявления слабых
мест.
• Аудит безопасности — комплексная проверка политик, процедур и
технических средств.
• Анализ кода — статический и динамический анализ исходного кода на
наличие ошибок.

7. Понятие и классификация объектов уязвимости

Для обнаружения уязвимостей есть различные инструменты и методы.
Способы управления объектами уязвимости:
• Инвентаризация — составление полного перечня всех объектов системы.
• Оценка критичности — определение степени влияния каждой уязвимости
на бизнес-процессы.
• Мониторинг и обновление — регулярное обновление ПО, патчменеджмент.
• Обучение персонала — повышение осведомлённости сотрудников о
рисках.
• Внедрение средств защиты — антивирусы, межсетевые экраны, системы
обнаружения вторжений.

8. Понятие и классификация объектов уязвимости

Примеры объектов уязвимости:
• Необновлённая операционная система — подвержена известным
эксплойтам.
• Открытые порты без необходимости — могут быть использованы для
несанкционированного доступа.
• Слабые пароли пользователей — легко подбираются или взламываются.
• Отсутствие шифрования при передаче данных — информация может быть
перехвачена.

9. Понятие и классификация объектов уязвимости

Управление объектами уязвимости напрямую влияет на:
• Надёжность системы (отказоустойчивость).
• Безопасность данных (защита от утечек и искажений).
• Соответствие нормативным требованиям (например, ФЗ-152 «О
персональных данных»).
Объекты уязвимости — это неотъемлемая часть любой компьютерной
системы. Их своевременное выявление, анализ и устранение — основа
обеспечения качества функционирования ИТ-инфраструктуры.
Комплексный подход к управлению уязвимостями позволяет
минимизировать риски и повысить устойчивость организации к внешним и
внутренним угрозам.

10. Порядок действий для анализа уязвимостей ПО

Этап 1. Подготовка и планирование
1) Определение области анализа:
Четко обозначьте, какой именно компонент ПО (модуль, сервис, всё
приложение) подлежит проверке.
2) Сбор информации:
• Получите исходный код (для статического анализа) или доступ к
работающему приложению (для динамического).
• Изучите документацию, архитектуру и спецификации.
• Определите используемые технологии (языки программирования,
фреймворки, СУБД).
3) Выбор инструментов:
Подберите инструменты для анализа (например, статические анализаторы
кода SAST, динамические сканеры DAST, инструменты для поиска секретов в
коде).

11. Порядок действий для анализа уязвимостей ПО

Этап 2. Сканирование и поиск
Автоматизированное сканирование:
• Запустите выбранные инструменты (SAST/DAST).
• Настройте правила сканирования, чтобы уменьшить количество ложных
срабатываний.
Ручной анализ:
• Проверка критических участков кода вручную (логика аутентификации,
обработка платежей).
• Анализ конфигурационных файлов на наличие паролей и ключей доступа.
• Поиск типовых ошибок (SQL-инъекции, XSS, CSRF) в местах обработки
пользовательского ввода.

12. Порядок действий для анализа уязвимостей ПО

Этап 3. Анализ и верификация результатов
1) Фильтрация:
Отбросьте ложные срабатывания. Для каждой найденной потенциальной
уязвимости необходимо подтвердить возможность её эксплуатации.
2) Воспроизведение:
Если возможно, создайте сценарий (Proof-of-Concept), демонстрирующий
работу уязвимости.
3) Оценка критичности:
Классифицируйте уязвимость по шкале CVSS (Common Vulnerability
Scoring System), учитывая сложность атаки, требуемые привилегии и влияние
на конфиденциальность, целостность и доступность.

13. Порядок действий для анализа уязвимостей ПО

Этап 4. Документирование
• Формирование отчета по стандартному шаблону (см. ниже).
• Передача отчета ответственным лицам (разработчикам, менеджменту).
Этап 5. Контроль устранения
• Отслеживание исправлений: Проверка того, что разработчики внесли
изменения в код.
• Повторное тестирование: Проведение повторного сканирования или
анализа измененного участка кода для подтверждения закрытия уязвимости.

14. Шаблон оформления документации

Вы можете использовать этот шаблон для оформления результатов.
ОТЧЕТ ОБ АНАЛИЗЕ УЯЗВИМОСТЕЙ
1. Общая информация
• Объект анализа: [Название ПО/Компонента/Сервера]
• Версия: [Номер версии]
• Дата проведения анализа: [ДД.ММ.ГГГГ]
• Исполнитель: [ФИО/Должность]
• Используемые инструменты: [Список инструментов, например: Nmap,
Burp Suite, SonarQube]
2. Описание уязвимости
• ID (Внутренний): [Уникальный номер записи]
• Тип уязвимости: [Например: SQL Injection, XSS, Использование слабых
алгоритмов шифрования]
• Источник обнаружения: [Инструмент или Метод: Автоматизированное
сканирование / Ручной анализ кода]
• Местоположение: [Точный путь к файлу и строка кода или URL-адрес
страницы]

15. Шаблон оформления документации

3. Техническое описание
[Подробное описание уязвимости. Как она возникает? Какая часть кода
отвечает за проблему?]
Пример: Уязвимость возникает из-за прямой конкатенации
пользовательского ввода $_GET['id'] в SQL-запрос без предварительной
фильтрации или использования подготовленных выражений.
4. Доказательство возможности эксплуатации (PoC)
[Пример запроса или действия, демонстрирующего уязвимость]
Пример: URL: http://site.com/profile?id=1' UNION SELECT password FROM
users--

16. Шаблон оформления документации


5. Оценка рисков (CVSS Score)
Вектор CVSS: [Например: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N]
Уровень критичности: [Критический / Высокий / Средний / Низкий]
Влияние на бизнес:
Конфиденциальность: [Низкое / Среднее / Высокое]
Целостность: [Низкое / Среднее / Высокое]
Доступность: [Низкое / Среднее / Высокое]
6. Рекомендации по устранению
[Конкретные шаги по исправлению кода или конфигурации]
Пример: Использовать параметризованные запросы (prepared statements)
вместо прямой вставки переменных в строку SQL-запроса.

17. Примеры оформления документации

Пример 1: Использование слабых паролей
(Организационная/Конфигурационная уязвимость)
ОТЧЕТ ОБ АНАЛИЗЕ УЯЗВИМОСТЕЙ
1. Общая информация
Объект анализа: Сервер управления сетью (MikroTik RB2011)
Версия: RouterOS 6.48
Дата проведения анализа: 17.05.2026
Исполнитель: Специалист ИБ
Используемые инструменты: Winbox
2. Описание уязвимости
ID: V-001
Тип уязвимости: Использование учетных данных с низкой энтропией
Источник обнаружения: Ручной аудит конфигурации
Местоположение: Учетная запись администратора роутера

18. Примеры оформления документации

3. Техническое описание
Для учетной записи администратора используется пароль Admin_2024!.
Данный пароль является предсказуемым и может быть подобран с помощью
атаки по словарю за короткое время из-за использования общеупотребимых
слов и простого паттерна (Слово + Год + Символ).
4. Доказательство возможности эксплуатации (PoC)
Успешный вход в систему Winbox с использованием пары логин/пароль
admin / Admin_2024!.
5. Оценка рисков (CVSS Score)
Вектор CVSS: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Уровень критичности: Высокий
Влияние на бизнес:
Конфиденциальность: Высокое
Целостность: Высокое
Доступность: Высокое

19. Примеры оформления документации

6. Рекомендации по устранению
• Немедленно сменить пароль администратора на сложный (не менее 16
символов, включая буквы разного регистра, цифры и спецсимволы).
• Настроить политику блокировки учетной записи после 5 неудачных
попыток входа.
• Ограничить доступ к управлению роутером по IP-адресам (Firewall),
разрешив подключения только с доверенных рабочих станций
администраторов.

20. Практические задания

Задание 1. Поиск и эксплуатация SQL-инъекции в модуле авторизации
Сценарий:
Вы проводите аудит безопасности веб-приложения «Книжный Клуб». В
рамках задания вам предоставлен фрагмент исходного кода на PHP,
отвечающий за проверку логина и пароля пользователя при входе в личный
кабинет.
Исходный код (файл login_check.php):
<?php
// $servername = "localhost";
// $username_db = "bookuser";
// $password_db = "P@ss_db_2024";
// $dbname = "book_club";
$login = $_POST['user_login'];
$pass = $_POST['user_password'];
$sql_query = "SELECT user_id FROM users WHERE login = '" . $login . "'
AND password = '" . $pass . "'";
echo "Выполняемый запрос: " . $sql_query;
// ... далее следует выполнение запроса к БД ...
?>

21. Практические задания

Задание 1. Поиск и эксплуатация SQL-инъекции в модуле авторизации
Задача:
1. Проанализировать предоставленный код и определить тип уязвимости.
2. Составить полезную нагрузку (Payload) для поля user_login, которая
позволит обойти проверку пароля и войти в систему под учетной записью
администратора (login = 'admin').
3. Записать итоговый SQL-запрос, который будет отправлен в базу данных.
4. Оформить результаты в виде отчета на основе шаблона.

22. Практические задания

Задание 2. Выявление уязвимости «Внедрение команд ОС» (OS Command
Injection)
Сценарий:
Вы анализируете скрипт системного администратора, написанный на
Python. Скрипт предназначен для удаленной диагностики серверов и
позволяет выполнять команду ping.
Исходный код (файл diag_tool.py):
import subprocess
print("=== Утилита сетевой диагностики ===")
target_ip = input("Введите IP-адрес для проверки: ")
command = "ping -c 4 " + target_ip
print(f"\nВыполняется команда: {command}")
result = subprocess.run(command, shell=True, capture_output=True, text=True)
print("\nРезультат выполнения:")
print(result.stdout)

23. Практические задания

Задание 2. Выявление уязвимости «Внедрение команд ОС» (OS Command
Injection)
Задача:
1. Проанализировать код и найти уязвимость.
2. Составить строку ввода (IP-адрес), которая позволит выполнить
дополнительную команду ОС (например, ls -la /) после команды ping.
3. Объяснить, почему использование shell=True в данном контексте опасно.
4. Оформить отчет.

24. Практические задания

Задание 3. Хранение секретов в исходном коде (Hardcoded Secrets)
Сценарий:
Студент-стартапер написал простое приложение для отправки emailуведомлений через сторонний сервис. Он сохранил API-ключ прямо в коде,
чтобы не забыть его.
Задача:
1. Определить тип уязвимости.
2. Объяснить риски компрометации такого кода (что может сделать
злоумышленник, получив этот ключ?).
3. Предложить правильный метод управления секретами (использование
переменных окружения .env, системные хранилища).
4. Переписать фрагмент кода так, чтобы он загружал ключ из переменной
окружения.
5. Оформить отчет.
Код представлен на следующей странице.

25. Практические задания

Задание 3. Хранение секретов в исходном коде (Hardcoded Secrets)
Исходный код (файл mailer.py):
import requests
API_KEY = 'sk_live_123456789abcdefghijk'
def send_email(to_address, subject):
url = "https://api.mailservice.com/v1/send"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
data = {
"to": to_address,
"subject": subject,
"body": "Привет от нашего сервиса!"
}
response = requests.post(url, headers=headers, json=data)
return response.status_code
status = send_email("client@example.com", "Уведомление")
print("Статус отправки:", status)

26. Благодарю за внимание

English     Русский Rules