id: Гость   вход   регистрация
текущее время 11:20 28/03/2024
Автор темы: meticulous, тема открыта 23/03/2015 01:43 Печать
Категории: уязвимости, атаки
https://www.pgpru.com/Форум/ПрактическаяБезопасность/ПятаяКолоннаКакСНейБороться
создать
просмотр
ссылки

"Пятая колонна": как с ней бороться?


1. Описать проблему побудило не до конца решенная задача борьба с внутренними врагами операционной системы.


Обычно среди всех проблем информационной безопасности компьютерных систем всех пользователей беспокоят в основном проблемы две проблемы – программные вирусы и внешние вторжения.
Программные вирусы, по моей скромной классификации, это те, кто способен массово репродуцироваться и наносить вандальный ущерб данным и системам.
Будем полагать, что с первым видом вирусов есть кому бороться – число заинтересованных компаний, производящих антивирусное ПО, давно превысило многие десятки, и условно говоря, борьба с ними ведется с переменным успехом, но в целом эти вирусы как бы побеждаются. Отметим, что основным методом вычисления вирусов считается использование сигнатур и эвристики.
Внешние вторжения – это попытки внешних злоумышленников обнаружить бреши в системе жертвы и через них пробраться в нее для совершения кражи данных и/или заражения системы.
И здесь будем полагать, что отражение внешних вторжений также успешно решено – программных и аппаратных файрволов сейчас существует немыслимое количество – выбирай любой на свой вкус.


Поэтому сосредоточимся на недостаточно решенной проблеме – обнаружение внутренних системы.
Назовем этих врагов "пятой колонной" – уж очень схоже их поведение и коварная разрушительная деятельность. Любая операционная система может быть заражена тем или иным способом как программными вирусами, так и "троянскими" закладками, обычно стремящихся вести себя тихо, ведя свою подрывную работу как можно незаметнее, иногда до поры до времени – это и есть "пятая колонна" в ПО.
Более того – "пятая колонна" может попасть в нее не только не путем внешнего вторжения, а даже изначально – об этом мог позаботиться производитель ПО двойного назначения, на вид вполне легитимного и благонадежного или "железа".


Этот вид вредоносного софта может заниматься в системе самыми разнообразными неблаговидными делами – красть и отправлять "хозяину" логины/пароли и пользовательские данные, несанкционированно крутить рекламу, нагружать процессор майнингом биткоинов и прочих электронных денег – словом, заниматься тем, что ни одному пользователю не понравится.
Главное – "пятая колонна" занимается воровством чужих данных, и за это ее следует расстрелять вычислить и нейтрализовать.


 
На страницу: 1, 2, 3, 4, 5, 6 След.
Комментарии
— meticulous (23/03/2015 01:44)   профиль/связь   <#>
комментариев: 48   документов: 4   редакций: 0
2. Из этих двух задач более сложным является определение наличия "пятой колонны". Ее можно определять как и вирусы – сигнатурами и эвристикой, но это методы не гарантируют 100%-й результат.
Более надежным является детекция ее активности по несанкционированным попыткам "пятой колонны" пробраться из системы наружу в Интернет.
В качестве примера можно привести два известных антивирусных программных продукта – NOD32 и KAVP. Оба содержат, помимо классического антивируса, файрволы, которые отслеживают попытки внешних вторжений в систему, так и попытки "пятой колонны" вырваться наружу и "слить" уворованные данные своему хозяину.
И, если доверять создателям этих ПО, то задачу определения и нейтрализации "пятой колонны" можно считать решенной.
Однако лично я, как потомственный параноик, не доверяю ни этим создателям, ни каким-либо другим, и в то же время, считая их весьма неглупыми людьми, подозреваю, что в свое ПО они встроили свои собственные закладки – шпионаж в Сети приобрел колоссальные масштабы. Чтобы поймать за руку любых из таких созидателей, нужно использовать общеизвестную гебистскую методику: заставить ПО совершенно независимых (а лучше – непримиримо конкурирующих) производителей следить друг за другом и стучать друг на друга.
В данном примере, это например, сочетание того же KAVP и NOD32, Symantec и т.п.
Однако известно, что антивирусное ПО на одном общем компьютере совершенно не уживаются друг с другом, ну да ладно, это не представляет сферу моей озабоченности как решения для Windows, который меня не интересует.
— meticulous (23/03/2015 01:45)   профиль/связь   <#>
комментариев: 48   документов: 4   редакций: 0
3. Кратко из истории защитного ПО.
В эпоху Windows 95 был такой популярный файрвол – AtGuard, или @Guard.
Он успешно вычислял в режиме реально времени внешние как попытки вторжения в систему, так и попытки внутреннего софта вырваться в наружу, причем с его точной идентификацией. Данный файрвол работал в диалоговом режиме и был чрезвычайно простым и удобным в использовании.
К сожалению, спустя годы, когда его слава миновала и о нем почти позабыли, кто-то случайно определил, что AtGuard сам по себе являлся не только весьма успешным файрволом, но и ПО двойного назначения – типичным примером
"пятой колонной".
Тогда какие у нас сейчас есть основания верить KAVP, NOD32, или еще кому-то? Как говорится, большое "ХМ".

Второй, положительны пример – из ОС.
Mandriva 2008 содержала встроенный файрвол, который не только срезал попытки внешних злоумышленников прорваться в систему, но и отображал их в реальном времени в виде всплывающих сообщений – очень удобный и наглядный в использовании файрвол.
Поступал ли он также в отношении "пятой колонны", уже не помню, но если да – то это было великолепное решение как для системы, так и для пользователя, больше ничего, собственно, и не нужно.
— meticulous (23/03/2015 01:46)   профиль/связь   <#>
комментариев: 48   документов: 4   редакций: 0
4. Кратко из опыта.
Одно время использовал на работе в качестве шлюза в Интернет 2-карточный сервер с операционной системой ClearOS. Эта система содержала две важные для нашей проблемы компоненты – файрвол (iptables) и прокси-сервер (squid).
Файрвол настраивался так, чтобы резать все входящие, кроме нужных, и все исходящие.
Исходящие HTTP/HTTPS направлялись на прокси-сервер. Прокси-сервер настраивался как "непрозрачный", что позволяло использовать авторизацию для браузеров.
Таким образом, пользователи локалки ходили браузером в Интернет только через прокси и только после авторизации на нем путем ввода индивидуального логина/пароля.
В итоге получалось, что та часть "пятой колонны" ПК пользователей (виндовс), которая рвалась наружу по своим уникальным портам, просто блокировалась правилами файрвола и отмечалась в его логах, а наиболее хитро$опая часть "колонны" при попытке вырваться наружу "как все", т.е. через прокси, во-первых, получала облом по полной морде, т.к. не обладала знаниями о логинах/паролях, во-вторых, так же успешно фиксировалась в логах прокси, где впоследствии анализировалась.

То, что если ClearOS и содержал бы свою собственную "пятую колонну" (теоретически это также возможно), меня волновало меньше всего, т.к. максимум, на кого она настучать – так это на самое себя, а это невелика потеря. А если бы эта "клиаросовская колонна" попыталась ломануться на ПК пользователей, то была отражена их собственными виндовс-файрволами.

Благодаря такой защитной системе я узнал мноооого интересного о софте, установленном на ПК пользователей. Благодаря логам на сервере было изобличено и нейтрализовано множество с виду вполне полезного и благонадежного софта – всю ту тщательно замаскированную "пятую колонну", которая была готова с радостью "слить и настучать куда не следует"

Практика работы с ClearOS была самой положительной, и я уж было готов применить ее также в домашнем применение.
Но тут вмешался тов.unknown и вдребезги разбил мои чаяния по поводу совместимости этой схемы с сетью Tor.
— meticulous (23/03/2015 01:48)   профиль/связь   <#>
комментариев: 48   документов: 4   редакций: 0
Ну и собственно, теперь вопрос: что мне, истинному параноику, сейчас делать с этой "пятой колонной", если у меня установлен Linux с GNOME-2?
Я не знаю такого готового решения, которое бы решало все эти задачи:

