Исследователь УЦСБ обнаружил уязвимость XXE в популярной SCADA-системе Intouch

Дата: 10.05.2017

Исследователь компании Уральский Центр Систем Безопасности Андрей Жуков обнаружил уязвимость XXE (XML eXternal Entity) в популярной SCADA-системе Intouch, произведённой французской компанией Shneider Electric, мировым экспертом в управлении энергией и автоматизации.

Система Intouch – наиболее используемая HMI/SCADA система в мире. Представляет собой программное обеспечение для сбора данных, оперативного контроля и управления автоматизированными устройствами и технологическими процессами.

Уязвимость была найдена в приложении Wonderware Historian Client (aaTrend.exe). Подверженные версии Wonderware Historian Client 2014 R2 SP1 и старше.

При открытии файла с расширением .aaTrend, представляющем из себя обычный xml-документ, приложение aaTrend.exe использует небезопасную настройку XML-парсера. В результате становится возможным объявить произвольный DTD (Document Type) и так называемую внешнюю сущность. Синтаксис XML допускает использование в сущности ссылок с разными схемами (http:, ftp:, file: и т. д.), которые, в ходе разбора XML-документа, могут быть разрешены. В итоге становится возможным прочитать содержимое любого файла как на уязвимой системе, так и на удалённом ftp/http/smb-сервере от имени уязвимой системы.

Учитывая то, что данное ПО используется на производстве, у данной уязвимости может быть, как минимум, два сценария эксплуатации:

  • Разведывательный. Злоумышленник может использовать данный файл для чтения содержимого произвольных файлов на уязвимой системе, внутренних информационных ресурсах предприятия, а также для разведки структуры внутренней сети;
  • Деструктивный. Зачастую полное отсутствие аутентификации на PLC (программируемый логический контроллер) делает возможным одним HTTP-запросом изменить поведение логических контроллеров и причинить серьёзный ущерб предприятию;

Сразу после обнаружения уязвимости, информация была передана в ICS-CERT и в Schneider Electric. В течении одного месяца был выпущен и протестирован патч, устраняющий уязвимость. Уязвимости присвоен номер CVE-2017-7907.