Temat może trochę ciężki na weekend, ale na tyle ciekawy i gorący moim zdaniem, że warto żebym napisał parę słów co myślę o ujawnianiu informacji o lukach w bezpieczeństwie różnych produktów, różnych producentów (w tym Microsoft oczywiście).
Zaczęło się od tego, że na blogu HCSL przeczytałem, że Tavis Ormandy (specjalista ds. bezpieczeństwa, który na codzień pracuje w Google) upublicznił informacje o znalezionej przez niego luce bezpieczeństwa w Windows XP i Windows Server 2003.
O szczegółach luki możecie sobie przeczytać na seclists.org (bo nie to teraz jest tu ważne).
Znalazłem lukę – co zrobię?
Zanim przejdę dalej, to dwa słowa wstępu, bo może nie wszyscy czytelnicy mojego bloga zdają sobię sprawę jak wygląda różne podejście hackerów i crackerów (tak, rozróżniam, w dużym uproszczeniu hacker = dobry, cracker = zły) do przekazywania informacji o znalezionych lukach do producentów oprogramowania.
Istnieje kilka podejść do tematu. Człowiek taki, który znajdzie taką lukę może zrobić kilka rzeczy.
Ten zły…
Jeśli jest tym złym (crackerem) to może zupełnie nikomu o tym nie powiedzieć i wykorzystać lukę do swoich celów. Ma wtedy zagrożone systemy jak na tacy (już bez względu czy Windowsy, Linuksy czy inne OS X’y).
Na szczęście oprócz tych złych crackerów jest jeszcze cakiem spora grupa tych dobrych hackerów. Teraz taki dobry specjalista ds. bezpieczeństwa może ujawnić te informacje na kilka sposóbów.
Responsible disclosure
Po pierwsze człowiek taki może się zgłosić do producenta oprogramowania (gdzie, to chyba podawać nie muszę, bo osoby takie dobrze wiedzą gdzie mają się zgłosić) i przekazać mu informację o tym, że taką lukę znalazł, jak ona wygląda i co można za jej pomocą zrobić.
Czasami zdarza się, że dodatkowo taki człowiek mówi producentowi – „zgłaszam Wam lukę, oczekuję jej naprawy i dobrze by było jakbyście to naprawili w miesiąc, bo po tym czasie będę chciał napisać o tej luce na moim blogu„.
Tu dodam jeszcze, że Microsoft ma politykę, że za zgłoszone błędy nie wypłaca żadnych nagród (i nie jest to tylko podejście Microsoft do tego tematu).
Pewnego rodzaju nagrodą w wypadku Microsoft jest to, że informacja o takiej osobie pojawia się w biuletynie bezpieczeństwa, w którym opisana jest poprawka dot. znalezionego błędu (patrz rysunek po prawej).
I jeszcze jako ciekawostkę dodam, że wśród osób, które znalazły luki w produktach Microsoft i zachowały się w odpowiedzialny sposób jest też kilku Polaków.
I tak:
- Gynvael Coldwind i Mateusz 'j00ru’Jurczyk znaleźli błędy opisane w biuletynie MS10-021
- Michał 'lcamtuf’ Zalewski znalazł błedy opisane w biuletynie MS10-035
- Grupa Last Stage of Delirium znalazła błedy opisane w biuletynie MS03-026
Może nawet uda mi się namówić ich wkrótce na rozmowę na temat znalezienia tych luk 🙂 Jest też pewnie jeszcze kilku Polaków, o których mi nie wiadomo, a którzy również znaleźli luki i zgłosili je w odpowiedni sposób.
Full disclosure
Jest też pewna grupa osób, która twierdzi, że wykryte luki powinny być jak najszybciej szeroko opisane publicznie (właśnie tzw. full disclosure). I jeśli decydują się to zrobić, to robią to albo gdzieś na swoich blogach lub też na znanej stronie seclists.org (która jest dostępna publicznie dla wszystkich).
W tym wypadku producent często dowiaduje się o takiej luce w tym samym czasie co wszyscy potencjalni źli ludzie. Wtedy nie ma praktycznie szans na przygotowanie poprawki i zabezpieczenie iluś tam set tysięcy komputerów przed ewentualnymi problemami.
Bo np. po tej publikacji informacji o tej luce z poczatku postu – pojawiły się już gotowe exploity do np. środowiska Metaploit Framework – pozwalające zdalnie przejmować kontrolę nad zagrożonymi systemami. I pozwalające zrobić to każdemu. Microsoft opublikował póki co Security Advisory (2219475) w tym temacie.
Według zwolenników podejścia Full Disclosure pada zazwyczaj argument, że ta forma znacznie przyspiesza działania producenta oprogramowania i na załatanie luki czeka się tydzień/miesiąc a nie 6 miesięcy (albo dłużej).
Co jest lepsze?
Tu oczywiście zdania są podzielone, ale moim zdaniem pierwsza opcja (Responsible Disclosure) jest zdecydowanie bezpieczniejsza dla wszystkich. Użytkownicy mogą spać spokojniej, producenci zazwyczaj reagują na takie zgłoszenia i publikują odpowiednie poprawki.
Co ciekawe błąd od którego zacząłem posta opublikował Tavis Ormandy, który znany jest w świecie bezpieczeństwa i wydawało mi się, że kto jak kto, ale on akurat powinien wiedzieć o zaletach Responsible Disclosure.
Tym bardziej, że człowiek pracuje na codzień w Google, które samo pisze:
This process of notifying a vendor before publicly releasing information is an industry standard best practice known as responsible disclosure. Responsible disclosure is important to the ecology of the Internet. It allows companies like Google to better protect our users by fixing vulnerabilities and resolving security concerns before they are brought to the attention of the bad guys. We strongly encourage anyone who is interested in researching and reporting security issues to observe the simple courtesies and protocols of responsible disclosure. Our Security team follows the same procedure when we discover and report security vulnerabilities to other companies.
[pogrubienia moje]
Plus jeszcze widziałem go nie raz w sekcji podziękowań za zgłoszone błedy w biuletynach Microsoft. Więc musiał nie raz robić to w postaci zgłoszenia błedu bezpośrednio do Microsoft.
A teraz czytam informacje, że zgłosił ten błąd do Microsoft 5 czerwca, a już 5 dni później (10 czerwca) opublikował informację o błędzie na publicznej stronie.
W 5 dni nie ma szans na przygotowanie poprawki – zwłaszcza w wypadku Microsoft, który musi napisać poprawki, przetestować je na ogromnej liczbie systemów i jeszcze sprawdzić czy wprowadzone poprawki nie mają wpływu na inne komponenty/aplikacje.
Dlatego naprawdę jestem zdziwiony tym co zrobił rzeczony pan.
Miałem też okazję przeprowadzić krótką (i specyficzną, bo na blipie gdzie mamy tylko 160 znaków) dyskusję na ten temat z Michałem 'carstein’ Melewskim, który pisał m.in. że „praktyka pokazuje, ze FD powoduje początkowo większą ekspozycję, a potem dużo szybsze załatanie luk„. Powiem, że faktycznie z chęcią kiedyś posłuchałbym dobrze przygotowanej sesji na temat FD vs. RD i być może doświadczeń praktycznych.
Na temat podejścia do ujawniania luk pisał też ostatnio Michał 'lcamtuf’ Zalewski na swoim blogu.
No dobrze… Koniec ciężkiego tematu na weekend. Ale jeśli Wy macie swoje przemyślenia co do tych podejść – to z wielką chęcią posłucham, bo dla mnie to bardzo ciekawy temat i z chęcią podyskutuję (a na blipie nie było do tego warunków).
PS. A propos gorącego tematu z początku postu… Wracam sobie dziś spokojnie z pracy (w pracy klimatyzacja, w samochodzie klimatyzacja, z garażu windą) i po wejściu do domu normalnie ściana gorąca.
Wszedłem do domu o 17:05 i aż oczy przetarłem ze zdziwienia jak spojrzałem na termometr, który mierzy nam temperaturę w domu i na zewnątrz. W domu – 33 stopnie, a za oknem na tarasie – 49 stopni. Teraz prawie 3 godziny później (kiedy pisze tego posta) jest już „chłodniej”… w domu – 32 stopnie, na tarasie – 39 stopni… Aż wolę nie myśleć co będzie w prawdziwe lato (lipiec, sierpień)…