Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
защита информации в бд.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
117.54 Кб
Скачать

1. Введение

MySQL является одной из наиболее популярных баз данных в Internet, и часто используется вместе с PHP. Помимо её бесспорных преимуществ, таких как простота использования и относительно высокая эффективность, MySQL предлагает простые, но в то же время очень эффективные механизмы защиты. К сожалению, заданная по умолчанию инсталляция MySQL, а в особенности пустой пароль по умолчанию и потенциальная уязвимость к атакам переполнения буфера, делают базу данных MySQL простым объектом для нападений.

Эта статья описывает основные шаги, выполнение которых, максимально защитит базу данных MySQL от локальных и удаленных нападений.

1.1 Функциональные возможности

В этой статье мы предполагаем, что Web-сервер Apacheвместе с PHP модулем, был установлен в соответствии с требованиями предыдущих статей, и помещен в каталог /chroot/httpd.

Кроме этого мы также принимаем следующее:

  • База данных MySQL будет использоваться только PHP приложениями, установленными на том же самом хосте;

  • Для управления базой данных будут использоваться стандартные административные средства, типа mysqladmin, mysql, mysqldumpи т.д.;

  • Для удаленного резервирования MySQL данных будет использоваться SSH протокол.

1.2 Необходимые условия для защиты

Чтобы достигнуть самого высокого возможного уровня защиты, установка и конфигурация mysql должна быть выполнена в соответствии со следующими требованиями:

  • база данных mysql должна быть выполнена в chrooted среде;

  • процессы mysql должны выполняться под уникальным UID/GID, неиспользуемым никаким другим системным процессом;

  • Должен быть разрешен только локальный доступ к mysql;

  • Основная учетная запись mysql должна быть защищена “сложным” паролем;

  • Будет переименована учетная запись администратора;

  • Должен быть заблокирован анонимный доступ к базе данных (используя учетную запись nobody);

  • Должны быть удалены все типовые базы данных и таблицы.

2. Установка MySql

Прежде чем начать осуществление защиты MySQL, мы должны установить программное обеспечение на сервере. Как мы писали в предыдущих статьях, мы запустим инсталляцию, создав уникальную, постоянную группу и учетную запись пользователя на операционной системе, которая будет посвящена базе данных MySQL:

pw groupadd mysql

pw useradd mysql-c " mysql Сервер"-d/dev/null-g mysql-s/sbin/nologin

2.1 Компиляция mysql

Мы скомпилируем и установим mysql в каталог /usr/local/mysql:

./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-ldflags=-all-static make su make install strip /usr/local/mysql/libexec/mysqld scripts/mysql_install_db chown -R root /usr/local/mysql chown -R mysql /usr/local/mysql/var chgrp -R mysql /usr/local/mysql

Приведенный процесс установки сервера практически идентичен описанному в руководстве к mysql. Единственным отличием является использование нескольких дополнительных параметров, указанных в строке: ./configure. Наиболее важным отличием является использование параметра -- with-mysqld-ldflags =-all-static, который делает MySQL сервер статически связанным. Это значительно упрощает процесс chrooting сервера, как описано в Разделе 3. Остальные параметры приказывают make программе установить программное обеспечение в каталог /usr/local/mysql, выполнить MySQL демон с привилегиями учетной записи mysql, и создать сокет mysql.sock в каталоге /tmp.