Systemy z rodziny Linux uchodzą za niezwykle bezpieczne. Jednak tam, tak samo, jak w każdym oprogramowaniu, również znajdują się luki bezpieczeństwa. Słynny robak WannaCry korzystał z luki w implementacji protokołu Samba w systemach Microsoftu. Okazuje się, że podobna dziura znajduje się w systemach Linux, a dokładniej w paczce Samba.
Może nie wszyscy zdają sobie z tego sprawę, ale znane wszystkim Otoczenie Sieciowe nie jest wynalazkiem Microsoftu. Bazuje ono na multiplatformowym protokole Samba, który obsługiwany jest również przez wszystkie dystrybucje Linuxa czy też komputery Apple. Tak, macOS potrafi porozumieć się z Windowsem i bez problemu można wymieniać pomiędzy tymi systemami operacyjnymi pliki. Protokół ten jest używany również do współdzielenia drukarek sieciowych, czy też wspólnych dysków. Zatem, jeżeli ktoś ma domowego NASa bazującego na systemie Linux, to on również jest zagrożony.
Luka istnieje w aplikacji serwera Samba od wersji 3.5.0.
Co ma ona wspólnego z WannaCry? Tak samo, jak exploit EternalBlue, pozwala ona na zdalne wykonanie kodu. Na szczęście atakujący jest tutaj ograniczony przez najlepsze zabezpieczenie Linuxa, czyli system uprawnień. Wszystkie polecenia zostaną wykonane z poziomu użytkownika samba, który może po prostu nie mieć dostępu do plików prawdziwego użytkownika. Co ciekawe, luka istnieje od 7 lat i nikt jej wcześniej (przynajmniej oficjalnie) nie odkrył. Całkiem możliwe, że człowieka o pseudonimie steelo, który poinformował o niebezpieczeństwie deweloperów projektu. Pewnie odkrycia tego dokonał, bo szukał tego typu luki po incydencie z WannaCry.
Błąd jest już naprawiony w wydaniach Samba 4.6.4, 4.5.10 oraz 4.4.14.
Te 3 branche są oficjalnie utrzymywane i deweloperzy dostarczają dla nich poprawki bezpieczeństwa. Znalazły się one już w repozytoriach wszystkich liczących się dystrybucji. Przykładowo, jeżeli korzystacie z popularnego Ubuntu, to wystarczy wklepać 2 polecenia (sudo apt-get update oraz sudo apt-get upgrade) i po problemie. Natomiast, jeżeli z jakiegoś powodu używacie nierozwijanej już wersji Samby, to w prosty sposób można dezaktywować dziurawy fragment kodu. W sekcji [global] pliku smb.conf wystarczy dodać parametr:
nt pipe support = no
Żeby zmiana ta zaczęła być używana przez system, to trzeba jeszcze zrestartować proces smbd. Niestety takie rozwiązanie spowoduje wyłączenie niektórych funkcjonalności używanych przez systemy klienckie z rodziny Windows.
Źródło: CERT