Ох, в интересное время живем. С одной стороны история с санкциями США привела к тому, что поднялись активные дискуссии на тему того, что надо дескать отказываться от всего зарубежного и проприетарного и переходить на свое собственное и опенсорсное. С другой стороны история с Heartbleed дала конкретного пинка всем, кто выступал за то, что опенсорс гарантирует бОльшую безопасность и защиту от уязвимостей.
И вот все это натолкнуло меня на размышления на тему возможности включения недекларируемых возможностей (закладок) в программный код. В этой ситуации история с Heartbleed очень показательна, уязвимость появилась в одном из обновлений пакета OpenSSL несколько лет назад и с тех пор благополучно ждала своего часа чтобы быть открытой и наделать много шума. Кроме того, появляется информация что агентство NSA якобы знало про эту уязвимость (чему я склонен верить) и использовало ее в своих интересах (что тоже вполне логично).
Теперь давайте посмотрим с другой стороны, со стороны разработчика коммерческого программного обеспечения (в т.ч. и средств защиты информации). Практически никто сейчас не разрабатывает программное обеспечение с нуля в полном вакууме. В любом случае используются какие-то IDE, компиляторы, программные библиотеки, готовые компоненты, базы данных наконец. Возьмите любую более-менее сложную программную систему (или средство защиты) и вы увидите что в сердце него обязательно есть какая-то база данных (MS SQL, MySQL, Oracle и пр.). Помните этот вирус, который несколько лет назад наделал много шума среди разработчиков ? Вредонос заражал компилятор и в итоге все созданные с помощью этого компилятора программы становились носителями вируса. Неплохо ? Как знать, может быть это были полевые испытания ?
Таким образом мы имеем то, что практически в любой программный код можно встроить скрытую уязвимость (она же закладка) через сторонние компоненты, используемые при его разработке и/или функционировании. Можно ли от этого защититься ? Давайте рассмотрим типовые предложения:
1) Использовать только опенсорс ? Нет, не поможет. Хотя у нас вот уже сколько всего государственного все порываются создать на базе опенсорса (и отечественную ОС и вот теперь вроде как защищенные мобильники для госслужащих и проч.) Да только будет ли это действительно безопасно ? История с Heartbleed очень четко показала, что нет. Современные программные компоненты содержат такое количество кода, что никто либо не в состоянии его проанализировать, либо просто не готов тратить на это время / ресурсы и деньги наконец.
2) Сертифицировать продукт на отсутствие НДВ ? Тоже не поможет. Потому что сертификацию эту проводят тоже люди. Смогут они найти скрытую уязвимость (или несколько уязвимостей) в программном коде ? Да бьюсь об заклад что скорее всего нет. А если к этому еще прибавить то, как это в принципе делается у нас, то тут вообще без шансов.
Единственный выход (по крайней мере, как мне видится) это создание всех компонентов используемых при разработке и функционировании ПО с нуля. Но разве могут это позволить коммерческие компании ? Однозначно нет. Более того большинству частных потребителей (их клиентам) это и не нужно.
Я считаю что подобными разработками могут и должны заниматься специально созданные компании (ФГУПы или что-то подобное), причем их разработки должны быть предназначены в первую очередь для военных целей (включая вопросы защиты гостайны и проч.). Такие компании за счет финансирования государства смогут себе позволить вести разработки с нуля. Более того они могли бы привлекать к этим разработкам существующие в России ВУЗы, обучающие по направлению информационной безопасности, прикладной математики, программирования. Т.е получится что-то вроде военных заводов, если проводить аналогию с разработкой оружия, только по производству программного обеспечения. При этом результат их разработки можно будет продавать и коммерческим структурам, которые посчитают для себя угрозу внедрения скрытых уязвимостей / закладок недопустимой и требующей минимизации. Вот куда лучше потратить деньги, а не на переделку под защиту гостайны очередной модификации Android или Linux. Но это если конечно мы хотим добиться реального результата, а не просто освоить бюджет.
Есть у нас подобные компании? Я не слышал, возможно и есть, но в лучшем случае они разрабатывают средства защиты каналов связи. Но ведь есть еще антивирусы, средства контроля доступа, системы фильтрации трафика и проч. А надеяться, что коммерческая компания разработает программную систему или средство защиты для широкого рынка, а потом за счет сертификации полностью исключит все скрытые уязвимости, просто наивно (хотя именно так сейчас это и "работает").
Кроме санкций и heartbleed есть еще и 3 история, эффект от которой перекрывает предыдущие. Один западный вендор из-за своей непомерной жадности оставил с голым задом 300 миллионов компьютеров, которые с 8 апреля до конца времен теперь беззащиты.
ОтветитьУдалитьНужно сказать, что подобная история с опенсорсом уж точно исключена.
По поводу закладок, человека, который внес злосчастный коммит, сразу вычислили (ибо опенсорсные репозитории это умеют). Им оказался студент Robin Seggelmann. Связей с АНБ не обнаружено.
К вопросу что безопасней опенсорс или проприетарное ПО. Подобную закладку в проприетарном ПО вычислить невозможно. Сколько таких закладок сегодня там есть - одному богу известно. Оптимальный способ выхода из сложившейся ситуации - краудфандинг, сбор денег на аудит кода открытого ПО, как делают сейчас с TrueCrypt.
Разработка с нуля также не выход, поскольку вопрос доверия остается открытым.
ОтветитьУдалитьСаша, такое ощущение, что ты живешь в безвоздушном пространстве - как удается то, поделись :)? Все уже месяца 3-4 это обсуждают где только можно, а тебя вдруг опс, озарило прям :)). Тактика давно ясна еще с дела Сноудена: "Проверяй чужое, создавая свое". Но для этого нужна гос программа лет так на 10.
ОтветитьУдалитьСоздать безопасную государственную операционную систему на которой будет свой браузер, word и 1С невозможно в ближайшие 20 лет в текущих условиях, а если у нас такие квалифицированные коллективы имеются, то проект будет совершенно убыточным.
ОтветитьУдалитьСчитаю что коммерческие организации продолжат использовать зарекомендовавшие себя на практике системы безопасности и выстраивать эшелонированную защиту, а госы - с ними все будет по-прежнему
> По поводу закладок, человека, который внес злосчастный коммит, сразу вычислили (ибо опенсорсные репозитории это умеют). Им оказался студент Robin Seggelmann. Связей с АНБ не обнаружено.
ОтветитьУдалитьВы серьезно в это верить что какие то разработчики смогут обнаружить факт вербовки? Они в коде своем разобраться не могут, а вы про вербовку и агентов рассказываете нам.
Если опенсорсные репозитории так хороши, то как же так вышло что уязвимость два года в открытом коде пролежала на виду у всего мира? Если в таком критическом компоненте как OpenSSL не нашли значит враньё что опенсорс хоть чем то лучше остальных.
> Один западный вендор из-за своей непомерной жадности оставил с голым задом 300 миллионов компьютеров, которые с 8 апреля до конца времен теперь беззащиты. Нужно сказать, что подобная история с опенсорсом уж точно исключена.
ОтветитьУдалитьЗатраты на поддержку вкладываются в стоимость продукта. Стандартный срок поддержки 10 лет. А "жадный" вендор почему поддерживает продукт уже 12 лет. Несет финансовые потери чтобы слоупоки всего мира могли поливать его грязью как это делаете вы сейчас.
Рассказы что с опенсорсом такой ситуации не будет это враньё. Возьмите Redhat. RHEL ведь опенсорс, но почему то срок поддержки ограничен и не вечен? Вот сюрприз то!
https://access.redhat.com/site/support/policy/updates/errata/