Здравствуйте. Я в этом новичок и каким бы вам ни показался мой вопрос, прошу на него ответить. Насколько я правильно понял концепцию разработки продуктов с открытым кодом, это работает так: любой желающий принимает участие в написании кода продукта, той его части, которая ему интересна. Потом группа "координаторов" проекта, редактирует и совмещает куски кода. Меня интересует вопрос безопасности. Где гарантия, что какой нибудь недобросовестный разработчик не встроит в огромный кусок кода, маленький вредоносный модуль, который например будет собирать пароли пользователя и отправлять их этому человеку по почте? Ни один антивирус или файрвол ни чем не поможет. Насколько безопасно использование продуктов с открытым кодом, гарантирована ли моя безопасность, конфиденциальность и сохранность моих данных? Гарантирует ли в частности Mozilla, что при использовании её продуктов мои данные (например пароли) находятся в безопасности, а я сохраняю кофиденциальность?
1. Ну предположим что огромный кусок кода не является "опасным". Некий злоумышленник изменяет маленький кусок кода и высылает мантайнеру патч. Мантайнер смотрит в патч и видит как на ладони тот самый маленький участок кода.
2. Допустим злоумышленник переписал полпрограммы и выслал здоровенный патч, в котором вредный код должен потеряться. Мантайнер в любом случае проверит ВЕСЬ код, и если он его устроит то внедрит в дерево исходников полностью либо частично. Вероятность появления вредного кода очень мала.
3. Предположим мантайнер облажался и включил вредный код. Но над этим участком кода наверняка работает далеко не один человек и когда эти люди обновят свои копии исходников и посмотрят что там наваяли, то вредный код будет тут же вычислен. Подобная ситуация может сложиться в состоянии интенсивной разработки программы, когда она в альфах гуляет и не предназначена для конечного пользователя. Чем ближе к релизу, тем менее весомыми становятся патчи и разобраться в них не составляет особого труда. Т.ч. к релизу код будет вычищен настолько, что никакая закладка там не выживет. Собственно подобные закладки нет смысла писать. Может и суток не пройти, а вредный код уже вычислят и он даже в дерево исходников не попадет.
Но если Вы доверяете только себе, то всегда можно ознакомиться с исходниками и изучить их с той степенью тщательности, которая Вас устроит. А потом из них уже собрать программу.
...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин
Отсутствует
Мне известен только один случай попытки внедрения вредоносного кода в открытый проект. Это когда пытались что-то пропихнуть в ядро линукса. Думаю мантайнеры kernel.org долго смеялись...
Мистик
Код - открыт, вот в чем фишка! Любой обладающий знаниями может изучить его, а обладающий деньгами - заказать исследования кода специализированным организациям.
А кто даст гарантию, что в ваш любимый шараварный плеер не внедрена зараза? Никто. И самое главное, что никто не сможет со 100% уверенностью сказать, что ее там нет... Код-то закрытый...
Отсутствует
Хочу еще пояснить, быть может не все знают кто такие мантайнеры. Мантайнер — это хранитель кода. Они есть в каждом крупном открытом проекте. Поскольку код пишут все, то за этим надо как-то следить. Именно этим они и занимаются. Они изучают присланные куски кода перед внедрением их в основной репозитарий. Каждый кусок кода проходит аудит. Его проверяют на потенциальные глюки, закладки, несовместимости. И если таковые находятся, то код никогда не попадет в репозитарий, пока все огрехи не исправят.
Что касается паролей. Нет универсального средства их хранения. Единственный надежный способ — шифровать базу данных с паролями и вводить каждый раз главный пароль при попытке доступа к базе. Но такой подход утомителен для пользователя. Сохраняя пароли в фоксе или птице, вы очень сильно рискуете. Если ваш компьютер будет заражен трояном, то увести ваши пароли и расшифровать их не представляет большой сложности. Никогда не храните важные пароли в программах. Используйте либо специализированные программы (менеджеры паролей, на форуме есть специальная тема про них), либо вообще нигде не храните свои пароли.
Black holes were created when the God divided by zero.
Отсутствует
Возникает лишь одна проблема с мантаймером: он тоже может быть нехорошим человеком.
No mercy will be granted by the drone as the feature was removed in the last operating system update
Отсутствует
Syzygy, мантайнеры не бывают плохими людьми. Это как… ну я даже не знаю. Как профессор в европейском универе. Может он быть проходимцем? Если майнтайнера поймают на таком (а его поймают, потому что код открыт и знают что именно он внес эти изменения. Все коммиты протоколируются), то это все… конец его репутации…
Отредактировано LattyF (06-06-2006 22:52:35)
Black holes were created when the God divided by zero.
Отсутствует
Отсутствия закладок, работоспособности программы и даже того, что программа не насет вреда не гарантирует практически ни одна крупная фирма-разработчик, тем более это не гарантируется для продуктов OpenSource. Кроме того, даже сертификация программного обеспечения в специализированных организациях не дает полной гарантии отсутствия закладок.
Отсутствует
Кроме того, даже сертификация программного обеспечения в специализированных организациях не дает полной гарантии отсутствия закладок.
Пожалуйста поподробней о сертификации и о специализирующихся на этом организациях. И о сертификации в подобных организациях Mozilla.
Насчет иностранных сертифицирующих организаций не знаю, но в России действует "Гостехкомиссия при Президенте РФ". Некоторые продукты OpenSource уже сертифицированы, например
ALT Linux «Утёс-К» — универсальная многоцелевая операционная система, сертифицированная Гостехкомиссией при Президенте РФ для работы с конфиденциальной информацией
(http://altlinux.ru/enterprise/)
Насколько мне известно от одного из чиновников, для работы в гос учреждениях необходимо пользоваться только сертифицированными продуктами, хотя это, видимо, не выполняется (не слышал еще, чтобы MS Windows-ы лицензировались, хотя исходный код XP вроде как отдали...).
Вообще-то, сертификация - вещь редкая судя по всему... То ли бюрократических препятствий много, то ли еще чего.
При этом, насколько я знаю, подобные органы дают заключение типа "программных закладок не выявлено", а не "программных закладок нет". Так что гарантии не дают даже они.
Отсутствует
John Lynx, с таким подходом нельзя вообще ничего использовать. Даже то, что написал сам — кто гарантирует, что нет закладок в компиляторе? Это параноя уже.
Black holes were created when the God divided by zero.
Отсутствует
с таким подходом нельзя вообще ничего использовать
Почему паранойя? Это факт. Абсолютной защиты не гарантирует никто. Я сказал как есть. Именно поэтому, несмотря на то, что MS предоставляет с недавнего времени исходный код своих ОС российским спецслужбам, звучат все более настойчивые призывы использовать в критических областях свои ОС!
Другое дело, что тот же центр сертификации может выявить, что программная закладка (хотя бы одна) в продукте есть - тогда понятно, что этому продукту нельзя доверять.
Отсутствует
с таким подходом нельзя вообще ничего использовать
Почему паранойя? Это факт. Абсолютной защиты не гарантирует никто. Я сказал как есть. Именно поэтому, несмотря на то, что MS предоставляет с недавнего времени исходный код своих ОС российским спецслужбам, звучат все более настойчивые призывы использовать в критических областях свои ОС!
Другое дело, что тот же центр сертификации может выявить, что программная закладка (хотя бы одна) в продукте есть - тогда понятно, что этому продукту нельзя доверять.
Не вижу проблемы
Возми и прочитай что в коде написано
И только потом make install
Ты думаешь как переполнения буфера находят хакеры?
Правильно читают и всматриваются в каждый клочек кода
Уж закладку бы они заметили
Отсутствует
Не вижу проблемы
Возми и прочитай что в коде написано
Действительно, чего люди мучаются - перед тем как поставить Linux просмотри его исходный код, а потом ставь... Программу новую хочешь поставить - посмотри исходный код, а потом ставь...
Видимо, товарищ далек от мысли
Отсутствует
John Lynx, имеется в виду, что если Вам очень важно убедиться в отсутствии закладок, то всегда можно это сделать. Это конечно не так просто, но возможность такая есть. Разве собственным глазам Вы доверяете меньше чем сертификатам? И не надо проецировать сказанное на каждого пользователя Linux. Эти люди в большинстве своем открытому коду доверяют. А некоторая их часть открытый код предпочитают по соображениям безопасности, даже не посмотрев ни одной строчки из него.
...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин
Отсутствует
ну если подумать, то гарантий нет никаких. никто кроме параноиков просматривать не будет - все остальные станут на грабли)
Sometimes I give myself the creeps,
Sometimes my mind plays tricks on me...
Отсутствует
Azathoth, сделать это, к сожалению, возможно далеко не всегда!
Найти все закладки - все равно что найти все ошибки. Почему бы не найти все ошибки в программе?
Это конечно не так просто, но возможность такая есть. Разве собственным глазам Вы доверяете меньше чем сертификатам?
Если программные комплексы настолько сложны, что даже на уровне архитектуры программы НЕВОЗМОЖНО найти все ошибки, то что же говорить о СПЕЦИАЛЬНО спрятанных программных закладках, которые приходится искать ТОЛЬКО по исходному коду, не имея на руках ни алгоритмов, ни схем?
Bananas,
по-моему лучше, чтобы в критических областях использования компьютеров (типа АЭС, спецслужбы и др) работали параноики, чем те, кто предпочитает наступать на грабли
Отсутствует
типа АЭС, спецслужбы и др
и так знают что им делать
многим даже на форуме регицца влом, а исходный код не такая прозрачная вещь, чтоб каждый, кто захочет, мог разобраться.
Sometimes I give myself the creeps,
Sometimes my mind plays tricks on me...
Отсутствует
Не вижу проблемы
Возми и прочитай что в коде написано
Действительно, чего люди мучаются - перед тем как поставить Linux просмотри его исходный код, а потом ставь... Программу новую хочешь поставить - посмотри исходный код, а потом ставь...
Видимо, товарищ далек от мысли
Мда. Тяжелый случай.
Ты правда решил что тебе кто-то что-то должен, и ты кому то нужен, да еще и за бесплатно?
Отсутствует
John Lynx
Если программные комплексы настолько сложны, что даже на уровне архитектуры программы НЕВОЗМОЖНО найти все ошибки, то что же говорить о СПЕЦИАЛЬНО спрятанных программных закладках, которые приходится искать ТОЛЬКО по исходному коду, не имея на руках ни алгоритмов, ни схем?
На самом деле специально спрятанную закладку вычислить стократ проще случайно оставленной ошибки. Особенно учитывая тот факт, что все исправления просматриваются мантайнером (что исключает 99% попадания вредного кода), а за ним иные разработчиками программы (из оставшейся вероятности исключается еще 99,9%), и уже после них - параноики. Давайте проведем эксперимент. Выберем опенсурсный проект и попытаемся внедрить туда "специально спрятанную" закладку. Тогда спор будет исчерпан.
Ну или давайте найдем пример удачного внедрения подобной закладки.
...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин
Отсутствует
John Lynx
Если программные комплексы настолько сложны, что даже на уровне архитектуры программы НЕВОЗМОЖНО найти все ошибки, то что же говорить о СПЕЦИАЛЬНО спрятанных программных закладках, которые приходится искать ТОЛЬКО по исходному коду, не имея на руках ни алгоритмов, ни схем?
На самом деле специально спрятанную закладку вычислить стократ проще случайно оставленной ошибки. Особенно учитывая тот факт, что все исправления просматриваются мантайнером (что исключает 99% попадания вредного кода), а за ним иные разработчиками программы (из оставшейся вероятности исключается еще 99,9%), и уже после них - параноики. Давайте проведем эксперимент. Выберем опенсурсный проект и попытаемся внедрить туда "специально спрятанную" закладку. Тогда спор будет исчерпан.
Ну или давайте найдем пример удачного внедрения подобной закладки.
В KDE добавляли комментарии на русском с приветами друзьям - через два дня вырезали
Отсутствует
nwtour
В KDE добавляли комментарии на русском с приветами друзьям - через два дня вырезали
Мне кажется что это не совсем показательный пример. Комментарии крокозяблами лучше бросаются в глаза чем скрытые закладки Да и вырезать эти коменты наверняка могли по окончанию их актуальности...
...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин
Отсутствует
На самом деле специально спрятанную закладку вычислить стократ проще случайно оставленной ошибки
Не думаю, что это так. Представьте, что вам нужно найти закладку со следующими свойствами:
1.код закладки разнесен по всему исходному коду проекта. В самом сложном случае никаких два оператора закладки не идут подряд (м.б. даже в одном модуле).
2.код закладки "зашит" в наиболее сложные для понимания модули (например, в модули, имеющие сложные алгоритмы обработки данных).
3.закладка НИКОГДА не проявится. Т.е. закладка предназначена для того, чтобы ЕДИНСТВЕННЫЙ раз активизироваться по команде извне и выполнить свои задачи. (Поэтому не подходит к рассмотрению предыдущий пример.)
Естественно, что в этом случае программную закладку выявить, как минимум, значительно сложнее, чем найти случайную ошибку. Другой вопрос, какая должна быть закладка, чтобы ее можно было найти
Вообще-то я изначально говорил не только (и не столько) об OpenSource-проектах. Но даже для них, сможет ли мантайнер найти программную закладку, разнесенную на 2 модуля? А на 20 модулей?
Отсутствует
На самом деле специально спрятанную закладку вычислить стократ проще случайно оставленной ошибки
Не думаю, что это так. Представьте, что вам нужно найти закладку со следующими свойствами:
1.код закладки разнесен по всему исходному коду проекта. В самом сложном случае никаких два оператора закладки не идут подряд (м.б. даже в одном модуле).
2.код закладки "зашит" в наиболее сложные для понимания модули (например, в модули, имеющие сложные алгоритмы обработки данных).
man diff
man path
man cvs
Никто патч с изменениями по всему продукту принимать не будет
Это принцип KISS (keep its simple, stupid) - если ты хочешь поменять, что то
меняешь только в одном месте, а не переписываешь весь продукт
3.закладка НИКОГДА не проявится. Т.е. закладка предназначена для того, чтобы ЕДИНСТВЕННЫЙ раз активизироваться по команде извне и выполнить свои задачи. (Поэтому не подходит к рассмотрению предыдущий пример.)
Естественно, что в этом случае программную закладку выявить, как минимум, значительно сложнее, чем найти случайную ошибку. Другой вопрос, какая должна быть закладка, чтобы ее можно было найтиВообще-то я изначально говорил не только (и не столько) об OpenSource-проектах. Но даже для них, сможет ли мантайнер найти программную закладку, разнесенную на 2 модуля? А на 20 модулей?
Говори конкретнее
Что за ЕДИНСТВЕННЫЙ раз - Запускается в определенный день, открывает порт, содержит в себе функции просмотра файловой системы - Ты понимаешь о чем мы говорим? Как ТАКОЕ можно не заметить?
Мне кажется что это не совсем показательный пример. Комментарии крокозяблами лучше бросаются в глаза чем скрытые закладки smile Да и вырезать эти коменты наверняка могли по окончанию их актуальности...
Нет просто человек разместил свой "комментарий в стиле бивиса и батхеда" на известном ресурсе - соответственно нашлись люди которые сообщили мэйнтейнеру kde
На то оно и комьюнити - если посмотреть сколько людей работают над одним только файлом исходников то вопрос отпадет
Даже в таких больших проектах как xorg kde mozilla openoffice всегда есть человек который знает определенный участок кода досконально
Притом никто не будет принимать патч написаный запутанно или с плохим синтаксисом
Отредактировано nwtour (14-06-2006 14:34:16)
Отсутствует
Да никто вам и не собирается посылать закладку в одном патче или менять сразу весь проект!
Если можно получить контроль над критически важными системами, то на это государству не жалко и 10 лет! И огромных средств! И никакие cvs, diff, path здесь не помогут!
А ЕДИНСТВЕННЫЙ раз, значит, что при совпадении некоторых условий закладка активизируется. Например, конкретная дата, например, особым образом сформированный сетевой пакет и многое-многое другое!
Отсутствует
Да никто вам и не собирается посылать закладку в одном патче или менять сразу весь проект!
Если можно получить контроль над критически важными системами, то на это государству не жалко и 10 лет! И огромных средств! И никакие cvs, diff, path здесь не помогут!А ЕДИНСТВЕННЫЙ раз, значит, что при совпадении некоторых условий закладка активизируется. Например, конкретная дата, например, особым образом сформированный сетевой пакет и многое-многое другое!
С таким подходом - гарантии на безопасность ПО никто не даст
Отсутствует