Что такое открытый исходный код?

Программное обеспечение с открытым исходным кодом - это программное обеспечение, исходный код которого был обнародован его правообладателем. Под подлинной лицензией с открытым исходным кодом программное обеспечение разрабатывается совместно, и другие программисты могут просматривать, изменять или использовать код в своих собственных целях. Эту «чистую» модель с открытым исходным кодом часто называют FOSS (бесплатное программное обеспечение с открытым исходным кодом).


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

Что такое закрытый источник?

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

Так в чем проблема?

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

Почему с открытым исходным кодом лучшее решение?

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

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

Не идеальное решение ...

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

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

Но…

Таким образом, открытый исходный код не гарантирует, что программа является «чистой», но, тем не менее, это лучшая гарантия того, что мы имеем (или можем иметь) это. Альтернативой является закрытый источник, который не дает никаких гарантий.

Всегда проверяйте программы с открытым исходным кодом

Так что открытый код отлично подходит для безопасности. Ура! Но как вы можете точно знать, что программа с открытым исходным кодом, которую вы только что скачали, не была подделана каким-либо образом?

Это может звучать как параноидальное заговор, основанный на фантазии о заговоре, но в феврале 2016 года сайт одной из самых популярных версий операционной системы Linux с открытым исходным кодом, Linux Mint, был взломан, а взломанная версия ОС стала доступна загрузчикам,

«Хакеры создали модифицированный Linux Mint ISO с бэкдором и смогли взломать наш сайт, чтобы указать на него».

Зараженные ISO-образы Linux устанавливали полную ОС с бэкдором Tsunami Internet Relay Chat (IRC), который предоставлял злоумышленникам доступ к системе пользователей через IRC-серверы. Так что угроза очень реальна.

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

Намного лучше, если разработчики подпишут свое программное обеспечение цифровой подписью, чтобы пользователи могли проверить происхождение файла (разработчики Mint были очень слабы в этом отношении, поскольку их программное обеспечение не было цифровой подписью, и даже известна использованная хеш-функция MD5 быть сломанным!)

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

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

Открытый источник: заключение

Открытый исходный код не является идеальным решением, но он обеспечивает наилучшую (и единственную!) Гарантию того, что программному обеспечению можно доверять. Альтернативой является закрытый источник, который не дает никаких гарантий (кроме слепой веры в компанию, которую не заслуживают технические компании).

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me