Ящик Пандоры
Червь Stuxnet – первый образец кибероружия, о применении которого стало известно широкой общественности. Авторы Stuxnet открыли ящик Пандоры, показав всему миру, насколько эффективными могут быть атаки на ключевые объекты инфраструктуры. Теперь даже школьнику несложно представить возможные последствия успешной деструктивной атаки на объекты энергетики, промышленности или финансовой сферы.
После обнаружения Stuxnet было найдено несколько его собратьев: Duqu, Flame и Gauss. Эти программы имеют некоторые общие черты, но их цели, функционал и время создания различаются. К сожалению, это не все известные образцы кибершпионов и кибердиверсантов – кибероружие стало суровой реальностью и пополнило арсеналы некоторых стран. Если раньше государства, отстаивая свои внешнеполитические интересы, пользовались дипломатическими, экономическими и военными средствами, то теперь для выполнения определенных задач, вместо самолетов, ракет, танков или кораблей, они могут использовать специальные вредоносные программы. В случае успешной атаки их применение также позволит добиться желаемого эффекта – но гораздо дешевле, тише и, в идеале, анонимно. Недавний инцидент с Wiper в очередной раз подтвердил эффективность этого подхода.
Ведущие мировые державы уже открыто обсуждают и необходимость защиты от враждебных действий противника в киберпространстве, и планы по наращиванию своих кибермощностей. Это порождает цепную реакцию и вынуждает остальные страны также собирать команды высокопрофессиональных программистов и хакеров для разработки специализированных киберсредств – как для защиты, так и для нападения. Гонка кибервооружений набирает обороты.
Сегодня можно говорить о том, что для сохранения суверенитета государство должно не только отстаивать социально-экономические и политические интересы, но и тщательно охранять свое информационное пространство. И теперь едва ли не на первый план выступает задача контролировать критически важные для государства информационные системы.
Анатомия атаки
Наиболее опасными мишенями кибератак являются, в первую очередь, ключевые системы информационной инфраструктуры (КСИИ), управляющие критически важными объектами. Вывод из строя таких объектов может привести к хаосу и катастрофам. Наша жизнедеятельность так или иначе зависит от этих систем. Они обогревают наши дома, подают в них воду и электричество, обеспечивают радиовещание и управляют транспортными потоками, контролируют добычу ресурсов и производственные процессы на фабриках и заводах.
Помимо промышленных объектов, существует множество организаций, для которых несанкционированный доступ к информации может стать серьезной проблемой: банки, медицинские и военные учреждения, исследовательские институты и бизнес. Такие организации также могут стать мишенями кибератак, однако в этой статье мы будем говорить только о защите промышленных объектов.
Для управления объектами в КСИИ используется то или иное программное обеспечение, к сожалению не лишенное ошибок и уязвимостей. Согласно исследованию университета Карнеги-Меллона, количество ошибок в военном и промышленном программном обеспечении составляет в среднем от пяти до десяти на 1000 строк кода. Имеется в виду ПО, используемое на практике, уже прошедшее стадии тестирования и внедрения. Учитывая, что ядро операционной системы Windows содержит более 5 миллионов строк кода, а ядро Linux – 3,5 миллиона, нетрудно подсчитать количество теоретически возможных уязвимостей, которые могут применяться для осуществления кибератак.
Для проведения эффективной кибератаки нападающий, безусловно, должен хорошо понимать внутреннее устройство атакуемого объекта. Именно поэтому атаки, как правило, состоят из нескольких этапов.
На первом, разведывательном, этапе, собирается информация о внутреннем устройстве сети, используемых там оборудовании и ПО – злоумышленников интересуют их особенности и характеристики. На этом этапе часто атакуются не целевые объекты, а компании-подрядчики, осуществлявшие автоматизацию (системные интеграторы), поскольку они, как правило, менее ответственно относятся к информационной безопасности, но при этом обладают ценными данными. Кроме того, такие компании имеют возможность авторизованного доступа к целевой технологической сети, чем злоумышленники могут воспользоваться на последующих этапах атаки. На стадии сбора информации могут быть атакованы также обслуживающие компании, партнеры, поставщики оборудования.
На втором этапе собранная информация тщательно анализируется, и выбирается наиболее эффективный вектор атаки. В зависимости от этого определяется, какие именно уязвимости в программном коде нужно использовать для проникновения в систему и каким функционалом должен обладать вредоносный код, чтобы достичь нужной цели. После чего создается вредоносная программа с нужным «боекомплектом».
Далее, если возможно, закупается программное обеспечение и оборудование, аналогичные атакуемым, и на них проводятся тестовые испытания зловреда.
И наконец, решается вопрос доставки вредоносного ПО на объект. Спектр возможностей здесь простирается от сравнительно простых методов социальной инженерии до высокотехнологичных способов проникновения через защищенные каналы связи. Как показал случай с криптоатакой на MD5, при наличии желания, упорства и вычислительных ресурсов, можно достичь многого.
Специфика АСУТП
В сфере безопасности ключевых систем информационной инфраструктуры имеется две наиболее серьезных проблемы. Это недостатки моделей безопасности, разработанных для промышленных систем, и недостатки сред, в которых исполняются эти модели.
До последнего времени при создании моделей информационной безопасности критически важных промышленных объектов бытовало мнение, что одной лишь физической изоляции объекта достаточно для его защиты. Как правило, модель безопасности таких объектов основана на принципах «security by obscurity» (безопасность через сокрытие) и «air gap» (физическая изоляция). Однако инцидент со Stuxnet показал, что эти принципы больше не работают, а подобный подход к безопасности безнадежно устарел.
На промышленных объектах ключевыми системами информационной инфраструктуры являются автоматизированные системы управления технологическими процессами (АСУТП), а также средства противоаварийной защиты (ПАЗ). От корректной и стабильной работы этих систем зависит безопасность всего объекта.
Для АСУТП характерна ярко выраженная программная и аппаратная неоднородность. В типовую технологическую сеть предприятия, как правило, входят серверы SCADA под управлением Windows либо Linux, серверы СУБД (SQL Server либо Oracle), множество программируемых логических контроллеров (PLC) различных производителей, панели оператора (HMI), интеллектуальные датчики и канал связи с системами бизнес-уровня ERP. При этом, согласно результатам последних исследований DHS, в среднем технологическая сеть имеет 11 (!) точек прямого подключения к корпоративной сети.
Характеристики АСУТП обусловлены многими факторами, такими как опыт специалистов системного интегратора, осуществлявшего внедрение, их представление об экономической целесообразности методов защиты, актуальные тенденции в области автоматизации и многое другое.
В подавляющем большинстве случаев защищенность АСУТП не является основным приоритетом в работе системного интегратора. Разумеется, такие программно-аппаратные комплексы проходят сертификацию, но, как правило, она сводится к бюрократическим процедурам.
Проблема уязвимостей
Оценивая уязвимость АСУТП, необходимо учитывать длительный срок их эксплуатации – десятки лет! При этом до середины 2000-х годов даже термина «уязвимость в программном обеспечении» еще не существовало, и такие проблемы безопасности при разработке систем просто не принимались во внимание. Большинство автоматизированных систем управления технологическими процессами, которые в настоящее время работают в промышленности, созданы без учета возможности кибератак. Например, большинство протоколов обмена данными, используемых SCADA и PLC, вообще не подразумевают никакой аутентификации и авторизации. Это приводит к тому, что любое появившееся в технологической сети устройство способно и получать, и выдавать управляющие команды на любое другое устройство.
Еще одна серьезная проблема заключается в том, что при столь длительном жизненном цикле АСУТП обновление и установка нового ПО в системе либо запрещены нормативной документацией, либо связаны со значительными административными и технологическими трудностями. В течение многих лет обновлением ПО АСУТП практически не занимались. При этом в открытом доступе есть довольно много информации по уязвимостям контроллеров и SCADA-систем, уязвимостям ОС, СУБД и даже интеллектуальных датчиков.
Не способствуют улучшению ситуации с кибербезопасностью и компании, производящие SCADA и PLC. Архив новостей ICS-CERT достаточно наглядно иллюстрирует тот факт, что вендоры не уделяют должного внимания безопасности своих решений – как программных, так и аппаратных. Зашитые в PLC служебные логины и пароли, SSH и SSL-ключи, возможность атаки на систему путем переполнения буфера, возможность подмены компонентов системы на вредоносные и осуществления DoS и XSS атак – вот наиболее часто обнаруживаемые в них уязвимости.
Кроме того, большинство вендоров закладывают в свои программно-аппаратные комплексы средства для удаленного администрирования, однако их конфигурирование перекладывают на плечи интеграторов. Сами же интеграторы зачастую оставляют эти настройки без внимания, в результате чего АСУТП нередко доступны из интернета с заданными по умолчанию логином и паролем. Между тем, в глобальной сети существуют специализированные поисковые системы, способные обнаружить устройства, доступ к которым возможен с использованием логина и пароля по умолчанию или вовсе без них. Раздобыв эту информацию, любой желающий получает возможность осуществлять удаленное управление системой.
Исходя из вышесказанного, можно утверждать, что компоненты современных АСУТП могут оказаться взломаны, заражены, работать неправильно и привести к выходу из строя оборудования, могут неверно информировать оператора и спровоцировать его на принятие неверных решений, что, в свою очередь, может привести к аварийной ситуации.
Конечно, на каждом объекте существуют средства противоаварийной защиты (ПАЗ). Однако такие средства предназначены для предотвращения аварий, вызванных случайными факторами, и против скоординированной целевой атаки могут оказаться бесполезными.
К тому же стремление к экономической эффективности приводит к тому, что производство средств противоаварийной защиты распределяется между множеством компаний-подрядчиков. И каждая из них имеет возможность встроить скрытую функциональность на нескольких уровнях – от управляющего программного обеспечения до чипа процессора.
Исторически сложилось так, что производящие промышленное оборудование и ПО компании сосредотачивались на стабильности и отказоустойчивости своих решений. До недавнего времени такой подход был, безусловно, оправдан, однако сейчас пришла пора сфокусировать внимание на обеспечении именно информационной безопасности, привлекая для сотрудничества и экспертизы своих продуктов специализированные компании.
Таким образом, мир оказался в ситуации, когда, с одной стороны, некоторые страны уже имеют кибероружие, а с другой – ключевые информационные системы государств открыты для нападения. В зависимости от уровня развития информационных технологий в стране и степени автоматизации конкретного промышленного объекта атаковать его может быть проще или сложнее, но кибератака возможна.
Точка доверия
В настоящее время назрела необходимость в создании решений, способных обеспечить надежную защиту и критически важных промышленных объектов, и прочих объектов и организаций, чувствительных к проникновению и утечке информации. Однако как бы хорошо ни работали такие решения, использование в АСУТП уязвимых ОС и ПО не позволит производителям средств защиты гарантировать безопасность системы. А в случае с критическими объектами такие гарантии необходимы.
Рассчитывать на то, что все разработчики АСУТП срочно займутся тотальной проверкой и обновлением всего используемого ими ПО, а руководители предприятий оперативно обновят уже установленные у них решения, не приходится. А если учесть, что жизненный цикл таких систем исчисляется десятилетиями, то станет очевидно, что по эволюционному сценарию внедрение защищенных АСУТП потребует значительного количества времени.
Однако глобальное решение проблемы уязвимости – не единственно возможное решение, способное обеспечить безопасность работы промышленных объектов.
В чем опасность наличия уязвимого ПО? Уязвимости – это бреши, которые могут быть использованы для проникновения вредоносных программ. Любой компонент АСУТП может быть заражен. А зараженный компонент может осуществлять в технологической сети вредоносные действия, ведущие к катастрофе, и при этом дезинформировать оператора.
В сложившейся ситуации оператор критически важной системы вынужден управлять техпроцессами, не имея никаких гарантий того, что информация, на основе которой он принимает решения, верна. По сути это одна из ключевых проблем безопасности системы – ведь цена ошибки на такого рода объектах очень высока.
Для безопасной работы промышленного объекта оператору критически важно получать достоверную информацию и управлять производством, исходя из этой информации. Это позволит избежать ошибок управления и поможет при необходимости вовремя остановить производство, не допустив аварии.
В настоящее время не существует ОС и ПО, которые могли бы быть применены в промышленных средах и результатам работы которых мы могли бы полностью доверять. И это не оставило нам иного пути, кроме как приступить к самостоятельной разработке таких средств.
Базовым средством обеспечения безопасности является операционная система. Мы считаем, что для контроля информации, которая циркулирует в промышленной сети, в первую очередь необходимо использовать саму операционную систему. Это даст гарантию, что информация корректна, достоверна и не содержит вредоносной составляющей.
Безопасная OС
Каким требованиям должна соответствовать максимально безопасная среда для контроля информационной инфраструктуры?
- ОС не может быть основана на каком-то уже существующем программном коде, поэтому должна быть написана с нуля.
- В целях гарантии безопасности она не должна содержать ошибок и уязвимостей в ядре, контролирующем остальные модули системы. Как следствие, ядро должно быть верифицировано средствами, не допускающими существования уязвимостей и кода двойного назначения.
- По той же причине ядро должно содержать критический минимум кода, а значит, максимальное возможное количество кода, включая драйверы, должно контролироваться ядром и исполняться с низким уровнем привилегий.
- Наконец, в такой среде должна присутствовать мощная и надежная система защиты, поддерживающая различные модели безопасности.
В соответствии с этим мы создаем собственную операционную систему, основной особенностью которой является принципиальная невозможность выполнения в ней незаявленной функциональности.
Только на основе такой ОС можно построить решение, позволяющее оператору не только видеть то, что реально происходит с производством, но и управлять им. Вне зависимости от производителей конкретных ОС, СУБД, SCADA и PLC, вне зависимости от степени их защищенности или наличия в них уязвимостей. Более того – вне зависимости от степени их зараженности.
Фактически речь идет об интеллектуальной системе противоаварийной защиты нового поколения. Системе защиты, учитывающей весь комплекс показателей предприятия сразу. Системе защиты, не позволяющей привести к аварии ни в результате неправильных действий оператора, ни в результате ошибок в ПО АСУТП, ни в результате кибератак. Помимо прочего, такая система сможет дополнить традиционные средства ПАЗ, что позволит отслеживать более сложные и комплексные сценарии происходящего.
Такое решение должно встраиваться в уже существующие АСУТП с целью их защиты и обеспечения достоверного мониторинга или учитываться при проектировании новых АСУТП – и в том, и в другом случае обеспечивая применение современных принципов безопасности.
Заключение
Мир изменился. Государства активно осваивают кибероружие, и это требует наличия адекватных средств защиты. Несмотря на то что ключевые системы информационной инфраструктуры имеют исключительную важность, средств, способных обеспечить их гарантированную защиту, в настоящее время нет.
На основе существующих ОС создать новые, современные и реально работающие средства защиты КСИИ невозможно. Создать новую ОС для всех компонентов АСУТП – задача очень сложная, ее решение требует времени. А проблему безопасности промышленных объектов надо решать уже сейчас.
Поэтому надо находить ключевые проблемы информационной безопасности и в первую очередь устранять именно их. Одна из таких проблем состоит в том, что системы информационной безопасности промышленных объектов опираются на недоверенные источники информации. Пока в технологической сети не появится компонент, которому оператор или некоторый контролирующий программный комплекс могли бы доверять, говорить о возможности построения системы безопасности не представляется возможным. Необходимо создать такую «доверенную базу», на основе которой можно строить систему обеспечения безопасности более высокого уровня. Такая «доверенная база» требует как минимум наличия доверенной ОС.
Мы создаем ОС, на которой будут работать компоненты системы безопасности, обеспечивающие доверенной информацией все составляющие АСУТП. В основу ОС мы заложили ряд фундаментальных принципов, соблюдение которых позволит гарантировать, что она в любой момент времени будет функционировать именно так, как было задумано разработчиком, и функционировать по-другому не может. Архитектурно операционная система построена таким образом, что даже взлом любых ее компонентов или приложений не позволит злоумышленнику получить контроль над нею или запустить вредоносный код. Этот подход позволяет нам считать такую ОС доверенной и использовать ее в качестве доверенного источника информации, который может являться базисом для построения системы защиты более высокого уровня.
Безопасность ключевых систем информационной инфраструктуры: точка доверия