«Безопасность баз данных» (англ. Database security) относится к использованию широкого спектра средств защиты информации для защиты баз данных (потенциально включая данные, приложения баз данных или хранимые функции, системы баз данных, серверы баз данных и связанные с ними сетевые ссылки) против компрометации их конфиденциальности, целостности и доступности. Он включает в себя различные типы или категории контроля, такие как технические, процедурные / административные и физические. «Безопасность базы данных» является специализированной темой в более широких сферах компьютерной безопасности, информационной безопасности и управления рисками.
 Росс Андерсон часто говорил, что по своей природе большие базы данных никогда не будут свободны от злоупотреблений в результате нарушений безопасности; Если большая система предназначена для облегчения доступа, она становится небезопасной; Если сделана водонепроницаемая, становится невозможно использовать. Это иногда называют «Правилом Андерсона».
 Многие уровни и типы управления информационной безопасностью подходят для баз данных, в том числе:
 К угрозам безопасности к системам баз данных относятся, например:
 В среде базы данных важны два типа привилегий:
 Системные привилегии позволяют пользователю выполнять административные действия в базе данных. К ним относятся привилегии (как указано в SQL Server), такие как: создание базы данных, создание процедуры, создание представления, резервная база данных, создание таблицы, создание триггера и выполнение.
 Объектные привилегии позволяют использовать определенные операции над объектами базы данных, разрешенные другим пользователем. Примеры включают: использование, выбор, вставку, обновление и ссылки.
 Принцип наименьшей привилегии и разделения обязанностей:
 Базы данных подпадают под внутренний контроль, то есть данные, используемые для публичной отчетности, годовые отчеты и другие, подлежат разделению обязанностей, то есть должно быть разделение задач между развитием и производством. Каждая задача должна быть проверена третьим лицом, которое не пишет фактический код. Разработчик базы данных не должен ничего выполнять в производстве без независимого анализа документации кода для выполняемой работы. Как правило, роль разработчика заключается в передаче кода в DBA; Однако, учитывая сокращения, возникшие в результате экономического спада, администратор баз данных может быть недоступен. Если администратор базы данных не задействован, важно, как минимум, для сверстников провести обзор кода.
 Принцип предоставления наименьшего количества привилегий:
 Другим пунктом внутреннего контроля является соблюдение принципа предоставления наименьшего количества привилегий, особенно в производстве. Чтобы предоставить разработчикам больше доступа для выполнения своей работы, безопаснее использовать олицетворение для исключений, требующих повышенных привилегий (например, «EXECUTE AS» или sudo, чтобы сделать это временно). Часто разработчики могут отклонить это как «накладные расходы», находясь на пути к славе кодирования. Однако имейте в виду, что администраторы баз данных должны делать все, что считается ответственным, потому что они являются «де-факто» стюардами данных организации и должны соблюдать правила и закон.
 Один метод оценки безопасности базы данных включает в себя проведение оценок уязвимости или тестов на проникновение в базу данных. Тестеры пытаются найти уязвимости (уязвимости), которые могут быть использованы для поражения или обхода элементов управления безопасностью, взлома базы данных, компрометации системы и другие. Администраторы базы данных могут, например, использовать автоматическое сканирование уязвимости для поиска неправильной конфигурации элементов управления (часто называемых «дрифт») в пределах упомянутых выше уровней наряду с известными слабостями в программном обеспечении базы данных. Результаты таких сканирования используются для упрощения базы данных (повышения безопасности) и закрытия определенных выявленных уязвимости, но другие уязвимости часто остаются не распознанными и без внимания.
 В средах баз данных, где важна безопасность, постоянный мониторинг соответствия стандартам повышает безопасность. Обеспечение безопасности требует, доступ на управление и обзор разрешениями (особенно публичными), предоставляемыми объектам в базе данных. Объекты базы данных могут включать таблицы или другие объекты, перечисленные в таблице. Разрешения, предоставленные для команд языка SQL на объектах, рассматриваются в этом процессе. Мониторинг соблюдения аналогичен оценке уязвимости, за исключением того, что результаты оценок уязвимости в целом приводят к стандартам безопасности, которые приводят к непрерывной программе мониторинга. По сути, оценка уязвимости является предварительной процедурой определения риска, когда программа соблюдения является процессом текущей оценки риска.
 Программа соответствия должна учитывать любые зависимости на уровне прикладного программного обеспечения, поскольку изменения на уровне базы данных могут иметь последствия для прикладного программного обеспечения или сервера приложений.
 Механизмы уровня приложений authentication и authorization могут быть эффективными средствами обеспечения абстракции от уровня базы данных. Основным преимуществом абстракции является способность single sign-on к нескольким базам данных и платформам. Единая система регистрации сохраняет учетные данные пользователя базы данных и идентифицируется в базе данных от имени пользователя.
 Другой уровень безопасности более сложного характера включает мониторинг активности базы данных в режиме реального времени либо путем анализа трафика протокола (SQL) по сети, либо путем наблюдения активности локальной базы данных на каждом сервере с использованием программных агентов или обоих. Использование агентов или собственное ведение журнала требуется для захвата действий, выполняемых на сервере, которые обычно включают в себя действия администратора базы данных. Агенты позволяют эту информацию захватывать таким образом, который не может быть отключен администратором базы данных, который имеет возможность отключать или изменять собственные журналы аудита.
 Анализ может быть проведен для выявления известных нарушений правил, или исходные данные могут быть со временем захвачены для создания нормального шаблона, используемого для обнаружения аномальной активности, которая может свидетельствовать о вторжении. Эти системы могут обеспечить всеобъемлющий контрольный журнал базы данных в дополнение к механизмам обнаружения вторжений, а некоторые системы также могут обеспечивать защиту путем прекращения сеансов пользователей и карантина пользователей, демонстрирующих подозрительное поведение. Некоторые системы предназначены для поддержки разделения обязанностей (SOD), что является типичным требованием аудиторов. SOD требует, чтобы администраторы баз данных, которые обычно контролируются как часть DAM, не могут отключать или изменять функциональность DAM. Для этого необходимо, чтобы контрольный журнал DAM надежно хранился в отдельной системе, не администрируемой группой администрирования базы данных.
 Помимо использования внешних инструментов для мониторинга или аудита, для многих платформ баз данных также доступны собственные возможности проверка базы данных. Собственные контрольные журналы извлекаются на регулярной основе и передаются в назначенную систему безопасности, где администраторы баз данных имеют / не должны иметь доступ. Это обеспечивает определенный уровень разделения обязанностей, который может свидетельствовать о том, что собственные контрольные маршруты не были изменены администраторами, прошедшими проверку подлинности, и должны проводиться ориентированной на безопасность старшей группой DBA с правами на чтение в производство. Включение собственного воздействия на производительность сервера. Как правило, собственные контрольные журналы баз данных не обеспечивают достаточного контроля для обеспечения разделения обязанностей; Поэтому возможности мониторинга на основе хоста на уровне сети и ядра модуля обеспечивают более высокую степень достоверности для судебной экспертизы и сохранения доказательств.
 Для повышения общей безопасности этих баз данных можно использовать следующие дополнительные шаги, которые выполняются в рамках сети и среды сервера: