вторник, 27 августа 2019 г.

Почему сертифицированные решения не защищают

Новости безопасности с портала securitylab.ru за 26-27 августа 2019

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

Сегодня вы покупаете не какую-то голую железку для защиты, а к ней прилагается сервис, в котором задействованы сотни человек, которые круглосуточно отслеживают атаки всего мира, пишут новые сигнатуры для антивируса, IPS, изучают новые приложения (майнеры, анонимайзеры, туннели), смотрят где появились новые вредоносные URL, DNS, IP и все это своевременно поставляют в Ваше устройство защиты. То есть устройство защиты сегодня - живое. Оно меняется с той же скоростью, с какой меняются угрозы.

Но! С точки зрения сертификации в РФ и многих других странах в продукт не может вноситься никакая техника защиты извне. Поэтому после сертификации продукт представляет из себя конечный автомат, обновить функции защиты которого можно только повторной проверки. Поскольку сертификация занимает годы, то вам в сеть это устройство попадает значительно устаревшим. И новые угрозы вам блокировать нечем. Поэтому сертифицированное устройство защищает от угроз, которые были актуальны на момент начала сертификации.

Почему так происходит? Если мы защищаем государство, то мы рассматриваем угрозу наличия программных и аппаратных закладок. И поэтому по-умолчанию любому продукту (особенно из-за рубежа) нет доверия. И регуляторы требуют проверки исходного кода. Для производителя этот шаг скорее выражение открытости и чистоты своих намерений, потому что реально найти что-то в миллиардах строк кода операционной системы невозможно.


Для заказчика шансов остаться без закладок нет, даже если все сертифицировано, потому что закладку могут вставить в любой момент цепочки поставки от производства до доставки в ЦОД, о чем рассказывал Александр Матросов на Offzone 2019.


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

Другая проблема сертификации - уязвимости в самом продукте. Как только находится уязвимость в продукте ИБ он по-сути теряет свой сертификат. А уязвимости находят непрерывно, какого вендора ни возьми. И тут надо бы поставить исправление уязвимости - а нельзя - это исправление надо сначала проверить! И снова Вы вынуждены работать на сертифицированном несколько лет назад, да еще и уязвимом. (Шучу конечно. Да, я догадываюсь, что все адекватные люди делают.)

Почему верно проверять исходный код или среду разработки, включая обновления? Потому что даже сама компания-производитель может непроизвольно вставить в свой код вредоносный код. Так уже было с производителем бухгалтерского софта M.E.Doc, в обновлениях которого был вредоносный код Petya. Но, к сожалению, мы как пользователи можем только принять такие риски и скачивать обновления, начиная, с операционных систем, браузеров и продолжая смартфонами и приложениями на нем.

Если мы в нашей стране защищаем обычные компании, то лучше разделить два понятия сертификация и уровень доверия. Сертификация должна означать, что проверены функции ИБ. Уровень доверия должен появляться при защите гос. органов. Да, там логично: посмотрели в исходный код - то есть проверили нет ли закладок, начали работать. Но лично для меня нелогично то, что самые критичные наши госорганы нельзя защищать самым топовым и современным софтом - нужно ждать сертификации! Да уж. 

Сейчас, любой здравомыслящий отдел безопасности проводит тестирование продуктов, поскольку появилось очень много маркетинга и любой продукт сейчас "самый лучший в мире".  Любой, кто прослушал все презентации вендоров по ИБ теперь хорошо разбирается в презентациях вендоров по ИБ. Тестирование - по сути это и есть сертификация, которую все-равно проводят все заказчики. И слава богу (а кому еще?), этот пункт проверки соответствия включен в 239 приказ ФСТЭК.

Сейчас сертификация, уровень доверия и криптография связаны, поэтому сертифицировать можно только обрубленный функционал, который возможно еще как-то проверить. Алексей Лукацкий в своем блоге уже привел пример, почему сейчас NGFW нельзя сертифицировать: можно сертифицировать только L4 firewall, без VPN, SSL и удаленного управления, ведь SSH и HTTPS для управления уже нельзя использовать.

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

Можно ли изменить процесс сертификации, чтобы актуальная защита была проверена быстрее?