LINUX.ORG.RU

Софт для анализа безопасности PHP кода

 ,


0

3

Доброго дня всем.

Повадились у меня одного из клиентов ломать время от времени. CMS у него собственная, написанная на PHP. На 99.9999% есть уверенность что какер использует уязвимость в коде. Вопрос - существует ли софт (чёрт возьми, я уверен что такой должен существовать), который может провести анализ кода на наличие проблемных мест? Хочется что бы выглядело это примерно так - «натравил» программу на каталог, она рекурсивно проверила все php файлы в этом и вложенных каталогах и выдала результат типа «В таком-то файле, в таких-то строках есть вероятность присутствия такой-то проблемы. Подрбнее о проблеме смотреть там-то.»

Спасибо.

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


Уязвимости они не в коде, они в программе. Разница принципиальна.
Ищут их компетентные люди. В Development такие водятся, может помогут.

moscwich
()

ai-bolit и подобные. Мне правда не помог - пришлось руками ковырять. У меня файлик gif залили с php кодом на конце.

ziemin ★★
()
Ответ на: комментарий от ziemin

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

kp
() автор топика

Нормальных программ для поиска дыр в коде нет.
Если и есть такой софт то предназначен он опять-же для пхп-программистов которые понимают суть дела.
Варианта тут три:

  • Сделать последнее китайское предупреждение и заставить клиента обезопасить сайт
  • Избавиться от клиента с его проблемами
  • Установить на сайт веб-фаирвол (WAF) который будет фильтровать входные GET/POST/COOKIE/FILE параметры. Некоторые виды таких фаирволов подключается через пхп-опцию auto_prepend_file и таким образом защищают все пхп-скрипты. В настройках виртуального хоста делаешь php_admin_value auto_prepend_file /path/to/firewall.php чтобы клиент не мог избавиться от фаирвола. У меня есть такой фаирвол, которым я защищаю дырявые скрипты (phpBB, wordpress). Могу дать, но он самописанный и его надо затачивать под определённый сайт.
pascal9x
()
Ответ на: комментарий от moscwich

В данном случае в софте на сервере я уверен на 101% (хотя бы потому, что был сделан реинсталл и сайт на свеженастроенный сервер был перенесён вручную), как и в настройке самого сервера.

Уязвимости, они и в коде тоже бывают, но этот вопрос - это уже отдельная линия обсуждения и она за рамки созданной темы выходит.

kp
() автор топика
Ответ на: комментарий от pascal9x

Сделать последнее китайское предупреждение и заставить клиента обезопасить сайт

Честно признался что не знает где может быть проблема. Возможно не хватает квалификации.

Избавиться от клиента с его проблемами

Это всегда можно сделать, но клиент положительный, и просто так отказываться от него не хочется.

Установить на сайт веб-фаирвол (WAF) который будет фильтровать входные GET/POST/COOKIE/FILE параметры. Некоторые виды таких фаирволов подключается через пхп-опцию auto_prepend_file и таким образом защищают все пхп-скрипты. В настройках виртуального хоста делаешь php_admin_value auto_prepend_file /path/to/firewall.php чтобы клиент не мог избавиться от фаирвола.

Вот за эту наводку - спасибо. Буду читать о таких фаерволах.

kp
() автор топика

Nessus большую часть уязвимостей не связанную с логикой находит. Если есть подозрения на sql инъекцию - sqlmap. Вроде, есть свободная альтернатива несусу - OpenVAS.

Sense
()

Боюсь что даже можно показать, что такой анализатор невозможен.

Suntechnic ★★★★★
()
Ответ на: комментарий от anonymous

Вот и я не понимаю зачем при его отсутсвии проходящий мимо анонимус в тему лезет. :)

kp
() автор топика

http://pear.php.net/package/PHP_CodeSniffer

Обычно используется в IDE (emacs, eclipse, netbeans) как команда компиляции или проверка на лету, но после доработки напильником поможет выявить «запашок» и некоторые потенциально проблемные места.

Еще к нему есть плагины типа Varcheck (PHP_CodeSniffer plugin)

Ну и поиск характерных мест рулит: инклуды, глобальные переменные, обработка путей, sql-инъекции (признак: отсутствие команд prepare при работе с БД), подстановка переменных в «двойных кавычках», обработка $_POST, $_GET, [$_SERVER], upload, eval, настройки ini: вывод ошибок.

Незабывай если это для версии php до 5.3, то разработчики официально объявили ее не поддерживаемой. Это означает, что если есть «консерваторные баги», то защита практически бесполезна или равносильна тасканию воды в решете.

Гугли тему php lint.

swwwfactory ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.