Закрытое акционерное общество «Научно-технический центр «Станкоинформзащита» "Методика исследования программных и программно-аппаратных средств для оценки защищенности АСУ ТП" Основные программные и программноаппаратные средства АСУ ТП ПЛК Преобразователи интерфейсов SCADA-системы Панели оператора и HMI в целом Интеллектуальные КИПиА Коммуникационное оборудование Способы проведения исследований программных и программноаппаратные средства АСУ ТП Статический и динамический анализ кода Фаззинг Исследование методом черного ящика Анализ встроенных механизмов безопасности Цели: Выявление НДВ Выявление уязвимостей программных средств Определение штатных (документированных) возможностей, предоставляющих злоумышленнику возможности для атаки Алгоритм проведения исследований программноаппаратных средств АСУ ТП с использованием анализа кода встроенного ПО 1 • Получить точную копию встроенного ПО исследуемого устройства 2 • Определить архитектуру микропроцессора(-ов) устройства, при необходимости и используемые алгоритмы сжатия / защиты встроенного ПО, для возможности проведения полноценного исследования 3 • Выявить, какие сетевые протоколы поддерживаются устройством, и какие сетевые сервисы за них отвечают 4 • Выявить, какие программные модули дополнительного ПО производителя прямо или косвенно взаимодействуют с запущенными на устройстве сетевыми сервисами 5 • Провести анализ основных предметов исследования – сетевых протоколов, встроенного ПО и дополнительного ПО 6 • Реализовать выполнение СПС, демонстрирующие как стандартную работу сетевых протоколов, так и обнаруженные в них уязвимости и ошибки реализации Проблемы безопасности встроенного ПО оборудования АСУ ТП Использование устаревших версий ОС в ОС встроенного моделях оборудования давно ПО оборудования представленных на рынке Использование в основе ПО сторонних VxWorks программ, имеющих уязвимости Windows CE Слабые механизмы восстановления RTLinux работоспособности системы при сбое smxPPC Отсутствие механизмов предотвращения проприетарные эксплуатации типовых уязвимостей ПО АСУ ТП: Выполнение всех процессов в режиме ядра ОС разработки Классификация найденных уязвимостей по типам Примеры найденных уязвимостей № Наименование Описание уязвимости 1 Выполнение кода с помощью атакуемой программы 2 Аварийное Некорректная обработка PG-команд из определенного диапазона приводит к возникновению завершение необработанного исключения во встроенном ПО ПЛК, что приводит к переходу ПЛК в defect mode, атакуемой программы из которого он может выйти только по сбросу питания 3 Раскрытие важной информации Это информация, которая позволит злоумышленнику организовать вредоносное воздействие на другие элементы системы, например - Получение/отправка управляющей программы. Протокол позволяет как получать эти программы с устройства (и, таким образом, знакомиться с особенностями техпроцесса, алгоритмом управления и т.п.), так и записывать их. 4 Ошибки в функции авторизации или ее отсутствие После авторизации на сайте контроллера логин и пароль пользователя передаются в открытом виде (Basic-авторизация) при обращении к отдельным модулям, пути к которым начинаются с “/secure/”. 5 Отказ в обслуживании (DoS) При отправке большого количества пакетов сервер на время атаки перестает отвечать на запросы. Слабые криптографические алгоритмы 7 Уязвимость к фундаментальным сетевым атакам Выведение контроллера из строя/внедрение вредоносного кода. Возможна замена образов ОС или WEBсервера на FTP-сервере модуля, что приводит к возможности внедрения вредоносного кода, либо выходу контроллера из строя в случае неработоспособных образов ОС или WEB-сервера 6 Восстановление пароля из файлов проекта. Пароль в ПЛК и в файлах проекта хранится в легко распознаваемом виде. Преобразования пароля, используемые для его хранения, просты, и позволяют однозначно его восстановить. Подбор пароля пользователя методом грубого перебора или по словарю. Атака направлена на подбор пароля доступа пользователя по протоколам Telnet, SSH, HTTP, HTTPS. 8 Отсутствие Пассивная XSS-атака на HTTP-сервер. Код, проверяющий имя добавляемого пользователя, а также необходимых проверок имя добавляемой сети, не содержит проверок на наличие JavaScript-кода и HTML-тегов. В входных данных в результате можно внедрить вредоносный код на страницу пользователей (при наличии авторизации) WWW-интерфейсах 9 Предопределенные данные авторизации Множество встроенных паролей в FTP-сервере. Обнаружено множество пар логин:пароль, используемых ПО ПЛК и встроенных в прошивку контроллера. Исследование штатных возможностей ПО компонентов АСУ ТП с позиции злоумышленника несанкционированное обновления встроенного ПО устройств модификация программы управления или проекта модификация настроек оборудования несанкционированное чтение и модификация переменных состояния технологического процесса конфигурационное изменение сетевой топологии оборудования и ПО Типовые проблемы в штатных механизмах обеспечения безопасности пароли по умолчанию и недокументированные способы получения доступа к устройству слабости в механизмах аутентификации пользователей возможности по обходу процедуры аутентификации возможность реализовать действия привилегированных команд комбинацией непривилегированных либо недокументированных команд ЗАО «НТЦ «Станкоинформзащита» 105082, г. Москва, ул. Большая Почтовая, д.26, стр.1 Тел. (495) 790-16-60 E-mail - [email protected] www.ntcsiz.ru