Pull to refresh

Comments 50

UFO just landed and posted this here
Антивирусы для Linux беспомощны чуть менее чем полностью.

Буквально на той неделе изъяли почти 35 экземляров разлчичного зловредного ПО с серверов на Linux. Из них всех все возможные антивирусы на VirusTotal нашли лишь 5. А на 30 заявили, что это нормальные такие программы :)

Антивирусы — это иллюзия защиты, а на Linux — так тем более. Там даже иллюзию никто не пытается создать.
От чего вы хотите защиту антивирусом? От дырок в серверных веб-приложениях?

Это не антивирус, это вам IDS нужна.

А на десктопах у линукса проблем совершенно нет, пока непривыкшие руки не делают wget | curl и прочие sudo ./install.sh. Хотя даже с учетом последнего я о массовых случаях не слышал.
Каким образом IDS зловредное ПО влитое через дырявое приложение или запущенно от соседнего системного пользователя?
Скажите, а как вы нашли те 35 программ? И как определили, что те 30 зловредные?
Вы очень вовремя спросили, я буквально только что отписал небольшой отчет про то как искали: ссылка. Правда, там не все 30, а те, которые были особо тщательно проанализированы.

Обнаруживались они по косвенным признакам, например, попытка подделать Apache, атаки на удаленные серверы, подбор паролей к сторонним серверам. То есть именно по зловредной активности они себя и проявляли.
Это просто наработки какие-то? Или продукт делаете? А то пиаром попахивает…
Пиаром совершенно бесплатного open source GPLv2 продукта? :) Не, ну хотите — используйте, хотите — нет. А эффективность антивирусов там очень хорошо показана.
Просто дело было вечером, делать было не чего…
Продуктом это можно назовётся, если найдутся единомышленники и будет сделаны доработки по дизайну, документации, расширен функционал. Например, нужны утилиты разбора для логов других DNS-серверов, автоматического обновления бан листов и др. Для моих нужд того, что сделано хватает за глаза, но это ж все навсего пока солянка из утилит и сайта одностраничника.
Чего минусим-то человека?

Мнение извесное, неоднократно высказываемое извесными в инетах людьми от безопасности, кстати частненько и даказываемое как в теории так и на практике. Как минимум имеет место…

Иногда, я бы даже дальше пошел и сказал: «Антивирусы беспомощны чуть менее чем полностью». Без слова «линукс».
Поясню мысль:
— вы не представляете сколько раз, вычищая заразу из компьютеров очередного «родственника» (или друга друга и т.д. и т.п.), я находил на нем не старый анивирус (любимое подставить) с актуальными базами; Скорее это даже правило;
— часто, даже не зависит от «марки» операционки (чего я только не видел от XP, вист, 7-к до ubuntu, даже экзотические, по понятиям простых смертных, фряхи, хотя последняя ес-но без антивиря);
— а уж как часто я убеждался в том, что зловреды, извините, клали на установленый там антивирус… Книги писать можно… Иногда, просто теряешся в догадках, как оне туда забираются. Ладно под XP, когда люди под админом работают. Но блин бывало же: в 3-й раз после переустановки, у меня сдавали нервы — закрывал все (забирая пароль админа домой) и все устанавливая только сам, через удаленный доступ. Полгода — и все по новой, причем вплоть до — у зловреда все права администратора.
— всех этих зверей, начиная от питомцев ботовода и заканчивая койн-калькуляторами, оно (антивирь), если еще не отключен зловредом, не видит в упор или если и видит то позно — через два месяца, когда с обнавленными базами наконец-то нюх появился, но на компе уже зоопарк.

Люди спрашивают потом, а зачем мне антивирус и почему он не сработал (или сработал через два месяца, когда — зоопарк). Пытаюсь объяснить такой сказкой:

Антивирус — это как собака наоборот.
Нормальная сторожевая собака не пускает чужих в дом.
Перевернутая собака «Антивирь» — не пускает тех, кого она знает как чужой, остальные для нее нейтральны как минимум, если не свои в доску...


Думаю дальше на хабре развивать мысль не стоит — люди тут образованые… Хотя в последнее время, антивирусы разжирели и это не совсем верно — современные анивирусные пакеты на борту только что атомную бомбу не имеют (я имею ввиду все-то чем и сегодня их пичкают от firewall до ids, эвристики, анализаторов поведения и т.д. и т.п.).
Но упор к сожалению все еще не там, имхо.

Однако, что я заметил, внимание: Как правило, только человек уяснил что антивирь не панацея — доктор (всмысле я) больше не нужен. Больше я там не появляюсь или очень редко вычищаю какой-нить «поисковик» из браузера и подобную мелочь. Никаких больше плясок с бубном (скрытых, не удаляющихся процессов, самараспаковывающихся в самых неожиданных местах и прочей сереьезной дряни).
Сервера и персоналки (под nix) здесь к сожалению не исключение. Их меньше заражается — это да. Но и вычищать их — тот еще геморой.
И уровень дряни повыше, ломают часто серьезно, логи правильно подчищены, вплоть даже как пакеты указаные в apt/history, iptables красивый и все такое няшное. С виду совсем приличный сервер, не подкопаешся — если бы например не слитые пароли и ключи или не абузы одна лучше другой.

