Pull to refresh

Comments 51

не проблема что вы пхпшник, проблема что ваш код не понятен ни разу… за идею спасибо. хотя я бы на вашем месте еще и по винту бы лазил — да смотрел последние изменения файлов индексных…
bash понятнее получился?
то что вы не в зуб нагой в пхп не дает вам право стебаться над работой человека! а тру пхпшников щас по пальцам пересчитать можно
да действительно такое бывает редко но все же бывает
идея достойная стоит подумать
UFO just landed and posted this here
Множество iframe-вирусов уже прекрасно диагностируются ClamAV. В свою очередь, прикрутить ClamAV можно и к упомянутому proftpd.
Есть такая проблема на мастерхосте.

Пароль менял, у меня мак, больше никто им не владел, всё равно фреймы вставлялись. Хостер естественно как бы не причём, все виной я. Недавно опять вставили, гугль блочит такое, показал такую ссылку, явно проблема у хостера. Как ему это доказать и заставить вылечить? Или только переезд вылечит? И меня заодно.
Было похоже — тоже мак, тоже все менял. Проверьте тщательнейшим образом все файлы с названиями типа "*index*.*", "*main*.*" итд итп. После того как я все вручную вычистил, больше не появлялась(тьфу-тьфу-тьфу).
А можно у них лог соединений попросить?

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

каг-бэ тонко пытались намекнуть что «вирусов нет». хотя кто их, эти маки, разберет. под виндами все понятно: вставился код — гоняем заразу. а вот под маками уверенность в том что «вирусов быть не может» приводит к постоянному откладыванию проверки машны антивирусом. да и дефицит нормальных антивирусов + экзотичность заразы приводят к тому что вирус может и не детектиться длительное время, ибо в лабораторию еще не попадал и препарирован не был.
а зачем писать логи в базу?
что мешает формировать стату из обычных логов? раз в сутки — это не большая нагрузка.

так же, стоит прикрутить кламав — он находит конечно не все, но всякие php-shell и подобные вещи ищет.
мешает Plesk — там для каждого клиента свой лог.
Аннет, вру — логи хранятся в одном файле, а потом раскидываются по своим местам. В таком случае ничего не мешает. Буду переписывать.
Спасибо, что ткнули носом :)
а по-поводу ClamAV — я r57 и сам иногда использую, так что не подходит
Готово — теперь парсится лог.
Ещё раз спасибо.
Надо по другому, ловить изменения поражаемых вирусом файлов, делать diff и анализировать на соотвествие типичным регекспам. ТО есть если изменение файла заключается в добавлекнии строчки «iframe src=» или «script document.write()» — паниковать.
Переписал код в топике — теперь там нечто подобное. Осталось подумать по-поводу модуля к proftpd, который diff будет создавать.
Последний раз виденная мной зараза убирала из файла пробелы в начале и в конце строк,
MAX_DUPLICATED_SIZE_DIFF становится бесполезным
Вместо ftp можно заюзать scp по сертификату — поможет
до тех пор пока троянцы не научатся уводить не только пароли но и сертификаты. выянить где хранит их путти, ии FAR+WinSCP не составлет труда. и даже OpenVPN (как единственный легкий способ добраться до открытых портов /FTP/SSH/etc на «внутренних» интерфейсах), не гарантирует спокойного сна. я иногда в ужасе просыпаюсь с мыслью что если увести ВСЕ ключи, то сервера останутся беззащитны как голый младенец на хоккейной площадке. а вы? :)
Шифрованный неэкспортируемый сертификат тебе поможет
> Уж извините, но я php'шник :)
да что за паранойя?
php не такой плохой как рисуют его любители smalltalk подхода
Мне кажется искать grep'ом на предмет iframe'ов и посылать админу уведомления гораздо лучше и (!) проще, нежели то, что вы указали, тем более, что мой вариант кроме простоты еще и выполняет ту же функцию, ведь вы решаете задачу не предотвращения заливки и изменения сорцев.
это трудно из-за невероятных просторов для обфускаций кода, которыми пользуются ифреймеры.

чтоб найти измененный индекс.хтмл за день можно воспользоваться find. -name index.html -ctime -1d, не так ли?
У меня сработал такой вариант:
find. -mtime 0 -name index.html
find (пробел) (точка) (пробел) все остальное

Парсер доставляет не по детски…
Зачем эти извраты в пхп, если можно искать все нужные файлы c помощью find, считать их md5sum и каждый день сравнивать текущую сумму с предыдущей…
И никаких настроек proftpd, никаких баз, никаких скриптов на php.
вот только разница во времени исполнения, да нагрузка на ЖД при find меня как-то отталкивает от этого варианта.
Да ладно…
find очень быстрая штука, притом бегать же он будет не по милиардам файлов.
Кромете того, файндом можно вообще не пользоваться, а просто хранить список файлов, которым нужно считать и проверять md5 сумму.
Работать вариант с find'ом будет явно медленнее, чем текущий парсер логов на bash'е.
+ лично у меня в find попадает статистика webalizer'a
+ из find'а мы не можем узнать IP злодея
парсить логи хорошо.
разобрать сложившуюся ситуацию поможет.
Но IP злодея в 99% — пользы не принесёт.

Кстати, иногда отдельно xferlog -а нет (а уже хочется прогнать поиск), а все складывается в /var/log/messages — тогда нужный файл легко создать перенаправив в него вывод этой команды:
cat /var/log/messages | grep pure-ftpd

Ну или не pure-ftpd, а то, что у вас там работает за FTP :)
function v4a84954d5cc57(v4a84954d5d461){ function v4a84954d5dc66 () {return 16;} return(parseInt(v4a84954d5d461,v4a84954d5dc66()));}function v4a84954d5ec3f(v4a84954d5f436){ var v4a84954d5fc03='';for(v4a84954d603d3=0; v4a84954d603d3
щорт… убилось половина :(
Короче, ифреймы — это полбеды. Вот самомодифицирующийся JS-код — это прикольно :)

Если будет интересно могу накидать статейку как я делал детектор подобного кода для мониторинга проектов нашей студии. Сейчас весьма успешно мониторится около сотни урлов на предмет вторжений :) Не идеально, конечно, но есть вариант сигнатурного анализатора если эвристика не помогает.
С интересом бы почитал
UFO just landed and posted this here
Дополнительное предложение: если сайт на линуксе, то использовать inotify (http://ru.wikipedia.org/wiki/Inotify), тогда не важно как именно будет залит файл по ftp, scp или даже через взлом скрипта на сайте.
интересный вариант, посмотрю
incrontab, возможно, удачное решение с использованием inotify
Етот скрипт — ето подпорка, а не системное решение. Системное решение — ето изпользование .ftpaccess файла которий генерится при заходе в хостинг панель.
Вы про ограничение по ИП? Нафиг-нафиг.
Почему?
зашел в хостинг панель.
Сгенирировал .ftpaccess для своего IP
и вперед…
Плюс можно ввести время жизни такого разрешения.
Неудобно? совсем малость, а безопасность повышается.
Это к тому, что зачем выцеплять нелегальное использование ftp постфактум, если более правильно будет не допускать подобного использования.
Только один минус — клиентам эту систему объяснять никому не захочется.
или, как вариант, менять пароль каждый день, по заранее установленной схеме.
Например отталкиваясь от текущей даты.
Не будут сейвать пароли — не будет подобных проблем.
Будут ламать сайты, а не воровать пароли :))
Вы делаете подпорку для того, чтоб понять кто и как взломал. Я говорю о решении при котором можно избежать самого фактка взлома.
Вариант объединения троянца и ифреймера вы не рассматриваете? Так что комбинация этих вариантов — лучший выход.
тоже недавно столкнулся с проблемой вычищения ифреймов, после чего попросил знакомого написать небольшой скрипт, в котором бы указывались ключевые строчки кода ифрейма, а этот скрипт проходился бы рекурсивно по директориям, ища заданные файлы и если находил в них заданные строки сносил только iframe, а не всю строку, как многие предлагают(я про find. -type f -name '*.php' | xargs perl -p -i -e 's/.*malware_domain.*$//g')
Да, к сожалению, это не решение проблемы, а информирование о уже произошедшей проблеме.
Сам пока использую ограничение по ип.
Sign up to leave a comment.

Articles