Тотальный антивирус - Тесты и сравнения - Форумы Anti-Malware.ru Перейти к содержанию
Иван

Тотальный антивирус

Recommended Posts

Иван

интересно, выделенное жирным енто о ком?

Тотальный антивирус

Источник: Хакер (Москва)

Автор: Крис Касперски

Универсальный антивирусный центр своими руками

Появившаяся некогда идея проверять файл сразу по многим антивирусам оказалась очень удачной. Онлайновая антивирусная служба www.virustotal.com имеет тысячи посещений ежедневно, при этом обладая дюжиной недостатков. Сервис не раскрывает своих секретов, однако автор давно разобрал его по винтикам и теперь работает над улучшенной реализацией.

В то время как одни пользователи держат на компьютере целый зоопарк различных антивирусов, конфликтующих друг с другом и тормозящих ПК (не говоря уже о стоимости лицензий или сложности поиска правильного "лекарства"), хакеры предпочитают ловить малварь самостоятельно. В крайнем случае — проверяют подозрительные файлы на бесплатных онлайновых службах типа того же www.virustotal.com. Эти же службы используются для "обкатки" вирусов собственного написания на предмет обнаружения эвристическими анализаторами. И хотя, если верить блогу Евгения Касперского (www. viruslist.com/en/weblog), хакеры не доверяют virus-total’у, поскольку он передает подозрительные файлы антивирусным компаниям и вирусы начинают палиться еще на старте, эта точка зрения отражает лишь малую часть действительности. Да, действительно, профессиональные разработчики атакующих программ и rootkit’ов проверяют их на "вшивость" исключительно локальным способом на своих собственных машинах, предотвращая утечку информации, но... профессионалов единицы, к тому же экспериментируя с virus-total’ом, хакеры определяют общие критерии ругательства антивирусов, выявляя последовательности машинных команд/вызовов API-функций, приводящих к срабатыванию эвристического анализатора. Однажды "обломав" антивирус, хакер может многократно использовать найденный способ обхода эвристика. Достаточно посетить любые форумы, где обитают вирусописатели, чтобы убедиться, что они весьма неравнодушны к virus-total’у и активно его используют.

А что если создать еще более качественный сервис? Ведь virus-total примитивен до ужаса — качество сканирования оставляет желать лучшего, не говоря уже о длинных "социалистических" очередях, в которых приходится подолгу простаивать из-за частых перегрузок сервера (а все потому, что балансировка нагрузки и оптимизация изначально не предусматривались!). На момент написания этих строк, мыщъх по заказу одной антивирусной компании (имя которой разглашать не вправе) руководит разработкой онлайнового сервиса, рассчитанного на "магистральную" загрузку и предоставляющего пользователям кучу всевозможных рычагов управления. Естественно, исходный код к статье не прилагается, да он и не нужен, главное — это концепт, плюс некоторые неочевидные тонкости, с которыми придется столкнуться при "промышленных" масштабах эксплуатации. Естественно, это требует широких сетевых каналов, мощных многопроцессорных систем и еще кучу всего. Словом, без солидных финансовых вложений тут никак не обойтись. Однако никто не заставляет нас создавать сервис планетарного масштаба и, если постараться, можно вполне уложиться в бюджет $2000 или даже меньше. Нам потребуется интернет-канал с безлимитным тарифом, чтобы злые люди не кинули нас на входящий трафик, который будет весьма значительным. В качестве компьютера вполне подойдет машина с процессором C ore2Duo и парой гигабайт оперативной памяти. О проблемах с лицензированием антивирусов мы поговорим в одноименной врезке, а пока отметим, что никаких особых программистских навыков не понадобится. Подойдет любой язык (Си, Perl, PHP) и минимальный опыт работы с C GI (пользуясь случаем, хочу порекомендовать библиотеку C GIC ).

***

Viru s-total изнутри

Virus-total устроен не просто, а очень просто. Он использует консольные версии антивирусов, управляемые посредством командой строки и выдающие результат сканирования в стандартный проток вывода, который легко перенаправить в файл или пайп (pipe).

Что мы делаем? Через специальную форму на сайте закачиваем "подопытный" файл, скармливаем его антивирусу, предварительно перенаправив вывод во временный файл/пайп, который тут же парсим (то есть выбрасываем все лишнее, оставляя только статус проверки и имя вируса). Парсить вывод легче всего Perl’ом, поддерживающим мощный механизм регулярных выражений, но Си-программы намного более производительны, а потому предпочтительнее (особенно, при большом наплыве пользователей).

На этом, собственно говоря, возможности virus-total’а и заканчиваются. Это создает большие проблемы: во-первых, далеко не все антивирусы имеют консольные версии, а, во-вторых, даже те, что имеют, поведением зачастую радикально отличаются от полноценных GUI -версий. В чем легко убедиться, сравнив результаты сканирования большой коллекции вирусов локальным способом и через virus-total — сравнение будет отнюдь не в пользу virus-total’а.

