Интервю с OSTIF, екипа зад одита на OpenVPN

OSTIF одитира OpenVPN в полза на всички.

Току-що завършихте одита си за сигурност на OpenVPN. Двама души работиха почти два месеца по този проект. Как работи такъв одит?

Всъщност се оказаха трима изследователи, работещи общо 50 дни (около 1000 часа) върху прегледа на сигурността.

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

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

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

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

Още повече има OpenVPN 3.0, който е уникална версия, която не е напълно отворен код. OpenVPN 3.0 е създаден поради проблеми с лицензирането на магазина на Apple App, които предотвратяват безплатен софтуер в магазина. OpenVPN 3.0 код се използва за OpenVPN Connect за Android и iOS. Ако трябваше да оценим цялата тази екосистема, ще са необходими много изследователи много месеци, за да се преборят с всички тези вариации на OpenVPN, и тогава те все пак ще трябва да разгледат всички различни мрежови и хардуерни конфигурации, с които тези различни приложения могат да се сблъскат. Сложността и разходите биха били огромни.

Консултирахме се с експерти и работихме с екипа на OpenVPN и QuarksLab, за да разберем върху какво да се съсредоточим. Беше решено, че OpenVPN 2.4 за Windows и Linux покрива най-много потребители и ще направи най-доброто. Повечето търговски VPN доставчици използват OpenVPN 2.4 код за своите потребителски VPN клиенти поради лицензионната структура около него.

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

Отделен одит на OpenSSL би ни позволил да оценим отблизо самата криптография на OpenVPN, за да гарантираме, че и криптографията, и приложението са здрави. Важно е да създадете безопасно и трудно за експлоатация приложение, за да могат потребителите да се наслаждават.

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

Има ли изненадващи / забележителни констатации от вашия одит, които бихте могли да споделите с нас сега?

Намираме се в етап на затъмняване на процеса на одит за OpenVPN, така че няма да мога да обсъждам каквито и да било специфики, които могат да намерят хората в резултатите, но те ще бъдат публично достъпни съвсем скоро. Чакаме OpenVPN 2.4.2.

Каква е обосновката зад такъв одит? Отклонявате ли се от потенциални дупки в сигурността или просто искате да разгледате по-подробно софтуера, на който редовно разчитате?

Стратегията ни като организация е да обхващаме различни области на сигурност и поверителност и да избираме широко използвани приложения.

VeraCrypt беше много необходим наследник на TrueCrypt, на който общността много разчиташе, но хората, които управляваха проекта, бяха сравнително непознати и предприеха мащабен проект със сложен код. Има логичен смисъл да подходим към него като към първия си одит, защото можехме да оценим промените в кода, който влезе в TrueCrypt 7.1a и да го сравним с текущата версия на VeraCrypt. Този тесен обхват ни позволи драстично да намалим разходите и да покажем на хората, че организацията е ефективна при получаване на резултати.

OpenVPN е първият ни „широк“ одит на приложение. Това изискваше много по-голям бюджет, но имаше и голяма общност от VPN доставчици (които самите са активисти за поверителност). Доставчиците на VPN се интересуват както от поверителността на своите потребители, така и пряко загрижени за безопасността на OpenVPN, което ни позволи едновременно да набираме средства както от търговски интереси на OpenVPN, така и от частни потребители..

OpenSSL отново е по-голям, но има индустриална поддръжка навсякъде около него, тъй като OpenSSL код (и други библиотеки, извлечени от него) захранва около 70% от първите 1000 000 уебсайтове. Това ни дава много бизнес интереси, за които можем да поискаме финансиране, за да помогнем за оценка на OpenSSL 1.1.1, което ще бъде първата версия на OpenSSL с нов код TLS 1.3.

С напредването на списъка с приложения, които планираме да извършим одит; става по-трудно да се съберат средства. Или защото общността, която ги заобикаля, е по-малка, или защото няма голям бизнес интерес от успеха на заявлението.

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

Накратко, в момента всичко това е част от по-голяма стратегия за поддържане на едно приложение от всяка основна област на поверителност и сигурност, а след това разширяване оттам. Нашите критерии са възприеманата сила на софтуера, комбинирана с широко приложение.

