Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Падение черного ястреба

Фленов Михаил aka Horrific

Спецвыпуск: Хакер, номер #052, стр. 052-070-1


www.vr-online.ru

Как обеспечить безопасность данных

То, что данные нужно защищать, понятно даже ежику в тумане. Это особенно важно для баз данных, потому что в таких корпоративных хранилищах очень часто складируется то, от чего зависит вся жизнь фирмы.

Суперадмин

Во время установки MS SQL Server 7.0 и младше по умолчанию выбиралось имя администратора sa (System Administrator). Пароль можно было не указывать. В MS SQL Server 2000 и старше установщик уже будет предупреждать о возможных проблемах, если не указать пароль (видимо, кто-то увидел надпись на заборе о том, что нельзя выбирать простые пароли и что пустой пароль - это вообще пробоина в безопасности покруче отверстия в корме "Титаника"). С такими паролями тонут в первые же дни плаванья.

Пароль должен быть никак не короче восьми символов, не должен представлять собой читаемое слово или дату, поскольку такое, если понадобится, угадают минут за пять. Я, например, всегда наугад набираю что-нибудь на клавиатуре, а потом просто сохраняю эту ерунду в секретном файле.

Заметь, что до сих пор при установке MySQL в качестве администратора используется учетная запись root без пароля. Эта запись не связана с пользователем root из ОС, поэтому пароль необходимо поменять сразу после установки сервера. Для его смены выполняется команда:

/usr/bin/mysqladmin –uroot password newpass

Вместо newpass нужно указать новый пароль пользователя root.

Работа сервиса

Следующие замечания касаются только Windows баз данных, потому что все они работают в системе как службы. По умолчанию все службы в Windows работают под системной учетной записью, однако у нее слишком много прав, и если хакер через баг сможет проникнуть в сервер базы данных, то сможет выполнять команды в системе от имени локального пользователя. Чтобы ограничить права, нужно изменить пользователя, от имени которого стартует служба. Для этого зайди в "Панель управления"/"Администрирование"/"Службы" и найди здесь службы своего сервера. Для SQL Server это MSSQLServer и SQLServerAgent. Дважды щелкаем по обеим записям и в появившемся окне свойств переходим на закладку Log on ("Вход в систему").

Теперь выбираем пункт This account (с учетной записью) и указываем имя и пароль нужного пользователя. В идеале необходимо создать в системе новую учетную запись, которой предоставлены только те права, которые реально нужны этому сервису. Ничего лишнего предоставлять нельзя.

Работа демона

В Linux дела обстоят немного сложнее, но в результате все получается намного безопаснее. Здесь нужно создать виртуальную директорию, которая будет являться корневой для сервиса, для чего я рекомендую скачать утилиту jail с сайта www.jmcresearch.com/projects/jail. Пример работы утилиты здесь рассмотреть не успею, поэтому ограничусь только принципом ее работы. За более подробной информацией обращайся к справочным файлам или купи книгу "Linux глазами Хакера", которая выйдет летом 2005 года. В ней по полочкам разложена вся основная информация по безопасности ОС Linux.

Итак, служба базы данных в Linux должна работать в своей виртуальной директории. Выше этой директории программа попасть не может. На схеме виртуальной директории показана часть файловой системы Linux. Во главе всего стоит корневая директория /. В ней находятся /bin, /etc, /home, /usr и т.д. В /home расположены каталоги пользователей системы. Мы создаем здесь новую директорию, которая будет являться корнем для службы. Для примера назовем ее chroot. В ней будут свои каталоги /bin, /usr и т.д., и служба будет работать с ними, а все, что выше /home/chroot, окажется недоступным. Просто служба будет считать, что /home/chroot – это и есть корень файловой системы.

Содержание  Вперед на стр. 052-070-2