Защита баз данных

Безопасность баз данных и мы

Один из самых важных критериев надежности информационной системы — безопасность систем управления базами данных (сокращенно СУБД). Атаки, направленные на нее, в большинстве случаев критические, потому что могут частично либо полностью нарушить работоспособность системы. Поскольку крупные организации формировали свою инфраструктуру давным-давно и обновление на новые версии ПО вызывает у них «большие» проблемы, самыми распространенными версиями до сих пор остаются MS SQL Server 2005 и MS SQL Server 2008. У физических лиц проблемой является сама сохранность данных в большей степени.

Как все взламывается злоумышленником?

Первое, что начинает делать злоумышленник, — это собирать информацию о сервисах, расположенных на сервере жертвы. Самое главное, что нужно знать для поиска Microsoft SQL Server, — номера портов, которые он слушает. А слушает он порты 1433 (TCP) и 1434 (UDP). Чтобы проверить, имеется ли MS SQL на сервере жертвы, необходимо его просканировать. Для этого можно использовать программу Nmap cо скриптом ms-sql-info. Запускаться сканирование будет примерно так:

Проверка порта с помощью nmap

Рис. 1. Проверка порта с помощью nmap

Подбор пароля

Допустим, СУБД на сервере обнаружена. Теперь стоит задача получить к ней доступ. И тут хакер встречает первое препятствие в виде аутентификации. Вообще, MS SQL поддерживает два вида аутентификации:
Windows Authentication — доверительное соединение, при котором SQL Server принимает учетную запись пользователя, предполагая, что она уже проверена на уровне операционной системы.
Смешанный режим — аутентификация средствами SQL Server + Windows Authentication.
По умолчанию используется первый режим аутентификации, а смешанный режим активируется отдельно. На практике же довольно трудно встретить базу без смешанного режима — он более гибок.

Обычно на данном этапе хакер не имеет доступа в корпоративную сеть, тем самым использовать аутентификацию посредством Windows не может. Но поскольку найден открытый порт с MS SQL, то хакер пытается побрутить (подобрать пароль) админскую учетку sa, стандартную для смешанного режима. Для автоматизации процесса используется модуль Метасплоита под названием mssql_login:

msf > use auxiliary/scanner/mssql/mssql_login
msf auxiliary(mssql_login) > set RHOSTS 172.16.2.104
RHOSTS => 172.16.2.104
msf auxiliary(mssql_login) > set PASS_FILE /root/Desktop/pass.txt
[*] 172.16.2.104:1433 - MSSQL - Starting authentication scanner.
[*] 172.16.2.104:1433 - LOGIN FAILED: WORKSTATION\sa:admin (Incorrect: )
[*] 172.16.2.104:1433 - LOGIN FAILED: WORKSTATION\sa:qwerty (Incorrect: )
[*] 172.16.2.104:1433 - LOGIN FAILED: WORKSTATION\sa:toor (Incorrect: )
[+] 172.16.2.104:1433 - LOGIN SUCCESSFUL: WORKSTATION\sa:root
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

В случае удачного подбора пароля хакер подключается к базе. Далее сценарий прост — включаем хранимую процедуру, позволяющую выполнять команды на уровне операционной системы, и заливается на сервер Meterpreter shell.
Сессия Meterpreter’a создается и злоумышленник получает полный доступ к базе и не только. Под контроль попадают файлы, мышь и клавиатура, а также другие системные функции.

Защита баз данных

Под «защитой БД» здесь понимается способ предотвратить несанкционированный доступ к информации, хранимой в таблицах. Защита исходного кода форм и модулей не рассматривается.
Данный способ защиты позволяет установить пароль на открытие БД, для всех пользователей. Для его создания необходимо открыть файл БД в «монопольном» режиме и выбрать пункт меню Сервис / Защита / Задать пароль базы данных. Для работы с такой базой данных в MS Access потребуется вводить пароль.

Ответственность за взлом баз данных

Статья 272 УК РФ подразумевает ответственность за неправомерный доступ к информационным системам и (или) содержащимся в них информационным ресурсам, причем для наступления уголовной ответственности необходимо будет, чтобы такой «взлом» повлек уничтожение, блокирование, модификацию либо копирование информации, нарушение функционирования информационной системы.
Те же деяния, совершенные группой лиц по предварительному сговору или организованной группой либо лицом, имеющим доступ к информационным системам, в том числе функционирующим в составе критически важных объектов, и (или) содержащимся в них информационным ресурсам в силу его служебного положения, должны наказываться лишением свободы на срок от 3 до 7 лет.

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

Заключение

В заключение необходимо отметить, что любая компания, обрабатывающая большие объемы критичной информации в базах данных (БД), может столкнуться с хищением конфиденциальных сведений. Для проведения атак на информационные системы злоумышленники используют широкий спектр «технологий» — DDoS атаки, получение несанкционированного доступа путем компрометации учетных записей пользователей, вредоносное ПО различных типов, взлом службы доменных имен и пр. Значительную долю (более 30% по данным портала hackmageddon.com) успешных внешних атак на информационные системы были проведены при помощи SQL-инъекций (громкие «взломы» последнего времени — атаки на базы данных пользователей LinkedIn, eHarmony и Yahoo, от которых пострадали не только миллионы пользователей, но и репутация компаний, были проведены при помощи SQL-инъекций). Поэтому важным вопросом остается защита баз, а также помощь специалистов для противодействия взломам.