Comments 21
мне кажется, внешним исследованием вы можете доказать наличие чего-либо. доказать отсутствие чего-либо не получится. для этого нужны исходники (желательно всего! - процессора, биоса, ос, компилятора, etc).
например, вы доказали наличие шифрования в продукте. но не доказали, что по "сигналу из космоса" (пакету из сети, локальному IP) это шифрование не отключается или ключ не передаётся ещё куда-либо.
вообще говоря, интересно попробовать сделать 100% достоверный код. ну например - работать на 2-3 разных микроконтроллерах, простейший ассемблер сначала, потом что-то вроде Small-C собрать. с его помощью что-нибудь посложнее. ну и так далее. при этом все исходники проверять на отсутствие "закладок". по идее - должно получиться 2-3 идентичных бинарника (кросс-компилируем). для особых параноиков - цеплять дисплей к тому же микроконтроллеру и работать на нём же. :-)
Это задача Великого Бутстрапа и насколько я знаю, для индустриального масштаба систем (читай, современных экосистем компиляторов и т.д.) она решена частично.
Идёт работа в этом направлении (reproducible builds - первый шаг), но в целом, задача невероятно сложная.
Мы объясняем саму суть исследований (Не давно люди в Open Source нашли вредоносный код в ПО). Наша цель показать как её обнаружить просто быстрее.
Я не совсем понял, что доказал автор своим исследованием. Отсутствие управляющего центра? Так он может быть в одной ноде из 1000, например. Может размещаться в 1000 разных нодах.
Вроде всё понятно: человек высказал личное мнение о текущей ситуации вокруг вопроса опен-сурс и проприетарного ПО. С парой моментов не согласен, но одно подмечено хорошо: открытые исходники реально стали чуть ли не предметом поклонения, хотя людей, умеющих в анализ и отладку чужого кода, владеющим на это временем и желанием, по пальцам.
Да. Но людей, умеющих в отладку без исходного кода, ещё меньше.
Люди построили себе сами реальность, что открытый исходный код является самым безопасным - он гарантирует самую высшую безопасность любого ПО.
Мы недавно столкнулись с новостью в Твиттере, об атаке вредоносного ПО на GitHab. И здесь мы больше просвещаем пользователей про открытый и закрытый исходных код, и как пользователю проверить ПО самостоятельно.
Возможно если у вас есть дополнения, вы можете добавить. С удовольствием добавим ещё информации.
Все упирается в доверие. Мы доверяем автору бинарника, или не доверяем. Мы доверяем результатам аудита, или не доверяем. Выполнить качественный аудит самостоятельно - у многих ли есть соответствующая квалификация?
Такую квалификацию, вы не получите в университете, или колледже, тем более на уроке информатики. Если у человека будет желание он изучит это сам, и будет знать как проверить это.
Ближе кто с этим знаком это разработчики ПО, и то сейчас даже люди в этим не сильно задумываются, 2 комбинации, скопировать/вставить. И вот такие профессионалы у нас появляются.
Из того, что мы глазами не можем прочитать пейлоад, никак не следует что:
А. Пакет зашифрован сколько нибудь надёжно.
Б. Пакет зашифрован вообще.
А отличить глазами симметричное шифрование от несимметричного не возможно совсем.
озводить open source в абсолют, как и ругать закрытые исходники, глупо.
Поздравляю, вы открыли что наш мир не черно-белый и во всем есть свои за и против. Добро пожаловать в мир взрослых. :-)
Опенсорс это не только про закладки в коде, безопасность, и всё такое.
Это так же и множество других аспектов:
Например, опенсорс (Да, я знаю, что свободная лицензия != открытый исходный код, но обычно под опенсорсом подразумевают GPL/MIT/BSD, так что я его буду использовать именно в этом контексте) - это возможность создать свой форк, который может быть лучше и удобнее.
Или вторая жизнь для приложения, который очень любит комьюнити, но на который забил автор (Потерял интерес, мотивацию, позвали на крупный проект в крупную компанию, или просто перерос "подобного рода приложения")
Это и возможность скоммуниздить код, когда не знаешь, как реализовывать ту или иную фичу.
Это и банальная независимость от какой-то одной компании (Вспоминаем недавнюю историю с Rocky Linux и CentOS)
Что касается безопасности - тут тоже побеждает Опенсорс. Если проект крупный, и используется крупными компаниями, то безопасники скорее всего будут со слезами на глазах умолять провести аудит исходного кода. И это не говоря уже о том, что львиную долю уязвимостей может подсветить какой-нибудь анализатор кода, вроде SonarQube. И да, я понимаю, что если есть потребность, то можно хоть Windows декомпилировать. Но согласитесь, провести аудит системы с закрытым исходным кодом куда сложнее, чем, имея исходники на руках.
Ну и поддержка комьюнити тоже многого стоит. Регулярно вижу на Хабре, как какой-то автор находит баг/уязвимость, и предлагает свои патчи мейнтейнеру пакета.
Так что вопрос OpenSource vs ClosedSource - это вопрос не дискуссионный. Он однозначен. И даже крупные компании уже начинают это понимать. Не говоря о том, что продаётся он ничуть не хуже, чем проприетарщина.
В первых N версиях может быть все хорошо, а потом начнут закладки вставлять.
Вы зачем-то спорите с очевидно неверным утверждением, что оперсорс решает все проблемы, и делаете никак не следующие из этого выводы о том что опенсорс не лучше проприетарного ПО.
Дело не в том что опенсорс решает все проблемы, это конечно же не так. Дело в том что проприетарное ПО проблемы гарантировано создаёт, отнимая у пользователя его базовые возможности и права - изучать, изменять и распространять программу. С практической точки зрения это широчайший спектр кейсов, от "поправить тривиальный сегфолт/поменять местами кнопки", "пересобрать под свежую версию системы/железо/с новой версией openssl" через "нанять специалиста для реализации нужной фичи" и "поддерживать форк с любыми своими хотелками и полной интеграцией с собственно инфраструктурой" до "нет больше возможности законно использовать ПО в целой стране" и "работающее вчера ПО сегодня физически превратилось в тыкву".
> Но много ли среди всех, высказывающихся по данному вопросу, реально будут тратить время на аудит приложения?
Их не должно быть много или вообще быть. Достаточно чтобы компания или индивид которым это понадобится имели возможность его провести. Достаточно просто потенциальной возможности, иначе это риски, например, не получить какую-нибудь сертификацию когда это <внезапно> понадобится. Более того, если мы говорим не про бумажки, а про реальное доверие, то только с открытыми исходниками оно и возможно.
> замаскированный пакетик с ядом мимо глаз пропускают даже специализированное оборудование и служебные собаки
Тем не менее, в исходниках его спрятать гораздо сложнее, а в случае обнаружения с исходниками гораздо проще оценить impact, в какой момент он появился и через какой канал.
> обилие всевозможных проблем, обнаруженных в таких продуктах
Это не аргумент ни за одну сторону, потому что проблемы есть везде.
Однако, предлагаю подумать над следующей мыслью: каждый коммит от внешних людей в открытое ПО, будь то фича, багфикс или устранение уязвимости, в проприетарное ПО сделан не был и не будет.
> Для примера подобной работы можно взять беглый анализ активности Utopia Ecosystem
В этом "анализе" из наличия соединений вы делаете вывод о том что приложение пиринговое, а из того что не можете понять содержимого пакетов - о том что используется асимметричное (не асинхронное:) ) шифрование. Мало того что эти предположения, даже будь они доказанными, бесполезны, так они и не доказаны - приложение могло лить с кучи нод на вашу машину ЦП cleartext'ом, или заливать на кучу нод ваши пароли от банков и кошельков с xor шифрованием, или делать что угодно создавая соедениния со случайным мусором, выводы были теми же. Чтобы только проверить наличие заявленной функциональности, нужно разобраться в нескольких мегабайтах дизассемблерных листингов и дешифровать трафик, я не говорю даже о том чтобы проверить наличие недокументированных возможностей. В случае же исходников же достаточно было бы просто в них посмотреть.
> Данным материалом хочу высказать ИМХО: возводить open source в абсолют, как и ругать закрытые исходники, глупо.
Напротив.
Гарантий, что в перспективе приложение с открытыми исходниками будет работать лучше, нежели аналогичное, но закрытое, нет никаких – всё решает уровень разработчиков.
Это только пока разработка ведётся. А вот если разработка прекращена, то судьба приложения с открытым кодом куда более радужна - его всегда могут форкнуть и продолжить разработку, тогда как если заброшенное приложение с закрытым исходным кодом прекратило работать - всё, привет, перекапывать исходный код чтобы заставить его работать - неблагодарное занятие. И это не теория, это практика, я сам так когда-то пересобирал опенсорсное приложение под x64 архитектуру (просто поменял некоторые типы, разработчик не предусмотрел что указатель может стать 64-битным). А было бы приложение с закрытым - оно бы пошло в мусорку. Главное достоинство опенсорса - его можно доработать или переделать. Это не значит, что кто-то будет, но сама возможность - несомненно радует.
Я считаю, что экосистему Утопия можно назвать местом, где есть информационная безопасность. Многофункциональный проект, который действительно позволяет оставаться анонимным.
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice 4.1.13 (Win32)">
<STYLE>
<!--
BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Arial"; font-size:x-small }
-->
</STYLE>
Децентрализованная P2P-экосистема Utopia сегодня является для меня самым безопасным местом для общения и обмена данными. Только подобные проекты выживут в ближайшем будущем.
Open Source: IT-фетиш 21 века