1. Обнаруживало и блокировало в real-time попытки внешних злоумышлеников проникнуть в/или заразить систему, отображая их в удобном виде во всплывающих сообщениях.
2. Обнаруживало и блокировало деятельность "пятой колонны" – также в real-time во всплывающих сообщениях – и это меня беспокоит больше всего.

PS-1. Как сумел, так и описал, уж не обессудьте, ошибки в рассуждениях возможны.
PS-2. Часть обсуждения перенесена из
https://www.pgpru.com/forum/an....._comments=1#comments и
https://www.pgpru.com/forum/an....._comments=1#comments
и пока писал здесь, там уже что-написали.
— meticulous (23/03/2015 02:04, исправлен 23/03/2015 02:09)   профиль/связь   <#>
комментариев: 48   документов: 4   редакций: 0

Из написанного "там":


В Linux вы вообще ставите только пакеты, заверенные электронной подписью из официального дистра. Ну или, дополнительно из доверяемого проекта (Torproject).

Скажу вам даже больше: как старый гебист :)) я вообще никому не доверяю.
Ни подписям создателей софта, которых я в глаза не видел, ни Tor'у, ни проектам, которые содержат в своем названии слово "траст" (и трастовым банкам в том числе), ни кому вообще, даже Мюллеру. Потому что каждый человек это такая сволочь... стоит только погрузить его в соответствующие условия (пожалуй, не стоит развивать этот щекотливый вопрос дальше).


Но пользоваться приходится, и поэтому и в IT по возможности применяю наш старый "добрый" метод: каждый софт обязан стучать друг на друга, и только в этом случае мы получим лишь относительно объективную картину ситуации и происходящих в ней процессов.


PS. "Доверие" – это вообще чистое безумие.
Или иезуитский прием, чтобы облапошить собрата.

— Гость (23/03/2015 02:50)   <#>
meticulous, а себе вы доверяете?

В общем, вы правильный тезис излагаете (доверяй, но проверяй) в хардкорном формате.

И как быть простому параноику?
Лечить паранойю.

Скажу вам даже больше: как старый гебист
Здравия желаю, товарищ старый гебист. Помните меня? Ну, Ялта, 72 год, 14 июля? Мимо нас еще мамаша с коляской ходила, а там малыш был такой противный с флажком СССР в руке (знал бы тогда, что там Гиркин, удавил бы на месте) Если припоминаете, то заходите, посидим, чаёк попьём, код попишем, софт потестим, в танчики поиграем.

Проблема meticulousа в том, что он напоминает типажа из онекдота: скажите, уважаемый, а другого глобуса у вас нету?
— Гость (23/03/2015 04:32)   <#>

Снифер + нотификатор, что может быть сложнее?


А ещё более хитрая часть колонны перехватывала ваш пароль при входе в браузере, а потом пользовалась им для слива инфы.


Вы очень похабно исказили идею того, что хочется. Правильно сформулированный вопрос есть половина ответа.


Для начала не пользовать Gnome-2, а установить минималистичный оконный менеджер. fluxbox или openbox какие-нибудь, следуя примеру SATtva'ы и unknown'а.


Снифер (tcpdump или wireshrak) + нотификатор. Можно одним скриптом выуживать данные, а другим отображать из через osd_cat.


Есть пример реалистичных правил iptables [1], там в логах всё пишется, что пожелаете. Время от времени выполняете в консоли под рутом iptables-save -c и смотрите счётчики пакетов на log-правилах. Если там не [0:0], то выполняете
# cat /var/log/syslog |grep метка
и смотрите, какие именно пакеты были заблокированы (про программу там ничего написано не будет, но идентификатор юзера, который послал пакет, будет иметься). Можно ещё лучше автоматизировать, если кому-то хочется. Через root-tails или osd_cat писать последние системные логи, список текущих сетевых соединений (в реальном времени), выводы со снифера, логи чата... всё, что хотите — вот пример. На самом деле, при правильно организованном десктопе это, скорей всего, всё сплошное ненужно, но не буду вдаваться в подробности. Помимо osd_cat можно выводить информацию через conky, gkrellm (есть на скрине) и другие нотификаторы.

Есть скрипт-команда, которая пишет в терминал в реальном времени все соединения, идущие не на заданный список IP:порт/протокол, только учтите общий момент: снифер сам по себе, блокирование правил — само по себе. Снифер покажет пакет, даже если он был заблокирован. Вам поидее нужна обработка вывода обоих. Я не знаю, есть ли готовые простые инструменты под эти цели (с GUI и всем остальным), наверняка есть, поищите. Ключевые слова вам были даны.


Помним тебя флудер, помним [2][создать], [3], [4], [5]. Помолчать можешь? Спасибо.
— Гость (23/03/2015 06:36)   <#>

Спасибо, что не забываете. А зачем два раза приводить один коммент? Выборка кончилась?


Могу. Только этим и занимаюсь в основном.


Не за что. И вы заходите — посидим, чаёк попьём, код попишем, LC посмотрим, софт потестим, в танчики поиграем — кораблики с самолётиками попускаем.
— unknown (23/03/2015 09:34, исправлен 23/03/2015 09:35)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Я честно предупредил, что вы хотите странного, в любом случае — как-то оно заработает. Насчёт того, повысится ли от этого безопасность — вопрос спорный.

— meticulous (23/03/2015 17:54, исправлен 23/03/2015 17:55)   профиль/связь   <#>
комментариев: 48   документов: 4   редакций: 0
Снифер + нотификатор, что может быть сложнее?

Наверное, несложно, раз вы так спрашиваете. Тогда почему не видно этих решений в массовых ОС?
(на всякий случай еще раз отмечу, что речь в этом топике идет сугубо о Linux).


А ещё более хитрая часть колонны перехватывала ваш пароль при входе в браузере, а потом пользовалась им для слива инфы.

Хотел об этом написать, но потом решил доставить вам удовольствие лишний раз меня пнуть за упущение :)
Все же таких хитрых вредоносов в удельном отношении меньше. И кстати, не знаю, как передается логин/пароль от браузера на прокси – если по httpS, то они получат обломус.


Вы очень похабно исказили идею того, что хочется. Правильно сформулированный вопрос есть половина ответа.

Ну извините, как сумел.


Для начала не пользовать Gnome-2, а установить минималистичный оконный менеджер. fluxbox или openbox какие-нибудь, следуя примеру SATtva'ы и unknown'а.

Обычно так и поступаю, используя LXDE или XFCE. Но в данном случае указал Gnome по той причине, что под него больше прикладного софта, и шансов найти нужный мне для решения описанной задачи больше.
Хотя, конечно, можно юзать тот же LXDE, а нужный софт, если таковой найдется под Gnome, подтянет только нужные ему гномовские библиотеки.


Снифер (tcpdump или wireshrak) + нотификатор. Можно одним скриптом выуживать данные, а другим отображать из через osd_cat.

Еще раз хочу обратить внимание, что хочу не просто решить описаную задачу по "пятой колонне", но решить ее, скажем так, красиво. Потому что красиво это синоним удобства и юзабельности, а в данной задаче – и вовсе целесообразности.
Поскольку я провожу время в Интернете используя Firefox/TBB (а не Lynx/Elinks), то хочу получать результаты в той же среде, что и они. Поэтому всякие там скрипты в мрачной консоли меня совершенно не прельщают – это все-таки не сервер, а десктоп.. Тем более, что в виндовозном KAVP/NOD32 эта красота присутствует как наглядный и дразнящий пример.


