Ujawnianie informacji o lukach bezpieczeństwa


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“.

imageTu 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:

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).

Temperatura w domuPS. 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ń)…

Comments (18)

  1. @grzesiek: To, że Ty wybrałeś dla siebie i swojej kariery oprogramowanie Open Source i jest ono dla Ciebie OK to wszystko w porządku.

    Co do płacenia i tego, że myślisz, że nie warto. Wiem, że mocno uproszczę, ale… są osoby, które kupują Fiata i jest dla nich OK a mówią, że Maybach jest drogi. Dla innych taki Maybach jest wart swojej ceny 😉

    Co do zmuszania pracowników. Jeśli masz dobre argumenty za Twoim podejściem to myślę, że zawsze warto porozmawiać na ten temat z IT czy zarządem i przekonać ich do Twoich rozwiązań. Pamiętaj tylko, że koszt użytkowania oprogramowania to nie tylko koszt zakupu licencji. Gdyby tak było to już dawno nikt nie kupowałby produktów Microsoft. Jak widać jednak sprzedają się całkiem dobrze.

    Z tym ośmieszaniem i wykrywaniem dziur – to chodziło mi tylko o to, że pracownika Google, które samo sugeruje, że lepsze rozwiązanie to zgłaszać uwagi do producenta a nie mówić o tym szeroko światu – sam ten pracownik postąpił inaczej. I nie sądzę, aby jego argumentem było to, że Microsoft to jego wróg.

  2. Anonymous says:

    @mariusz gdzie ty mieszkasz w afryce?

    a tak na poważnie to jak się nawet pracuje dla konkurencji to się nie upublicznia luki w systemie konkurencyjnym tylko stara się przekazać to drugiej firmie żeby załatali sobie system. Rozumiem że jak się walczy o rynek to czasami się w ten sposób chce wygryść konkurencje – ale jest to miecz obosieczny. Skoro zdradza się tajemnice innych to traci się po trochu szacunek dla własnej osoby i firmy którą się reprezentuje.

  3. poprawka poprawką… gorzej z jej publikacją i tym co przy tej okazji rozwali.

  4. @bkr: No może bym tak twierdził 😉 ale póki co nikt Maybachów nie rozdaje 🙂

    @grzesiek: Ja bardzo sobię cenię użytkowników i fanów Linuxa na moim blogu. Zwłaszcza takich z którymi można rozsądnie podyskutować. Wtedy nawet jeśli wytykają mi jakieś błedy w rozumowaniu to nie mam problemu przyznać się do błędu. Co innego natomiast myślę o fanatykach linuxa – oni szkodzą samym sobie…

    @Gynvael: Dobre pytanie! 🙂 Ale wcale nie jest tak bardzo źle jak mogłoby się wydawać. Ja na szczęście na moim blogu mam bardzo fajnych fanów i użytkowników linuksowych i bardzo sobię cenię dyskusję z nimi. Nawet jeśli schodzi z tematu.

  5. @Gynvael: No z tym terminem to tylko spekuluje jak Microsoft reaguje na stwierdzenia typu "macie na to miesiąc", bo nie wiem… Ale mimo wszystko wtedy moim skromnym zdaniem (nie wiem jak mojej matki korporacji) jest to dużo rozsądniejsze podejście niż FD.

    I zgadzam się z Exploit Wednesday 🙂 Dlatego też tak bardzo namawiam do włączania aktualizacji automatycznych. W innym wypadku – to jak piszesz Ci źli mają dużo łatwiejszą robotę.

    "Dopadnę" Cię więc w bardziej wakacyjnym terminie 🙂 Bo myślę, że naprawdę może to wiele osób zainteresować (nawet gdy spory czas temu wspomniałem o tym w firmie, że są Polacy którzy znajdują dziury w naszym sofcie, to już się parę osób zainteresowało i nadstawiło uszu).

    @grzesiek: Ja zawsze po dwa razy się zastanawiam czy odpisywać coś ludziom piszącym M$ (z tym dolarem)… Bo to pokazuje od razu podejście do dyskusji niestety 🙁

    Czy Microsoft jest bezwględny dla konkurencji? Pewnie tak – w końcu jest komercyjną firmą 🙂 Czy dla użytkowników? Nie bardzo rozumiem jak tu miałby być bezwzględny dla swoich Klientów – to trochę samobójstwo by było.

  6. @Marcin: Zachciało się mojej żonie mieszkać na ostatnim piętrze od strony wschodnio-południowo-zachodniej to i słońce mamy non stop i na całego… Chyba trzeba będzie pomyśleć o klimatyzacji wkrótce.

    A co do meritum – nie sądzę, żeby to było celowe działanie tego człowieka wymierzone jako konkurencja Google-Microsoft. I trochę jak podkładanie świni. Ale nie mogę zrozumieć dlaczego tak tym razem zrobił (gdy wcześniej robił zupełnie inaczej). No ale to wie tylko on, a nie widziałem, żeby się chwalił gdzieś powodami.

  7. Uwaga – długo będzie… 🙂

    @Łukasz: Ja wiem, że sa jakieś pojedyńcze wypadki gdzie luka była zgłoszona długi czas temu i albo nadal nie jest poprawiona albo jej poprawienie trwało wieki. Ale myślę, że jednak większość FD w Microsoft jest jednak traktowana rozsądnie (przynajmniej od jakiegoś czasu).

    @ziembor: po pierwsze po to są potrzebne testy w Microsoft (i dłuższy czas przygotowania), po drugie po to łaty wydawane są raz w miesiącu (żeby admin nie musiał co drugi dzień siedzieć i łatać), po trzecie… no niestety zgadzam się, że admin też u siebie w środowisku testowym powinien sprawdzić jak łata się zachowa przy jego sieci, aplikacjach, itp.

    Mi owszem raz się zdarzyło w całej karierze, że łata od MS powodowała problem (wtedy była o niskim stopniu zagrożenia i ze względów czasowym po prostu jej nie instalowaliśmy). A u Ciebie (pewnie w dużo większym środowisku) miałeś więcej problemów z łatami?

    @Gynvael: Zastanawiam się czy w wypadku jakby zgłaszający stwierdzali – podałem Wam na tacy rozwiązanie łaty, teraz daję Wam miesiąc – czy to wtedy nie byłoby rozsądniejsze wyjście.

    Co do argumentów Tavisa – widziałem ten z "significant possibility", ale czy w ten sam sposób nie można powiedzieć o 90% innych wykrytych dziur? Tym bardziej przy tym co MSRC napisało (choć tu wiem, może być podejrzenie, że wygodniej było tak napisać 😉 )

    Faktycznie też przyznaję Ci rację, że dodatkowe opublikowanie jak zabezpieczyć lukę przed patchem – to miłe z jego strony 🙂

    A ten raport z chęcią przeczytam już na spokojnie w poniedziałek. Dzięki za linka.

    Swoją drogą – jak pisałem w poście, ja Cię kiedyś z chęcią "dopadnę", żebyś może opowiedział dwa słowa do moich czytelników (i może nie tylko) o samym "szukaniu dziur w całym" oraz jak z Twojego punktu widzenia wyglądał cały proces od zgłoszenia aż po patcha – dasz się namówić? 🙂

    @m3to: Nie kojarzę takiej sytuacji z Microsoft, żeby ktoś zgłosił lukę (w normalny sposób, bez szantażu typu "chcę tyle kasy") i został aresztowany. Chyba, że to przeoczyłem – jeśli tak to prośba o podesłanie jakiegoś linka bo z ch��cią poczytam i podrążę temat.

  8. Łukasz Jagiełło says:

    Czytając ile czasu zazwyczaj mija od zgłoszenia luki przez odkrywcę (o ile jest on faktycznie jeden ;-p) do poprawienia błędu gdzie wszyscy żyją w błogiej nieświadomości to ja już wolę dostać wszystko prosto z mostu i wiedzieć z czym mogę mieć do czynienia.

    Zresztą FD to głównie problem właśnie M$, oprogramowanie open source zazwyczaj nie ma problemu z przygotowaniem poprawki w stosunkowo krótkim czasie, niezależnie jak skomplikowane jest to oprogramowanie.

  9. Gynvael Coldwind says:

    Komentarz będzie długi 🙂

    Na początek chciałbym przypomnieć o jednej sprawie – mianowicie, Tavis na początku roku również poszedł FD z jednym local priv escalem (pisał o tym m.in. Niebezpiecznik: niebezpiecznik.pl/…/17-letnia-dziura-w-windows-0day-vdm).

    W tym wypadku MS dostał informacje o luce afair 6 miesięcy wcześniej, niemniej jednak nie zdążył przygotować i wydać patcha. Mogę się domyślać, że Tavis uznał, że to wystarczająco dużo czasu na przygotowanie patcha (szczerze mówiąc, trudno mi się z nim nie zgodzić) i poszło FD.

    Może w tym wypadku nie chciało mu się ponownie przechodzić tego procesu? (6 miesięcy bez patcha -> FD)?

    A teraz na temat 🙂

    @Mariusz Kędziora

    "No ale to wie tylko on, a nie widziałem, żeby się chwalił gdzieś powodami."

    A ja widziałem 🙂 Napisał o tym w adv. (seclists.org/…/119), pozwolę sobie zacytować:

    "I've concluded that there's a significant possibility that attackers have studied this component, and releasing this information rapidly is in the best interest of security."

    Czyli, w luźnym tłumaczeniu – stwierdził, że istnieje wysokie prawdopodobieństwo, że "ci źli" już od dawna znają tą lukę, więc najrozsądniejsze było opublikowanie informacji o niej od razu (co brzmi logicznie).

    MSRC natomiast napisało, ze nie widziało aby ktoś to exploitował ("We are not aware of any current exploitation of this issue" – blogs.technet.com/…/windows-help-vulnerability-disclosure.aspx)

    Oczywiście, czy było czy nie było to znane "tym złym" wiedzą tylko "ci źli", i ani MSRC ani Tavis ani my prawdopodobnie się nigdy o tym nie dowiemy ;p

    Swoją drogą chciałbym zwrócić też uwagę na to, że Tavis opublikował informacje o luce razem z informacją jak ową lukę zabezpieczyć zanim pojawi się patch, co jest niestety pomijane w medialnych informacjach które się pojawiają.

    Inną sprawą jest, że podobno część z zaproponowanych przez niego work-around'ów nie działa prawidłowo (http://secunia.com/blog/103/), a część działa OK 🙂

    Co do czasu patchowania, no to nie ma się co oszukiwać, FD wymusza szybsze patchowanie. A w przypadku RD, to faktycznie bywa "różnie". Jakiś czas temu Hispasec wypuściło raport na temat długości patchowania vulnów (http://www.hispasec.com/…/Hispasec_Estudio_Vulnerabilidades.pdf – po hiszpańsku, ale wykresy i tabelki da się zrozumieć ;>), z którego wynika, że dużym vendorom niespecjalnie się spieszy (aka 1043 czy 1021 dni od zgłoszenia błędu do wydania patcha).

    OK, tyle 🙂

  10. mt3o says:

    Nie ma chyba reguły co do czasu załatania luki. Gdy ma miejsce RD dostawca oprogramowania jest w lepszej sytuacji. W przypadku FD – pali mu się grunt pod nogami. Nie zgodzę się z tym, co napisał Łukasz Jagiełło – są znane luki sprzed lat których nikt nie łata.

    RD czasami jest źle odbierane przez firmy. Były (i są pewnie nadal) przypadki, gdy hacker zgłosi RD, zaoferuje się, że naprawi problemy na takich zasadach jak normalny pracownik, a jak przychodzi do podpisania umowy, jest aresztowany.

  11. Gynvael Coldwind says:

    @Mariusz Kędziora

    Odnośnie "podałem Wam na tacy rozwiązanie łaty, teraz daję Wam miesiąc" – pomysł jest niezły, ale przyznaję, że słyszałem, jak przeciwnicy takiego podejścia kontrargumentują, ze researcher wyznaczając jakiś deadline wchodzi butami w kompetencje menadżerów danej firmy i określa jak firma ma funkcjonować (tj. "rzućcie wszystko inne i poprawiajcie to, bo ja, zewnętrzny researcher, tak chce"), co oczywiście jest niemile widziane.

    Oczywiście znajdzie się i kontrargument na to, więc dyskusja na temat disclosure'ów nie ma końca :)))

    Imo należy również zauważyć, że z RD jest jeden problem (poruszany zresztą wielokrotnie, m.in. na CONFidence w tym roku) – po Patch Tuesday następuje Exploit Wednesday, czyli dzień w którym na podstawie patchy "ci źli" tworzą exploity i exploitują tych którzy nie zdążyli ściągnąć update'a.

    I tutaj w zasadzie dochodzimy do punktu wspólnego RD i FD – co z tego kiedy ujawniana jest luka – czy w momencie dostępnego workaroundu czy w momencie dostępnego patchu, i tak dzień później "ci źli" mają exploity i bez problemu znajdą ludzi którzy nie zainstalowali patcha / nie zaaplikowali workaround'u z jakiegoś powodu.

    Hehe co do "dopadania mnie" – jeśli uważasz, że kogoś to zainteresuje, to sure, kontakt do mnie masz 🙂

  12. czulej says:

    Nie będę się bawił w argumenty – M$ walcząc o rynek też jest bezwzględny 🙂 i to nie tylko dla konkurencji ale nawet użytkowników.

    Powiem krótko – też bym tak zrobił, bo kto mieczem wojuje ten od miecza ginie.

  13. czulej says:

    Kiedyś byłem użytkownikiem Windowsa, interesowałem się programowaniem. Uderzyło mnie to, że Microsoft zmusza swoich klientów do płacenia za coś, czego bym tak bardzo nie wycenił. Nie podobało mi się to, że uczę się technologii, której bez płacenia haraczu nie będę mógł wykorzystać. Dlatego szukałem czegoś innego, open source może nie jest idealne ale to czego się nauczę mogę wykorzystać i w domu i w pracy bez inwestowania na sam początek pary tysięcy. Tyle wstępu, jeżeli chodzi o wyrażenie M$.

    Teraz na temat. Dajmy na to takie rozwiązanie jak licencje dostępowe do serwera albo ograniczenie ilości połączeń z zasobem sieciowym w postaci katalogu – przecież to jakaś paranoja jest i co najważniejsze realna dlatego, że Microsoft wykorzystuje do tego swoją pozycje monopolu i kontroli platformy programowej.

    Więc teraz moje pytanie brzmi: dlaczego użytkownicy tego systemu mieli by "nie ośmieszać go", przecież, zwłaszcza w firmach są niejako zmuszeni do używania go.

    Nie ukrywam, że jestem negatywnie nastawiony do tej firmy, ale to nie wynika z uprzedzeń, tylko przykrych doświadczeń.

    System Windows ma słabość, jego producent narobił sobie wrogów, więc skąd to zdziwienie, że został zaatakowany?

  14. bkr says:

    @Mariusz

    A gdybyś miał do wyboru Maybacha gratis lub Fiata za określoną cenę to twierdziłbyś, że Fiat jest wart swojej ceny 😉 Mocno uproszczając oczywiście

  15. marcin says:

    Open Source Software moze byc bezplatny jak i platny.

    Free Software moze byc Open Source Software jak i zarowno zalany zywica eposkydowa.

    Tak dla scislosci.

  16. czulej says:

    Powiem tak, gdyby zebrało się kilku naukowców lub znających się na rzeczy facetów i dyskutowali by nad tym, nad czym my tu niby dyskutujemy, to oczywiste, że niemówienie o tym jest najlepszym wyjście. Przypomina mi to jedną ze śmiesznych sytuacji, gdzie złodziej z banku uciekając zatrzymuje się na drzwiach, bo nie może ich otworzyć – okazało się, że otwierają się w drugą stronę.

    Sam interesuje się bezpieczeństwem i potwierdzam, że ze względów bezpieczeństwa nie powinno się o tym rozpisywać, ale w życiu nie tylko rozumem człowiek się kieruje. I ten pan dobrze o tym wiedział i specjalnie zrobił inaczej – czemu? Emocje 🙂 Jestem przekonany, że o coś tam poszło, pewne ktoś naruszył jego ambicje i tyle.

    Mariusz nie jestem Fanem Linuksa tylko Użytkownikiem!

  17. Gynvael Coldwind says:

    @Mariusz

    Powiedz mi, jak często na Twoim blogu komentarze schodzą z dowolnego tematu na Windows vs Linux ? ;)))))

  18. mt3o says:

    @Mariusz: Takiej wpadki Microsoftowi nie przepuściłyby ani media, ani społeczność OS ani społeczność security. 😉

    O ile pamiętam, sprawa dotyczyła jakiegoś CMSa niewielkiej firmy. W wolnej chwili przekopię się przez RSSy i Google'a może znajdę właściwy link.

Skip to main content