Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных. Лекции по курсу. В 4 частях. Ч.4. Учебное пособие
.pdf
При этом различные подходы к обфускации могут использоваться
на одних СУБД и не работать на других.
Обход фильтрации ключевых слов с использованием SQL-комментариев позволяет добавлять в запрос пустые комментарии, которые при
компиляции уберутся из тела запроса. Такой метод может позволить
обойти анализаторы запросов, которые выполняют поиск ключевых
слов.
Обойти замену
ключевых слов можно пустой строкой. В большинстве реализаций фильтрации пользовательского ввода предобработка
запроса осуществляется за один проход, за который все найденные ключевые слова просто заменяются на пустую строку. Тем самым если ключевое слово будет разделено своим же повтором, то при обработке
вставленное ключевое слово будет убрано и
задуманное ключевое слово
примет корректный вид.
В рамках защиты подобного рода приемы вынуждают расширять
списки запрещенных ключевых слов и ужесточать правила фильтрации,
что в свою очередь может создавать проблемы легальным пользователям для работы и при этом не гарантирует полной безопасности. Как
следствие, подход к фильтрации данных может быть сложным и
нена-
дежным.
2. Использование подготовленных выражений
Более надежный метод защиты от внедрения SQL-кода, чем фильтрация пользовательского ввода, – это использование параметризованных запросов вместо конкатенации строк внутри запроса.
Подготовленные выражения – это функциональность SQL-баз данных и языков программирования, предназначенная для разделения данных запроса и собственно операторов выполняемого SQL-запроса.
Преимущества, получаемые
при использовании подготовленных
выражений:
сокращение объема кода – один и тот же подготовленный запрос
можно использовать многократно для разных данных;
уменьшение времени выполнения – для подготовленных выраже-
ний нет необходимости выполнять синтаксический разбор при каждом
использовании; синтаксический разбор выражения проводится один раз
на этапе его подготовки;
71

встроенная защита от SQL-инъекций является прямым след-
ствием того, что синтактический разбор проводится на этапе подготовки.
Недостатки использования подготовленных выражений:
подготовленные выражения могул использоваться только для па-
раметризации таких значений, как имена таблиц или столбцов, параметров сортировки в предложениях ORDER BY;
однократные параметризованные запросы работают медленнее,
чем
обычные.
Если в рамках конкретной задачи эти ограничения существенны,
следует использовать рассмотренный выше подход на основе фильтрации.
3. Настройка прав доступа к учетным записям
Необходимо уделять внимание правам доступа учетных записей, которые используются клиентским приложением для подключения к базе
данных – им должны предоставляться только минимально необходимые
права доступа. Это
позволит ограничить действия, которые можно выполнить на сервере, и соответственно минимизировать ущерб в случае
успешной атаки.
4. Выдача клиентскому приложению
неинформативных сообщений об ошибках
Сообщения об ошибках являются дополнительным источником информации для злоумышленников. Они необходимы для отладки на
этапе тестирования, но при работе с реальными пользователями пользователь должен
получить «неинформативные» сообщения об ошибках
без каких-либо технических деталей.
ВОПРОСЫ
1. Перечислите компьютерно-технические средства защиты.
2. Какие существуют варианты резервного копирования? Охаракте-
ризуйте каждый из них.
3. В чем состоит функция журнализации?
4. Какую информацию содержит журнал транзакций?
72

5. В чем состоит протокол Write Ahead Log – WAL?
6. Что понимается под мягким сбоем?
7. Что понимается под жестким сбоем?
8. Что такое контрольная точка? Для чего она используется?
9. Каков алгоритм восстановления после мягкого сбоя?
10. Каков алгоритм восстановления после жесткого сбоя?
11. Что предполагает аудит базы данных?
12. Перечислите базовые методы аудита
.
13. Что такое представление? Как оно используется для защиты базы
данных?
14. Как хранимые процедуры содействуют повышению безопасности
баз данных?
15. Каковы преимущества использования хранимых процедур?
16. Как триггеры содействуют безопасности данных?
17. Перечислите инструменты противодействия SQL-инъекциям.
73

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Смирнов С. Н. Безопасность систем баз данных / С. Н. Смирнов. –
Москва : Гелиос АРВ, 2007.
2. Кэмпбелл Л. Базы данных. Инжиниринг надежности / Л. Кэмпбелл,
Ч. Мейджорс. – Санкт-Петербург : Питер, 2020.
3. Волк В. К. Базы данных. Проектирование, программирование, управле-
ние и администрирование / В.К. Волк. – Санкт-Петербург : Лань, 2020.
4. Полтавцева М. А. Безопасность баз данных : учеб. пособие для вузов /
М. А. Полтавцева. – Санкт-Петербург : Лань, 2024.
5. Агафонов А. А. Безопасность систем баз данных : учеб. пособие /
А. А. Агафонов, А. С. Юмаганов. – Самара : Самарский университет, 2023.
6. Документация к Postgres Pro Standard 15 [сайт]. – 2023 – URL: https:
postgrespro.ru/docs/postgrespro/15 (дата обращения: 30.05.2025).
7. Стасышин В. М. Базы данных. Лекции по курсу. Часть 3 / В. М. Стасы-
шин, Т. Л. Стасышина. – Новосибирск : Изд-во НГТУ, 2023.