Так вот, в продолжение той сказки, простой вопрос:

Почему анивирусные компании дальше разводят «собак наоборот», вместо того чтобы просто установить хорошие «ворота» в доме, ну или хотя бы хорошую «сигнализацию»?

Это все не для холиваров и чуйкой чую тоже нахватаю минусов сейчас, ну да ладно — главное поддержал мнение с которым согласен и которое практикой сто раз подтверждалось.

А статья дельная, спасибо!
ТС, приятная статья и хорошая идея. Вообще со статистикой напрямую плохо у всех без исключения DNS серверов — ее тупо нету. Давно подумыаю чтобы на базе golib-dns нарисовать свой DNS, чтобы можно было почти в реальном времени анализировать аномалии.
Ну напрямую можно и этон инструмент настроить с использованием по расписанию. А в общем, соглашусь, везде нужен большой напильник. В том же bind9 чтобы включить логи нужно еще поискать где и как это сделать. Обидно другое, для использования своего DNS в идеале нужен постоянно включенный компьютер и не нулевые знания об устройсте и конфигурации Dns сервера. Это многих отталкивает, поэтому предложенное решение редко используется.
Еще можно случайно получить открытый для всех DNS-resolver и, как результат, получить реальный шанс поучаствовать в DNS Amplification атаках.
Да да. Именно. Посему удобные анализаторы логов чаще нужны администраторам, которые знают где как их примененить. Без навыков администрирования такое ПО бесполезно.
Открытость резолвера никак принципиально не влияет на возможность проведения через него DNS Amplification.
В своей сети желающих поDDoSить других я могу гонять и изолировать, а если резолвер доступен для всего мира, то весь мир почистить я не могу.
Так что не принципиально, но фактически влияет.
Причем тут своя сеть? DNS Amplification основан на том, что DNS сервер получает UDP-запросы с поддельными source-address жертвы и отвечает на них пакетами в несколько раз больше размера запроса.

К ддосу ботнетами изнутри сети это никакого отношения не имеет.
Как при чем? Если DNS-сервер не доступен для всего интернета, то как до него дойдет пакет запроса от злоумышленника из интернета?

А ботов, которые шлют пакеты с поддельным source-address внутри моей сети я могут и погонять.
ДНС сервер, помимо рекурсии, зачастую (а обычно это его единственное занятие) занимается обслуживанием собственных доменов, на запросы к которым и отправляет ответы на фейковые адреса.

Внутри сети не имеет особого смысла их гонять — нормальный ДНС сервер не будет отправлять ответ через интерфейс, отличный от того с которого пришел запрос. Т.е. если запрос пришел с внутреннего интерфейса, то ддосить боты могут только твою сеть :)
А еще можно посмотреть на возможность аналитики работы powerdns/nsd(?) и чего уж, логи ms dns, оформить это на каком-то более кросслатформенном решении, в общем-то.
Мне тут по ходу работы надо днс заниматься, так что я бы и помог.
и кстати, про национальные.рф/.укр и т.п. тоже не стоит забывать, если уже подходить комплексно
В том и была задумка, если сообществу проект понравится расширять его можно до бесконечности. Главно чтобы пользу приносил. Ну и да, у меня на доработки не особо время есть, так что любая помощь будет не лишней.
Ни у PowerDNS, ни у nsd нет никакой толковой системы аналитики. В nsd ее нет вообще. В PowerDNS есть очень подробный лог топовых резольверов/топовых доменов/записей, но он довольно ограничен и не дает всей информации.

Единственно правильный вариант в данный момент, который существует — это приложение на PF_RING/PCAP слушающее 53й порт и собирающее статистику с него. А-ля dnstop, но умнее.
На википедии например PowerDNS стоит в связке с bind, у последнего есть система логирования. Конечно наиболее универсальное решение — снифер порта DNS-службы. Используемые в DNS протоколы стандартизованы, но все равно снифер весьма не тривиальная задача.
Все их системы логгирования на серьезных нагрузках либо убьют сервер либо приведут к таким лагам DNS сервера, что будет страшно :) Самое крутое, что есть, как мне кажется, у CloudFlare, у них свой демон на GoLang.
Очень не хватает обратных доменных имен к IP адресам. Не понятно же так кто есть кто
О каких обратных речь?
Там есть как IP клиента, который обращался к DNS,
image
так и обратные DNS запросы.
image
Делать gethostbyaddr() на всех IP адресах клиентов.
Это сделать конечно можно, актуально будет если в сети много компьютеров и IP клиента может меняться или DNS лучше ассоциируется с компьютером. Запишу себе в TODO.
Не понимаю, почему нельзя было просто использовать /etc/hosts или iptables -j REJECT, зачем бинд мучать?
Отвечу за топикстартера, когда много техники на каждом смартфоне, планшете, чайнике, etc. настраивать фаирвол и обновлять его то еще удовольствие а при DNS, не являющимся при этом gw, настраиваем 1 раз и вся техника не ходит на зануленные ресурсы, делал похожее на домашнем сервере только подгружал базы адблока и ghostery, чтоб с мобильных устройств рекламу не грузило, просто например, на smart-TV банерорезалку или фаирвол не поставишь.
DNS != Gateway
Часто шлюзом выступает роутер, тогда как ДНС крутится на NAS. Пустить весь трафик через сервер с DNS не всегда целесообразно и чем шире полоса, тем меньше смысла.
Смотря какой DNS-сервер. DNSMASQ, например, умеет смотреть в hosts.
Пользуюсь pdnsd дома, также умеет смотреть, что не меняет сути. Сформировать конфиг для любого DNS сервера дело пары минут и скрипта в несколько строк. Я лишь ответил почему не iptables, а именно dns.
Да, конечно, согласен, что DNS+hosts будет быстрее и проще всего. Хотя по большому счету это уже дело вкуса, что использовать ;-) Вон некоторые уже и базу данных поднять хотят)))
В домашних условиях как раз обычно DNS = Gateway. Тут видимо не совсем обычно все.
Во первых выше правильно сказали, hosts нужно будет настраивать везде (на каждом компьютере ) + поддерживать в актуальном состоянии.
Во вторых мне нужны были логи.
В третьих в статье я сказал, что вариантов много, мой не единственно и не догма.
Да расслабьтесь, я же не наезжаю. Просто интересно стало.
Если бы вы выложили на базе своей аналитики скриптик, который генерировал бы файл hosts с top-1000 хостов с рекламой и счётчиками (типа mc.yandex.ru) — цены бы не было.

