Как кибербезопасность трансформирует рынок ИТ (часть 3)

Как кибербезопасность трансформирует рынок ИТ (часть 3)

Как кибербезопасность трансформирует рынок ИТ (часть 3)

Несмотря на ежегодный рост бюджетов и разнообразия средств по информационной безопасности, каждый год мы получаем только кратное увеличение статистики по числу инцидентов, рост объёма утечек и фишинговых писем и пр. Почему так происходит? Возможно, нарастающая сложность и размера информационных систем негативно отражается на эффективности «наложенных» средств безопасности. В третьей части цикла статей мы поговорим о безопасности как составной части архитектуры самих программных систем и сетей и об информационной асимметрии, которая в будущем может перевернуть подходы к «технической» защите.

 

 

  1. Введение
  2. На пути к устранению информационной асимметрии
  3. Диверсификация программного кода
  4. Новая реальность информационных систем
  5. Влияние на ИТ-рынок
  6. Выводы

 

Введение

Классический подход к информационной безопасности, сложившийся ещё в годы раннего становления интернета, отражался в периметральной (perimeter-based) модели. При таком подходе у компании был внутренний защищённый сегмент, где размещались доверенные рабочие станции, и внешний сегмент с недоверенными ресурсами, доступ к которым контролировался. Между внутренним и внешним сегментом ставился файрвол, определявший правила работы с внешним миром. Этот подход весьма быстро показал свою несостоятельность. Увеличение количества рабочих станций в локальной сети приводило к тому, что контролировать каждый хост стало практически невозможно. Попытки мониторить не только периметр, но и внутренние устройства привели к подходу нулевого доверия (zero-trust), когда каждая сущность должна однозначно идентифицироваться вне зависимости от точки подключения. Сложности с повсеместной реализацией подхода zero-trust привели к дальнейшему развитию этой концепции, которую можно обозначить как «digital-trust». В случае «цифрового доверия» каждое устройство или каждый пользователь системы обладает некими паттернами поведения, которые можно считать «нормальными». Например, на смартфоне или ноутбуке установлен определённый набор ПО, который можно распознать по генерации специфического трафика в сети. Программы и сайты, которые открывает пользователь, также определяют специфические паттерны поведения. Резкое отклонение от этих паттернов можно рассматривать как инцидент в сфере безопасности, являющийся следствием подмены пользователя / устройства или работы вредоносной программы.

Такая эволюция подходов к сетевой безопасности отражает общий факт смены методов защиты в связи с неизбежным ростом сложности информационных систем. Однако непрерывно увеличивающийся разрыв между расходами на информационную безопасность и количеством инцидентов свидетельствует о том, что парадигма кибербезопасности должна измениться. Исследователи во всём мире всё больше склоняются к идее, что такая смена парадигм произойдёт в области информационной асимметрии, существующей между атакующим и защитником информационных систем. Асимметрия отражает тот факт, что время на исследование информационной системы атакующим превышает время на её проектирование, а также то, что атакующему достаточно найти и реализовать единственную уязвимость, в то время как при проектировании необходимо найти их все.

 

На пути к устранению информационной асимметрии

Поскольку любой атаке на информационную систему всегда предшествует процесс рекогносцировки, очевидной выглядит мысль сделать этот процесс как можно более сложным для злоумышленника. Можно, конечно, заблокировать доступ к определённым процессам и устройствам и тем самым защитить их от внешнего исследования, но практика показала, что такой подход не всегда эффективен. Значительно большую популярность приобрела идея непрерывного изменения параметров информационной системы. В результате полученная злоумышленником информация становится неактуальной в следующий момент времени. Такой подход был назван Moving Target Defense (MTD — защита на основе подвижных целей). Примечателен рост интереса к теме, который можно отследить на количестве публикаций в ведущих базах по теме MTD.

Основной прорыв произошёл после 2011 года, когда в Соединённых Штатах тема MTD была внесена в число приоритетных направлений развития технологий госбезопасности. После этого произошло выделение большого объёма грантовых средств по теме MTD различными фондами в США (DARPA) и других странах (Евросоюз, Индия, Китай и пр.). Если в 2011 году было 50 публикаций по теме MTD, то в 2017-м их выходило более 500 в год. Однако существенного технологического прорыва в первые годы они не произвели. Появились методы MTD, которые стали де-факто стандартами в отрасли, например технология ASLR, позволяющая случайным образом перемешивать участки используемых приложением адресов в оперативной памяти. Сейчас ASLR используется во всех операционных системах.

Наложенных средств безопасности, которые смогли дойти до рынка и начать продаваться, не так много. Здесь можно выделить Morphisec, которое устанавливается на конечные точки и способно выступить прослойкой к областям используемой памяти. Приложение CryptoMove позволяет трансформировать секрет, зашифровав и распределив его на несколько узлов с использованием MTD.

