- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Спецвыпуск журнала «Хакер» #47, октябрь 2004 г. - Хакер
Шрифт:
Интервал:
Закладка:
Пропиши скачивание свежей базы в crontab(5) (корректнее: установи daily_status_security_portaudit_enable="YES» в /etc/periodic.conf) и любуйся ежедневными отчетами.
Нетрадиционные методыЕсли ты заметил, BSD больше подходит для организации защищенной системы в рамках классической модели безопасности UNIX. Тому способствуют как защитные механизмы системы (kernel securelevel, jail, systrace), так и средства аудита (accounting, periodic), доступные, что называется, «из коробки». Но можно пойти дальше и радикально поменять саму модель защиты, вместо традиционной дискреционной модели доступа применив одну из мандатных моделей. Это уже серьезно и требует хотя бы поверхностного знакомства с моделями безопасности. И здесь выигрывает Linux, для которого существуют такие проекты, как RSBAC (www.rsbac.org) и SELinux (www.nsa.gov/selinux). Они делают из Linux мощную систему с поддержкой Role Based Access Control (RBAC), Domain Type Enforcement (DTE) и кучей другого. Во FreeBSD 5, правда, тоже появилась возможность контроля доступа по расширенным атрибутам файлов (Mandatory Access Control), но это капля в море. Мандатные модели доступа – отдельная, серьезная тема, сложная в реализации применительно к конкретному production серверу и требующая внимательной эксплуатации.
Напоследок процитирую известную фразу: «If you fuck up OpenBSD it gets unsecure. Linux must be fucked up to be secure. Windows must be secure erased to be secure». Доля правды в ней есть, но помни, что главное для безопасности системы – не операционка, а тот, кто ей управляет.
Бойся жестких ссылокТакая с виду безобидная вещь, как хардлинк, может стать причиной компрометации системы. Представь, что в системе есть некая суидная программа. Права на нее, как на любой исполняемый файл, 755. Затем в программе нашли дыру, позволяющую с ее помощью получить локального рута. Ты вовремя обновился, но через пару дней тебя все равно хакнули. Как?
Посмотри полный вывод команды ls:
ЛИСТИНГ
[(3:47)(85.32%)(p3):~ ] ls -al rfc2818.txt
–rw-r-r– 1 toxa toxa 15170 15 июл 19:54 rfc2818.txt
Второе поле, сразу после прав доступа, – количество жестких ссылок на файл. В данном случае ссылка одна – сам файл, и, если я его удалю, он исчезнет. Но если ссылок больше, при удалении файла (командой rm) он не удалится, а лишь уменьшит счетчик ссылок на единицу, оставив свою жесткую копию. Полное стирание файла возможно только при обнулении счетчика хардлинков.
Взломщик создал жесткую ссылку программы в свой каталог, затем в ней была обнаружена уязвимость, ты, как тебе казалось, удалил дырявую версию программы, заменив ее новой, но на самом деле в каталоге взломщика осталась первоначальная версия программы, которая никуда с диска не делась. После чего он и поэксплуатировал уязвимость.
Почему же просто не скопировать программу себе в каталог? А потому, что потеряются первоначальные права на файл и владельцем вместо рута станет хакер, после чего наличие на ней suid-бита станет бессмысленным.
Следи за паролямиЕсли заглянуть в /etc/shadow (/etc/master.passwd в BSD), то можно увидеть массу системных учетных записей, но все они залочены – в поле пароля вместо хэша у них символ «*» или «!!», а вместо шелла – что-то вроде /sbin/nologin или /bin/false. Если у системного пользователя (не реального юзера) ты увидишь прописанный реальный шелл и хэш пароля, бей тревогу.
Безопасность – это не продукт, а процесс.
При желании ядро можно убрать в ящик в прямом смысле слова :).
Еще одно веяние времени эпохи параноиков – отслеживание системных вызовов, совершаемых программой, и дальнейшее их ограничение.
Изначальный подсчет контрольных сумм (MD5-хэшей) системных утилит и файлов и дальнейшая их проверка с помощью утилит типа tripwire или aide может избавить от сильной головной боли в дальнейшем. В случае изменения файла утилита найдет расхождение в MD5-отпечатке и поднимет тревогу.
Хардлинки работают только в пределах одной файловой системы (одной партиции).
Найти все suid/sgid бинарники в системе можно следующей командой:
# find / -type f ( -perm -4000 -o -perm -2000 ) -ls
цифра 4 в маске означает suid, 2 – sgid.
Выжми все из фаервола! / Возможности iptables
Докучаев Дмитрий aka Forb ([email protected])
Фаервол – неотъемлемая часть *nix-системы. Но, как любой программный продукт, он нуждается в тщательной настройке. Сейчас я расскажу о том, как грамотно защитить свой сервер с помощью сетевого экрана iptables. Этот фаервол является самым простым и надежным, поэтому рекомендую ознакомиться с этим материалом.
Грамотный админ никогда не забудет установить фаервол на свою машину. Ведь брандмауэр позволяет решать множество важных задач. В первую очередь, он «заботится» о сетевой безопасности, фильтруя хакерские пакеты. При желании можно замутить и локальную безопасность, запретив юзерам выкачивать порнофильмы и варезные программы. Также с помощью сетевого экрана реально поднять NAT (Network Address Translation), позволяющий локальным машинам полноценно юзать ресурсы интернета.
Закроемся от внешних враговЕсли ты работал с iptables, то знаешь принцип действия этого фаервола. Он содержит несколько таблиц, в каждой из которых могут находиться так называемые цепочки. Дефолтовая таблица filter содержит три цепи – INPUT, OUTPUT и FORWARD. Первая отвечает за входящие пакеты, вторая – за исходящие. Последняя служит для управления обменом данных между соседними узлами. Наиболее популярный метод настройки iptables заключается в добавлении разрешающих правил в цепь INPUT с последующим изменением ее политики. У каждой цепочки есть своя политика: ACCEPT, REJECT и DROP. По умолчанию все пакеты проходят без ограничений. Но стоит лишь изменить политику на REJECT (запрещение соединения с взведением флага RST в ответном пакете) или DROP (простое игнорирование пакета), как данные будут нещадно отфильтровываться. Естественно, что администратор заранее пропишет правила, по которым нужные пакеты будут без проблем проходить на сервер.
Давай проведем подобную настройку фаервола. В первую очередь, позаботимся, чтобы пакеты беспрепятственно проходили через петлевой интерфейс (нам незачем запрещать локальные соединения). Выполним несложную команду:
iptables –A INPUT –i lo –j ACCEPT.
Как видно, команда iptables понимает различные параметры. Первый из них передает цепь, в которую будут занесены данные. Второй указывает на интерфейс. Последний определяет политику правила. Дословно команда означает следующее: «анести в цепь INPUT правило, разрешающее прием пакетов с интерфейса lo. Просто? Еще бы :).
Дальше чуть сложнее. Любой пакет может иметь 4 различных состояния. NEW представляет собой обычный пакет, инициирующий новое соединение. ESTABLISHED – пакет от уже установленного соединения. RELATED – новый пакет данных, который был создан старым соединением. И, наконец, INVALID – неизвестный пакет. Тебе необходимо разрешить только два вида – RELATED и ESTABLISHED, потому как они являются доверенными. Без дополнительных средств iptables не умеет различать состояния. В этом ему помогает специальный модуль state.
iptables –A INPUT –p tcp –m state –state RELATED,ESTABLISHED –j ACCEPT.
Правило усложнилось тремя новыми опциями. Параметр –p показывает, что рулес применяется к TCP-протоколу (без этого флажка нельзя заюзать модуль state). Опция –m позволяет подключать дополнительные модули. Третий параметр state относится к одноименному модулю. Он показывает, что правило обрабатывает пакеты определенного вида.
Следующий шаг направлен на настройку соединения с сервисами. Допустим, на сервере установлен proftpd, postfix и popa3d. На самом деле, сервисов может быть и больше, суть в том, чтобы не забыть о каждом из них. Итак, предположим, что postfix должен принимать данные от узла 192.168.1.1. К proftpd имеют право подключаться только клиенты сегмента 192.168.0.0/24, а снимать почту могут все. Давай оформим такую политику в виде трех несложных правил. Для удобства рекомендую создать дополнительную цепь services и подключить ее к основной INPUT.
Листинг
iptables –N services
iptables –A INPUT –j services
iptables –A services –p tcp –dport 25 –s 192.168.1.1 –j ACCEPT
iptables –A services –p tcp –dport 21 –s 192.168.0.0/24 –j ACCEPT
iptables –A services –p tcp –dport 110 –j ACCEPT
Флаг –s отвечает за IP-адрес отправителя. Он может принимать значение как отдельной станции, так и целого сегмента. Теперь, когда цепь INPUT полностью настроена, можно менять ее политику и тестировать созданные правила. Последний штрих достигается следующей командой:
iptables –P INPUT DROP
Можно сказать, что теперь твой сервер защищен от посторонних глаз. Однако существует много способов обхода фаерволов, один из которых заключается в написании connback-сценария. Последний сам соединяется с хакерской машиной. Чтобы пресечь подобные действия, необходимо фильтровать исходящий трафик. Менять политику цепи не стоит, нужно просто добавить несколько ограничивающих правил с участием модуля owner.

