Рейтинговые книги
Читем онлайн Linux глазами хакера - Михаил Флёнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 109 110 111 112 113 114 115 116 117 ... 120

Нередко для реализации DDoS хакеры используют захваченные мощные серверы на высокоскоростных каналах связи. Это позволяет злоумышленнику получить необходимые ресурсы для удачной распределенной атаки.

В будущем можно ожидать новые атаки DDoS, которые окажутся более эффективными и оригинальными. Здесь уже администратор будет бессилен, и в данном случае на помощь должны приходить правоохранительные органы.

14.6.7. DoS

Если вы уже посещаете бюллетени BugTraq, то должны заметить, что уязвимости, дающие повод для проведения атаки DoS, регулярно появляются в различных сетевых программах. К этой категории очень часто относят любые ошибки переполнения буфера, с помощью которых можно сделать сервер недоступным.

О переполнении буфера мы уже говорили в разд. 14.2 и знаем, что с этими ошибками можно бороться, даже не дожидаясь исправлений программистами. Достаточно только поставить патч на ядро ОС, при котором запрещено выполнять код из стека.

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

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

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

ОС Linux поставляется в исходных кодах, и абсолютно любой доморощенный программист может вносить изменения. Когда она создавалась множеством энтузиастов, то ошибок было очень много, потому что отсутствовал четкий контроль.

В настоящее время уже мало дистрибутивов, выпускающихся стихийными группами программистов. Все, кто захотели делать качественные продукты, организовали фирмы. Теперь уже изменения, внесенные программистом- одиночкой, попадут в дистрибутив, только если его разработчик решит, что код безопасен и полезен для пользователей. Благодаря этому надежность Linux повышается, чего нельзя сказать об отдельных ее компонентах.

14.6.8. Защита от DoS/DDoS

Самая эффективная защита от атак DoS, проводимых через ошибки в программах, — это своевременное обновление этих программ. А вот если хакер направил свои усилия на полное поглощение ресурсов сервера, то в данном случае защититься сложно, но необходимо сделать все возможное, чтобы усложнить задачу злоумышленнику.

Сначала необходимо определить самое слабое место сервера. Для этого можно искусственно заставить его работать на максимальной нагрузке. Это можно сделать с помощью большого количества пользователей, которые будут обращаться к серверу, или написать специализированную программу, эмулирующую эту ситуацию.

Во время пиковой нагрузки необходимо проследить, каких ресурсов не хватает компьютеру. Обратите внимание на следующие компоненты:

□ пропускную способность сети;

□ пропускную способность сетевого оборудования;

□ загрузку процессора;

□ нагрузку на жесткий диск;

□ загрузку оперативной памяти.

Определите самые узкие места вашей системы, чтобы увеличить производительность. Нет смысла наращивать внешние каналы связи до 100 Мбит/с, если ваша внутренняя сеть работает только на скорости 10 Мбит/с. Это излишняя трата денег, а проблема останется. Хакеру достаточно будет направить на сервер любой трафик, чтобы забить 10 Мбитный канал мусором, и ресурсов вашей внутренней сети не хватит для обработки такого объема данных. Именно поэтому очень важно правильно определить слабое звено в вашей системе.

Настройте сетевые интерфейсы и параметры ОС на максимальную производительность (см. разд 14.11). Это значит, что не должно быть лишних затрат, особенно сетевых. Понизить расходы на обработку сетевых пакетов можно с помощью полного запрета ICMP-трафика.

14.7. Проникновение через доверительные узлы

Когда хакер хочет проникнуть на сервер в какой-либо сети, но не может подступиться к нему, то чаще всего приходится прибегать к использованию доверительных компьютеров. Все машины в сети не могут быть защищены абсолютно одинаково. Задача хакера — найти уязвимый компьютер и попробовать проникнуть на сервер через него.

Чтобы решить поставленную задачу, необходимо определить, какие компьютеры в сети сейчас работают. Для этого можно использовать классическую команду ping, вручную запуская ее для каждого IP-адреса целевой сети, но лучше воспользоваться утилитой nmap. Она может автоматически прозондировать (ping sweep) указанный диапазон IP-адресов.

Для сканирования диапазона адресов можно воспользоваться следующей командой:

nmap -sP 192.168.1.0/24

После указания IP-адреса стоит знак "/", за которым следует маска сети. Таким же образом мы задавали маску при настройке сетевого экрана. В ответ на директиву программа пошлет ping-запросы на все компьютеры сети и отобразит нам доступные в настоящее время.

Использование ping-пакетов — удобный и быстрый способ просканировать сеть, но может выдать неверный результат, если атакуемая сеть защищена сетевым экраном и в ней фильтруются ping-пакеты. Но Firewall, установленный на подступах к сети, может защитить только от сканирования извне. Для предотвращения внутреннего зондирования необходимо настраивать сетевой экран на каждом компьютере сети. Можно отключить службу, отвечающую на ping-запросы, но ничего не спасет от прощупывания портов.

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

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

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

□ компьютер находится в доверительных отношениях с сервером. В ОС Linux можно указать такие компьютеры, и с них подключение происходит без каких-либо паролей. Никогда не используйте доверительных отношений, потому что это удар по безопасности! Именно поэтому мы не затрагивали эту тему в данной книге;

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

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

Проблема использования одного пароля для доступа к разным серверам затрагивает не только простых пользователей. Администратор может использовать пароль fxdgdfg и имя root на основном сервере, а на других компьютерах этот же пароль может быть в комбинации с реальным именем администратора. Взломщики собирают все найденные пароли и потом используют их для подбора пароля пользователя root.

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

Вы должны защищать все компьютеры в равной мере и использовать различные пароли для пользователей с правами администратора.

14.8. Небезопасная NFS

Технология NFS (Network File System, сетевая файловая система) была разработана компанией Sun Microsystems в 1989 году. Идея была великолепной. Любой пользователь может монтировать каталоги сервера к своей файловой системе и использовать их, как будто они находятся на компьютере клиента. Это очень удобно в сетях. Пользовательские каталоги могут находиться на сервере и подключаться к клиенту по мере надобности. Таким образом, все файлы будут храниться централизованно, а использоваться, как будто они находятся локально.

1 ... 109 110 111 112 113 114 115 116 117 ... 120
На этой странице вы можете бесплатно читать книгу Linux глазами хакера - Михаил Флёнов бесплатно.
Похожие на Linux глазами хакера - Михаил Флёнов книги

Оставить комментарий