Когда в корпоративном IT-аудите всплывают «непрописанные» компоненты, это всегда сюрприз — обычно неприятный. Представьте: вы настраиваете мониторинг безопасности закрытого контура на Adobe ColdFusion и неожиданно обнаруживаете, что сервер тихо и исправно обрабатывает чужие `.php` скрипты. В мире энтерпрайз-разработки такие технологические «коридорные соседи» появляются незаметно: старый плагин, заброшенная админка или тестовая утилита забытого подрядчика (ведь нет ничего более постоянного, чем временный скрипт от «вчерашнего» фрилансера). Сегодня разберем, как вовремя найти этот нелегальный интерпретатор и выселить его безболезненно для бизнес-логики.

Анатомия угрозы: откуда PHP берется на сервере ColdFusion

Прежде чем переходить к практическим шагам по поиску и уничтожению, важно понять, как именно PHP попадает в окружение ColdFusion. Сам по себе официальный установщик Adobe ColdFusion не содержит интерпретатора PHP. ColdFusion работает на собственной виртуальной машине Java (JVM) и обрабатывает файлы с расширением .cfm и .cfc через встроенный или внешний веб-сервер.

Тем не менее, PHP оказывается на сервере следующими путями:

  • Комплексные веб-пакеты и панели управления: Если на сервере помимо ColdFusion установлены сторонние панели (например, Plesk, cPanel или кастомные сборки на базе Apache/Nginx), они могут автоматически разворачивать PHP для работы вспомогательных скриптов (phpMyAdmin, систем мониторинга и т.д.).
  • Ручная установка разработчиками: Предыдущие команды разработчиков могли использовать PHP для создания быстрых интеграций, API-мостов или утилит резервного копирования, забыв задокументировать это или удалить после завершения работ.
  • Заброшенные проекты: На сервере могут годами лежать старые папки с сайтами на WordPress или самописных CMS, требующие работы PHP-интерпретатора.

Когда злоумышленник сканирует ваш сервер, наличие работающего обработчика .php файлов на том же IP-адресе или виртуальном хосте открывает возможности для загрузки веб-шеллов (например, infamous b374k или r57), обхода систем контроля и дальнейшего горизонтального перемещения по корпоративной сети.

Но как именно обнаружить этот невидимый фронт? Переходим к практике.

Шаг первый: Как проверить наличие PHP на сервере ColdFusion

Обнаружение PHP требует системного подхода. Начать стоит с проверки файловой системы и конфигураций веб-сервера. Поскольку мы имеем дело с серверным окружением, вам понадобятся права администратора (root для Linux или Administrator для Windows Server).

1. Проверка через командную строку (CLI)

Первый и самый простой способ — попытаться вызвать интерпретатор PHP из терминала. Откройте командную строку и выполните следующую команду:

php -v

Если PHP установлен и прописан в системной переменной PATH, вы увидите версию и информацию о сборке. Однако опытные злоумышленники или системные администраторы часто скрывают исполняемые файлы или устанавливают их в нестандартные директории. Поэтому отсутствие ответа в консоли еще не гарантирует полную чистоту системы.

2. Поиск бинарных файлов и конфигураций

В операционных системах семейства Linux выполните поиск исполняемых файлов:

find / -name "php" -type f 2>/dev/null

В среде Windows (PowerShell) аналогичный поиск выглядит так:

Get-ChildItem -Path C:\ -Filter "php.exe" -Recurse -ErrorAction SilentlyContinue

Обратите внимание на конфигурационные файлы веб-серверов. Для IIS проверьте маппинги обработчиков (Handler Mappings), а для Apache изучите файлы конфигурации (httpd.conf, файлы .htaccess) на предмет наличия директив вида:

AddHandler application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

3. Создание диагностического теста

Самый надежный способ проверить, обрабатывает ли ваш веб-сервер PHP-код — создать временный тестовый файл в корневом каталоге сайта (например, test.php) со следующим содержимым:

<?php
phpinfo();
?>

Затем обратитесь к этому файлу через браузер: http://your-coldfusion-server/test.php. Если вы видите стандартную страницу с информацией о конфигурации PHP, значит, среда выполнения активна и доступна извне. Важно: не забудьте немедленно удалить этот файл после проверки, чтобы не оставлять уязвимость открытой.

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

Анализ сетевой инфраструктуры и удаленного доступа

В процессе аудита сервера администраторы часто проверяют параметры удаленного подключения и конфигурационные файлы клиентов (например, настройки SSH-клиентов вроде PuTTY или OpenSSH), чтобы убедиться, что инфраструктура не скомпрометирована. В контексте администрирования удаленных соединений критически важно понимать такие параметры, как serveraliveinterval и serveralivecountmax.

Параметр serveraliveinterval отвечает за отправку пустых пакетов (heartbeat) от клиента к серверу каждые N секунд для предотвращения разрыва соединения по таймауту. В свою очередь, serveralivecountmax определяет максимальное количество таких беспрерывных попыток, после которых клиент считает соединение мертвым и принудительно его закрывает. Хотя эти настройки напрямую не связаны с интерпретацией PHP, правильная настройка таймаутов SSH крайне важна при проведении операций по очистке сервера и удалению ПО на удаленных виртуальных машинах (VPS/VDS), чтобы сеанс терминала не прервался в самый ответственный момент выполнения критических команд.

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

Теперь переходим к самому главному — аккуратному демонтажу лишнего софта.

Пошаговое руководство: Как полностью удалить PHP с сервера

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

Удаление PHP в среде Linux (Ubuntu / Debian / CentOS)

Если PHP был установлен через пакетный менеджер, удаление выполняется стандартными средствами:

  1. Определите установленные пакеты PHP:
    dpkg -l | grep php
    (для Debian/Ubuntu) или
    rpm -qa | grep php
    (для CentOS/RHEL).
  2. Удалите основные пакеты и модули:
    sudo apt-get purge "php*"
    или
    sudo yum remove php*
  3. Очистите неиспользуемые зависимости:
    sudo apt-get autoremove
  4. Удалите оставшиеся конфигурационные файлы и директории (например, /etc/php/).

Удаление PHP в среде Windows Server / IIS

В корпоративном сегменте ColdFusion часто работает на связке с Microsoft IIS. Чтобы убрать PHP:

  1. Откройте Диспетчер служб IIS (IIS Manager).
  2. Перейдите на уровень сервера или конкретного сайта и откройте раздел Маппинги обработчиков (Handler Mappings).
  3. Найдите записи, связанные с PHP (например, *.php), нажмите на них правой кнопкой мыши и выберите Удалить (Remove).
  4. Откройте панель управления программами (Programs and Features) или используйте Web Platform Installer, если PHP устанавливался через него, и выполните деинсталляцию.
  5. Удалите физическую папку, где располагались бинарные файлы PHP (обычно это C:\PHP или аналогичные пути), а также очистите системную переменную окружения PATH от упоминания этих путей.
  6. Перезапустите службы IIS командой:
    iisreset

Финальный аккорд — убедиться, что виртуалка жива и ColdFusion не заметил потерю соседа.

Проверка стабильности ColdFusion после очистки

После того как PHP был полностью удален с сервера, необходимо убедиться, что экосистема Adobe ColdFusion функционирует стабильно и не пострадала от сопутствующих изменений конфигурации веб-сервера.

Выполните следующие контрольные проверки:

  • Перезапустите службу ColdFusion (например, службу Adobe ColdFusion [версия] Add-on Services и основную службу сервера).
  • Откройте панель управления ColdFusion Administrator и убедитесь, что она доступна и авторизация проходит успешно.
  • Проверьте работу ключевых веб-приложений, открыв страницы с расширением .cfm. Убедитесь, что логи сервера (файлы application.log, exception.log) не содержат новых критических ошибок, связанных с отсутствием модулей или сбоями проксирования запросов.

Заключение

Безопасность энтерпрайз-инфраструктуры требует принципа минимальных привилегий и полного контроля над каждым компонентом, запущенным на сервере. Обнаружение неожиданно работающего PHP на сервере Adobe ColdFusion — тревожный звонок, который указывает на недостатки в процессах аудита и конфигурации. Своевременное обнаружение, тщательный анализ через командную строку и диагностические тесты, а также аккуратное удаление лишнего программного обеспечения позволяют значительно укрепить периметр безопасности и защитить корпоративные данные от потенциальных угроз. Проведите аудит своих серверов прямо сегодня — лучше закрыть уязвимости в тестовом режиме, чем искать последствия во время инцидента.