Введение
Безопасность баз данных охватывает использование широкого спектра средств контроля информационной безопасности для защиты баз данных от компрометации их конфиденциальности, целостности и доступности. Она включает в себя различные типы или категории контроля, такие как технический, процедурный или административный, и физический. Риски безопасности для систем баз данных включают, например: несанкционированную или непреднамеренную деятельность или злоупотребление со стороны авторизованных пользователей баз данных, администраторов баз данных или менеджеров сетей/систем, или со стороны несанкционированных пользователей или хакеров (например, ненадлежащий доступ к конфиденциальным данным, метаданным или функциям в базах данных, или ненадлежащие изменения в программах баз данных, структурах или конфигурациях безопасности); заражения вредоносными программами, вызывающие инциденты, такие как несанкционированный доступ, утечка или раскрытие персональных или конфиденциальных данных, удаление или повреждение данных или программ, прерывание или отказ в авторизованном доступе к базе данных, атаки на другие системы и непредвиденный сбой служб; перегрузки, ограничения производительности и проблемы с емкостью, приводящие к невозможности авторизованных пользователей использовать базы данных по назначению; физическое повреждение серверов баз данных, вызванное пожарами или наводнениями в компьютерных помещениях, перегревом, ударами молнии, случайным разливом жидкостей, электростатическим разрядом, поломками оборудования/отказами оборудования и устареванием; дефекты проектирования и ошибки программирования в базах данных и связанных с ними программах и системах, создающие различные уязвимости в системе безопасности (например, несанкционированное повышение привилегий), потерю/повреждение данных, снижение производительности и т.д.; повреждение и/или потеря данных, вызванная вводом недействительных данных или команд, ошибками в процессах администрирования баз данных или системы, саботажем/преступным нанесением ущерба и т.д. Росс Дж. Андерсон часто говорил, что по своей природе большие базы данных никогда не будут полностью свободны от злоупотреблений, связанных с нарушениями безопасности; если большая система разработана для удобства доступа, она становится небезопасной; если сделать ее полностью защищенной, она становится невозможной в использовании. Это иногда называют правилом Андерсона. Для баз данных подходит множество уровней и типов средств контроля информационной безопасности, включая: контроль доступа, аудит, аутентификацию, шифрование, контроль целостности, резервное копирование, безопасность приложений.
Unauthorized or unintended activity or misuse by authorized database users, database administrators, or network/systems managers, or by unauthorized users or hackers (e. g. inappropriate access to sensitive data, metadata or functions within databases, or inappropriate changes to the database programs, structures or security configurations);
Malware infections causing incidents such as unauthorized access, leakage or disclosure of personal or proprietary data, deletion of or damage to the data or programs, interruption or denial of authorized access to the database, attacks on other systems and the unanticipated failure of database services;
Overloads, performance constraints and capacity issues resulting in the inability of authorized users to use databases as intended;
Physical damage to database servers caused by computer room fires or floods, overheating, lightning, accidental liquid spills, static discharge, electronic breakdowns/equipment failures and obsolescence;
Design flaws and programming bugs in databases and the associated programs and systems, creating various security vulnerabilities (e. g. unauthorized privilege escalation), data loss/corruption, performance degradation etc. ;
Data corruption and/or loss caused by the entry of invalid data or commands, mistakes in database or system administration processes, sabotage/criminal damage etc. Ross J. Anderson has often said that by their nature large databases will never be free of abuse by breaches of security; if a large system is designed for ease of access it becomes insecure; if made watertight it becomes impossible to use. This is sometimes known as Anderson's Rule. Many layers and types of information security control are appropriate to databases, including:
Access control
Auditing
Authentication
Encryption
Integrity controls
Backups
Application security
Базы данных в значительной степени защищены от хакеров посредством мер сетевой безопасности, таких как брандмауэры и сетевые системы обнаружения вторжений. Хотя контроль сетевой безопасности остается ценным в этом отношении, обеспечение безопасности самих систем баз данных, а также программ/функций и данных в них, вероятно, стало более важным, поскольку сети все чаще открываются для более широкого доступа, в частности, доступа из Интернета. Кроме того, контроль доступа к системам, программам, функциям и данным, наряду с сопутствующими функциями идентификации пользователей, аутентификации и управления правами, всегда были важны для ограничения и, в некоторых случаях, регистрации действий авторизованных пользователей и администраторов. Другими словами, это взаимодополняющие подходы к безопасности баз данных, работающие как извне внутрь, так и изнутри наружу. Многие организации разрабатывают свои собственные "базовые" стандарты безопасности и проекты, подробно описывающие основные меры контроля безопасности для своих систем баз данных. Они могут отражать общие требования или обязательства по информационной безопасности, налагаемые корпоративной политикой информационной безопасности и применимыми законами и нормативными актами (например, касающимися конфиденциальности, финансового управления и систем отчетности), а также общепринятые передовые методы безопасности баз данных (такие как соответствующее усиление защиты базовых систем) и, возможно, рекомендации по безопасности от соответствующих поставщиков систем баз данных и программного обеспечения. Проекты безопасности для конкретных систем баз данных обычно определяют дополнительные функции администрирования и управления безопасностью (такие как администрирование и отчетность о правах доступа пользователей, управление журналами и их анализ, репликация/синхронизация баз данных и резервное копирование), а также различные средства контроля информационной безопасности, обусловленные бизнес-требованиями, в программах и функциях баз данных (например, проверка ввода данных и журналы аудита). Кроме того, различные действия, связанные с безопасностью (ручные средства контроля), обычно включаются в процедуры, руководства и т.д., касающиеся проектирования, разработки, настройки, использования, управления и обслуживания баз данных.
Привилегии
Два типа привилегий имеют значение для безопасности базы данных в среде базы данных: системные привилегии и привилегии на объекты.
Системные привилегии
Системные привилегии позволяют локальному пользователю выполнять административные действия в базе данных.
Привилегии объекта
Привилегии на объекты позволяют выполнять определенные операции с объектами базы данных от имени другого пользователя. Примеры включают: использование, выборку, добавление, обновление и создание ссылок.
Принципал наименьших привилегий
Базы данных, подпадающие под внутренний контроль (то есть данные, используемые для публичной отчетности, годовых отчетов и т.д.), подлежат разделению обязанностей, что означает разделение задач между разработкой и производственной средой. Каждая задача должна быть проверена третьим лицом, не участвующим в написании кода (например, путем просмотра кода или независимой оценки). Разработчик базы данных не должен иметь возможности выполнять какие-либо действия в производственной среде без независимой проверки документации и кода выполняемой работы. Обычно разработчик передает код администратору баз данных (DBA); однако, в связи с сокращениями, вызванными экономическим спадом, DBA может быть недоступен. Если DBA не участвует, необходимо, чтобы коллега провел проверку кода. Это обеспечивает четкое разделение ролей разработчика и администратора. Другой важный аспект внутреннего контроля – соблюдение принципа наименьших привилегий, особенно в производственной среде. Чтобы предоставить разработчикам необходимый доступ для работы, безопаснее использовать механизмы делегирования прав для исключительных случаев, требующих повышенных привилегий (например, EXECUTE AS или sudo для временного выполнения). Разработчики часто могут считать это "дополнительной нагрузкой" на пути к успеху в кодировании. Однако следует помнить, что DBA несут полную ответственность, поскольку они являются фактическими распорядителями данных организации и обязаны соблюдать нормативные требования и законодательство.
Оценка уязвимости для управления рисками и соблюдения требований
Одним из методов оценки безопасности базы данных является проведение оценки уязвимостей или тестов на проникновение. Тестировщики пытаются выявить уязвимости безопасности, которые могут быть использованы для обхода или преодоления средств защиты, несанкционированного доступа к базе данных, компрометации системы и т.п. Администраторы баз данных или специалисты по информационной безопасности могут, например, использовать автоматизированные сканеры уязвимостей для обнаружения некорректной конфигурации средств управления (часто называемой "отклонением от нормы") в вышеупомянутых слоях, а также известных уязвимостей в программном обеспечении базы данных. Результаты таких сканирований используются для усиления защиты базы данных (повышения безопасности) и устранения выявленных уязвимостей, однако другие уязвимости часто остаются незамеченными и неустраненными. В средах баз данных, где безопасность критически важна, непрерывный мониторинг соответствия стандартам повышает уровень защиты. Соблюдение требований безопасности предполагает, в частности, управление исправлениями и анализ и управление разрешениями (особенно публичными), предоставленными объектам в базе данных. Объектами базы данных могут быть таблицы или другие объекты, перечисленные в разделе "Таблица". При этом учитываются права доступа, предоставляемые для команд языка SQL к этим объектам. Мониторинг соответствия аналогичен оценке уязвимостей, за исключением того, что результаты оценки уязвимостей обычно определяют стандарты безопасности, которые лежат в основе программы непрерывного мониторинга. По сути, оценка уязвимостей – это предварительная процедура для определения рисков, а программа соответствия – это процесс непрерывной оценки рисков. Программа соответствия должна учитывать любые зависимости на уровне прикладного программного обеспечения, поскольку изменения на уровне базы данных могут повлиять на работу прикладного программного обеспечения или сервера приложений.
Абстракция
Механизмы аутентификации и авторизации на уровне приложений могут быть эффективным способом абстрагирования от уровня базы данных. Главное преимущество абстрагирования – возможность единого входа в различные базы данных и платформы. Система единого входа хранит учетные данные пользователя базы данных и выполняет аутентификацию в базе данных от его имени. Абстрагирование – это упрощение сложных концепций для лучшего понимания.
Мониторинг деятельности базы данных (DAM)
Другой, более сложный уровень безопасности включает мониторинг активности базы данных в реальном времени, осуществляемый либо путем анализа сетевого протокольного трафика (SQL), либо путем наблюдения за локальной активностью базы данных на каждом сервере с использованием программных агентов, либо комбинированным способом. Для регистрации действий, выполняемых на сервере базы данных, включая действия администратора базы данных, необходимо использовать агенты или встроенную журнализацию. Агенты позволяют регистрировать эту информацию таким образом, который не может быть отключен администратором базы данных, в то время как он имеет возможность отключать или изменять собственные журналы аудита. Анализ может использоваться для выявления известных уязвимостей или нарушений политик, или же можно создавать базовые профили активности с течением времени для выявления аномального поведения, которое может указывать на вторжение. Эти системы могут предоставлять полный аудит базы данных в дополнение к механизмам обнаружения вторжений, а некоторые также обеспечивают защиту путем завершения сеансов пользователей и/или помещения пользователей, демонстрирующих подозрительное поведение, в карантин. Некоторые системы разработаны для поддержки принципа разделения обязанностей (SOD), который является типичным требованием аудиторов. SOD требует, чтобы администраторы баз данных, которые обычно контролируются в рамках DAM, не могли отключать или изменять функциональность DAM. Это подразумевает, что журнал аудита DAM должен безопасно храниться в отдельной системе, не находящейся под управлением группы администрирования баз данных.
Нативный аудит
Помимо использования внешних инструментов для мониторинга или аудита, многие платформы баз данных также предоставляют встроенные средства аудита. Встроенные журналы аудита регулярно извлекаются и передаются в выделенную систему безопасности, к которой администраторы баз данных не должны иметь доступа. Это обеспечивает определенное разделение обязанностей, что может служить доказательством неизменности журналов аудита авторизованными администраторами, и должно выполняться специализированной группой старших DBA, ориентированных на безопасность, с правами чтения к производственной среде. Активация встроенного аудита влияет на производительность сервера. Как правило, встроенные журналы аудита баз данных не обеспечивают достаточного контроля для реализации разделения обязанностей; поэтому возможности мониторинга на уровне сети и/или ядра модуля, реализованные на хосте, обеспечивают более высокую степень уверенности при проведении криминалистического анализа и сохранении доказательств.
Процесс и процедуры
Хорошая программа безопасности базы данных включает регулярный пересмотр прав, предоставленных учетным записям пользователей и учетным записям, используемым автоматизированными процессами. Для индивидуальных учетных записей система двухфакторной аутентификации повышает безопасность, но усложняет систему и увеличивает затраты. Учетные записи, используемые автоматизированными процессами, требуют надлежащих мер контроля за хранением паролей, таких как надежное шифрование и контроль доступа, для снижения риска компрометации. В сочетании с надежной программой безопасности базы данных, соответствующая программа аварийного восстановления может гарантировать непрерывность обслуживания во время инцидента безопасности или любого инцидента, приводящего к сбою основной среды базы данных. Примером может служить репликация основных баз данных на площадки, расположенные в различных географических регионах. После инцидента может быть использовано расследование инцидентов безопасности баз данных для определения масштаба утечки и выявления необходимых изменений в системах и процессах.