Решения MTD в области запутывания параметров и адресов локальной сети получили ещё меньшую популярность. Большинство этих наработок так и осталось в теоретических исследованиях и не нашло отражения в продукции крупных ИБ-вендоров. Несмотря на то, что технологии MTD стали де-факто стандартами по работе с памятью, полноценной защиты информационных систем по методологии MTD не случилось. Причину поражения столь красивой теории с объективно доказанной эффективностью стоит, наверное, искать не в её нерезультативности, а в сложности адаптации методов MTD к реальным системам. Система не может быть полностью уникальна. Одни компоненты приложений должны понимать другие, протоколы обмена данными должны быть универсальными, а структура ПО должна быть узнаваемой для потребителя. Всю историю развития ИТ шли по пути стандартизации и максимальной унификации процессов, и этот самый путь привёл их к проблемам кибербезопасности, которые мы имеем сейчас. Ключевой вывод из проблемы информационной асимметрии — это необходимость изменить парадигму единства функциональной структуры информационных систем и перейти к принципу максимальной рандомизации их параметров. В результате сама система за счёт своей уникальности приобретёт «иммунитет» к атакам и позволит преодолеть разрыв в информационной асимметрии.

Большинство методов MTD столкнулось со сложностью выделить их как особые продуктовые решения. Например, множество разработок было посвящено рандомизации с целью защиты от инъекции кода. Самый простой, но в то же время эффективный метод — это рандомизация команд интерпретируемого кода. Например, к классическим командам SQL добавляется случайный номер, без которого интерпретатор не понимает его как команду. Допустим, команда INSERT интерпретируется как команда INSERT только с уникальным кодом, который известен интерпретатору: INSERT853491. В этом случае невозможно будет сделать SQL-инъекцию, даже если реально имеется уязвимость за счёт отсутствия валидации параметров. Данный метод хоть и эффективен, но очевидным образом не может быть реализован «наложенными» средствами безопасности, а должен быть составляющей логики самого сервера баз данных. Другим важным подходом к рандомизации систем является диверсификация программного кода.

 

Диверсификация программного кода

Диверсификация кода подразумевает, что мы можем функционально клонировать программу, модифицировав при этом программный код. Есть огромное количество исследований на эту тему, но большинство этих работ так и осталось на уровне R&D, не превратившись в коммерчески интересные решения. Как правило, это — программы, позволяющие «нарастить» количество логических схем с конечным нулевым добавлением функциональности или осуществить шаблонную подмену определённых участков кода. Однако в конечном счёте диверсифицированная программа зачастую имела те же уязвимости, что и исходная.

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

Для того чтобы кардинально решить проблему диверсификации, необходимо достичь автоматической генерации кода приложений. Если мы сможем устранить труд программиста, заключающийся в написании конкретных команд и алгоритмических конструкций, то мы решим и проблему диверсификации. Автогенерация кода предполагает, что можно создать программу на более высоком уровне, например перечнем функциональных требований или графических взаимосвязей — а код, в свою очередь, сгенерируется под эту конструкцию автоматически.

Существует ряд подходов в области автогенерации кода, которые приобрели популярность в последние несколько лет.

  • Generative program. Одним из таких методов является метапрограммирование (metaprogramming). Оно подразумевает написание программ, которые могут порождать другие программы как результат своей работы, спроектированных так, чтобы иметь возможность читать, анализировать и трансформировать программный код. Это позволяет оптимизировать трудозатраты на некоторых задачах. Метапрограммирование может также использоваться для переноса некоторых вычислений из исполнения (run-time) в компиляцию (compile-time) и тем самым оптимизировать работу приложения.
  • Source code generation (SCG). Под SCG в основном понимаются инструменты, позволяющие генерировать код из UML-модели. Это — хороший вариант для автоматического создания классов, интерфейсов и пр. Здесь также возможна генерация кода из поведенческих моделей и диаграмм активности. Примером SCG является Scaffolding — совокупность методов автоматической генерации веб-приложений, взаимодействующих с базами данных.
  • Low-code development platform (LCDP). Данная разновидность ПО предполагает генерацию кода через графический интерфейс или набор конфигураций; в отличие от классического «кодинга», программист здесь работает только с визуализацией и моделью данных. Этот класс задач ещё можно ассоциировать с 4-м поколением языков программирования (fourth-generation programming language, 4GL), которые противопоставляются языкам третьего поколения — C++, Python, Ruby и пр. (хотя технологический стек развивается сейчас таким образом, что большинство платформ 4GL создаются как надстройка над 3GL). Здесь также нельзя не упомянуть множество AI-решений по автоматической генерации кода, но большинство из них направлено на решение узкоспециализированных задач, таких как автоматическое исправление ошибок по багтрекеру или поиск и устранение известных уязвимостей в коде.

Может возникнуть логичный вопрос: при чём здесь безопасность? Революция технологий автогенерации кода в конечном итоге приведёт к революции в кибербезопасности. Если открыть базу CVE, то можно обнаружить, что более 90 % уязвимостей приходится не на логические ошибки в разработке ПО, а на конкретную их реализацию в программном коде (спорный вопрос — также относить ли сюда аппаратные уязвимости в CVE). Если мы переносим разработку на более высокий абстрактный уровень, то это может выразиться в двух следствиях:

  1. Автогенерация программного кода способна избавить программное обеспечение от простых ошибок, которые по невнимательности оставляют программисты при ручном «кодинге». Это может быть валидация данных, правильная типизация переменных и пр.
  2. Автогенерация решает также проблему диверсификации. Мы можем генерировать различный код для каждой копии ПО. Заставить сделать это разработчика при ручном программировании невозможно, так как затраты на одну копию будут несравнимы с выручкой от её продажи. Автоматизация этой процедуры позволяет делать каждую копию ПО уникальной. Таким образом, уязвимость, найденная в одной программе, ничего не будет говорить об уязвимостях в аналогичной программе, стоящей у другого клиента.

Соответственно, сгенерированный «софт» в силу своей уникальности и неизвестности для атакующего устраняет ту информационную асимметрию, которая была раньше. И такая «размытость» функциональности и параметров ПО создаёт непреодолимую преграду для атакующего даже с учётом наличия в системе уязвимостей. Уязвимости в силу отсутствия информационной асимметрии никогда не будут найдены.

 

Новая реальность информационных систем

Как видно, мы наблюдаем тенденцию к преодолению информационной асимметрии между атакующим и защитником информационных систем, которая может быть выражена в нескольких признаках:

  1. Максимальное наращивание псевдослучайности разработки (модели данных, машинных команд, функций и пр.) безотносительно ко внешним протоколам и интерфейсам взаимодействия.
  2. Переход к динамической структуре ключевых параметров как на этапе проектирования, так и на этапе функционирования информационной системы.

Это не приведёт к решению всех вопросов кибербезопасности, но точно произведёт существенную трансформацию рынка ИБ.

Здесь мы столкнёмся с несколькими ключевыми переменами в отрасли:

  1. Закат эры вирусов и антивирусов. Если когда-то антивирусы были чуть ли не синонимом продукта по кибербезопасности, то на сегодняшний день их доля рынка существенно сократилась. Если в конечном счёте все изъяны ПО будут существовать только на логическом уровне, без возможности эксплуатировать ошибки кода, то и понятие вредоносных программ уйдёт в прошлое. Это будет конец целой технологической эпохи кибербезопасности и, возможно, некоторых вендоров, кто не структурирует свой бизнес уже сейчас.
  2. Рост объёма мошенничества (фрода) и фишинга. Самое страшное — новая технологическая эпоха хоть и приводит к закату программных уязвимостей, но увеличивает ресурсы для обмана пользователей. Уже сейчас есть решения, которые позволяют с использованием искусственного интеллекта (AI) и машинного обучения (ML) строить фишинговые письма и автоматизированно, как гипотезы, проверять их эффективность. Развитие современных NLP-технологий (NLP — Natural Language Processing, обработка естественного языка) уже позволяет создавать диалоговые системы, которые успешно проходят тест Тьюринга. Одновременно этот же технологический стек может быть использован для генерации фишинговых писем. Впрочем, есть и обратный процесс — использование NLP в обнаружении фишинговых писем (PhishNetd-NLP, например). Уже сейчас мы видим здесь ту же траекторию противостояния, что и с генерацией фейковых фото и видео (Deepfake).
  3. Создание аватаров и реализация атак путём социального инжиниринга. Если на человека удастся собрать большой объём текстовых данных его реально написанных сообщений в соцсетях и на других ресурсах, то можно будет воспроизвести чат-бота с «характеристиками» определённого пользователя и тем самым увеличить успешность психологических манипуляций.
  4. Трансформация модели угроз приведёт к росту значимости инструментов, позволяющих отслеживать корректность логики функционирования различных процессов в информационных системах. Сюда можно отнести решения по фоновой аутентификации пользователя (паттерны поведения, клавиатурный почерк и пр.), брандмауэры для веб-приложений (Web Application Firewalls), позволяющие строить «карту» сайта и «понимать» корректность работы пользователя с ними, а также различные инструменты искусственных иммунных систем (в том понимании, в котором это понятие используется компанией Darktrace).

 

Влияние на ИТ-рынок

