Какво е отворен код?

Софтуерът с отворен код е софтуер, чийто изходен код е публично достъпен от притежателя му на авторски права. Съгласно истински лиценз с отворен код, софтуерът се разработва съвместно и други програмисти могат да разглеждат, променят или използват кода за собствените си цели. Този „чист” модел с отворен код често се нарича FOSS (безплатен и отворен софтуер).


Вариант с отворен код е „източник на разположение“, което означава, че не е дадено разрешение за промяна или използване по друг начин на кода, но той е достъпен за проверка. За целите на сигурността това е също толкова добро, колкото и истинския отворен код, така че когато в тази статия визирам „отворен код“, включвам код, който е „наличен източник“.

Какво е затворен източник?

Повечето софтуер са написани и разработени от търговски компании. Разбираемо, тези компании се стремят да не им се открадват други трудни или търговски тайни, така че те крият кода си от любопитни очи с помощта на криптиране и всеки опит за използване или промяна на кода без разрешение ще доведе до съдебни дела или по-лошо.

И така, какъв е проблемът?

Както казвам, всичко това е съвсем разбираемо, но що се отнася до сигурността, това представлява основен проблем. Ако никой не може да види подробностите какво прави дадена програма, как да разберем, че тя не прави нещо злонамерено? По принцип не можем, така че просто трябва да се доверим на участващата компания, което е нещо, за което параноидните типове защита сме склонни да правим (с основателна причина).

Защо е отворен код най-доброто решение?

Ако кодът е с отворен код, той може да бъде независимо проверен и одитиран от всеки, квалифициран да го направи, за да провери дали няма заден план, уязвимости или други проблеми със сигурността. Open source не е перфектно решение (вижте по-долу), но това е единственият начин да се уверите, че софтуерът прави точно това, което трябва да прави.

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

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

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

Този проблем се усложнява от факта, че много програми с отворен код са изключително сложни, съдържащи хиляди и хиляди редове код, така че дори и да са одитирани, е напълно възможно одиторите да са пропуснали проблем (особено ако е бил злонамерен код умишлено скрити).

Но…

Отворен код, следователно, не гарантира, че програмата е „чиста“, но въпреки това е най-добрата гаранция, че имаме (или може да имаме), че това е така. Алтернативата е затворен източник, който не дава никакви гаранции.

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

Така че отворен код е чудесен за сигурност. Супер! Но как можете да знаете със сигурност, че програмата за отворен код, която току-що изтеглете, не е била подправена по някакъв начин?

Това може да звучи като хакерско параноично заговорно фантастично мислене, но през февруари 2016 г. уебсайтът на една от най-популярните версии на операционната система с отворен код Linux, Linux Mint, беше хакнат и компрометирана версия на операционната система беше предоставена на изтеглящите,

„Хакерите направиха модифициран Linux Mint ISO с бекверд в него и успяха да хакнат нашия уебсайт, за да го посочат.“

Заразените Linux ISO изображения инсталираха цялостната операционна система с Internet Relay Chat (IRC) задното Цунами, което даде на нападателите достъп до системата на потребителите чрез IRC сървъри. Така че заплахата е много реална.

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

Много по-добре е разработчиците да подпишат цифрово своя софтуер, така че потребителите да могат да проверят произхода на файл (разработчиците на монетния двор бяха много разпуснати в това отношение, тъй като софтуерът им не беше подписан цифрово и дори е използвана хеш функцията на MD5, която е използвана да се счупи!)

Моля, вижте моята статия за Цифрови подписи - защо и как трябва да ги използвате за повече информация. За съжаление, проверката на цифровите подписи е нещо болка, но е необходимо, ако се грижите за сигурността.

Трябва също да отбележа, че в идеалния случай целият софтуер трябва да бъде цифрово подписан и проверен, но тъй като отвореният код може да бъде свободно модифициран от всеки, е по-лесно да се подправя от затворен изходен код. Следователно е особено важно да се проверяват програми с отворен код.

Отворен код: Заключение

Open source не е перфектно решение, но осигурява възможно най-добрата (и единствена!) Гаранция, че на софтуера може да се вярва. Алтернативата е затворен източник, който не дава никаква гаранция (освен сляпа вяра в компанията, която е вяра, която технологичните компании не заслужават).

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