Перейти к содержанию

Эвристический анализ сайтовых вирусов.


futurefx

Рекомендуемые сообщения

Здравствуйте,

В последнее время, в районе октябрь 2011 - март 2012, очень много мне на работе стали приходить сайты зараженные различными вирусами,

которые зачастили атаковать FTP сайтов.

 

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

Проверяю код регулярными выражениями, нахожу простые вирусы.

 

Kaspersky Internet Security находит такие вирусы.

Для более точного поиска подобных вирусов, мне понадобится более точный поиск троянов и эксплоитов,

вы можете поделиться маской или признаком по которому ищется хотя бы один Trojan-downloader.JS.Agent.*

 

Мне нужно понять принцип. Например, вы эмулируете работу JS и отслеживаете функции или находите части закономерного кода?

 

С уважением, Иван.

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

"Поделиться" подобной информацией равнозначно научить нехороших людей обходить эвристику антивируса.

Потому что-то мне подсказывает, что "делиться" никто не станет :)

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

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

 

Вообще я даже не надеюсь на какую-то помощь, но попробовать то стоило.

Изменено пользователем futurefx
Ссылка на комментарий
Поделиться на другие сайты

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

 

Вообще я даже не надеюсь на какую-то помощь, но попробовать то стоило.

Попробуйте, зарегистрировавшись на официальном форуме, написать в личку пользователю RomanG
Ссылка на комментарий
Поделиться на другие сайты

За последнее время я многое узнал о вирусах и о их поиске, например о двух видах поиска, эвристический анализ и поиск по сигнатурам.

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

 

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

Изменено пользователем futurefx
Ссылка на комментарий
Поделиться на другие сайты

А если почитать различные статьи в интернете и литературу?

 

Статья Эвристическое сканирование

Эвристическое сканирование

Эвристический анализатор AVZ

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

Самогонщик, статьи читал, тем более что они одинаковые, а вот справка AVZ была довольно интересна,

исключая тот факт что эта информация настолько поверхностная, что из нее не выжать и капли крови.

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

Самогонщик, статьи читал, тем более что они одинаковые, а вот справка AVZ была довольно интересна,

исключая тот факт что эта информация настолько поверхностная, что из нее не выжать и капли крови.

Это и нормально - инструкции и справки пишутся для пользователей. В общем случае эвристика в плане анализа скриптов может сводиться к:

1. сигнатурам. Так как это "эвристика", то мы ищем сигнатурно не малварь целиком, а некие фрагменты кода, которые считаем подозрительными или потенциально опасными по той или иной причине. Можно не просто искать разные типы характерных подозрительных фрагментов кода, а в случае нахождения нескольких в рамках одного скрипта применять что угодно - начиная от объединяющих их по "И" битовых масок и заканчивая нейросетями и нечеткой логикой

2. стат-анализ. Выделяеем все команды скрипта, подсчитываем их количество и делаем выводы, набрав статистику по хорошим и плохим скриптам ... по сути упрощенная разновидность п.п. 1, в которой с сигнатурами уже мудрить не нужно... можно замутить что-то хитрое, применив тот-же ИИ например, чтобы он сам придумывал правила. Он конечно такое может напридумывать, что страшно станет - зато делать ничего не надо вручную :facepalm:

* Методы 1-2 не годятся при борьбе с скриптом, который обработан обфускатором, шифрован. Сделать обфускатор для скрипта проще простого - изувечить имена переменных, разбавить код мусором и т.п.

3. Эмулятор. Эмулирует исполнение скрипта, как следствие - не чувствителен к шифровке и обфускации, по сути вернет нам "алгоритм" работы скрипта.

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

4. Анализ реального поведения скрипта в частности и браузера в целом. В такой ситуации нам наплевать на конкретный скрипт или эксплоит, фиксируем реальное аномальное поведение браузера и пресекаем его

5. Ограничение возможного опасного поведения браузера (технологии типа "Безопасный браузер" в KIS 2012). Логика простая - помещаем браузер в некую "песочницу", пусть он там вместе с загруженными страницами/скриптами/эксплоитами и т.п. делает что хочет - он изолирован от системы и навредить ей не может.

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

KIS 2012 в том или ином виде применяет все перечисленные технологии, они дополняют друг друга и получаем то, что получаем :) Я ответил на вопрос ? (естественно, раскрывать детали реализации той или иной технологии, равно как делиться "тушками" зверей никто не будет - нужно понимать, что закон есть закон, а ноу-хау есть ноу-хау). Получится ли написать на PHP полноценную систему обнаружения злобных скриптов - не думаю ...

Изменено пользователем Zaitsev Oleg
Ссылка на комментарий
Поделиться на другие сайты

Zaitsev Oleg, большое спасибо за информацию, в отличии от компилированных программ, веб-скрипты проще находить, иначе я бы не взялся за работу.

Единственная сложность это получение кода вируса, пока не столкнешься с ним не узнаешь его код, неважно обфуксирован он или нет.

Как быть в этом случае?

И еще интересно узнать, чем отличаются вирусы разделенные на подклассы,

например тот же Trojan-downloader.JS.Agent.*, у него множество подклассов: mp, fww, av, ai и т.д.

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

Zaitsev Oleg, большое спасибо за информацию, в отличии от компилированных программ, веб-скрипты проще находить, иначе я бы не взялся за работу.

Единственная сложность это получение кода вируса, пока не столкнешься с ним не узнаешь его код, неважно обфуксирован он или нет.

Как быть в этом случае?

И еще интересно узнать, чем отличаются вирусы разделенные на подклассы,

например тот же Trojan-downloader.JS.Agent.*, у него множество подклассов: mp, fww, av, ai и т.д.

Нут так задача эаристики именно в том и состоит, чтобы детектить неизвестные вирусы, т.е. в данном случае скрипты, которые мы еще никогда ранее не видели и не изучали. При этом стоит подумать, где будет такая эвристика - на клиенте или на WEB сервере (реализации могут быть разными)

По поводу букв в Trojan-downloader.JS.Agent.* - просто "отфонарный счетчик". Приходит новая малварь, сравнивается с известными семейства. Если очень похожа на что-то, скажем на mp - то и будет задетекчена как Trojan-downloader.JS.Agent.mp. Если на похожа ни на что из изученных - получит следующую комбинацию букв. Если почитать описания на сайте ЛК, то несложно заметить, что поведение у Trojan-downloader.JS.Agent.* близко похожее (что-то качают, кого-то запускают ...)

 

Тут просто рассуждая о написании такого "антивируса" стоит продумать, а нужно ли ? Скрипты в страничках - это небольшая угроза, и при заражении сайта нужно не скрипты заразные искать, а дыры (в форумных движках, CMS, просто в PHP, утекшие пароли FTP и т.п.) - так как логика подсказывает, что как-то малварь проникла на сайт. Обычно все просто - админ-растяпа, у него FTP клиент с сохраненными паролями, далее троян, ворующий пароли + последущее заражение сайтом, или более умный троян, который сразу применить полученные знания о FTP аккаунтах.... Вот и заражение. В таком случае нужно не с последствиями бороться, а с первопричиной.

Изменено пользователем Zaitsev Oleg
Ссылка на комментарий
Поделиться на другие сайты

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

Осталось только создать эмуляцию работы JS и проверять их агрессивность.

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

Осталось только создать эмуляцию работы JS и проверять их агрессивность.

А как быть с JAVA классами ? PDF и SWF эксплоитами ? Хитрыми скриптами, которые эмулятором не поймать ?

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

А как быть с JAVA классами ? PDF и SWF эксплоитами ? Хитрыми скриптами, которые эмулятором не поймать ?

 

На их проверку потребуется больше чем php.

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

Так или иначе останавливаться нельзя, потребуется время и человеческие ресурсы, чтобы из идеи вырос инструмент по защите сайта.

 

Я пришел к такому решению не из-за финансовой заинтересованности, а от кучи потерянных сил и времени проведенных над выполнением очистки и восстановления сайтов,

ведь сайт может весить 3 Гб и иметь при этом 30000 файлов а то и больше (по опыту знаю).

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

На их проверку потребуется больше чем php.

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

Так или иначе останавливаться нельзя, потребуется время и человеческие ресурсы, чтобы из идеи вырос инструмент по защите сайта.

 

Я пришел к такому решению не из-за финансовой заинтересованности, а от кучи потерянных сил и времени проведенных над выполнением очистки и восстановления сайтов,

ведь сайт может весить 3 Гб и иметь при этом 30000 файлов а то и больше (по опыту знаю).

Я могу быть не прав, мое имхо - если тратить время, то нужно тратить его на что-то новое, эксклюзивное, где есть некая "искра новизны" или нечто креативное. В противном случае это впустую потраченное время... да и реализаций существует тьма, яркий пример - Битрикс CMS. Там есть система контроля целостности сайта, бекап, и "антивирус" с эвристикой для поиска и блокировки зловредных скриптов и довесков типа iframe - http://www.1c-bitrix.ru/products/cms/secur...#tab-webav-link

Изменено пользователем Zaitsev Oleg
Ссылка на комментарий
Поделиться на другие сайты

Я могу быть не прав, мое имхо - если тратить время, то нужно тратить его на что-то новое, эксклюзивное, где есть некая "искра новизны" или нечто креативное. В противном случае это впустую потраченное время... да и реализаций существует тьма, яркий пример - Битрикс CMS. Там есть система контроля целостности сайта, бекап, и "антивирус" с эвристикой для поиска и блокировки зловредных скриптов и довесков типа iframe -

 

На днях был случай, когда сайт с битриксом был заражен вирусом который поразил все JS файлы.

Дело в том, что по правилам хостинга доступ к сайту и панели управления заблокирован, остается работать только с FTP.

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

 

Ладно если бы все сайты клиентов стояли на этой CMS и хостинг не блокировал сайты,

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

 

Назрел вопрос, если на сайт попал php файл, как обычно какой-нибудь эксплоит, который закодирован с помощью Zend Guard?

Могу ли я найти такой эксплоит с помощью Касперского, конечно предварительно скачав файл на компьютер?

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

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • civiero
      От civiero
      При просмотре видео на ютуб останавливается видео и появляется звуки костей, или слово amazing. Нужно ли волноваться по этому поводу? Антивирус ничего не выдает.
    • Gagik
      От Gagik
      Поймал вирус не знаю из за чего и ни чем не определяется почти,вроде как dwm процесс называется,при открытии диспетчера задач,не отображается и нагрузка сразу спадает,в простое нагревает процессор до 90 градусов
    • lomosow
      От lomosow
      Поймал вирусняк, открывает edge при заходе в систему, Dr.web его обнаруживает, но удалить его не может, пишет "ошибка лечения". называется NET:MALWARE.URL. UPD. веб перестал его обнаруживать, но проблема никуда не делась 
    • Mr. Denp
      От Mr. Denp
      Добрый день!
       
      Уже как несколько месяцев сижу с пойманными вирусами. Первый появился: HEUR:Trojan.Multi.GenBadur.genw - Касперский пытается устранить, но безуспешно.
      Процесс лечения заканчивается следующей ошибкой:

       
      Происходит перезагрузка компьютера, затем очередная автоматическая проверка компьютера Касперским, и троян снова появляется с предложением удаления.
      И так по кругу. 
      Вирус находится в системной памяти.
       
      Второй - HEUR:Trojan.Script.Generic появился сравнительно недавно, после удаления Касперским, он также появляется заново.
       
      Большая просьба помочь решить проблему. Насколько это опасно? Можно ли что-то сделать?
      Склонялся к варианту переустановки винды, но потеря файлов и головная боль с повторной установкой всего напрягает.
       
      Винда официальная. Единственная причины возникновения, которая приходит на ум - это торрент.
       
      Заранее благодарен!
       
    • SiGiDi
      От SiGiDi
      Вчера установил файл, после его распаковки вылез экран смерти и после череп который моргает красно белым цветом, что мне делать

×
×
  • Создать...