"Proof of concept"


W angielskojezycznych (choc nie tylko) rozwazaniach na temat bezpieczenstwa, tytulowy termin przewija sie calkiem czesto i oznacza on, ze ktos wymyslil, jak moznaby wykorzystac luke zabezpieczen, gdyby sie umialo. Ale ze sie nie umie, to sie tworzy wlasnie "proof of concept".

Rozumiem, ze luki w zabezpieczeniach to powazna sprawa i znalezienie ich musi sie wiazac z natychmiastowa reakcja producenta. Rozumiem, ze odkrywca luki chce miec swoje pare minut slawy. Rozumiem, ze opracowanie kodu, który wykorzystuje luke do osiagniecia wlasnego celu (chocby na pokaz) to naprawde spore osiagniecie.

Ale chwalenie sie wydumanym scenariuszem, którego nie umie wprowadzic sie w zycie? Jakos do mnie nie przemawia... czego to ma dowodzic, poza niekompletna wiedza twórcy? Bo gdyby wiedza byla kompletna, ów twórca mówilby o "exploicie". Pokazalby kod, nagralby krótki filmik, opisalby szczególowo przypadek itp. Zamiast tego woli jednak przyjac jakies karkolomne, nierealne w praktyce zalozenie i na nim zbudowac swój pseudo-dowód.

Wezmy przypadek: "Aplikacja X podatna jest na przepelnienie bufora" To zazwyczaj powazny blad. I teraz powazny haker (nie lubie tego slowa, ale w tym kontekscie ono dobrze dziala) tak dlugo dlubie w debuggerze az nie znajdzie, ze jezeli w polu A wpisze sie wartosc B, to w docelowym komputerze stanie sie to i to. I mój szacunek ma gwarantowany.

A jak w tym samym przypadku wyglada proof of concept? "Bufor mozna przepelnic w taki sposób, ze na docelowym komputerze stanie sie to, co zechce atakujacy". Tyle, ze nigdzie nie pojawia sie opis czym go przepelnic i co takiego konkretnie wtedy sie stanie. Ta tajemniczosc nie wynika z dobrego serca czy troski o tysiace uzytkowników, tylko z niewiedzy, albo niedostatecznego zbadania tematu, albo z faktu, ze poza ta jedna (byc moze powazna) luka, istnieja jeszcze inne zabezpieczenia, które spelniaja dobrze swoje zadanie.

Oczywiscie od "proof of concept" do skutecznego ataku jest jeszcze bardzo dluga droga. Czasem, komus udaje sie ja przejsc i calosc przestaje byc nagle taka wesola, ale ogromna wiekszosc przypadków konczy swój krótki zywot pieciominutowej slawy na pokazaniu swiatu, ze mimo glosnego krzyczenia, ze to "taaaaka dziura w bezpieczenstwie", uzytkownicy wcale nie sa mniej bezpieczni.

Zdaje sobie sprawe, ze to nieco przewrotne podejscie, ale osobiscie, gdy uslysze o jakims nowym "proof of concept", to wiem, ze moge spac spokojnie. Dlatego, ze w praktyce znaczy to, ze ktos usilowal znalezc metode wykorzystania usterki w oprogramowaniu, ale mu sie nie udalo. Czyli swiat jest dalej wzglednie bezpieczny.

Oczywiscie nie zwalnia to producenta z koniecznosci jak najszybszego usuniecia usterki, ale to juz zupelnie inna historia.

Autor: Grzegorz Tworek [MVP]

Edit: poprawienie oczywistego bledu, dziekuje dmusial za zwrócenie uwagi.

Comments (5)

  1. @dmusial:

    "obejść lukę zabezpieczeń" – mój oczywisty błąd. W treści już jest lepiej, dziękuję za zwrócenie uwagi.

    Jeżeli chodzi o resztę twojego komentarza – ok, rozumiem, że się nie zgadzasz i rozumiem twoje podejście. Ale ja pozostanę przy swoim 🙂

  2. A mógłbym 🙂

    Wikipedię staram się ulepszać w miarę regularnie, do czego i innych zachęcam.

    W wolnej chwilce poprawię. A w przyszłym tygodniu, pewnie znowu zgarnę ze swojego parapetu jakieś pudełka z oprogramowaniem i spróbuję konkurs dla wikipedystów zrobić. Dawno nie było…

  3. ciastek says:

    Na bezpieczeństwie nie znam się zupełnie, jednak w opisanym przez Ciebie przykładzie nie dostrzegam ni grama "proof", jest sam "concept". Czy mógłbyś wskazać go palcem i przy okazji poprawić artykuł na Wikipedii, w którym jest wyraźnie mowa o dowodach, a nie przypuszczeniach? (http://pl.wikipedia.org/wiki/Kod_proof-of-concept) Z góry dziękuję.

  4. LukaSz says:

    Za to na angielskiej części jest poprawnie: http://en.wikipedia.org/wiki/Proof_of_concept

  5. dmusial says:

    Nie zgodzę się z Tobą w tej kwestii. Dzięki PoC większa liczba osób może zająć się tematem i doprowadzić do wykorzystania luki. Jak dla mnie PoC jest także istotną informacją mówiąca właśnie o tym, że nie powinienem spać spokojnie bo gdzieś tam siedzi paru gości którzy próbują rozgryźć lukę i prawdopodobnie im się to prędzej czy później uda. Poza tym jeżeli exploit byłyby pierwszą "informacją" wypuszczaną w świat o danej luce byłoby to idealne dla script kiddies. Dzięki PoC producent może przyjrzeć się problemowi z odpowiednim wyprzedzeniem.

    Mała uwaga co do zwrotu którego użyłeś: luki bezpieczeństwa się nie obchodzi tylko wykorzystuje. Obejść można zabezpieczenia.

    pozdrawiam

Skip to main content