Контакты
Подписка
МЕНЮ
Контакты
Подписка

Как черное сделать белым?

Как черное сделать белым?

В рубрику "Оборудование и технологии" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Как черное сделать белым?

Проблема отсутствия исходного кода систем коснулась многих компаний. В первую очередь это нефтегазовая отрасль и ТЭК, которые активно используют на производстве системы SCADA. Однако убытки, которые несут эти компании в случае наступления угроз, заставляют банки, страхование, ритейл и другие отрасли принимать соответствующие превентивные меры.
Даниил Чернов
руководитель направления
экспертного консалтинга
центра информационной
безопасности компании
“Инфосистемы Джет"

Большинство компаний использует программное обеспечение сторонних разработчиков как некий "черный ящик", не имея в своем распоряжении исходного кода. При этом получить его фактически невозможно – на рынке практически отсутствуют компании, предоставляющие данную услугу. Тот факт, что систему невозможно модернизировать, несет в себе огромное количество недекларированных возможностей и широкий перечень уязвимостей. При этом данная проблема касается как унаследованных систем, все еще используемых в большом количестве на производстве, так и новых разработок.

Тайна унаследованных систем

Унаследованные системы, как правило, базируются на отживших технологиях, архитектурах и платформах, а также используют морально устаревшее программное и информационное обеспечение. Для большинства таких систем ни документация, ни исходный код не доступны. Это может представлять собой серьезную проблему ИБ, связанную с уязвимостями, недекларированными возможностями (НДВ) и с непониманием алгоритма работы. Например, у одного из наших клиентов функционирует унаследованная АСУ ТП, состоящая из нескольких десятков различных файлов. Размер ряда файлов периодически меняется, и при этом невозможно понять, какие из них должны меняться в соответствии с логикой работы системы, а какие изменения указывают на попытку мошеннических действий с использованием АСУ ТП. Мы восстановили исходный код системы, из которого удалось извлечь алгоритм работы и составить перечень статических файлов и тех, которые должны периодически обновляться. Это позволило применить к решению систему контроля целостности, которая будет использовать защитные механизмы от различных манипуляций.

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

Что касается современных систем, то их создание и разработка часто ведутся посредством интеграции отдельных компонентов, выполненных как собственными, так и сторонними силами. Такая практика позволяет значительно сократить стоимость и время разработки ПО. Наличие небезопасных сторонних модулей в системе может снизить уровень защищенности всей информационной системы (ИС) и способствовать утечке информации и успешным атакам на информационную систему.

Уязвимости, как правило, появляются в результате ошибок разработчиков, а также из-за неаккуратной работы с языками высокого уровня. Под недекларированными возможностями понимаются функциональные возможности ПО, не отраженные в документации. НДВ в коде могут носить как случайный, так и преднамеренный характер для работы с приложением в обход установленных механизмов защиты.

Использование злоумышленником уязвимостей или НДВ в одном программном модуле может привести к компрометации ИБ всей информационной системы. С целью предотвращения такого сценария необходимо тщательно анализировать стороннее ПО перед его интеграцией в ИС.

Декомпиляция

При наличии исходного кода проведение его анализа на наличие уязвимостей и НДВ не представляет особой сложности для эксперта. Для этого можно использовать как ручной анализ кода, так и целый арсенал автоматических анализаторов кода, имеющихся на рынке (FindBugs, Svace Detector и др.).

Использование злоумышленником уязвимостей или НДВ в одном программном модуле может привести к компрометации ИБ всей информационной системы. С целью предотвращения такого сценария необходимо тщательно анализировать стороннее ПО перед его интеграцией в ИС.

Но как убедиться в безопасности ПО в случае отсутствия исходного кода? Западные специалисты по ИБ в таких случаях все чаще прибегают к восстановлению исходного кода при помощи декомпиляции.

При этом декомпиляция является сложной наукоемкой задачей, а реализация полностью автоматического декомпилятора априори невозможна. Но существуют инструменты (декомпиляторы), позволяющие решать данную задачу в автоматизированно-интерактивном режиме с участием квалифицированного эксперта (HexRays, SmartDec и другие).

Проведение декомпиляции может быть полезно и при наличии исходного кода. Это связано с тем, что при запуске любого приложения выполняется не код на языке высокого уровня, а его скомпилированный вариант в машинном представлении. При этом компилятор может преподнести ряд сюрпризов. Например, невыполнение очистки области памяти, что весьма критично при обработке конфиденциальной информации. Злоумышленник сможет получить к ней доступ, используя различные подходы, в том числе посредством дампа памяти. На сегодняшний день заглянуть внутрь ПО и оценить его на наличие уязвимостей и НДВ возможно и при отсутствии исходного кода. Однако данная задача требует высокой квалификации и экспертизы аналитика, знания инструментов декомпиляции, и такого уровня специалистов на российском рынке сложно найти.

Опубликовано: Журнал "Information Security/ Информационная безопасность" #6, 2011

Приобрести этот номер или подписаться

Статьи про теме