Автор работы: Пользователь скрыл имя, 02 Октября 2009 в 19:14, Не определен
В реферате содержится информация о современных методах защиты баз данных.
Как
и для MySQL, к СУБД в Windows было написано
очень много рабочих
Если
сервер имеет активный MS SQL, но все
вышеперечисленные приемы не дали желаемого
результата, хакеры пробуют подобрать
пароль к СУБД. В этом им помогает
замечательная утилита mssqlpwd (www.packetstormsecurity.org/
Для MySQL также существуют переборщики. Один из известных брутфорсеров получил название hydra (thc.org). Этот многофункциональный Linux'овый переборщик способен осуществлять подбор паролей с поддержкой потоков, комболистов, словарей и т.д. Никто не запрещает запустить его в background на зарубежном шелле. При таком раскладе даже самый стойкий пароль обязательно подберется :).
И, конечно же, MS SQL и MySQL ломаются традиционной SQL-инжекцией. При определенном раскладе хакер получит доступ к командному шеллу с правами system. Расписывать теорию SQL-инжекции нет смысла, так как в этом номере есть отдельная статья.
Ты,
наверное, заметил, что методы взлома
MySQL и MS SQL несколько схожи. Действительно,
эти СУБД построены на реляционной
модели, поэтому язык обращения к
ним практически одинаков. Что
касается багов в самом софте,
то хакеры уделяют одинаковое внимание
как Windows, так и Linux. При таком раскладе
администратор находится в
Другие СУБД
Кроме MySQL и MS SQL, существуют другие СУБД, с которыми можно встретиться на многих серверах. Это и многофункциональный PostgreSQL, и специфический Oracle. Приемы взлома этих БД во многом схожи с методами, описанными в статье. Для доступа к этим СУБД используются свои клиенты (pgsql и sqlplus соответственно). Но чаще обращаются к этим СУБД используя мощь языка Perl или PHP. Например, если хакеру известны логин и пароль на доступ к Oracle, но по какой-то причине он не может найти (запустить) клиент, то ему проще залить на сервер Perl'овый скрипт, а затем выполнить его. Код будет примерно таким:
#!/usr/bin/perl
use DBI;
$TB=$ARGV[0];
$oradrh = DBI->install_driver( 'Oracle' );
$ENV{'ORACLE_SID'} = "web01";
$dataSource
= "dbi:Oracle:$ENV{'ORACLE_SID'}
$dbh=DBI->connect_
or die print"Can't connect to Oracle database: $DBI::errstr ";
my $sql = qq{ SELECT * FROM $TB WHERE rownum <= 3 }; # Выполнить SELECT с выводом только трех значений (для краткости)
my $sth = $dbh->prepare($sql);
$sth->execute();
while($indexes=$sth->
for($i=0;$i<=37;$i++) {
print "obj: $indexes->[$i] # Вывести данные на экран
";
}
}
$sth->finish();
Для PHP код будет уже другим. Вообще, сценарии - великая вещь.
Ссылки на электронную литературу
Чтобы быть в курсе уязвимостей в СУБД, достаточно посещать несколько сайтов (хотя бы раз в неделю) или подписаться на рассылку новостей. Ниже список ресурсов, где можно найти интересную информацию по взлому и защите СУБД.
www.xakep.ru – информация о последних обнаруженных уязвимостях (для СУБД в том числе) плюс анонс новых выпусков "Хакер" и "Хакер-Спец".
www.securitylab.ru – статьи по взлому баз данных, ссылки на заплатки, а также эксплойты (к примеру, эксплойт bypass auth для MySQL) для этих уязвимостей.
www.security.nnov.ru – в разделе "Эксплойты"
(www.security.nnov.ru/search.
www.
www.opennet.ru – правильная настройка Unix и сервисов (настройка СУБД в том числе).
Последняя версия Hydra умеет вести перебор паролей как для MySQL, так и для MS SQL.
Запомни главное правило: при крупных проектах никогда не держи SQL-сервер и web-сервер на одной машине.
Для MS SQL вышло уже три сервиспака. Взять их можно на microsoft.com.
При настройке MS SQL обязательно выруби гостевой вход, смени имя пользователя и пароль, а также отключи функции выполнения внешних команд.
Не
стесняйся разделять права
Помимо авторизации по хостам и парольной аутентификации обязательно прикрывай порт сервиса файрволом, чтобы наверняка защитить свою СУБД.
Все примеры даны лишь в ознакомительных целях. За применение на практике автор и редакция журнала ответственности не несут.
В общем случае программное обеспечение
любой универсальной
атаки на уровне операционной системы;
атаки на уровне сетевого программного обеспечения;
атаки
на уровне систем управления базами данных.
Атаки
на уровне систем управления базами данных
Защита СУБД является одной из самых простых задач. Это связано с тем, что СУБД имеют строго определенную внутреннюю структуру, и операции над элементами СУБД заданы довольно четко. Есть четыре основных действия — поиск, вставка, удаление и замена элемента. Другие операции являются вспомогательными и применяются достаточно редко. Наличие строгой структуры и четко определенных операций упрощает решение задачи защиты СУБД. В большинстве случаев хакеры предпочитают взламывать защиту компьютерной системы на уровне операционной системы и получать доступ к файлам СУБД с помощью средств операционной системы. Однако в случае, если используется СУБД, не имеющая достаточно надежных защитных механизмов, или плохо протестированная версия СУБД, содержащая ошибки, или если при определении политики безопасности администратором СУБД были допущены ошибки, то становится вполне вероятным преодоление хакером защиты, реализуемой на уровне СУБД.
Кроме
того, имеются два специфических
сценария атаки на СУБД, для защиты
от которых требуется применять
специальные методы. В первом случае
результаты арифметических операций над
числовыми полями СУБД округляются
в меньшую сторону, а разница
суммируется в некоторой другой
записи СУБД (как правило, эта запись
содержит личный счет хакера в банке,
а округляемые числовые поля относятся
к счетам других клиентов банка). Во
втором случае хакер получает доступ
к полям записей СУБД, для которых
доступной является только статистическая
информация. Идея хакерской атаки
на СУБД — так хитро сформулировать
запрос, чтобы множество записей,
для которого собирается статистика,
состояло только из одной записи.
Атаки
на уровне операционной системы
Защищать операционную систему, в отличие от СУБД, гораздо сложнее. Дело в том, что внутренняя структура современных операционных систем чрезвычайно сложна, и поэтому соблюдение адекватной политики безопасности является значительно более трудной задачей. Среди людей несведующих бытует мнение, что самые эффективные атаки на операционные cистемы могут быть организованы только с помощью сложнейших средств, основанных на самых последних достижениях науки и техники, а хакер должен быть программистом высочайшей квалификации. Это не совсем так.
Никто не спорит с тем, что пользователю следует быть в курсе всех новинок в области компьютерной техники. Да и высокая квалификация — совсем не лишнее. Однако искусство хакера состоит отнюдь не в том, чтобы взламывать любую самую "крутую" компьютерную защиту. Нужно просто суметь найти слабое место в конкретной системе защиты. При этом простейшие методы взлома оказываются ничуть не хуже самых изощренных, поскольку чем проще алгоритм атаки, тем больше вероятность ее завершения без ошибок и сбоев, особенно если возможности предварительного тестирования этого алгоритма в условиях, приближенных к "боевым", весьма ограничены
Успех реализации того или иного алгоритма хакерской атаки на практике в значительной степени зависит от архитектуры и конфигурации конкретной операционной системы, являющейся объектом этой атаки. Однако имеются атаки, которым может быть подвергнута практически любая операционная система:
кража пароля;
подглядывание за пользователем, когда тот вводит пароль, дающий право на работу с операционной системой (даже если во время ввода пароль не высвечивается на экране дисплея, хакер может легко у шип, пароль, просто следя за перемещением пальцев пользователя по клавиатуре);
получение пароля из файла, в котором этот пароль был сохранен пользователем, не желающим затруднять себя вводом пароля при подключении к сети (как правило, такой пароль хранится в файле в незашифрованном виде);
поиск пароля, который пользователи, чтобы не забыть, записывают па календарях, в записных книжках или на оборотной стороне компьютерных клавиатур (особенно часто подобная ситуация встречается, если администраторы заставляют пользователей применять трудно запоминаемые пароли);
кража внешнего носителя парольной информации (дискеты или электронного ключа, на которых хранится пароль пользователя, предназначенный для входа в операционную систему);
полный перебор всех возможных вариантов пароля;
подбор пароля по частоте встречаемости символов и биграмм, с помощью словарей наиболее часто применяемых паролей, с привлечением знаний о конкретном пользователе — его имени, фамилии, номера телефона, даты рождения и т. д., с использованием сведений о существовании эквивалентных паролей, при этом из каждого класса опробуется всего один пароль, что может значительно сократить время перебора;
сканирование жестких дисков компьютера (хакер последовательно пытается обратиться к каждому файлу, хранимому на жестких дисках компьютерной системы; если объем дискового пространства достаточно велик, можно быть вполне уверенным, что при описании доступа к файлам и каталогам администратор допустил хотя бы одну ошибку, в результате чего все такие каталоги и файлы будут прочитаны хакером; для сокрытия следов хакер может организовать эту атаку под чужим именем: например, под именем пользователя, пароль которого известен хакеру);
сборка
"мусора" (если средства операционной
системы позволяют