Введение в системы баз данных
- 1 year ago
- 0
- 0
« Анализ безопасности баз данных » ( англ. Database Security Assessment) – процесс исследования рисков возникновения угроз в базах данных .
Уязвимостью может быть неточность в конфигурации системы, например, отсутствие политики паролей базы данных, ошибка в программной части, например, переполнение буфера в какой-либо процедуре , или ошибка в настройке управления доступом , например, наличие публичных прав доступа к таблице, содержащей конфиденциальную информацию . После определения уязвимости, оценивается ее приоритет – низкий, средний, высокий, критический и т.д.
Наконец, формируется отчет, подводящий итоги исследования. Типичный пример итогов анализа может представлять полное число обнаруженных уязвимостей, распределенных по важности. Такая сводка является по сути слепком рисков, который администратор может использовать для приоритизации шагов, необходимых для совершенствования системы безопасности базы данных . Она указывает, какие базы данных и какие уязвимости следует рассмотреть в первую очередь.
Фундаментальная часть наилучшей практики анализа безопасности базы данных состоит из следующих четырех частей:
Многие методы анализа пытаются идентифицировать уязвимости, имитируя действия взломщика. Например, в процессе анализа система может эксплуатировать буфер, подверженный переполнению, или использовать метод «грубой силы» , чтобы получить необходимые ключи доступа. Такие методы взлома часто используются автоматизированными веб-серверами или сетевыми инструментами анализа, часто это проекты с открытым кодом . Основная проблема такого подхода состоит в том, что в случае успеха, он способен вызвать простой или даже нанести ущерб базе данных. Например, переполнение буфера неизбежно приведет к сбою базы данных .
Любой шанс сбоя неприемлем в производственной среде. Это делает такие методы употребимыми только в условиях лабораторного тестирования. С другой стороны, результаты тестов, проведенных в лаборатории слабо применимы к базам данных, используемых в производстве. Найденные, или, что гораздо важнее, пропущенные, уязвимости могут как существовать, так и не существовать в производстве. Следовательно, анализ безопасности баз данных, должен производиться без эксплуатирования уязвимостей.
Многие способы исследования уязвимостей не используют доступную информацию достаточно глубоко, чтобы точно определить статус найденной уязвимости. В качестве примера можно рассмотреть переполнение буфера процедуры xp_sprintf в Microsoft SQL сервере . Эта процедура может быть эксплуатирована взломщиком в целях получения администраторских привилегий или обрушения сервера. Можно привести два грубых подхода к исследованию такой уязвимости, которые приведут к неверному выводу.
В таком подходе система анализа, несмотря на риск, попытается послать данные и переполнить буфер процедуры. На основе результата эксплуатации, будет сформирован отсчет, уязвим сервер или нет. Однако, точность такого метода зависит от того, есть ли у пользователя, используемого инструментом анализа, права на выполнение процедуры. У пользователя PUBLIC может не быть таких прав. Следовательно, система не сможет эксплуатировать уязвимость, в отсчет не будет занесена существующая уязвимость. Но у одного из пользователей или у веб-приложения могут быть права на запуск процедуры, в этом случае база данных обладает серьезной уязвимостью, не выявленной анализом.
Второй подход основывается на проверке версии ПО для оценки наличия уязвимостей. В таком случае, SQL сервера с версиями 6.5 SP4 и раньше обладают упомянутой уязвимостью. Следовательно, любой сервер с версией ниже будет определен уязвимым. Однако, в данном случае игнорируется факт наличия такой процедуры на сервере. Например, процедура могла быть удалена как лучшая практика , и тогда такой сервер на самом деле не обладает указанной уязвимостью.
В рамках лучшей практики анализ безопасности базы данных должен включать широкий спектр тестов, которые проверяют каждую из областей:
Открытые базы данных уязвимостей отслеживают тысячи известных уязвимостей программного обеспечения, включая базы данных и операционные системы , обеспечивающие их работоспособность. В процессе анализа безопасности базы данных должна оцениваться чувствительность базы данных и операционной системы, на которой она базируется, ко всем известным их касающимся уязвимостям.
Существует запись в Bugtrack c ID 2041, которая фиксирует уязвимость Microsoft SQL Server 2000, состоящая в том, что расширенная хранимая процедура xp_printstatements чувствительна к переполнению буфера, что может привести к падению системы или позволить исполнение внешнего кода . Рассмотрим шаги исследования уязвимости без ее эксплуатации.
Безопасность базы данных крайне чувствительна к проблемам системных настроек, в связи с чем, большинство из них покрыты шаблонами лучшей практики. Элементы конфигурации должны быть оценены по типу и планируемому использованию. Очевидно, что база данных поддерживающая веб-приложения требует иной конфигурации, нежели та, что поддерживает группу внутренних пользователей.
Простым примером является частота смены пароля. Согласно лучшей практике, пользователь должен часто менять пароль, система анализа безопасности должна позволять администратору конфигурировать политику частоты смены пароля и автоматически применять ее к реальному возрасту паролей. После этого она должна представить статистику по аккаунтам с истекшим сроком и приоритизировать угрозу.
Необходимо также исследовать организацию выдачи привилегий базы данных. Обычно владелец базы данных придерживается принципа минимальных привилегий . Примером является управление доступом на основе ролей. Права, выданные напрямую могут спровоцировать ситуацию, в которой пользователь после смены позиции в организации будет иметь чрезмерные привилегии в системе. Прямая выдача прав также подразумевают недокументированный процесс авторизации, вследствие чего соблюдения таких норм, как, например, закон Сарбейнза — Оксли становится невозможным.
Некоторые объекты, которые являются внешними по отношению к базе данных, могут быть использованы (если не настроены должным образом) для атаки на базу данных. Эти внешние объекты в основном являются объектами операционной системы, такие как файлы, службы, разделы реестра и т.д. Например, DB2 включает исполняемый файл db2job, который можно использовать по умолчанию, чтобы позволить локальным пользователям выполнять код с правами администратора. Подверженность этой уязвимости может быть определена путем проверки разрешений операционной системы в файле db2job.
При оценке базы данных следует уделять особое внимание требованиям безопасности, которые относятся к соответствию нормативным требованиям. Например, закон Сарбейнза — Оксли требует отслеживания всех новых учетных записей пользователей в базах данных, в которых хранится информация финансовой отчетности. Поэтому в процессе анализа необходимо проверить словарь данных для учетных записей, дата создания которых находится в пределах настраиваемого периода времени. Любые новые учетные записи могут быть перечислены в итоговых отчетах оценки.
Несмотря на преимущества полноценного анализа баз данных, многие организации встречаются с трудностями при его организации.
В большом числе организаций требуется письменное подтверждение необходимости выделения дополнительных средств на IT отдел. Инструменты по анализу защищенности баз данных могут представить отчет, обосновывающий потребность в улучшении систем безопасности и, соответственно, выделении бюджета. Однако, доказать необходимость совершенствования самой анализирующей системы не всегда бывает возможно.
Системные администраторы имеют огромное количество других повседневных обязанностей, в связи с чем часто не имеют необходимого времени для того, чтобы уделять достаточное внимание проблемам безопасности баз данных. Несмотря на то, что в конечном счете такие проблемы приведут к негативным последствиям, администратор пренебрегает ими в пользу более актуальных заданий.
Сотрудники, занимающиеся обеспечением безопасности данных в компании, редко имеют необходимый уровень экспертизы в инфраструктуре баз данных и не охватывают в анализе уязвимостей весь спектр тестов.