Учитывая, что практически все антивирусы (и GUI -версии в том числе) поддерживают запись результатов сканирования в log-файл и позволяют задавать имя сканируемого файла через командную строку или, на худой конец, через механизм DDE (Dynamic Data Exchange), ничего не стоит прикрутить GUI -версию к онлайновой службе. Просто "скармливаем" антивирусу файл, форсируем запись результатов сканирования в log-файл, который парсим так же, как и вывод консольных версий. Остается только собрать "показания" всех имеющихся в нашем распоряжении антивирусов, оформить их в виде HTML-таблицы и выдать на экран, что по силам даже самым начинающим программистам.

В клинических случаях, когда антивирус начисто игнорирует командную строку или не умеет вести логи, на помощь приходит механизм Windows-сообщений (Windows Message или, сокращенно, WM). Посылая WM-сообщения элементам управления антивируса, мы можем манипулировать кнопками, меню и прочими элементами управления по своему усмотрению. Аналогичным способом извлекается и содержимое окна, содержащего результаты проверки. Получив форматированный rich-текст или plain-текст, пропускаем его через парсер — и все!

***

Маленькие секреты больших серверов

При попытке реализации вышеописанной модели неизбежно всплывут проблемы удручающе низкой производительности. Но мы не боимся трудностей и начнем щемить их одну за другой. Первое и очевидное. Как показывает статистика, различные пользователи преимущество проверяют одни и те же файлы, как правило, принадлежащие Windows или популярным программным пакетам. Чтобы сократить накладные расходы, рекомендуется подсчитывать контрольную сумму файла перед его проверкой и, если такой файл уже проверялся ранее, выдавать уже готовые результаты сканирования, сохраненные в базе данных. На первый взгляд, в реализации алгоритма нет ничего сложного, но тут притаилось немало подводных камней. Вот наиболее актуальные:

• антивирусные базы обновляются постоянно и потому даже за короткий промежуток времени информация о сканировании безнадежно устаревает. Следовательно, необходимо вместе с контрольной суммой сохранять и дату последнего времени сканирования (отображая ее пользователю), а также предусмотреть кнопочку "rescan";

• использование алгоритма CRC 32 может показаться плохой идеей, поскольку он выдает множество коллизий (разные файлы имеют идентичные контрольные суммы), к тому же его легко подделать, модифицировав любое количество байт файла и затем скорректировав 4 байта так, чтобы скомпенсировать искажения. Однако CRC 32 шустро работает, обгоняя MD5 и другие хорошие алгоритмы. Поэтому возникает идея: для каждого файла, прогоняемого через антивирусы, мы генерируем CRC 32 и MD5 (с учетом времени сканирования накладными расходами на расчет контрольной суммы можно пренебречь), а при последующей проверке залитого пользователем файла сначала проверяем CRC 32 (проверяется очень быстро) и, если такой контрольной суммы в нашей базе нет, MD5 можно и не вычислять — зачем? Ведь и так видно, что файл еще не проверялся;

• многие "честные" файлы (особенно входящие в состав операционной системы) снабжены цифровой подписью или их целостность может быть проверена путем обращения к серверам Microsoft, что осуществляется намного быстрее антивирусного сканирования, и раз по данным Microsoft, файл не изменен, зачем его прогонять через антивирусы?!

Также крайне желательно реализовать опцию, позволяющую пользователю выбирать режим сканирования с эвристикой и без (чего не сделано на virustotal). Эвристика представляет собой довольно затратную по времени и ресурсам ЦП операцию, но далеко не все пользователи доверяют полученным результатам и хотят видеть имя конкретного вируса (если он есть), а не расплывчатое предупреждение, обычно ругающееся на упаковщик/протектор, которым обработан честный файл. С другой стороны, вирусописателям совершенно неинтересно сканирование по базе (так как только что написанного вируса там заведомо нет) и они предпочли бы задействовать только эвристику, экономя тем самым ресурсы нашего сервера. Так почему бы не пойти им навстречу?

Закачка больших файлов предоставляет серьезную проблему, имеющую несколько решений. Самое простое (и глупое) — установить верхний

предел закачиваемого файла в пару мегабайт (или около того), чуть-чуть умнее: лимитировать суммарный размер всех файлов, закачанных за сутки с одного I P (но тут возникает проблема определения I P, поскольку очень часто мы будем видеть не I P пользователя, а I P прокси сервера провайдера). Полезно рекомендовать юзерам сжимать файлы перед отправкой zip’ом или другим популярным архиватором для уменьшения нагрузки на канал или делать это автоматически на клиентской стороне специальным скриптом. Наконец, за сканирование больших файлов можно взимать деньги, но об этом мы поговорим чуть позже, а пока продолжим тему оптимизации. Профилировка показывает, что львиная доля накладных расходов приходится на запуск антивируса, инициализацию его движка и загрузку антивирусных баз. Перемещение антивирусов на виртуальный диск существенно увеличивает "подвижность" системы, но накладные расходы на создание новых процессов по-прежнему будут большими, поэтому мы используем GUI -версии антивирусов и, путем эмуляции клавиатурного ввода, воздействуем на элементы управления, заставляя их сканировать новые файлы и выдавать результат. При этом антивирус запускается всего один раз. Красота! Впрочем, можно реализовать и динамический алгоритм: при небольшой нагрузке на сервер о накладных расходах на порождение новых процессов можно не заботиться, а с ростом нагрузки — просто брать несколько файлов, закачанных пользователями за последние несколько минут и "скармливать" их антивирусу всем скопом, в результате чего количество запусков резко сокращается. Главное не запутаться, какой пользователь что закачал, но это уже мелочи технической реализации.

Естественно, сканирование лучше запускать на всех антивирусах параллельно, а не последовательно и вместо того, чтобы "тупо" запрещать пользователю закрывать окно браузера до окончания процесса сканирования (как это делает virus-total), отслеживать TCP/IP соединение и при его обрыве автоматически "выбрасывать" файл, принадлежащий данному пользователю, из очереди на сканирование. Плюс реализовать стандартную кнопку "отмены" (так же отсутствующую у virus-total’а) — если пользователь видит, что первые три-четыре антивируса ничего не находят, так следует ли дожидаться результатов проверки всех антивирусов? Особенно, если самые качественные антивирусы поставить вперед остальных, выделив им максимальный приоритет ЦП. Как вариант, можно вообще не следить за TCP/IP сессий и при заливке нового файла назначать пользователю I D задачи, который он может ввести в любое время, отключившись от Сети и повторно подключившись, например, через час, когда его очередь уже подошла. А можно рассылать результаты сканирования по e-mail — тогда пользователь не будет скучать в ожидании своей очереди.

И совсем не помешает прикрутить к нашему сервису утилиту вроде PEiD, определяющую тип и версию упаковщика/проектора (правда, довольно часто ошибающуюся). И опционально реализовать распаковку набором статических распаковщиков, работающих намного быстрее тех, что встроены в антивирусы. Тут есть один подводный камень — хотя 99% вирусов распознаются по распакованному дампу, некоторые, особо ленивые, сотрудники антивирусных компаний включают в базу сигнатуры упакованного файла, и после распаковки он перестает опознаваться как вирус. Однако, учитывая, что распакованный файл прогоняется через легион антивирусов, вероятность ложно-негативного срабатывания стремится к нулю.

***

Зарабатываем деньги лопатами

Мир жесток и все в нем упирается в деньги. На голом энтузиазме никой онлайновый сервис долго не продержится, поэтому приходится разрабатывать не только программный код, но и жизнеспособную бизнес-схему. Рассмотрим возможные источники дохода. Первое — рост посещаемости нашего сайта. На посещаемости, как известно, можно нехило заработать, особенно, если мы, например, продаем собственные защитные комплексы, предлагаем услуги по пен-тестингу и т. д. Онлайновый сервис привлекает клиентов намного активнее любых баннеров и, главное, привлекает именно тот контингент, который нам нужен, следовательно, возросшие объемы продаж покроют все расходы на поддержку и обслуживание серверов, отплату трафика и т. д.

Второе — отчисления от антивирусных компаний, чью продукцию мы рекламируем и кому передаем штаммы свежих вирусов. Тут, правда, много не заработаешь, поскольку лишь небольшая часть посетителей кликнет по ссылке "купить" антивирус, а стоимость вирусного штамма обычно составляет $1 (а то и меньше). Вот и считай, на какой уровень посещаемости нужно выйти, чтобы окупить расходы на поддержку сервера, которые, кстати говоря, тем больше, чем выше посещаемость.

Третье — взимать деньги непосредственно с самих пользователей. Хочешь подолгу стоять в очередях и сканировать файлы не больше чем ... мегабайт? Пожалуйста, пользуйся нашим сервисом бесплатно! Хочешь иметь определенные привилегии — будь добр заплатить. Главное, выбрать удобную схему оплаты. Здесь вам не Америка, здесь климат (финансовый) иной. Кредитные карты имеют единицы, электронные системы платежей только начинают набирать популярность. Зато практически каждый IT-специалист — владелец сотового телефона, а значит, можно воспользоваться микро-платежами через SMS либо потребовать от клиента сообщить номер карты универсальной оплаты (перечислив заданную сумму на счет, который он может расходовать, когда пользуется нашим сервисом). Как показывает практика, сотовые платежи приносят наибольшую отдачу, поскольку телефоны распространены повсеместно, а сам процесс оплаты требует минимум телодвижений, и (что немаловажно) клиент практически ничем не рискует. А вот с кредитными картами все намного сложнее и есть риск, что нечестный оператор снимет с них совсем не ту сумму, какая ожидалась. Тоже относится и к микро-платежам через SMS. Гарантий, что снимут 150 рублей, а не 450, у клиента нет никаких.

***

А что в итоге?

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

***

Проблемы конфиденциальности

Вирусы встречаются не только в программах, но и в офисных документах, PDF’ах и прочих файлах с конфиденциальной информацией, разглашать которую крайне нежелательно, поэтому необходимо предусмотреть опцию "не отсылать данный файл в антивирусные центры", при необходимости взводимую пользователем. Технически это реализуется проще простого, но... как избежать злоупотреблений?! Особенно, если мы строим наш бизнес на отправке свежих штаммов разработчикам антивирусов?

Идея первая (тупая до безобразия) — наплевать на все приличия и отсылать файлы в антивирусные центры независимо от состояния каких-то там галочек. Главное: создать у пользователя иллюзию, что его конфиденциальность строго блюдут, ну а что происходит на самом деле, он все равно не узнает. Ну... до тех пор, пока тайное не станет явным и не разразится скандал, идущий совсем не на пользу нашему ресурсу.

Идея вторая — поддерживать эту опцию только для пользователей, открывшим у нас счет. Кстати, это представляет собой нехилую мотивацию для оплаты услуг, особенно с учетом того, что о конфиденциальности в основном беспокоятся корпоративные пользователи, привыкшие платить за услуги (в отличие от домашних юзеров, тяготеющих к халяве вне зависимости от стоимости полнофункционального аккаунта).

Идея третья — файл все-таки отправлять, но перед этим удалять всю текстовую и графическую информацию, что не противоречит ни логике, ни здравому смыслу, ни даже соглашению, заключенному с пользователем нашего сервиса.

***

info

Сервисы, подобные virustotal.com, распространены в хакерских кругах. Основное их отличие — приватность. Они никогда не отправляют обработанные файлы в антивирусные центры (гарантируя непопадание малвари в антивирусные базы), но за каждую проверку взимают небольшую плату. Одругих хакерских сервисах ты можешь прочитать в подробной статье прошлого номера ][.

***

warning

Антивирусные пакеты зачастую несовместимы между собой. Но, как правило, несовместимы проактивные защиты и мониторы, работающие в реальном времени, в то время как статические сканнеры (а именно они нам и нужны) отлично функционируют в одной системе.

***

Юридические проблемы лицензирования

Пользовательские соглашения (EULA) на коммерческие антивирусы не разрешают использовать их в онлайновых сервисах без заключения специальных контрактов, что вообще-то логично. Однако не стоит думать, что всякий контракт обязательно связан с необходимостью выплаты дополнительных отчислений. Вовсе нет! Достаточно проявить надлежащий дипломатический подход!

Крупные бренды заинтересованы в рекламе своей продукции и потому охотно разрешают использовать полнофункциональные версии антивирусов без всяких отчислений, поскольку конечный пользователь реально видит, кто сосет, а кто нет. Правда, могут выдвинуть встречные условия типа сохранения логотипов, генерации ссылок на их сайты и т. д. Все это мелочи, решаемые в рабочем порядке. А что мелкие бренды? Они, конечно, понимают, что сравнение с конкурентами будет не в их пользу. Тут есть один очень интересный момент. Мелкие антивирусные компании страдают хронической нехваткой свежих вирусов, которые попадают к ним в последнюю очередь, и потому онлайновый сервис, автоматически отсылающий уже детектируемые конкурентами вирусы — для них прекрасное средство пополнения вирусных баз и продвижения в различных рейтингах. С мелких брендов можно даже взимать плату за каждый новый вирус, и есть большая вероятность, что платить они согласятся!

Короче говоря, лицензионные проблемы — это и не проблемы вовсе. А вот разных проволочек — предостаточно и нужно заранее быть готовым к тому, что нас будут перебрасывать от одного ответственного лица (которое ничего не решает) к другому, третьему, и так по цепочке... Это уже издержки цивилизации, против которых не попрешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BiTA

Раньше, в каком-то из журналов, он (Крис) писал, что сотрудничает с индийской K7 Computing http://www.k7computing.com/

Возможно, и здесь речь о них же

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Андрей-001

Иван

не говоря уже о длинных "социалистических" очередях, в которых приходится подолгу простаивать из-за частых перегрузок сервера

Крис Касперски боится 5-минутных очередей???

На момент написания этих строк, мыщъх по заказу одной антивирусной компании

Да, забавно, а ещё, что это за слово - мыщъх??? :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dot_sent
Да, забавно, а ещё, что это за слово - мыщъх??? biggrin.gif

Давно- и общеизвестный ник Криса. Страна должна знать своих героев! (С)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Андрей-001
мыщъх ... руководит
Страна должна знать своих героев!

Понятно, им тут видимо подразумевается прикрытие слова МЫ?

Только вот писать о себе одновременно во множественно-величавом и одновременно в третьем лице, это, уж, извините, через чур... (чтобы никого не обидеть) ммм... величественный героизм. :) Очень даже хорошо. :)

