11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ХАКЕР 04 /171/ 2013 Колонка Синцова85модно инъектить в логи апача PHP-код для дальнейшегоRCE. Это, конечно, старый и унылыйпример, но это показывает силу харденинга.Дело в том, что апач у нас пишет логи от рута,а вот дочерние процессы (форки) запущеныс правами непривилегированного пользователя,например apache. Так вот, в идеальном мире этотюзер не должен иметь прав на чтение в директории/var/log/httpd/, что сведет к неудаче попыткучтения через LFI (но мы-то, конечно, знаем проphpinfo и upload-директорию…). И это минимальныйпример. В других примерах есть кучадиректорий и файлов, которые нежелательныдля доступа другим юзерам, типа apache. Эторазличные конфиги, логи и бэкапы, в которыхможет быть чувствительная информация и —о нет — персональные данные. Для автоматизацииэтого чека можно запилить скрипт, которыйпроверяет права чтения и записи «для всех». Можетоказаться полезным.Кроме того, имеет смысл сварганить скрипт,который ищет чувствительные данные по ФС.Зачем это нужно? Очень просто, запускаем этотскрипт от юзера апач или даже рута, он мучаетсянесколько минут, а затем должен показать,что он ничего не нашел в открытом и доступномвиде. Этот трик применяется всеми вменяемымиPCI DSS аудиторами, которые по регекспамищут следы номеров кредитных карт, и если такойскрипт находит их, то аудитор справедливовыписывает пачку люлей :). Соответственно, мыопределяем, какие данные для нас важны и какиеданные мы защищаем, затем пишем их фингерпринти чекаем автоматом, что фактически означаетбыструю проверку на тему «не может ли хакИр,в случае RCE, LFI или traversal, найти что-тоценное». Примеры таких данных:· маска номеров кредитных карт;· логины и пароли;· персональные данные;· коды активных сессий.Кроме того, несмотря на все вышесказанное,все равно следует проверять /etc/passwd,/etc/shadow, /etc/group на наличие аккаунтовсо слабыми паролями (MD5-хешами), аккаунтовбез паролей и проверить все акки с логин-шеллом.Это также легко автоматизируется на башес грепом.Результат работы утилиты PHP Auditor• net.ipv4.conf.(all|default).rp_filter —тут, конечно, 1. Верификация IP источника, полезнаяфича для защиты от IP spoofing атак.Есть и другие фичи для параноиков, но этобазовые. Кто-то не любит пинги вообще, а у некоторыхтак health_check делается, поэтому здесьсоветовать сложно. Все проверки легко автоматизируются,что полезно, если ты производишьавтодеплоймент.Кое-что про файрвол. Это вопрос архитектурысистемы: например, если наша машинка работаетв Амазоне или же вся сетка режется каким-токрасивым роутером / межсетевым экраном илихитрыми VLAN’ами, то ясно, что вся фильтрацияи логика доступа будет там. Но если мы закидываемсервак в непонятный дата-центр, где у наскуча других проектов, то возникает угроза горизонтальныхатак в пределах дата-центра. То естьнаш MySQL-сервер не видит инета и его не видноиз инета, но другие хосты дата-центра его видят.В таком варианте локальные правила фильтрациибудут нелишними. Проверить это автоматомсложно, так как по умолчанию, особенно еслипроектов много, ты не знаешь, кому какие правиладоступа требуются, и нужно все внимательноизучать и допиливать. Но вот быстрый чек замутитьможно:if (iptables -S|grep -P "^\-P\s+((INPUT)|(FORWARD)|(OUTPUT))\s+ACCEPT$");then echo "Your firewall suck"; fiАККАУНТЫКроме сети, у нас еще есть стандартные сервисы,типа SSH. Требования здесь достаточно просты:• У каждого юзверя свой аккаунт.• Админы заходят через свой аккаунт. Еслинужен root, аккуратно помещаем их учеткив sudoers.• Никаких паролей — вся аутентификация толькопо ключам.• В sudoers никаких палевных записей, типа«tomcat ALL=NOPASSWD: /bin/sh -c cat *».Большая часть чеков так же легко автоматизируется,не буду тут это расписывать.ФАЙЛОВАЯ СИСТЕМАЭто самая важная часть. Например, классикойжанра является уязвимость LFI, и раньше былоTiger security scripts в действииSELINUX/APPARMORОтдельно хочется сказать про этот слой защиты.На самом деле данные системы контроля доступана уровне ядра являются очень эффективнымиинструментами. Но вот их настройка — делосложное и не всегда тривиальное. Крайне рекомендуюозаботиться, но стоит помнить, что любыеизменения в логике работы системы могутбыть заблокированы SeLinux/AppArmor, что приводитк дополнительным проблемам с поддержкойсистемы.И Т. Д., И Т. П.Продолжать описывать рекомендации можнодолго: и поиск SUID-бит исполняемых бинарников,и настройки апача, MySQL — все эти вещидолжны быть выполнены, но поверь — оно тогостоит. Даже если программист совершит ошибку,даже если атакующий проведет атаку, именноhardening будет последней надеждой на то,что урон окажется минимальным.Главный месседж, что я хотел донести:ИБ — это не только хак, безопасное программированиеили слабые пароли, ИБ — это процесс,и вот эту часть с базовыми настройкамисистемы очень многие пропускают — в банках,в госучреждениях, в крупных энтерпрайз-компаниях.Если тебе интересна эта тема и ты хотелбы помочь в создании единой базы знанийпо hardening различных систем и платформ —пиши на defconrussia@gmail.com. Может получитьсяинтересный проект, как по самой базе, таки по автоматизации этого дела.WWWРуководство VMwarehardening: bit.ly/Pxq2mZ;Повышениебезопасности RHEL 5.0:1.usa.gov/1HmtzK;Усиление защитывеб-серверов:1.usa.gov/41oFmE;Настройка php.ini:www.madirish.net/199;Харденинг MySQL:bit.ly/13IsphG

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!