Как стать автором
Обновить

Комментарии 39

Немного б побольше информации в плане: что такое snort, от каких атак спасает, какие результаты
Опубликовал дополнение автора.
НЛО прилетело и опубликовало эту надпись здесь
>Прим. Тут не затронуты вопросы безопасности POST-запросов, но нет ничего невозможного.
Так и отличает :)
нескрипткиддисы введут uni/**/on :)
Кстати, как WAF от битрикса на СС себя показал, никто не в курсе?
НЛО прилетело и опубликовало эту надпись здесь
что то _очень_ мало информации, про _POST бы описали еще.
НЛО прилетело и опубликовало эту надпись здесь
adz.kreon@gmail.com
НЛО прилетело и опубликовало эту надпись здесь
Благодарю за инвайт.
Надо собрать весь материал в кучу — и можно писать большую статью о снорте и его использовании.
Сильно кушает проц? Давно на него смотрел, но машинка делается 400 мбит трафика… не загнется ли железка…
Xeon E5345 2.33 Ggz/1Gb mem
OpenBSD 4.5
5 snort'ов по разным углам + 1 центральный, получающий весь траффик хостинга через cisco monitor. Траффик указан выше.
uptime: 3:48PM up 85 days, 1:49, 3 users, load averages: 0.21, 0.16, 0.10
BTW, (средний траффик — 120 мбит/сек) — ето автор явно привел исход а не вход. Снорт исход в такой конфигурации никак не слушает :)
Сколько входа и какой packet rate?
Это на мониторе с циски на главный снорт уходит — просто завернут весь траффик с влана.
А исход снорт тоже слушает — например вопит если где-то видит ифрейм или признаки Зевса (который Kaspersky.Zbot).
Я так понимаю трафик span'итса. Как на интерфейсе em0 возникает исходящий траффик? Интересна физика процесса :)
Вопрос снят :)
На корневом свитче
!
monitor session 1 source vlan 226
monitor session 1 destination interface Gi0/11

