Организациони backdoor

Ових дана је тема о којој се прича (дописује) широм IT света тзв. backdoor(1) у пројекту xz (прецизније библиотеци liblzma). Овај случај истиче све мањкавости постојећег начина функционисања слободних софтверских пројеката. Није реч о техничкој грешци, нити о техничком безбедносном пропусту: нападач је убацио backdoor након инфилтрације (у стварном свету) на руководећу позицију пројекта постепеним стицањем поверења maintainer-а, а затим и заузимања његовог места као новог maintainer-а. Цела операција је веома добро испланирана: осим самог backdoor-а, нападач је слао читав низ „добрих“ печева.

пројекту xz

Штета која је начињена је огромна: библиотеку liblzma користе дистрибуције које користе systemd и glibc (другим речима: мејнстрим дистрибуције, нпр. Debian, Fedora, Ubuntu...) да би омогућиле рад OpenSSH сервера. Према неким проценама, потребно је проверити око 700 commit-ова које је послао нападач само пројекту xz (а слао их је, рецимо, и пројекту libarchive).

700 commit-ова

Сада се долази до веома интересантног закључка: као што некад вируси за Windows и DOS нису функционисали под ГНУ-ом са Линуксом, просто зато што се програми за те системе нису могли (лако) извршавати, па се за ГНУ са Линуксом прочуло да је „аутоматски безбедан систем“, тако су (за) сада Униксолики системи који не користе systemd и glibc (рецимо: Alpine Linux, OpenBSD, ...) „имуни“ на овај backdoor. Ето веома доброг разлога да се напусте мејнстрим дистрибуције ГНУ-а са Линуксом, и пређе макар на Alpine Linux, који користи musl libc, или на OpenBSD, што је тренутно и моја препорука. Ако ништа друго, систем контроле изворног кода који се укључује у издања OpenBSD-а је далеко ригорознији.

Наравно, ништа не може заштитити систем од људског фактора. Рецимо, позната пракса мејнстрим „developer“-а је да напишу Bash скрипт за инсталацију и корисницима дају инструкцију за инсталирање сличну овој:

$ sudo bash <(curl -L nekisajt.com/install.sh)

Ова епизода са backdoor-ом у xz-у показује зашто је штетност оваквих наредби апсолутна: не постоји сајт, нити пројекат, коме се може апсолутно веровати.

————————————————————

1. Део кода који омогућава заобилажење безбедносних механизама.