Уязвимость баз данных
Проблема защиты баз данных стала актуальной в связи с широким внедрением многопользовательского сетевого доступа к СУБД.
На ранних этапах развития несанкционированный доступ к БД был связан скорее с уязвимостями в физических и юридических уровнях защиты оборудования и ПО. Старые базы данных (dBase, FoxPro, Paradox и т.д.) представляли собой совокупность особым образом организованных файлов (файл-серверная архитектура). Получив доступ к компьютеру с БД и возможность копировать файлы, злоумышленник мог легко похитить данные.
Современные многопользовательские БД организуются по клиент-серверному принципу: программа-сервер обслуживает сетевые запросы программ-клиентов. Для копирования базы данных недостаточно получить права для работы с ней. Зачастую не представляется возможным выяснить даже физическое местоположение содержащих ее устройств и их структуру: запрашиваемые пользователем данные пересылаются по сети определенными порциями в соответствии с его полномочиями. Таким образом, сетевой доступ к БД не только дает возможность удаленной и коллективной работы с данными, но и обеспечивает дополнительную защиту за счет разграничения прав доступа.
Тем не менее, проблемы утечки и потери данных сохраняются. Ниже будут рассмотрены некоторые методы защиты БД от несанкционированного доступа и других уязвимостей.
Рисунок 1. Причины утечек данных. Автор24 — интернет-биржа студенческих работ
В данной статье не рассматриваются изолированные (встроенные) базы данных, а также однофайловые серверные БД типа SQLite, где защита обеспечивается внешними по отношению к ним средствами.
Методы защиты БД
К основным средствам защиты данных относят следующие:
- вход по паролю: для начала работы с БД необходимо ввести определенную комбинацию символов;
- разграничение прав доступа к объектам БД;
- защита полей и строк таблиц БД;
- шифрование данных.
В современных БД чаще всего применяются методы, связанные с разграничением доступа. Например, могут предоставляться следующие права доступа к таблицам:
- чтение данных;
- редактирование данных;
- добавление записей;
- добавление, изменение и удаление данных;
- изменение структуры таблицы.
Рисунок 2. Назначение полномочий пользователям на действия с таблицами.Автор24 — интернет-биржа студенческих работ
Обычно СУБД дает возможность комбинировать права доступа, предоставляемые пользователям, объединять их в группы (роли). Практикуется также и обратный подход: объединение пользователей в группы и наделение их однотипными полномочиями.
Выше были перечислены проблемы и методы, связанные с защитой от несанкционированного доступа. Однако в отношении современных баз данных действуют и другие угрозы. Для их предотвращения в СУБД встраивают дополнительные средства:
- повышение достоверности вводимых данных: с помощью ограничений, закладываемых при проектировании таблиц, а также масок ввода в формах предотвращается появление в БД некорректных записей, например, когда превышается количество дней в месяце (31 ноября), вводятся слишком большие или слишком малые значения, появляются незаполненные поля где это недопустимо и т.п.;
- обеспечение целостности связей между таблицами: таблицы, как правило, включают в себя т.н. ключевые поля, благодаря чему становится невозможным в связанных таблицах появления ссылок на несуществующие записи; например, если в таблице "Покупатели" нет пользователя с идентификатором 123, то невозможным становится и внесение этого значения в соответствующее поле таблицы "Покупки";
- резервное копирование: при наступлении обстоятельств непреодолимой силы (отключение электроэнергии, природные катастрофы) данные могут быть утрачены, поэтому следует регулярно копировать БД на внешние носители и удалённые хранилища; резервные копии рекомендуется хранить в зашифрованном виде; большинство современных СУБД предоставляет готовые механизмы резервного копирования;
- правовые аспекты: БД могут являться объектами интеллектуальной собственности и авторских прав, поэтому следует своевременно регистрировать их в соответствующих государственных органах; хранение персональных данных в БД также регулируется законодательством;
- компьютеры и операционные системы, на которых развернуты БД, также должны соответствовать правилам безопасности: сетевые данные должны передаваться по защищенным соединениям, пользователи - работать с ограниченными полномочиями, на ОС должны присутствовать антивирус и/или фаервол и т.п.
Примеры защиты БД
PHP, MySQL и РhpMyAdmin
При использовании популярной среди веб-программистов "связки" PHP и MySQL защиту баз данных можно организовать с помощью программы phpMyAdmin. Она предназначена для управления сервером MySQL через Интернет. phpMyAdmin с помощью удобного пользовательского интерфейса обеспечивает управление базами данных, таблицами, индексами, правами пользователей, и т.д., а также позволяет выполнять SQL запросы.
Безопасность в рассматриваемой программе обеспечивается на нескольких уровнях. На первом защиту предоставляет сама система «phpMyAdmin»: для входа в панель управления требуется ввести логин и пароль. Далее уже сама СУБД MySQL разграничивает права доступа в соответствии с записями о пользователях и их полномочиях, а phpMyAdmin лишь сообщает о том, были ли удачными попытки произвести запросы к БД.
Microsoft Access
К данным, хранящимся в таблицах Microsoft Access, могут применяться следующие уровни доступа:
- полный запрет доступа;
- только чтение;
- просмотр, ввод новых значений, удаление и изменение.
С этой точки зрения Microsoft Access соответствует стандартной концепции реляционных БД.
К формам и отчетам в Access применяют два метода защиты:
- запрет вызова режима Конструктора (например, чтобы конечный пользователь случайно не повредил приложение);
- защита отдельных элементов: например, некоторые поля исходной таблицы могут быть скрыты от пользователя.
В Microsoft Access предусмотрена также защита всего приложения общим паролем, а также хранение данных в оптимизированном виде (файле mde), в котором невозможно править формы, отчеты, структуру таблиц и другие характеристики БД.
Рисунок 3. Настройки безопасности Microsoft Access. Автор24 — интернет-биржа студенческих работ