А то в интернетах полно школоты, которая собирает многомегабайтные (?!!!) списки хостов, которые в смартфон или в роутер не загрузишь — тяжело им с их маленькими процессорами и памятью.
Вы не поняли, ключевое слово — «топ-1000».

Ну нафига мне, скажите, в hosts держать IP аргентинской баннерокрутилки? Я баннер от неё увижу раз или два в жизни. А вот из-за мегабайтного hosts у меня планшет включается по пять минут _каждый_ раз. Так что пусть там будет Яндекс.Метрика, серверы AdWords и прочий крупняк.
Тогда только самому набивать, у каждого свой ТОП-1000, у меня наоборот, я банер яндекса увижу раз в 2 месяца в лучшем случае, а вот ресурсы из usa и nl вижу систематически. Вообще это не так сложно сделать, неделю позаморачиваться, потом будет попадаться очень редко. Ну а большие списки фильтровать на собственном DNS (самая дешевая виртуалка, если нет своего сервера.) Я например даже через мобильный интернет иду через свой сервер со своим ДНС и без VPN не работаю.
см github.com/mcdir/statdnslog/blob/master/utill/tmp/ban_list.txt. Можно добавлять ручками и банить любые домены.
Можно и hosts генерировать, вообще тривиальная задача (см https://github.com/mcdir/statdnslog/blob/master/utill/tmp/local_serverlist_ban.txt).
А то в интернетах полно школоты, которая собирает многомегабайтные (?!!!) списки хостов, которые в смартфон или в роутер не загрузишь — тяжело им с их маленькими процессорами и памятью.

Но все равно удобнее централизованный контролируемый свой DNS.
Мне МегаФон не даст в их DNS копаться)))
А просто поснифать весь трафик и получить то же самое плюс еще много чего интересного нельзя? Включите в разрыв между провайдером и вашим роутером нечто, в простейшем случае комп с двумя сетевухами, настроенными мостом и наслаждайтесь. Можно и snort какой-нибудь еще на трафик натравить.
Тут вот какой минус, чем шире полоса, тем сложнее это сделать, попробуйте проделать такой фокус на трафике в гигабит или выше, да даже на 200-300 мегабит уже получите задержки, если вдумчиво не заниматься тюнингом всего. Например у меня дома выделенный гигабит, который через год я планирую расширить до 10Г, стоит хороший маршрутизатор L4 и пустить трафик не через него, а через отдельный сервак — это убить свою полосу и загрузить домашний сервер в полку бесполезными вычислениями, ему и так есть чем заняться. А вариант с ДНС в этом плане очень удобный, да не все фильтруется и на конечных устройствах нужно дополнительно принимать меры, но очень многое уходит в null изначально, не скачиваясь и не подвергаясь постобработке.
"… раздаёт DHCP ADSL-модема"

К ситуации автора ваши доводы не относятся, хотя для ваших скоростей они актуальны. Но когда дома гигабит и планируется 10 (?), то и моя реплика про сетевой мост тоже не актуальна. Вы там чем-то таким интересным занимаетесь, что наверняка можете себе позволить rspan на коллектор трафика, стоящий в стороне, имеющий подходящие сетевые интерфейсы и процессорные мощности. Окиньте взглядом вашу стойку, наверняка там такой есть.

Нет rspan не использую, анализа netflow по фильтрам пока хватает с головой, вы правы у меня специфика такая что трафика бывает много, не постоянно, но пару раз в неделю надо перегонять базы в несколько терабайт и тут нужна именно широкая труба, пусть не на долго.
… да и кто, куда и когда из семейных ходит видно

Локальный маленький Большой Брат? ;)
Sign up to leave a comment.

Articles