Есть пример реалистичных правил iptables [1], там в логах всё пишется, что пожелаете.

Есть скрипт-команда, которая пишет в терминал в реальном

и т.д.


Аналогично. Еще раз: я хочу получать результаты в той же среде обитания, в которой провожу время, и не переключаться на консоль.
Иными словами – хочу получать результаты в GUI. При этом логи активности "пятой колонны", да и попыток внешних второжений удобно читать в виде веб-страниц, но всплывающие real-time сообщения – только в GUI-окошках на переднем плане, иначе их никто не заметит.
Помимо юзабельного представления, хотелось бы иметь хотя бы небольшой предварительный анализ событий, скажем, соответствующие комментарии к событиям.


Я честно предупредил, что вы хотите странного, в любом случае — как-то оно заработает. Насчёт того, повысится ли от этого безопасность — вопрос спорный.

Да-да, спасибо, конечно за предупреждение. Но оно ведь не решает поставленную задачу, и проблема остается в силе.


Я не знаю, есть ли готовые простые инструменты под эти цели (с GUI и всем остальным), наверняка есть, поищите.

Вот! Это ключевое определение проблемы. Под "GUI и всем остальным" – такого нету.
По крайней мере мне найти не удалось, иначе бы не тратил свое и ваше время на эту дискуссию, которую затеял после длительных поисков.

— SATtva (23/03/2015 18:07)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Линуксовый софт способен работать под любым WM/DE. Исключение — это только приложения, являющиеся составной частью конкретной DE (типа какого-нибудь Okular для KDE), причём даже их зачастую можно запускать в сторонних DE, просто для установки они потащат за собой весь родной DE, что обычно нежелательно.
— unknown (23/03/2015 20:30, исправлен 23/03/2015 20:36)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Это ирония, всё достаточно сложно. SELinux — это свой метаязык с компиляцией модулей, подгружаемых с ядром. AppArmor — замороченные методики списков. И всё в таком же духе. Как чего-то отловить с дампов снифов трафика — не представляю, есть какой-то греп для tcpdump, но это поиск иголки в стоге сена. Да и зловред сначала получит локальные права, затем замаскируется скорее под плагин к браузеру, будет заворачивать свой трафик в Tor или HTTPS. Можно всё логировать и разбирать дампы всей активности, тогда на час работы в сети у вас будет уходить несколько часов ручного разбора полётов. Или закрутите гайки файрволом iptables по максимуму, чтобы всё подозрительное он скинул в лог. Тогда вам к консоли и сисадминству понадобится ещё масса скиллов по парсингу (python или perl).



Ну тогда эта система не для вас. Вообще, чтобы обнаружить взлом и компрометацию системы нужно понимать как она работает. И уметь самосостоятельно её собрать и разобрать с завязанными глазами.
Если кто-то напишет что-то для безопасности и будет заморачиваться с графическими оболочками, то я бы посчитал это дурным знаком. Ладно там, развлечения всякие, но серьёзные системные вещи — строго через консоль. Исключение — TBB и то, этого очень сильно требовала массовость распространения. Ну ещё к SELinux есть какие-то бесполезные граф. оболочки, потому что АНБ Red Hat одно время очень сильно продвигала его в корпоративный сектор. Вот только все рецепты в оффблоге разработчиков опять таки про консоль.


Вы всё хотите влезть на ёлку, ничего себе не ободрав. И безопасность в Linux достигается не разведением троянов с последующими попытками их отлавливать. Ещё про аудит взлома серверов я могу что-то представить, почитайте что-нибудь про это.

— Гость (23/03/2015 22:16)   <#>

В этом деле никакой конкуренции западных производителей НЕТ. В каждом посылаемом шпионском пакете данных они передают свои метки по которым друг друга опознают и не стучат на шпионаж друг друга. Единственный выход: ставить внешние аппаратные схемы с собственноручно написаным ПО, просеивающим пакеты.
— Гость (24/03/2015 00:46)   <#>

Потому что почти никому не нужно.