Вот так :)
em0 не имеет своего адреса и просто работает в promisc-mode, получая всё, что пролетает мимо.
НЛО прилетело и опубликовало эту надпись здесь
Ето защита для китайской молодежи :) Для того чтоб почуствовать разницу приведу
пример дефолтового регекспа от mod_security для SQL injection:
SecRule REQUEST_FILENAME|ARGS|ARGS_NAMES|REQUEST_HEADERS|XML:/*|!REQUEST_HEADERS:Referer "(?:\b(?:(?:s(?:elect\b(?:.{1,100}?\b(?:(?:length|count|top)\b.{1,100}?\bfrom|from\b.{1,100}?\bwhere)|.*?\b(?:d(?:ump\b.*\bfrom|ata_type)|(?:to_(?:numbe|cha)|inst)r))|p_(?:(?:addextendedpro|sqlexe)c|(?:oacreat|prepar)e|execute(?:sql)?|makewebtask)|ql_(?:longvarchar|variant))|xp_(?:reg(?:re(?:movemultistring|ad)|delete(?:value|key)|enum(?:value|key)s|addmultistring|write)|e(?:xecresultset|numdsn)|(?:terminat|dirtre)e|availablemedia|loginconfig|cmdshell|filelist|makecab|ntsec)|u(?:nion\b.{1,100}?\bselect|tl_(?:file|http))|group\b.*\bby\b.{1,100}?\bhaving|load\b\W*?\bdata\b.*\binfile|(?:n?varcha|tbcreato)r|autonomous_transaction|open(?:rowset|query)|1\s*=\s*1|dbms_java)\b|i(?:n(?:to\b\W*?\b(?:dump|out)file|sert\b\W*?\binto|ner\b\W*?\bjoin)\b|(?:f(?:\b\W*?\(\W*?\bbenchmark|null\b)|snull\b)\W*?\()|(?:having|or|and)\b\s+(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"])\s*[=<>]+|print\b\W*?\@\@|cast\b\W*?\()|(?:;\W*?\b(?:shutdown|drop)|\@\@version)\b|'(?:s(?:qloledb|a)|msdasql|dbo)')" \

Для XSS:
# XSS
SecRule REQUEST_FILENAME|ARGS|ARGS_NAMES|REQUEST_HEADERS|XML:/*|!REQUEST_HEADERS:Referer "(?:\b(?:(?:type\b\W*?\b(?:text\b\W*?\b(?:j(?:ava)?|ecma|vb)|application\b\W*?\bx-(?:java|vb))script|c(?:opyparentfolder|reatetextrange)|get(?:special|parent)folder)\b|on(?:(?:mo(?:use(?:o(?:ver|ut)|down|move|up)|ve)|key(?:press|down|up)|c(?:hange|lick)|s(?:elec|ubmi)t|(?:un)?load|dragdrop|resize|focus|blur)\b\W*?=|abort\b)|(?:l(?:owsrc\b\W*?\b(?:(?:java|vb)script|shell)|ivescript)|(?:href|url)\b\W*?\b(?:(?:java|vb)script|shell)|background-image|mocha):|s(?:(?:tyle\b\W*=.*\bexpression\b\W*|ettimeout\b\W*?)\(|rc\b\W*?\b(?:(?:java|vb)script|shell|http):)|a(?:ctivexobject\b|lert\b\W*?\())|<(?:(?:body\b.*?\b(?:backgroun|onloa)d|input\b.*?\btype\b\W*?\bimage|script|meta)\b|!\[cdata\[)|(?:\.(?:(?:execscrip|addimpor)t|(?:fromcharcod|cooki)e|innerhtml)|\@import)\b)"

При том что снорт пизоцинирует себя как IDS/IPS у него нет даже pps/bps каунтеров.
Не снортом единым надо защищаться от XSS
Прочитайте про dynamic rules.
Я имел ввиду то, что даная конфигурация snort'а на самом деле не защищает от XSS, SQL Injections, File injection etc… И даная рекомендация для организации полноценного web-firewall'а _не есть_ хорошим примером для production environment.
Она обеспечивает внешний барьер между web-сервером и идиотами с потными ладошками, которые прочитали статью на Хакере и полезли ломать всё подряд.
А комплексную безопасность опеспечивает много факторов, в том числе регулярная проверка на уязвимости, проведение краш-тестов, грамотная конфигурация хостинг-сервера и многое другое.
Снорт — первый барьер. А от хакера-профессионала спасёт разьве что отключение компьютера от электричества и запирание в сейф…
Так зачем строить етот барьер, тратить ресурс, только для «идиотов с потными ладошками»? Есть лучшее решение для даной задачи, например тот же mod_security, имлементация которого позволяет боротся и с «хакерами-профессионалами» втом числе.
А кто сказал, что snort используется только для web?
У меня лично туда внесены стандартные фрагменты шеллкодов (спасибо милворму), нулл-сканы, rpc-сплоиты и другие примеры народного творчества. Всё это обслуживает prelude-manager.
Все события безопасности регистрируются, обрабатываются, генерируются абьюсы. Для защиты от DDoS-атак есть экстренный скрипт-перенаправлятор, который кидает весь роутинг на IDS (где стоит очень злой pf). Всё это интегрировано с корневой циской, в случае крупной атаки с подсети — подсеть будет выпилена из route table очень быстро. И всё — в автономном режиме.
Или вы хотели увидеть 300-страничный мануал по настройке комплексной системы инфомационной безопасности?
Простите, так я за это деньги получаю.
P.S. Более «продвинутая» статья появится чуть позже.
Спасобо, мануала не надо, я и сам такое строю :). Как разлуются у вас 2-3 гбитние flood DDoS на забивание канала?
Сначала — выпиливанием подсети на bgp-маршрутизаторе, потом — автоматическим письмом аплинкам и абьюзом владельцам AS'ки где живёт эта сеть.
Для этого у нас 3 внешних канала + пиринг :)
Что щитает pps/bps per ip?
общий — pf/log
Конкретный по протоколам — snort и dynamic rules.
Точнее они не считают per ip, а проверяют на превышение допустимого per ip/per network.
Интересно было бы почитать в принципе, какие подходы применяются у вас :) Разумеется, без специфических деталей и ноу хау.

Так сказать, для расширения общего кругозора относительно направлений
mod_security — такое же унылое говно как и большинство сигнатурных IDS. Особенно когда ставящие его не идут дальше правил по умолчанию, во многом полагаясь уже на сам факт наличия «чего-то эдакого». В таком случае любая блокировка обходится даже минимальной модификацией зловредного кода.
Лучше не допускать появления дыр в приложениях, нежели делать такие вот «затычки».
Не допускать «появления дыр в приложениях» можна только в контолируемих окружениях, а ето явно не хостинг, и не компания где больше 100 девелоперов. А про «унылое говно» — назови хотя б 1 продукт, которий лучше притивостоит web-атакам в неконтролируемих окружениях, даже не из open-source.
Правильно, не допускать дыр в приложениях.
Жаль, что не все дыры разработчик может/успевает учесть.
Периодически проводите аудиты безопасности веб приложений при помощи сторонних компаний, которые заинтересованы максимально выполнить свои обязанности и меют большой опыт в проведении таких мероприятий.
Вот нравятся мне такие статьи.

Рассказывают про какую-то плюшку и сразу приводят примеры конфигов в неизвестном формате. Про формат — ни слова. Что делают ключевые слова — неясно. Как правила писать — неясно. Какой синтаксис у этого конфига — неясно.

Аффтару два.
Простите, а при статье про новый девайс надо отсканить и выложить инструкцию пользователя?
А рассказывая кому-то о своей работе, вы зачитываете вслух мануалы?
Кому будет интересно — разберется.
Гугл поможет.
А почему о том, что для snort_inline нужно настроить iptables — ни слова? И про ключ -Q, и про modprobe ip_queue. До всего пришлось догугливаться. Или я изначально пошел не тем путем (скачал исходники snort_inline)?
Такое ощущение, что вы рассказывали про snort, а не snort_inline. Но снорт же не может блокировать трафик?
Вот тут толково нарисовано openmaniak.com/inline_final.php
Не смотрели как Snort 2.8.* научить inline?
Может кто напишет про функции inline в snort 2.8.5? Что крутить чтобы все заработало как надо? Отправка всего трафика -j QUEUE привиодит к тому что вообще ничего не работает. Кто может сталкивался?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории