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