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

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

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

Мелкий шрифт

Это не означает, что каждый проект с открытым исходным кодом плохо закодирован и пронизан дырами в безопасности. Многие проекты поддерживаются респектабельными, компетентными разработчиками, которые осознают риски и стремятся защитить своих пользователей, но есть и другие, которые этого не делают. Я хотел бы добавить, что только потому, что у проекта есть веб-сайт, список рассылки и IRC-канал, это не означает, что он безопасен. Если вы когда-либо устанавливали программное обеспечение, используя пакеты со случайных веб-сайтов или других источников, вы, вероятно, в какой-то момент были обожжены устаревшими версиями или даже троянами.

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

Откуда берутся бинарники?

Что-то, что я все чаще и чаще вижу на таких сайтах, как GitHub и SourceForge, — это добавление ссылки «просмотреть исходный код» рядом с кнопкой загрузки для их приложений. Хотя это неплохо, я обнаружил, что много раз они не знают, что делают. Многие ссылки ведут на репозитории Google Code, SourceForge или других хостингов. Ни одна из этих услуг не предлагает никакой системы проверки или обеспечения качества и обычно используется людьми, более заинтересованными в рекламе, чем в качестве.

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

Еще одно место, откуда вы потенциально можете загрузить двоичные файлы, — это отпечаток открытого ключа проекта или «pk». Вы можете найти их, если просмотрите их файл уценки на GitHub. Если у него есть отпечаток пальца, то, вероятно, он принадлежит одной из этих служб хостинга, но не дайте себя обмануть. Существует множество ключей PGP, и иногда имя хоста не соответствует тому, что вы ожидаете, поэтому всегда проверяйте сами. Это не надежный метод, потому что существует множество дополнительных ответвлений, некоторые из которых могут размещать свой исходный код на сервисах, которые вообще не предлагают никакой проверки.

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

Откуда взять бинарники?

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

Давайте посмотрим на некоторые популярные сайты:

GitHub также имеет достаточное количество проектов, доступных через его веб-сайт. Безусловно, самой популярной платформой является Linux, но мне удалось найти несколько бинарных файлов Windows и даже бинарных файлов приложений Mac OS X (хотя их было очень мало). Преимущество GitHub заключается в том, что вы можете быть уверены, что бинарные файлы новее, чем их текущая кодовая база, поэтому вы знаете, что они будут работать правильно. Вам все равно нужно проверить, из какого репозитория они связаны, и еще раз сверить его с исходным кодом на веб-сайте проекта. Я никогда не видел никаких ключей PGP для GitHub, так что вы можете поискать в другом месте.

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

Проблема с бинарниками

Итак, мы рассмотрели, откуда могут поступать двоичные файлы и как убедиться, что они не были изменены с момента загрузки. Что насчет исходного кода?

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

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

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

Суть в том, что двоичные файлы — это эффективный способ запуска проекта без открытого исходного кода. Не у всех одинаковые требования. Некоторые люди не будут устанавливать часть программного обеспечения, если у них нет готового исходного кода, некоторые люди будут устанавливать только программное обеспечение, которое выпущено с двоичными пакетами, а многие другие просто установят любое программное обеспечение, которое порекомендуют их друзья.

Безопасность через неизвестность

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

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

В дополнение к преимуществу безопасности просмотр исходного кода также может помочь вам лучше понять проект, даже если вы не планируете прикасаться к нему самостоятельно. Я знаю многих людей, которые используют Windows на своих компьютерах, потому что для них доступно множество документации и инструкций (хотя большинству из них, вероятно, было бы лучше использовать либо Mac OS X, либо GNU/Linux). Точно так же вы часто можете лучше понять, как работает приложение, изучив его исходный код. Конечно, он может отличаться от того, что вы думали, и нет никакой гарантии, что он будет работать правильно, но если вы потратите несколько часов на возню с кодом, то это время станет инвестицией на долгие годы.

Заключение

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