Рынки ИТ и ИБ существуют в связке, технологически оказывая влияние друг на друга. Безопасность — это общая проблема информационных систем. Отдельный ИБ-рынок существует сейчас только потому, что большинство средств кибербезопасности являются наложенными, но эта тенденция может измениться в ближайшем будущем. Наиболее уверенно себя могут чувствовать только системы контроля пользовательского поведения в компании (DLP, мониторинг активности, UEBA и пр.): вероятно, они сохранят свой «отдельный» рынок, в то время как системы контроля сетевых атак, пентестинга, анализа кода и пр. трансформируются вместе с преодолением информационной асимметрии проектирования информационных систем.

Наиболее существенные изменения произойдут в области написания программного кода. Даже если в ближайшие годы мы не перейдём на 4GL в разработке и здесь не случится революции, принципы диверсификации всё равно станут общим правилом, как сейчас таким правилом является ASLR. И здесь есть не только очевидные бонусы, связанные с увеличением скорости разработки (а возможно, и со снижением квалификации разработчиков), но и преимущества в области кибербезопасности. Мы получаем меньшую вероятность появления уязвимостей в результате ошибки программиста и дополнительно можем диверсифицировать код на низком уровне, добавив в него элементы псевдослучайности. Безусловно, такой переход не произойдёт быстро. Главным тормозом нововведений может быть то, что подобные средства не являются «наложенными» для ИС, а поэтому маловероятно, что драйвером прогресса будут стартапы и высокотехнологичный бизнес.

Второй важной составляющей являются общая диверсификация и переход на динамические параметры информационных систем. Если вы, например, проектируете локальную сеть с динамической адресацией на IPv6 по методологии MTD, то это позволяет исключить присоединение несанкционированных узлов к сети. Они будут просто «отторгнуты», как инородное тело в организме. Аналогично использование MTD в других процессах затруднит любое несанкционированное изменение штатного функционирования. Это позволяет приобрести в некотором роде иммунитет от несанкционированной модификации и проникновения в систему.

Как это существенно может повлиять на ИТ-рынок:

  1. Переход от наложенных систем кибербезопасности к неотъемлемым свойствам самих информационных систем очевидным образом приведёт к перераспределению рынка среди производителей, общему сокращению доли ИБ-вендоров и росту капитализации компаний, разрабатывающих платформенные решения.
  2. Диверсифицированный открытый исходный код (open-source) либо удалённый open-source по подписке. В первой части этого цикла публикаций были описаны схема продажи алгоритмов и выделение условного «algoend»-слоя разработки. На сегодняшний день open-source — это изъян в безопасности. Но он перестаёт быть таковым, если:
  • каждая используемая копия open-source уникальна и найденные в ней уязвимости и ошибки не проецируются на другие копии (диверсификация кода),
  • приложение open-source используется удалённо без возможности получения доступа к коду, по принципу «algoend».

Это говорит о том, что концепция использования open-source в скором времени может быть пересмотрена, что существенно отразится на всём рынке разработки.

  1. Развитие технологий создания фишинговых писем с использованием AI / NLP приведёт к концентрации атак в области фишинга и фрода. Следствием этого будет повышенная нагрузка на пользователя, так как сейчас фишинг — это результат ручного труда, а в будущем (и уже частично в настоящем) фишинг будет автоматизирован, что также порождает спрос на автоматизацию антифишинга. В совокупности это вызовет рост капитализации NLP-компаний, а возможно — и появление целого класса решений NLP в области кибербезопасности.
  2. Всё больше технологических решений будут переходить из плоскости низкоуровневых атак в пространство человеческого фактора. Например, инструменты обмана злоумышленников (deception) по большей части занимаются имитацией элементов локальной сети компании. Однако уже сейчас появляются deception-инструменты, способные имитировать пользовательское поведение и представляться «настоящими» пользователями с целью обмана злоумышленников, а иногда и сотрудников компании.

 

Выводы

В совокупности можно прогнозировать, что в долгосрочной перспективе мы всё больше будем отдаляться от проблем кибербезопасности, связанных с ошибками программного кода, пока устранение информационной асимметрии не сведёт эту проблему к полному нулю. Но это не решит всех вопросов кибербезопасности. Безопасность — это своего рода элемент превосходства в понимании процессов функционирования ИС и возможности контролировать эти процессы. Чем более сложны будут системы, тем больше окажется вероятность наличия логических ошибок в их функционировании и влияния человеческого фактора.

Весьма явно сейчас прослеживается траектория, при которой рынок кибербезопасности в будущем будет поделён между решениями по управлению человеческим фактором, в то время как низкоуровневая безопасность перестанет существовать в виде наложенных средств защиты и превратится в составную часть платформенных ИТ-решений.

Полезные ссылки: 
AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru