ОС Linux стала той «критической массой», которая смогла разбудить программистов и хакеров от спячки и организовать работу. Код ядра начал расти и развиваться. Чуть позже добавляется загрузчик, своя файловая система и основные утилиты. В результате, мы имеем то, что называется модным словом «Linux».
Тебе, наверно, интересно, для чего я так вольно и очень кратко рассказал историю Linux? Это вступление должно подвести нас к главному выводу: ядро ОС Linux написано хакерами и для хакеров. Действительно, основанный программистом-одиночкой проект попал в руки огромного количества грамотных программистов, которые хотели использовать свой PC с максимальной отдачей. Для них компьютер не был инструментом – для них это цель, а не средство. Дух свободы и творчества пронизал систему. Линус предугадал такой ход развития и выпустил свое творение под открытой лицензией. Именно эти ключевые моменты сформировали всю ОС.
Сейчас мы наблюдаем бум популярности системы Linux. Интернет кричит, что это лучшая ОС как для серверов, так и для домашнего использования. Но так ли это на самом деле? Действительно, сейчас GNU/Linux представляет собой очень мощную и надежную систему с огромным количеством приложений. Причем это все доступно абсолютно бесплатно и в виде исходных кодов. Но повсеместному внедрению Linux мешает то, что пользователи должен иметь желание учиться. А таких мало… Но не пасующие перед трудностями иногда полностью переходят на Linux. Таким образом, система подтверждает свое звание ОС для хакеров.
Так почему же именно Linux притягивает хакеров всего мира? Объяснить это лучше всего, сравнивая эту ОС с другими системами. Начнем, пожалуй, с самой близкой ОС – FreeBSD. Как ты знаешь, это тоже свободно распространяемая, POSIX-совместимая, доступная в исходных кодах система, то есть она имеет все основные преимущества Linux. И, кроме этого, у нее есть большой плюс: она разрабатывалась не с начала девяностых, а гораздо раньше, при этом очень неглупыми людьми. Кажется, все указывает на явное превосходство FreeBSD. Но есть одно большое но: развивать и дополнять эту BSD-систему могут только избранные разработчики ядра. А значит, далеко не каждый желающий программист может отправить свой участок кода для включения в ОС. С Linux все проще: если ты профи, то твоя работа будет оценена по достоинству и добавлена в ядро, при условии что это действительно полезная наработка.
Решение о выпуске нового релиза Linux принимается исключительно централизованно.
Причем дистрибутив не будет отправлен на реализацию до тех пор, пока множество бета-тестеров по всему миру не заявит об отсутствии ошибок в релиз-кандидате. Таким образом, FreeBSD выпускается достаточно редко, а значит, все новые идеи включаются в нее только после тщательного тестирования. В то время как хакеры, двигая прогресс, подчиняют его себе – используют свои разработки в повседневной работе, тем самым всегда оставаясь «на острие атаки». В итоге FreeBSD не стала «притоном» гениев. Аналогично обстоят дела и с OpenBSD. Хоть эта платформа более открыта, но ее «секьюрность» и постоянный аудит не дают ей возможности развиваться вместе с компьютерным миром. Поэтому и эта ОС не стала пристанищем свободомыслящих талантов ;-(. О Windows говорить как-то даже не хочется… Система, ориентированная на домохозяйку, не может быть гибкой, удобной и интересной компьютерному андеграунду. Остальные системы практически не представляют никакого интереса: либо они мало распространены, либо закрыты и недоступны для модификации. Так что же получит хакер, выбрав для себя ОС Linux? Прежде всего, свободу – свободу выбора, свободу творчества, свободу от монополий и регламентов производителей. И уже только потом очень сильную сетевую ОС.
Администраторы все чаще выбирают Linux для своих детищ. И это легко объяснить. Админ получает, во-первых, очень стабильную ОС. Во-вторых, постоянное обновление и совершенствование не только системы, но всего сетевого ПО. Полный контроль над операционной системой привлекает грамотных системщиков, правда, достичь этого удается только в таких дистрибутивах, как Gentoo или LFS, но тотальная власть над системой реальна. Отсутствие всевозможных «закладок» и «меток», абсолютная прозрачность межсетевого взаимодействия позволяет Linux-админам спать спокойно. И все это дополняется огромным количеством документации, как в интернете, так и в бумажном варианте, как на английском, так и на русском языке. Этот список преимуществ Linux над другими *nix-системами можно продолжать довольно долго. Но! Раз есть админы и хакеры, то должны быть атаки и взломы, не так ли? Хотя система очень стабильна и продуманна, иногда можно слышать об удачных взломах Linux-хостов. Кто же виноват в том, что ОС отдается в руки хакера? Попробуем разобраться в этом.
Чаще всего взломы и успешные атаки на Linux можно объяснить либо неграмотностью, либо ленью админа. Грамотно настроенная и вовремя обновляемая система практически неуязвима.
Какие возможны атаки? Сначала поговорим о самой простой. Реализовать взлом несложно, достаточно почаще посещать security-сайты и отслеживать изменения на top-страницах эксплоитов. При обнаружении новой удаленной уязвимости сразу же начинать искать эксплоит, а, пока его еще не разработали, исследовать сервера на предмет этой уязвимости. Конечно, в твоем сетевом анализаторе этой уязвимости еще нет, и поэтому придется поработать головой: провести полное сканирование хоста на предмет выяснения версии сервисов. При обнаружении бажного релиза ожидать свеженького эксплоита и успевать брать root-шелл. Вообще, лучше немного оптимизировать процесс поддержания тебя в курсе всех изменений на security-фронте. Есть два варианта: простой – подписаться на рассылку, сложный – написать скрипт, который будет отслеживать изменения на заданных тобой Web-ресурсах по IT-безопасности, а в случае обновления автоматически скидывать тебе свежачок на мыло или мобильник (для этих целей можно использовать готовый софт, о котором мы неоднократно писали). Атака на незнание системщика гораздо сложнее. Хакер должен знать Linux и его сервисы гораздо лучше администратора хоста, он должен понимать всю модель взаимодействия сетевых компонентов между собой и с системой. Профессиональные хакеры работают именно так: изучают ОС в совершенстве, атакуют сервера редко, но метко. Успех определяется соотношением твоих IT-знаний и IT-знаний администратора. Собственно, больше принципиальных способов атаки нет. Все остальные варианты представляют собой модификации этих двух.
Самое первое, что следует сделать при удачном входе, – это проверить, нет ли сейчас админа в системе. Команда 'who' позволяет узнать всех пользователей, работающих с системой в данный момент. Таким образом, если root уже зарегистрирован, то хакеру лучше уйти. Действовать дальше нужно только в том случае, если root на своем рабочем месте не обнаружен ;-). Следующий этап – разобраться с системой логирования и регистрации пользователей сервера. Я знаю администраторов, которые так опасаются за свой сервер, что создали скрипт, который при входе root в систему сразу отправляет администратору сообщение на мобильник, в котором содержится время входа, IP-адрес, с которого произошла регистрация, и номер виртуальной консоли, на которой работает сейчас суперюзер. Кроме этого, если не будет подтверждена регистрация, то сеанс завершится через определенный промежуток времени! Реализовано это с помощью следующего скрипта: при входе он создает определенный файл, и, если он не будет удален через некоторое время, программа считает, что произошел взлом сервера и скидывает псевдоадмина с терминала, отправляет предупреждение о критической ситуации настоящему администратору на мобильник. Поэтому сразу при входе нужно внимательно изучить содержание домашнего каталога и просмотреть все файлы, отвечающие за регистрацию. Их имена зависят от оболочки-интерпретатора. Затем – изучение лог-файлов и их очистка. Это первые шаги. Я не случайно так подробно описал одну из ловушек администратора – атакующий должен быть готов ко всему и очень хорошо знать атакуемую ОС. Без этого любой админ сможет рано или поздно вычислить и наказать взломщика. При любых действиях в системе