Модерируя секцию по нестандартному применению криптографии на Рускрипто, и слушая доклады Руслана Иванова из Cisco и Федора Синицина из Лаборатории Касперского, я в очередной раз задумался о роли криптографии в обеспечении информационной безопасности в России.
Вообще, я начинал свою деятельность на ИБ-поприще как раз с разработки СКЗИ в одном из московских "ящиков" в далеком 91-м году. С тех пор я не очень люблю эту тему, так как считаю, что она излишне жестко зарегулирована в России, а местами даже хиреет.
У нас в России признано всего три стандарта (открытых) по криптографии - на блочные шифры (Кузнечик), на хеш (Стрибог) и на электронную подпись (кстати, у него есть неформальное название?). Разработка, производство, распространение, техобслуживание СКЗИ - лицензируемый вид деятельности и "чужие там не ходят". ФСБ признает только сертифицированные СКЗИ, число которых очень ограничено, а под многие применения их попросту нет. При этом у нас есть федеральный государственный образовательный стандарт (ФГОС) по этому направлению, по которому готовятся и выпускаются молодые специалисты, которые непонятно для чего нужны (без обид). Разработка СКЗИ ограничена только разрешенными стандартами, а их применение описано в ТУ на СКЗИ - никакой свободы творчества.
При этом на РусКрипто активно обсуждаются SNP-шифры, гомоморфное шифрование, постквантовые алгоритмы, блокчейн и многое другое. По сути РусКрипто - это такая отдушина для тех, кто занимается направлениями, не имеющими практического смысла в России в обозримом будущем (по крайней мере мне так кажется). Любая же секция, на которой поднимаются вопросы практического применения криптографии (в финансовых операциях, в Интернет, в облаках, в АСУ ТП, в Интернете вещей, в блокчейне, в виртуализации, в трансграничном обмене...) разбивается об отсутствие четкой сформулированной позиции регулятора и его нежелание (как мне кажется) хоть что-то делать в этой области.
Да, ТК26 работает, выпускает различные рекомендации, методические документы, но крутятся все эти документы вокруг тех же трех стандартов и носят скорее теоретический характер, чем нечто прикладное и применимое в реальной жизни. Я помню свои дискуссии с покойным Кузьминым Алексеем Сергеевичем еще несколько лет назад на CTCrypt в Екатеринбурге. Поднималось некоторое количество вопросов "от потребителей", о которых 8ка обещала подумать и... воз и ныне там. И, видимо, уже там и останется :-(
Но оставим в стороне это лирическое отступление, поговорим о теме, вынесенной в заглавии заметки. Очень интересными оказались два доклада, которые показали криптографию немного с иной стороны. В докладе Руслана Иванова рассматривалось исследование (видео на английском), в котором была продемонстрирована возможность обнаружения вредоносного кода в зашифрованном TLS-трафике. Когда эта тема только заявлялась на РусКрипто, мне задавали вопросы, как это вообще возможно, ведь суть шифрования именно в том, чтобы нельзя было без ключа понять, что скрывается в закрытом потоке данных. Ну так вот исследования показали, что никакого ключа знать не надо и никакого перебора всех возможных вариантов тоже не требуется. Просто изучаются комбинации различных атрибутов сетевого трафика, по которым и принимается решение о наличии или отсутствии вредоносной активности. Эффективность детектирования для разных семейств вредоносного кода показана в таблице (все разъяснения даны в исследовании по ссылке выше):
Надо признать, что показатели в 99+% выглядят очень и очень многообещающе в условиях роста зашифрованного трафика в Интернет и пересечении 50%-го рубежа.
На схожую тему было выступление Федора Синицына из Лаборатории Касперского. Он также говорил о применении шифрования разработчиками вредоносного кода, но его рассказ касался внутренней кухни антивирусного вендора, который вынужден не просто детектировать вредоносный код в зашифрованном трафике, а бороться с уже зашифрованными файлами и шифровальщиками, вымогающими деньги у пользователей.
Из доклада Федора я сделал несколько выводов:
Вообще, я начинал свою деятельность на ИБ-поприще как раз с разработки СКЗИ в одном из московских "ящиков" в далеком 91-м году. С тех пор я не очень люблю эту тему, так как считаю, что она излишне жестко зарегулирована в России, а местами даже хиреет.
У нас в России признано всего три стандарта (открытых) по криптографии - на блочные шифры (Кузнечик), на хеш (Стрибог) и на электронную подпись (кстати, у него есть неформальное название?). Разработка, производство, распространение, техобслуживание СКЗИ - лицензируемый вид деятельности и "чужие там не ходят". ФСБ признает только сертифицированные СКЗИ, число которых очень ограничено, а под многие применения их попросту нет. При этом у нас есть федеральный государственный образовательный стандарт (ФГОС) по этому направлению, по которому готовятся и выпускаются молодые специалисты, которые непонятно для чего нужны (без обид). Разработка СКЗИ ограничена только разрешенными стандартами, а их применение описано в ТУ на СКЗИ - никакой свободы творчества.
При этом на РусКрипто активно обсуждаются SNP-шифры, гомоморфное шифрование, постквантовые алгоритмы, блокчейн и многое другое. По сути РусКрипто - это такая отдушина для тех, кто занимается направлениями, не имеющими практического смысла в России в обозримом будущем (по крайней мере мне так кажется). Любая же секция, на которой поднимаются вопросы практического применения криптографии (в финансовых операциях, в Интернет, в облаках, в АСУ ТП, в Интернете вещей, в блокчейне, в виртуализации, в трансграничном обмене...) разбивается об отсутствие четкой сформулированной позиции регулятора и его нежелание (как мне кажется) хоть что-то делать в этой области.
Да, ТК26 работает, выпускает различные рекомендации, методические документы, но крутятся все эти документы вокруг тех же трех стандартов и носят скорее теоретический характер, чем нечто прикладное и применимое в реальной жизни. Я помню свои дискуссии с покойным Кузьминым Алексеем Сергеевичем еще несколько лет назад на CTCrypt в Екатеринбурге. Поднималось некоторое количество вопросов "от потребителей", о которых 8ка обещала подумать и... воз и ныне там. И, видимо, уже там и останется :-(
Но оставим в стороне это лирическое отступление, поговорим о теме, вынесенной в заглавии заметки. Очень интересными оказались два доклада, которые показали криптографию немного с иной стороны. В докладе Руслана Иванова рассматривалось исследование (видео на английском), в котором была продемонстрирована возможность обнаружения вредоносного кода в зашифрованном TLS-трафике. Когда эта тема только заявлялась на РусКрипто, мне задавали вопросы, как это вообще возможно, ведь суть шифрования именно в том, чтобы нельзя было без ключа понять, что скрывается в закрытом потоке данных. Ну так вот исследования показали, что никакого ключа знать не надо и никакого перебора всех возможных вариантов тоже не требуется. Просто изучаются комбинации различных атрибутов сетевого трафика, по которым и принимается решение о наличии или отсутствии вредоносной активности. Эффективность детектирования для разных семейств вредоносного кода показана в таблице (все разъяснения даны в исследовании по ссылке выше):
Надо признать, что показатели в 99+% выглядят очень и очень многообещающе в условиях роста зашифрованного трафика в Интернет и пересечении 50%-го рубежа.
На схожую тему было выступление Федора Синицына из Лаборатории Касперского. Он также говорил о применении шифрования разработчиками вредоносного кода, но его рассказ касался внутренней кухни антивирусного вендора, который вынужден не просто детектировать вредоносный код в зашифрованном трафике, а бороться с уже зашифрованными файлами и шифровальщиками, вымогающими деньги у пользователей.
Из доклада Федора я сделал несколько выводов:
- Авторы вредоносного кода сами не разрабатывают алгоритмы шифрования и криптобиблиотеки тоже не пишут. Они предпочитают использовать готовые инструменты - CryptoAPI, OpenSSL, LibTomCrypt и т.д.).
- Используются различные схемы распределения ключей, сложность которых растет. Например, многие вредоносы используют отдельный ключ на каждый шифруемый файл и сам ключ генерится на командном C&C-сервере и отправляется вредоносному ПО по запросу (а не хранится на зараженном ПК, как это было раньше).
- Хорошая реализация криптофункций в вредоносе приводит к невозможности расшифрования/дешифрования файлов. Таких случаев все больше. Злоумышленники стали применять очень непростые схемы и протоколы.
- Злоумышленники применяют только западную криптографию в своих творениях. Федор упомянул только один случай, когда вредоносное ПО использовало наш ГОСТ и то только потому, что автор вредоноса задействовал библиотеку Delphi, содержащую набор реализаций криптоалгоритмов, включая и отечественный ГОСТ.
- Злоумышленникам не нужны никаких лицензии на разработку или распространение, а также не требуется сертификация на законченные изделия - они не скованы никакими ограничениями, присущими законопослушными потребителями СКЗИ. Это дает авторам вредоносного ПО большую фору и только случайность или невнимательность разработчиков вредоносного ПО позволяет антивирусным компаниям найти в них изъяны.
- От себя добавлю, что в условиях активного развития схемы Ransomware-as-a-Service, злоумышленникам вообще не требуется никаких знаний криптографии - все за них делают специально обученные люди.
В обоих докладах хорошо продемонстрировано, что основная проблема кроется не в самой криптографии, как таковой, а в ее практическом применении. В контексте борьбы с вредоносным кодом это позволяет "взломать" или "обойти" криптографические механизмы. А вот в контексте легального применения СКЗИ практики, прикладной эксплуатации как раз не хватает. Применение известных или рекомендованных алгоритмов или библиотек создает иллюзию безопасности, в то время как на самом деле ситуация далека от идеальной. Но, как я уже выше написал, серьезных подвижек в улучшении ситуации я не вижу.