Безопасность open source
Очень часто здесь можно услышать призывы "Используйте только открытый софт". Считается, что в open source программах не может быть бэкдоров от разработчика. Но почему? Лично я, например, не знаю языка на достаточном уровне, чтобы проверить исходники того, чем пользуюсь. И даже будь я трижды специалистом, всё равно не смог бы провести полный аудит – сырцы необходимого софта занимают явно больше, чем несколько гигабайт.
Да, исходные коды могут быть проверены любым желающим. Но много ли этих желающих? На форуме, кажется, присутствуют лучшие люди этой вселенной. Кто-нибудь досконально проверяет исходники до компиляции?
Нет, разумеется, ситуация с закрытым софтом ещё хуже. Но в чём причина распространённого мнения "В open source программе 100% нет чёрных ходов"?
Вы не верно поняли.
Дело в том, что в мире есть очень много людей. Из этих людей, многие не заинтересованы скрывать правду. Другая часть людей, которая ищет ошибки для их продажи на кримрынках, также косвенное делает благое дело: если несколько машин взломают 0day-сплоитом, то остальные уже узнают. Сила opensource в том, что всегда можно попытаться докопаться до правды. Если софт реально критичен, то его многие проверяют. Например, ntldr проверял исходники TrueCrypt. Когда обнаружили косяк в патчах к OpenSSL подняли всю историю и выяснили, кто, когда, почему, и при каких обстоятельствах закоммитил зловредный патч. Подобные расследования в области прориетарного ПО почти немыслимы. Из-за того, что встроить бэкдор и остаться самому незамеченным в области opensource существенно сложнее, то и произносятся все соответствующие слова. Если вас интересует формальный ответ на вопрос: есть информация о том, что можно серьёзный бэкдор в открытом коде завуалировать под невинную ошибку; можно внести бэкдор в сам компилятор, или даже в компилятор которым компилировали компилятор который вы используете (рекурсивность есть :)). В этом смысле доверять никому и ничему нельзя, но всё же opensource подаёт хотя бы какую-то надежду. Ещё можно закончить на той радостной ноте: почему я доверяю OpenSSH? Потому что знаю, что если у кого-то есть 0day сплоит к нему он может купить квартиру в мск. И не одну :) Почувствуйте масштаб :-D
Вероятность существования чёрных ходов в открытом ПО в силу вышеперечисленного на порядки меньше вероятности их существования в проприетарном ПО. Меня бы скорее удивило что бэкдоров в распространённом ПО нет :) Вот, к примеру:
©
Правда, хардваре не отстаёт :)
комментариев: 11558 документов: 1036 редакций: 4118
Об этом никто на этом форуме не утверждал. Перефразируя известную фразу, "безопасность open source сильно преувеличена". Нюанс же в том, что в случае среднестатистического проприетарного ПО картина ещё плачевней.
Компьютерным инженерам известно, как писать безопасный софт. Но это очень дорого (согласитесь, произвести любую сверхнадёжную вещь в этом мире — дорого). Дорого в плане времени, в плане привлечения дорогих квалифицированных программистов, дорого в плане тщательного проектирования. Как правило, заказчику не нужны все эти издержки, будь заказчиком коммерческая структура или сообщество "обычных" (как "обычный порошок") пользователей. Поэтому все продолжают писать небезопасный софт.
Но это лишь одна сторона медали — случайные баги (которые иногда влияют на безопасность). А встроить преднамеренный бэкдор можно с равным успехом и в полностью закрытый продукт, и в большой пакет с открытыми исходниками (чем меньше кода, тем это проблематичней).
А ещё у некоторых бывает такой стиль программирования, что без бутылки не разберёшься. :)
Да ладно :D :D :D :D :D Мну вспоминает программы из ПФР/налоговой, софт на АктивХэ для ряда железок, серверную виндовс, в которой до сих пор нет поддержки вланов, и многочисленные самописные учетные системы. Если там и есть высшее образование – то разве что гуманитарное, и то с липовым дипломом.
И да, я посчитаю за большую честь познакомится со школьником, написавшим OpenSSH, OpenVPN, iptables и quagga :D :D :D :D :D