Введение в дисциплину «Безопасность систем баз данных». Теоретические основы построения реляционных баз данных. Верификация баз данных и проведение аудита в СБД. Распределенные базы данных, страница 67

Процесс оценивания корректности называется верификацией. К числу наиболее распространенных и хорошо автоматизированных методов верификации любых программных систем относятся статический анализ и тестирование.

Защищенность – это состояние системы, при котором она способна противостоять угрозам безопасности информации. Защищенность системы тем выше, чем меньше уязвимостей она содержит. Защищенность и корректность очень тесно связаны между собой, ибо любой дефект программы или БД есть уязвимость. Наличие дефектов отрицательно сказывается как на корректности, так и на защищенности. Однако защищенность связана и с дополнительными механизмами защиты: если часть из них отсутствует или неверно настроена, это отрицательно влияет на защищенность, но не на корректность, как на характеристику функциональности системы.

Оценивание защищенности БД называется активным аудитом. Активный аудит – это исследование системы с помощью специальных программных инструментов, проводимое с целью поиска и регистрации уязвимостей для их последующего устранения.

Существует еще одна трактовка термина «аудит» - протоколирование событий, происходящих в СУБД, в том числе и действий, выполняемых конечными пользователями. Протоколирование событий не предотвращает атак, но позволяет своевременно обнаружить нарушение защиты, выявить его причину (в частности, найти нарушителя), помогает при восстановлении работоспособности системы. Протоколирование событий в СБД поддерживается на двух уровнях. Аудит на уровне отдельных БД можно организовать при помощи DML- и DDL-триггеров. На уровне СУБД можно использовать как DDL-триггеры, так и некоторые программные инструменты мониторинга активности пользователей.

Ниже будут кратко рассмотрены инструменты верификации и аудита, применяемые для баз данных под управлением SQL Server 2005.

8.1. Методы и средства верификации баз данных

8.1.1. Статический анализ БД

Под статическим анализом понимается исследование структуры системы, при котором изучаются свойства всех ее составляющих, а также характер взаимосвязей компонентов по управлению и информации. Статический анализ БД – это анализ структуры и статических характеристик каждого ее объекта плюс анализ взаимосвязей между этими объектами. При статическом анализе не изучается поведение системы и ее временные характеристики. К примеру, статический анализ программ проводится без их выполнения на компьютере: изучается только код, структура модулей, статические связи между модулями и т. п. Аналогичным образом, о статическом анализе БД можно сказать, что это – анализ БД без их предварительного заполнения записями и практически без выполнения запросов к ним (за исключением запросов к системным таблицам).

Цель статического анализа – выявить и устранить ошибки проектирования БД, многие из которых способны привести к нарушению целостности и доступности информации.

Наиболее широко известным инструментом для проведения статического анализа БД является AllFusion Data Model Validator компании Computer Associates (прежнее название продукта – ERWin Examiner). Помимо того, что AllFusion Data Model Validator обнаруживает и исправляет ошибки проектирования, он также имеет встроенную систему обучения проектировщиков: у пользователя есть возможность получить подробную информацию как об ошибках и недостатках исследуемой модели, так и о способах построения «правильной» модели, не содержащей обнаруженных дефектов.

AllFusion Data Model Validator совместим с операционными системами Windows 98/2000/NT/XP, поддерживает работу с СУБД Oracle, SQL Server, DB2, Sybase.

Входной информацией для AllFusion Data Model Validator может быть:

·  системный каталог БД (в этом случае выполняется «обратное проектирование» БД, и полученная модель проверяется на наличие дефектов);

·  модель БД;

·  DDL-скрипт.

Выходной информацией AllFusion Data Model Validator являются отчеты, а также DDL-скрипты, позволяющие устранять недостатки разработанной БД (например, DDL-скрипт, удаляющий из БД лишние ограничения целостности).