ПРИЛОЖЕНИЕ
Рис. П1. Политика по обработке персональных данных
в ФГБОУ ВО «НГТУ»
Рис. П2. Инструкция пользователя информационных систем
ФГБОУ ВО «НГТУ»
75

Рис. П3. Инструкция по порядку обращения со средствами защиты
информации в информационных системах ПД ФГБОУ ВО «НГТУ»
Рис. П4. Правила обращения со средствами защиты информации
в информационных системах персональных данных ФГБОУ ВО «НГТУ»
76

Рис. П5. Инструкция о порядке работы при подключении к сетям общего пользо-
вания и (или) международного обмена в ФГБОУ ВО «НГТУ»
Рис. П6. Инструкция о порядке обеспечения конфиденциальности
при обращении с информацией, содержащей персональные данные
77

ОГЛАВЛЕНИЕ
Введение .................................................................................................................. 3
1. Некоторые термины и определения .............................................................. 5
2. Анализ системы безопасности. Построение модели угроз ........................ 7
3. Политика безопасности .................................................................................. 11
3.1. Три задачи обеспечения безопасности баз данных ................................. 11
3.2. Угрозы безопасности баз данных ............................................................. 15
3.3. Атаки, специфичные для баз данных ....................................................... 17
3.3.1. Подбор паролей как метод реализации несанкционированного
доступа ............................................................................................. 17
3.3.2. Нецелевое расходование вычислительных ресурсов сервера ..... 18
3.3.3. Использование триггеров для выполнения незапланированных
функций ............................................................................................ 21
3.3.4. Использование SQL-инъекций для нештатного использования
процедур и функций ........................................................................ 23
Вопросы ............................................................................................................. 30
4. Управление доступом к данным .................................................................. 31
4.1. Login-процедуры ........................................................................................ 31
4.2. Модели управления доступом .................................................................. 35
4.2.1. Дискреционная модель безопасности ............................................ 36
4.2.2. Ролевая модель безопасности ......................................................... 37
4.2.3. Управление привилегиями в дискреционной и ролевой
модели безопасности ....................................................................... 38
4.2.4. Мандатная модель безопасности .................................................... 46
Вопросы ............................................................................................................. 57
78

5. Средства и методы обеспечения безопасности баз данных ..................... 59
5.1. Организационно-административные средства ........................................ 59
5.2. Программно-технические средства и методы обеспечения
безопасности баз данных .......................................................................... 60
5.2.1. Резервное копирование ................................................................... 60
5.2.2. Журнализация. Восстановление данных ....................................... 61
5.2.3. Аудит базы данных .......................................................................... 66
5.3. Защита данных средствами языка SQL .................................................... 67
5.3.1. Представления ................................................................................. 67
5.3.2. Процедуры, функции, триггеры ..................................................... 68
5.3.3. Противодействие SQL-инъекциям ................................................. 70
Вопросы ............................................................................................................. 72
Библиографический список ................................................................................. 74
Приложение ........................................................................................................... 75
79

Стасышин Владимир Михайлович
Стасышина Татьяна Лелонидовна
БАЗЫ ДАННЫХ
ЛЕКЦИИ ПО КУРСУ
В четырех частях
Редактор И.Л. Кескевич
Выпускающий редактор И.П. Брованова
Корректор И.Е. Семенова
Дизайн обложки А.В. Ладыжская
Компьютерная верстка С.И. Ткачева
Налоговая льгота – Общероссийский классификатор продукции
Издание соответствует коду 95 3000 ОК 005-93 (ОКП)
Часть 4
Учебное пособие
Подписано в печать 11.09.2025. Формат 60 84 1/16. Бумага офсетная.
Уч.-изд. л. 4,65. Печ. л. 5,0. Изд. № 106. Заказ № 204. Цена договорная
Новосибирского государственного технического университета
Отпечатано в типографии
630073, г. Новосибирск, пр. К. Маркса, 20
Тираж 100 экз.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