За вашия OpenVPN проект сте получили подкрепа до голяма степен от VPN индустрията. Очаквахте ли подкрепа отвъд това? Колко сте доволни от тази подкрепа?

Също така получихме голяма подкрепа от общността както от уста на уста, така и от директни дарения.

Целта ни беше надминат изненадващо бързо, тъй като първоначално вярвахме, че едномесечният прозорец, който сме отпуснали за набиране на средства, ще бъде недостатъчен. Но ние постигнахме целта си и вдигнахме значително повече от планираното в рамките на 20 дни. Тези пари бяха заделени за програмата за баг-баунти, която се планира да започне през лятото / есента.

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

Въпреки това като цяло доброто далеч надвишава лошото и очакваме да работим с всички наши привърженици по инициативите на OpenVPN и след това!

Преминахте от модел за набиране на средства с обединени ресурси към директен модел за набиране на средства, при който събирате средства за всеки проект поотделно. Изглежда, че това е работило добре за проекта OpenVPN, където индустрията за VPN с удоволствие дарява. Очаквате ли бъдещите проекти да бъдат финансирани по подобен начин и как ще работи това за софтуерни проекти, които нямат търговска индустрия около тях, като OTR?

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

Нашата промяна в стратегията сведе до крайните разходи и числата и постави по-постижими цели, но също така изисква значително повече работа за всеки набиране на средства. Надяваме се, че след като изградим репутация на отговорност и ефективност, ще успеем да осигурим по-големи донори, които ще ни позволят да се съсредоточим повече върху изпълнението на нещата и по-малко върху директно събиране на искания за дарения. По-големите дарения ще имат и допълнителното предимство, като ни позволяват да финансираме по-малко комерсиални проекти като OTR, Nginx, Tunnelblick и други.

Как виждате, че се развиват поверителността и технологията за повишаване на сигурността? Особено по отношение на мобилните телефони и собствените системи?

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

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

Има доказателства за това чрез мащабната кражба на клавиши на SIM картата с Gemalto, огромни списъци с разграбени RSA ключове с течове на NSA, заден ход, вкаран в системите на Cisco и Juniper и т.н..

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

Изглежда, че някои компании вършат голяма работа от собствената страна, но многократно сме научили, че не можем да се доверим на черна кутия код. Вижте този месец преливане на купчина в iOS: https://googleprojectzero.blogspot.com/2023/04/exception-oriented-exploitation-on-ios.html

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

Наистина телефон с отворен код е голямо питане, но със сигурност можем да се опитаме да прокараме общността с отворен код в правилната посока да разработваме парчета от пъзела независимо. Наистина се надявам, че можем да стигнем до там, тъй като настоящата ситуация е бъркотия. Шокиран съм, че вече няма смартфон Mirai, базиран на смартфони, който да разрушава кули от клетки по целия свят с наводнения на данни.

Apple прави много положителни новини със своите собствени системи по отношение на сигурността и поверителността. Какво мислите, че ще играят проекти с отворен код за довеждане на използваема технология до масите, като същевременно спазват правата на потребителите?

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

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

За да бъдем ясни, към момента те вършат обективно по-добра работа от Google, когато става въпрос за обща сигурност. Проблемът е, че на тази черна кутия не може да се вярва. Той има грешки, както всеки софтуер – хиляди грешки. Тъй като този софтуер е патентован и източникът не е достъпен, тези бъгове чакат да бъдат открити от екипа за сигурност на Apple или някой друг в света, който ги намира първо.

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

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

Гледате много на кода на други хора. Какви общи грешки наблюдавате? Какви бъгове са най-често срещаните?

Всъщност не правя самите проверки за сигурност, които са оставени на договорените одитори. Но най-често срещаните проблеми са проблеми с управлението на паметта и правилното изтриване на данни, свързани със сигурността, когато вече не се използват.

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

Имате ли съвет да споделите с многото кодери, които четат това?

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

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

Ще се шокирате колко няколко долара помагат на малките проекти да функционират и да се подобрят. Малки приноси допринасят за един по-добър дигитален свят за всички нас.