должна быть предусмотрена возможность регистрации появления или накопления событий, несущих угрозу политике безопасности системы. Администратор безопасности должен немедленно извещаться о попытках нарушения политики безопасности, а система, в случае продолжения попыток, должна пресекать их наименее болезненным способом.

Класс B3 — довольно высокий уровень, нет этого в ОС общего назначения.


Я тоже вам могу предоставить удовольствие повариться в собственном соку без связи с внешним миром, разбирайтесь в своих «хочу» сами.


Какой вы наивный. Пароль будет перехвачен в момент ввода по типу этой или подобной процедуры, а не по сети.


Это и плохо. Это не оконные менеджеры (тем более, минималистичные).


Это удобно, юзабельно и красиво, в чём проблема?


При чём тут Lynx или elinks? Вы пишете скрипт, а результаты он, когда запущен, будет отражать, как захотите: может обои менять, может текст поверх всех окон выводить (osd_cat), может писать текст поверх обоев (root-tails). Как заскриптуете, так и будет. Наверняка есть рисовалки и с полноценными окошками, но для нотификаторов это, IMHO, хуже, чем прозрачные надписи поверх всего, не засланяющие основной текст окон. Поставьте пакет xosd-bin (или xosd, см. как он у вас в дистрибутиве называется), выполните в консоли echo "test" | osd_cat и увидете результат. Ваша цель — подсунуть вместо test нужный текст. Недавно на сайте пример был на эту тему.

Сегодня вам хочется одно, завтра — другое, послезавтра — третье, и что, будете под каждый чих готовое чьё-то GUI искать и ныть потом, что работает оно не так, как хотелось бы? Не проще ли разобраться с написанием скриптов и реализовать свои хотелки на шелле? Это полезный навык, пригодится ещё не одну тысячу раз при автоматизации тех или иных задач.


Так и не надо будет переключаться.


Формируйте скриптом txt- или html-файл, открывайте его потом, чем угодно.


Отлично, osd_cat делает это. Покурите его.


Ну какие описания вы напишете в скрипте, такие и будут.


Автору это ненужно. Он же сказал, простейший нотификатор в стиле того, что в мандриве было.


А ему больше и не надо. :)


Такие ситуации отлавливаться не будут. Предполагается, что никаких целевых эксплоитов нет и поиск идёт либо незлонамеренных утечек, либо злонамеренных, но глупых и отлавливаемых. По сути нужно время от времени парсить вывод netstat и писать список соединений, а также парсить вывод заблокированных пакетов и выводить их через osd_cat или ещё что. Задача решается за день. Можно наворотить удобств всяких в парсинге и его преобразовании, но это уже кто как пожелает, у каждого будут индивидуальные требования.


У него ж не корпоративная сеть, чтоб были такие сложности. Случайные утечки можно вручную разобрать. Я могу рассказать про успехи своего аудита. Пакетов много, но событий не так много. Либо это запуск приложения, которое пытается сделать DNS-резволинг напрямую, поэтому попытка оседает в заблокированных логах, либо при получении почты шлётся на loopback-интерфейсе нотификационный UDP-пакет на 512-ый порт (даже не подозревал, что такое есть). Больше никаких утечек обнаружено не было. По сути и то и то является штатной ситуацией. На да, я знаю, что при получении почты, к примеру, такое возникает, а при запуске какого-нибудь Psi возникает сифон по DNS. Но ничего нового из логов я на протяжении недель не узнаю, хотя время от времени в них заглядываю. Зачем мне нотификатор? Было бы интересней анализировать внешнюю активность по сниферу, чтобы знать, кто вас сканит и насколько интенсивно, но это уже другая задача.


+1
— Гость (24/03/2015 01:15)   <#>
Меня очень интересует, как противостоять закладкам в арендуемом ПО, о которых явно написано в EULA со смыслом "не нравится слежка – не пользуйтесь нашим ПО".
На страницу: 1, 2, 3, 4, 5, 6 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3