Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Уязвимыми оказываются как сервисы, так и ядро ОС. Если погрешность найдена в программе, то ее нужно обновить, скачав более новую версию с сайта производителя. С ошибками в ОС дело обстоит сложнее. Тут необходимо обновление ядра, что не так уж и просто, если производить операцию из исходных кодов. Но можно облегчить себе задачу, если использовать RPM-пакет, тогда установка будет не намного сложнее, чем любой другой программы.
14.1.8. Патчинг ядра
Помимо официальных обновлений ядра существует множество заплаток, написанных сторонними разработчиками (SELinux, lcap, LIDS и т.д.). Все они предназначены для защиты системы на уровне ядра ОС. Например, можно запретить выполнение кода из стека, что сделает невозможным многие атаки, использующие его переполнение. Некоторые заплатки запрещают просмотр каталога /proc, следят за процессами в системе, защищают от сканирования портов и многое другое.
Почему я не рассматривал примеры сторонних патчей ядра более подробно раньше? Большинство из них требуют перекомпиляции ядра и работают не со всеми версиями/ядрами ОС Linux, а также требуют немалых усилий при установке. Безопасность повышается, и это факт, но стабильность может пошатнуться, потому что эти заплатки делаются сторонними разработчиками, а Red Hat просто может их не учесть.
Именно поэтому я не включал обзор этой тему в данную книгу. Но вы должны знать о существовании таких патчей, и может быть возможности какой-то заплатки вам покажутся удобными и помогут в обеспечении безопасности системы. Но любая их установка будет происходить на ваш страх и риск. Вы также должны учитывать, что обновление ядра может вызвать проблемы. К тому же, каждое новое устанавливаемое вами ядро тоже нужно будет патчить.
14.1.9. Развитие
Одна из важнейших составляющих эффективного управления — образование. В России проблема повышения квалификации стоит особо остро. Сколько администраторов самоучек? Очень много!!! Да и обучение (особенно в регионах) оставляет желать лучшего.
Многие специалисты в сфере безопасности не имеют специального образования. Я достаточно часто общаюсь с администраторами, и, глядя на компьютер, могу сказать, хороший он или нет. Если на компьютере стоят игры, то на 90% такой администратор свободное время тратит на разборки с монстрами. Если игрушек нет, и софт связан только с профессиональной деятельностью, то такой администратор хороший или может стать таким.
Компьютерные технологии стремительно развиваются, и если свободное время на работе тратить на бег с пистолетом по темным коридорам, то не сегодня, так завтра знания устареют. Нужно постоянно повышать свою квалификацию и осваивать что-то новое.
Специальное образование — это хорошо, но оно дает только базовые знания, которые можно получить из литературы в течение месяца. Более конкретные сведения устаревают еще до того момента, как вы закончите высшее учебное заведение, и без подпитки свежими данными можно превратиться в простого продвинутого пользователя.
Кто хорошо работает, тот должен обязательно отдыхать. Но только надо помнить, что деятельность специалиста по безопасности заключается не только в решении текущих задач, но и в повышении квалификации.
14.2. Переполнение буфера
Это одна из самых популярных и в то же время наиболее сложная в использовании уязвимость. Для начала определимся, почему программисты допускают такие ошибки, при которых возможно выполнить переполнение буфера?
В таких языках, как С++, для работы с данными, которые вводит пользователь, выделяется память определенного размера. Информация заносится в этот буфер простым копированием. Большинство программистов рассчитывают максимальный объем данных, который может передать пользователь, и выделяют именно столько памяти (возможен небольшой запас). При этом во время копирования не происходит никаких проверок размера полученных данных. Злоумышленник может воспользоваться этим недостатком и ввести в программу столько информации, что она просто не поместится в памяти и произойдет сбой.
Откуда берется ошибка? Не буду вас загружать программированием и машинными кодами, а попробуем рассмотреть простейший случай переполнения. Структура программы может выглядеть примерно следующим образом:
Код
Код
Буфер данных 50 байт
Код
Код
Буфер для хранения данных находится внутри кода. В данном случае будем считать, что программист выделил под него 50 байт. А что будет, если пользователь передаст в программу 70 байт? Если при приеме информации программа не проверит размер блока, то при записи данных в буфер они выйдут за его пределы и запишутся поверх кода. Это значит, что программа будет испорчена и не сможет выполнять каких-либо действий, и, скорее всего, произойдет зависание.
В старых версиях Windows некоторые ошибки переполнения буфера могли нарушить работу всей ОС. Windows 2000/XP и Linux более защищены, их вывести из строя уже намного сложнее, и при подобных ошибках перестает функционировать только сама программа.
Но это еще полбеды. Наиболее опытные взломщики могут передать такие данные, в которых будет 50 байт мусора, а потом пойдет корректно исполняемый код, но только написанный злоумышленником. Тогда структура программы будет выглядеть примерно таким образом:
Код
Код
Буфер данных 50 байт.
Код хакера
Код хакера
В этом случае код хакера может натворить уже много серьезных дел. Если программа с внедренным кодом работает под правами root, то взломщик может прочитать пароли, открыть какую-либо дверь в системе или просто уничтожить все данные на сервере.
В последнее время ошибок с переполнением буфера становится все меньше, потому что появились средства автоматической проверки кода, но все же их достаточное количество. К тому же, в мире существует не так много хакеров, способных через ошибку переполнения буфера подставить свой собственный код. Но остается возможность написать программку, которая использует ошибку и будет простой в применении. В этом случае любой студент сможет ею воспользоваться для взлома вашего сервера, и это уже будет настоящей угрозой.
Помимо нарушения стека через переполнение буфера хакер может испортить код программы, используя неверное форматирование. Некоторые функции в программировании могут оказаться небезопасными при определенном использовании. Взломщик имеет возможность ввести такую информацию, которая при обработке программой изменит ее код. Принцип борьбы с такими ошибками схож с переполнением буфера, поэтому я не буду заострять на этой проблеме внимание, тем более что нас как пользователей и администраторов не волнуют тонкости создания машинного кода программы.
Читать дальшеИнтервал:
Закладка: