Я работаю для веб-хостинга, и моя задача - найти и очистить взломанные учетные записи. То, как я нахожу хорошие 90% оболочек\вредоносных программ\инъекций, - это поиск файлов, которые "неуместны". Например, eval(base64_decode(.......))
, где ".....
" представляет собой целую кучу текста base64, который обычно никогда не бывает хорошим. Нечетные выглядящие файлы выпрыгивают на меня, когда я grep через файлы для ключевых строк.
Если эти файлы выпрыгивают на меня как на человека, я уверен, что смогу создать какой-то профилировщик на python, чтобы искать статистические данные, которые "неуместны", и помечать их для ручного просмотра. Для начала я подумал, что могу сравнить длину строк в файлах php, содержащих ключевые строки (eval
, base64_decode
, exec
, gunzip
, gzinflate
, fwrite
, preg_replace
и т.д.). и искать линии, которые отклоняются от среднего на 2 стандартных отклонения.
Длина линии варьируется в широких пределах, и я не уверен, что это будет хорошая статистика для использования. Другим подходом было бы назначить взвешенные правила для cretin вещей (длина строки над или под порогом = X точек, содержит слово upload = Y точек), но я не уверен, что я на самом деле могу сделать с оценками или как забить каждый атрибут. Моя статистика немного ржавая.
Может ли кто-нибудь указать мне в правильном направлении (руководства, учебные пособия, библиотеки) для статистического профилирования?