Сервисы, подобные virustotal.com, распространены в хакерских кругах. Основное их отличие — приватность. Они никогда не отправляют обработанные файлы в антивирусные центры (гарантируя непопадание малвари в антивирусные базы), но за каждую проверку взимают небольшую плату.

А это он о ком? Неужели - это правда?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
A.
Понятно, им тут видимо подразумевается прикрытие слова МЫ?

Только вот писать о себе одновременно во множественно-величавом и одновременно в третьем лице, это, уж, извините, через чур... (чтобы никого не обидеть) ммм... величественный героизм. :) Очень даже хорошо. :)

А это он о ком? Неужели - это правда?

http://www.viruslist.com/ru/weblog?discuss...70&return=1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Андрей-001

A.

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

http://www.viruslist.com/ru/weblog?discuss...70&return=1

Спасибо. Ознакомился. (Правда цитирована немножко не та часть моего сообщения, выше показана мною правильная цитата). В ответ могу привести известную фразу: Дааа, ужж... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • Ego Dekker
      Домашние антивирусы для Windows были обновлены до версии 19.0.14.
    • PR55.RP55
      Microsoft ускоряет Проводник в Windows 11 с помощью предзагрузки https://www.comss.ru/page.php?id=18618
    • AM_Bot
      Вендор Crosstech Solutions Group выпустил решение для защиты контейнерной инфраструктуры Crosstech Container Security (CTCS). Оно обеспечивает безопасность контейнерных сред: от сканирования образов до контроля запуска рабочих нагрузок и реагирования на инциденты в средах выполнения.      ВведениеФункциональные возможности Crosstech Container Security2.1. Анализ и контроль безопасности образов2.2. Контроль запуска контейнеров2.3. Безопасность в средах выполнения (Runtime Security)2.4. Безопасность окружения2.5. Внешние интеграцииАрхитектура Crosstech Container Security3.1. Основные компоненты Crosstech Container SecurityСистемные требования и лицензирование Crosstech Container Security4.1. Лицензирование4.2. Требования к аппаратной части4.3. Требования к программной части4.4. Процесс установкиСценарии использования5.1. Сценарий №1. Сканирование образов5.2. Сценарий №2. Политики безопасности образов контейнеров5.3. Сценарий №3. Контроль запуска контейнеров5.4. Сценарий №4. Мониторинг безопасности сред выполненияВыводыВведениеРоссийский рынок контейнерных разработок постоянно растёт. В 2024 году затраты на ПО для контейнеризации достигли 3 млрд рублей — это на 66 % больше, чем в 2023. Контейнерные технологии ускоряют процессы разработки, экономят ресурсы компаний, поэтому их всё чаще внедряют в свою работу ИТ-департаменты.Вместе с ростом масштабов контейнеризации увеличивается и поверхность атак: уязвимости в образах, ошибки конфигураций, несанкционированные действия внутри контейнеров. Crosstech Container Security помогает компаниям выстраивать комплексную систему защиты контейнерной инфраструктуры.Функциональные возможности Crosstech Container SecurityCrosstech Container Security объединяет функции анализа, мониторинга и управления безопасностью контейнерных сред. Решение охватывает весь жизненный цикл контейнера — от момента его создания до удаления. Продукт помогает DevSecOps-командам выявлять уязвимости, проверять конфигурации, контролировать сетевую активность и реагировать на инциденты в режиме реального времени.Анализ и контроль безопасности образовCrosstech Container Security интегрируется с реестрами хранения образов и позволяет проводить их сканирование как в ручном режиме, так и по расписанию. В результате анализа система обнаруживает дефекты в образах: уязвимости, неправильные конфигурации, секреты, а также фиксирует используемые в образах OSS-лицензии для пакетов и библиотек. По каждому найденному дефекту предоставляется детальная информация.CTCS поддерживает экспорт SBOM в форматах SPDX и CycloneDx, что упрощает аудит и обмен данными с другими решениями. Интерфейс продукта предоставляет визуализацию образов с маппингом (сопоставлением данных) на дефекты безопасности. CTCS также осуществляет дискаверинг (обнаружение) образов, располагающихся в защищаемых кластерах и на standalone-хостах.Для автоматизации контроля доступны настраиваемые политики безопасности образов, разделяемые по критериям:наличие уязвимостей в образах контейнеров выше заданной оценки критичности;наличие уязвимостей в образах контейнеров согласно заданным идентификаторам;обнаружение root в Dockerfile;возможность указания перечня образов, на которые будет распространяться созданная политика безопасности образов.При нарушении хотя бы одного из критериев политики администратор получает уведомление в интерфейсе CTCS и может оперативно принять меры: заблокировать образ, исключить его из деплоя или добавить в список исключений с указанием причины. Такой подход обеспечивает прозрачность процессов и повышает уровень доверия к среде разработки и эксплуатации.Контроль запуска контейнеровРешение обеспечивает контроль запуска контейнеров как в средах Kubernetes, так и на отдельных standalone-хостах в соответствии с заданными политиками безопасности. Это позволяет предотвращать запуск рабочих нагрузок, не соответствующих требованиям безопасности компании, ещё на этапе их инициализации.В зависимости от настроек администратор может выбрать режим реагирования: блокирование или оповещение о нарушении политики безопасности. Информация обо всех срабатываниях отображается в интерфейсе системы, обеспечивая прозрачность и возможность оперативного реагирования.Политики безопасности включают следующие критерии:попытка запуска контейнеров на базе образов, не соответствующих политикам безопасности;попытка запуска контейнеров из-под пользователя root;попытка запуска контейнеров с повышенными привилегиями ядра Linux;контроль запуска контейнеров на базе образов, не прошедших сканирование CTCS.Дополнительно решение поддерживает интеграцию с OPA Gatekeeper и имеет возможность создания и импорта политик через интерфейс CTCS.Безопасность в средах выполнения (Runtime Security)CTCS использует возможности инструмента Tetragon для создания и применения кастомных политик безопасности, позволяющих контролировать сетевые взаимодействия внутри контейнеров. Администраторы могут выбрать набор кластеров для распространения политик, что обеспечивает гибкость при внедрении требований безопасности.Вся информация о срабатываниях политик фиксируется в интерфейсе CTCS, предоставляя специалистам по информационной безопасности прозрачную картину активности в средах выполнения и возможность оперативного реагирования на инциденты.Безопасность окруженияРешение выполняет сканирование кластеров на соответствие стандартам конфигурирования CIS Kubernetes Benchmarks. Аналогично система проводит проверку standalone-хостов на соответствие CIS Docker Benchmarks. Дополнительно CTCS поддерживает сканирование конфигурационных файлов, расположенных в директориях нод кластеров, выполняя роль сканера на основе IaC (Infrastructure as Code, управление инфраструктурой через использование кода).Внешние интеграцииРешение поддерживает интеграцию с реестрами хранения образов, что обеспечивает доступ к актуальным данным для анализа и контроля безопасности контейнеров. Также CTCS поддерживает передачу журналов событий в системы сбора по протоколу Syslog для их централизованного хранения и обработки.Доступна интеграция с системой идентификации, управления доступом Keycloak с поддержкой OAuth и доменными службами каталогов. Это позволяет пользователям авторизовываться в интерфейсе системы через доменные учётные записи. Рисунок 1. Планы по развитию Crosstech Container Security Архитектура Crosstech Container SecurityАрхитектура CTCS реализована в формате однонаправленных соединений со стороны ядра системы в сторону агентов защиты (протокол TCP/IP), располагающихся в защищаемых кластерах. Такой подход позволяет использовать инстанс ядра в единственном экземпляре для инфраструктур, сегментированных по уровням доверия. Рисунок 2. Логическая архитектура Crosstech Container Security Основные компоненты Crosstech Container SecurityCTCS состоит из 3 основных компонентов:CTCS Core — группа микросервисов, отвечающая за управление системой: хранение данных, настроек, создание политик безопасности, бизнес-логика продукта, а также взаимодействие со смежными системами.CTCS Agent-Manager: модуль агент-менеджера реализован в формате оператора Kubernetes с целью контроля за установкой и изменениями кастомных ресурсов (custom resource definition, CRD), а также управления и передачи информации агент-воркерам, устанавливаемым на каждую защищаемую ноду в формате DaemonSet.CTCS Scanner — модуль, сканирующий образы контейнеров на уязвимости, неправильные конфигурации, конфиденциальные данные, информацию по OSS-лицензиям для пакетов и библиотек из состава образа, а также сканирующий кластеры на соответствие стандартам конфигурирования.Системные требования и лицензирование Crosstech Container SecurityПеред выбором модели лицензирования заказчикам рекомендуется оценить масштаб защищаемой инфраструктуры и нагрузку на кластеры. Crosstech Container Security предусматривает гибкий подход: ядро и агенты могут разворачиваться в разных сегментах сети, включая тестовые и продуктивные среды. Такой принцип позволяет оптимально распределять ресурсы и лицензии, избегая избыточных затрат.ЛицензированиеCTCS лицензируется по количеству защищаемых нод, на которые распространяются агенты защиты.В продукте реализовано гибкое лицензирование, которое позволяет заказчикам самостоятельно выбирать перечень защищаемых объектов. При достижении лимита по количеству лицензий, предусмотренных договором, администратор может отключить часть текущих объектов защиты и переназначить лицензии на новые кластеры и ноды. Рисунок 3. Включение/выключение агентов защиты Рисунок 4. Лицензии CTCS На странице лицензирования доступна подробная информация о параметрах действующей лицензии. Пользователь видит:количество оставшихся дней действия лицензии;количество нод, предусмотренных лицензией;актуальные данные о числе используемых нод в рамках лицензии;сведения о типе лицензии;информация о поставщике;информация о владельце лицензии.Рисунок 5. Страница «Лицензирование» Требования к аппаратной частиКластер, на котором производится установка CTCS, должен соответствовать минимальным характеристикам, приведённым ниже. Для определения значений millicpu (единицы времени процессора, эквивалентной тысячной части работы, которую может выполнить одно ядро CPU) рекомендуется воспользоваться документацией Kubernetes.Кластер, на который будет установлен helm-чарт ядра (без учёта сканера) должен иметь характеристики не ниже 8190 millicpu, 7410 MiB RAM.Для каждого экземпляра сканера: 3 CPU, 6 GB RAM, при добавлении дополнительных экземпляров значения увеличиваются пропорционально.В случае использования большего количества реплик значения пропорционально умножаются на их число. По умолчанию в чарте допускается до 6 реплик, что требует 18 CPU, 36 GB RAM.Каждый кластер для развёртывания чарт-агента должен иметь 2 CPU, 8 GB RAM.Необходимый минимум для каждой используемой СУБД PostgreSQL: 4 CPU, 8 GB RAM, 100 GB.Приведённые требования указаны для усреднённой конфигурации и могут быть изменены в зависимости от количества одновременных сканирований образов, генерируемых событий, деплоев, пространств имён (namespaces) и подов.Требования к программной частиДля корректной интеграции и работы приложение CTCS должно быть развёрнуто в кластере Kubernetes. При настройке системы в конфигурационном файле helm-чарта должны быть настроены необходимые параметры.Поддерживаемые контейнерные среды CRI (container runtime interface): containerd и docker.В момент выполнения инструкции на хосте администратора должны быть установлены следующие утилиты для выполнения установки:tar;helm;kubectl.Необходимые сервисы в инфраструктуре:PostgreSQL: рекомендуется размещать базу данных для хранения логов на отдельном инстансе от основной БД, чтобы избежать падения производительности основных операций при большом объёме логируемых событий;Keycloak (опционально, имеется возможность поставки в составе дистрибутива);Vault (опционально, имеется возможность использования стандартного объекта Kubernetes Secret).Требования к операционной системе и ядру:рекомендуется использовать ОС с версией ядра 5.4 или выше для обеспечения поддержки Tetragon;в ядре должна быть включена функция BTF;должны быть активированы модули eBPF и cgroup, а также корректным образом настроены или отключены модули безопасности Linux (LSM), контролирующие запуск eBPF-программ (в соответствии с официальной документацией Tetragon).Требования к версиям Kubernetes:центральная управляющая часть кластера – не ниже версии 1.23;дочерние кластеры – версия 1.23 или выше.Дополнительные требования:В кластере Kubernetes должен быть установлен, подключён и настроен storage class, в котором будет минимум 10 GB свободного места.В master-кластер должен быть установлен External Secrets (опционально).В дочерние кластеры должен быть установлен External Secrets (опционально).Во всех кластерах, где развёртывается ядро и агенты CTCS, должен быть установлен ingress-контроллер.Совокупность этих требований обеспечивает стабильную работу системы и корректное взаимодействие всех модулей CTCS. При соблюдении указанных параметров производительность решения остаётся предсказуемой даже при высокой интенсивности сканирований и большом количестве событий безопасности. Такой подход гарантирует надёжность, масштабируемость и устойчивость контейнерной инфраструктуры.Процесс установкиДля развёртывания CTCS вендор предоставляет архив, содержащий helm-чарты и образы системных контейнеров. При необходимости может быть предоставлена учётная запись для выгрузки дистрибутивов из репозиториев вендора напрямую.Сценарии использованияCrosstech Container Security закрывает ключевые задачи обеспечения безопасности контейнерных платформ — от анализа уязвимостей до защиты на уровне среды выполнения. Решение органично интегрируется в процессы DevSecOps и помогает компаниям повысить устойчивость инфраструктуры к современным киберугрозам без потери скорости разработки.Сценарий №1. Сканирование образовCTCS позволяет выполнять сканирование образов контейнеров, хранящихся как в интегрированных реестрах образов, так и локально в защищаемых кластерах. Рисунок 6. Подключённые реестры После интеграции с реестрами образов на вкладке «Образы» – «Реестры» отображается подключённый реестр и информация о хранящихся в нём образах. Реализовано в формате иерархии:Реестры.Название образа и количество его версий (тегов).Название образа и его версии.Карточка конкретного образа.Рисунок 7. Образ и список его версий Рисунок 8. Карточка образа На каждом уровне иерархии есть возможность запуска сканирования по требованию с выбором типа дефектов, которые будут учитываться в процессе сканирования. Дополнительно предоставляется общая информация об образе, данные о его соответствии установленным политикам, сведения о слоях образов с маппингом на обнаруженные дефекты. Рисунок 9. Слои образа На странице интеграций с реестрами в настройках доступно выставление расписания для проведения автоматизированного сканирования. Рисунок 10. Сканирование по расписанию Для работы с образами, обнаруженными локально в защищаемых кластерах, доступна отдельная вкладка «Образы» – «Локальные образы». Рисунок 11. Таблица локальных образов При запуске процесса сканирования доступен выбор ноды, на которой он будет проводиться. Если обнаруженный образ находится в интегрированном реестре, сканирование будет приоритетно выполняться на стороне ядра системы в рамках интеграции с реестром. Рисунок 12. Выбор нода для проведения сканирования Сценарий №2. Политики безопасности образов контейнеровВ рамках Crosstech Container Security реализовано создание политик безопасности для образов контейнеров. После их настройки система автоматически проверяет все известные образы на соответствие заданным критериям. По результатам проверки на карточке каждого образа отображается информация о соответствии или несоответствии политикам безопасности (Рисунок 7). Если образ нарушает несколько политик безопасности одновременно, в карточке отображается, какие именно политики безопасности были нарушены. Рисунок 13. Создание политики безопасности образов Сценарий №3. Контроль запуска контейнеровВ CTCS доступна интеграция с OPA Gatekeeper, обеспечивающая валидацию контейнерных деплоев и реагирование в соответствии с заданными политиками безопасности.При настройке политик безопасности доступен выбор режима реагирования — оповещение либо блокировка — а также определение перечня критериев безопасности, по которым будет осуществляться контроль. Рисунок 14. Таблица политик валидации и контроля запусков Политики безопасности могут создаваться по выделенным критериям (Рисунок 13) или импортироваться в виде кастомных политик (Рисунок 14). Рисунок 15. Создание политики валидации и контроля запусков Рисунок 16. Импорт кастомных политик безопасности Результаты срабатывания политик доступны в интерфейсе системы, что позволяет оперативно анализировать инциденты и корректировать настройки безопасности. Рисунок 17. Срабатывание политик валидации и контроля запусков Сценарий №4. Мониторинг безопасности сред выполненияВ текущей версии реализован мониторинг безопасности сред выполнения на базе Tetragon, что позволяет контролировать эксплуатацию рабочих нагрузок.В CTCS доступна форма для создания или импорта готовых политик безопасности с возможностью выбора области применения. Рисунок 18. Создание политики среды выполнения При срабатывании политик система отображает перечень событий в формате таблицы. Для каждого события можно перейти в режим детального просмотра, где отображается его идентификатор, дата и время создания, короткое описание и содержание в формате json. Рисунок 19. Событие срабатывания политики среды выполнения ВыводыАнализ решения Crosstech Container Security показал, что в версии 3.0.0 продукт предоставляет широкие функциональные возможности для защиты контейнерной инфраструктуры: от обеспечения безопасности образов контейнеров до контроля запуска и реагирования на нелегитимные процессы в средах выполнения в соответствии с политиками безопасности. CTCS также предоставляет инструменты для проведения сканирований защищаемых кластеров на соответствие стандартам конфигурирования, что повышает уровень безопасности контейнерной инфраструктуры.Достоинства:Архитектура. Благодаря однонаправленным соединениям со стороны ядра системы в сторону агентов защиты обеспечивается соответствие требованиям заказчиков, которые используют «Zero Trust»-модель на уровне сегментов инфраструктуры.Широкая площадь покрытия. CTCS обеспечивает контроль запуска контейнеров не только в рамках оркестратора Kubernetes, но и на отдельных хостах контейнеризации за счёт использования standalone-агентов.Гибкие возможности при работе с API. Весь функционал из веб-интерфейса CTCS также доступен для вызова через API, что позволяет специалистам заказчика решать нетривиальные задачи в рамках своей рабочей деятельности и интегрировать продукт в существующие процессы.Удобство при работе со сканированием образов. Иерархический подход обеспечивает гибкость при выборе области сканирования и повышает прозрачность анализа.Недостатки:Отсутствие возможности встраивания в процесс сборки (CI/CD) (планируется к реализации в первом квартале 2026 года).Отсутствие данных по ресурсам Kubernetes (Workloads, RBAC, Custom Resources, Feature Gates): планируется в 4-м квартале 2025 – 1-м квартале 2026).Отсутствие настройки гибкого разграничения прав доступа пользователей в интерфейс системы (реализация запланирована на первый квартал 2026).Отсутствие отчётности по результатам работы с системой (планируется в первом квартале 2026).Реклама, 18+. ООО «Кросстех Солюшнс Групп» ИНН 7722687219ERID: 2VfnxvVGwXfЧитать далее
    • demkd
    • PR55.RP55
      И ещё это: https://www.comss.ru/page.php?id=18330 Это и на работе Образов с Live CD может сказаться ?
×