Często przy publikacjach błędów, które otrzymują numer CVE (ang. Common Vulnerabilities and Exposures) powstaje wiele pytań i wątpliwości. Zanim opublikujesz w sieci informację na temat CVE warto wiedzieć, jakie są dobre praktyki, jakich błędów należy unikać oraz jak postępować. W dzisiejszym artykule postaramy się je uporządkować i wyjaśnić.

Odkrywanie podatności w systemach lub aplikacjach może stać się całkiem dochodowym zajęciem. O wysokości nagród, jakie przyznają producenci pisaliśmy wiele razy na łamach naszego portalu. Jeśli właśnie odkryłeś nową podatność – gratulujemy! Jeśli to coś „grubego” (znaczącego) i można zaliczyć do klasy błędu Zero-day, to Twoje osiągnięcie może zakończyć się dodatkową sławą i chwałą oraz na pewno poważnym zastrzykiem finansowym.

Nowicjusze w dziedzinie badań nad bezpieczeństwem będą wiedzieć, że opublikowanie CVE może być świetnym posunięciem w karierze. Ale niekoniecznie muszą rozumieć, jak opublikować lukę i ostrzec kolegów badaczy, firmy lub użytkowników dotkniętych problemem. Opanowanie kunsztu publikacji CVE może wymagać wielu prób i błędów.

Poniżej zamieszczamy informacje, co powinieneś zrobić i od czego należy zacząć, aby było to bezproblemowe i bezbolesne doświadczenie.


Upewnij się, że podatność jest nowa

Z pewnością nic nie będzie tak imponujące jak znalezienie zero-day, czyli błędu jeszcze nigdzie nieopisanego. Lecz jak dowiedzieć się, czy Twoje odkrycie było wcześniej zidentyfikowane w kontekście luki? Jako badacz bezpieczeństwa zanim opublikujesz CVE musisz dołożyć należytej staranności, aby dowiedzieć się, czy Twój błąd został już zgłoszony przez innego badacza.
Pierwszym miejscem do sprawdzenia jest na pewno wyszukiwarka Google (tutaj liczy się dobra umiejętność przeszukiwania). Jeśli nie odnajdziesz żadnych wyników warto sprawdzić fachowe i oficjalnie dedykowane temu miejsca takie jak baza danych MITRE oraz warto też przeszukać portale takie jak: GitHub, ExploitDB i PacketStorm.

Źródło: Internet

Jeśli dalej nie otrzymasz żadnych wyników, najprawdopodobniej Twoja luka jest nowa. Nadszedł czas, aby przejść do kolejnego etapu procesu.


Skontaktuj się z właścicielem produktu

Dobrą praktyką jest powiadomienie sprzedawcy lub właściciela produktu o ujawnieniu luki w zabezpieczeniach przed podjęciem dalszych działań. Zwykle prowadzi to do jednego z dwóch scenariuszy:


1. Scenariusz pozytywny dla badacza – kontakt odpowiada

Najlepiej w tej sytuacji napisać na oficjalnego maila kontaktowego właściciela/producenta produktu. Większość z nich posiada na swojej stronie internetowej opublikowane osobne adresy kontaktowe e-mail (np. [email protected]) dedykowane do takich spraw. Możesz też szukać kontaktu z osobą handlową (sprzedawcą). Jeśli uda się skontaktować z odpowiednią osobą, kolejnym etapem jest budowanie relacji i współpraca w celu skoordynowania „ujawniania z łagodzeniem” i wydaniem łatki.
Ważne jest, aby uzgodnić, jak i kiedy ujawnienie zostanie przeprowadzone. Każda firma będzie miała w tym zakresie własną politykę, która również będzie się zmieniać w zależności od charakteru CVE. Odpowiedzialne ujawnianie jest ważne, ponieważ cyberprzestępcy wykorzystają każdy upubliczniony CVE, piszą exploity i atakują nimi systemy. Dlatego kluczowe znaczenie ma cierpliwość i właściwy kontakt z dostawcą.
Z drugiej strony postępując w ten sposób, raczej chcielibyśmy być w jakiś sposób wynagrodzeni za naszą ciężką pracę i przyczynienie się ku lepszemu bezpieczeństwu. Poważne firmy prowadzą swoje osobne programy wynagradzania takich badaczy (tzw. program Bug Bounty) i płacą całkiem pokaźne sumy pieniędzy (w zależności od krytyczności i poziomu klasyfikacji konkretnego CVE). Jeśli trafiłeś na taką firmę, to gratulacje. Jeśli sprzedawca zaoferuje nagrodę za błąd, podróż może zakończyć się na tym etapie, ponieważ badaczom może zabronić ujawniania luki, często w zamian za nagrodę. Wtedy informacja o podatności pojawia się najczęściej po wydanych łatkach do oprogramowania.


2. Scenariusz mniej przyjazny dla badacza – kontakt nie odpowiada

Jeśli straciłeś czas na wypisywanie maili na ogólnodostępne adresy i zostałeś zignorowany przez sprzedawcę powinieneś wypróbować inne metody komunikacji. Zgodnie z zasada „kuj żelazo, póki gorące” staraj się szukać alternatywnych dróg dojścia do producenta. Pamiętaj, przy tym o zapisaniu godziny i daty każdej próby kontaktu oraz robieniu screenów, aby mieć dowody i skontrolowaną ścieżkę komunikacji, jeśli będzie to wymagane w dalszej kolejności. W sytuacji, gdybyś opublikował CVE i pojawiły się pretensje producenta, będziesz miał dowody na to, że taką komunikację próbowałeś ustanowić. Media społecznościowe to także przydatny sposób kontaktowania się z dostawcami lub właścicielami produktów. Spróbuj oznaczyć firmę na Twitterze, LinkedIN lub Facebooku i poproś o kontakt z zespołem ds. bezpieczeństwa. Niektóre kuszące posty w stylu „Ciekawa luka bezpieczeństwa” w mediach społecznościowych mogą nam bardzo pomóc w kontakcie, w szczególności, gdy profil firmy obserwuje wielu użytkowników. Upewnij się, że post jest wystarczająco kuszący i niepokojący, aby został zauważony przez społeczność internetową, ale pamiętaj, aby nie zdradzać szczegółów odkrytej luki. Uwierz nam – taka metoda jest najbardziej skuteczna, udostępniania i komentowana.

Z reguły tutaj powinien nastąpić koniec tego etapu, ale są przypadki, że nawet w takich sytuacjach producenci ignorują takie zgłoszenia. Najlepszym rozwiązaniem (dobrą praktyką) w tym przypadku jest odczekanie określonego czasu po próbie skontaktowania się z dostawcą. Badacze mają tendencję do czekania 30, 60, 90 lub 120 dni – ale nie ma żadnych zasad dotyczących ujawniania, więc to zależy od każdego indywidualne.


Wypełnienie wniosku CVE

Na tym etapie warto wypełnić formularz wniosku CVE na stronie MITRE, ponieważ oczekiwanie na odpowiedź może opóźnić proces. MITRE odnosi się do większości firm jako CVE Numbering Authority (CNA) i będziesz mógł wybrać, do którego CNA odnosi się usterka. Jeśli dostawca nie pojawia się w formularzu CVE, wypełnij ten formularz wniosku o usterkę. Jednak w tym artykule nie będziemy go wyjaśniać i opisywać pól, jakie musisz w nim wypełnić.

Źródło: Internet

Po wypełnieniu formularza internetowego otrzymasz potwierdzenie, że CVE jest zarejestrowany i otrzymasz swój numer, taki jak CVE-ROK-NUMER (CVE-2022-XXXXX). Sam problem nie zostanie opublikowany, dopóki nie wyślesz im publikacji dotyczącej luki w zabezpieczeniach, więc do tego czasu możesz skontaktować się z dostawcą, aby rozwiązać problem. Publikacja może zostać wykonana przez dostawcę, jeśli odpowiedź pojawi się w wybranym przez Ciebie przedziale czasowym, a jeśli nie, możesz zrobić publikację samodzielnie.

Z doświadczenia naszego i innych badaczy wiemy, że CVE zostanie zaakceptowane w ciągu około 30 dni. Po zatwierdzeniu badacze otrzymają identyfikator CVE pocztą elektroniczną, a luka będzie w stanie „zarezerwowanym”, co oznacza, że zostanie zaakceptowana przez nieopublikowaną. Na tym etapie MITRE przyznał, że CVE jest prawdziwy, ale czeka na ujawnienie.


Co, jeśli MITRE nie odpowiada?

Pamiętaj „kuj żelazo…”. Jeśli MITRE nie odpowiada – po prostu złóż później kolejną prośbę, ale pamiętaj, aby wspomnieć, że dostawca nie potwierdził komunikacji i zaznaczyć wiadomość „inne” w rozwijanym menu.


Publikacja naszego CVE

To moment, na który czekaliśmy od początku artykułu. Jeśli MITRE zaakceptował CVE, nadszedł czas na ujawnienie. Jednak w oczekiwaniu na decyzję MITRE warto spróbować ponownie skontaktować się ze sprzedawcą, jeśli milczał. Masz w tym momencie poważnego asa w rękawie, aby wymusić na producencie odpowiednią reakcję. Tutaj też bądź cierpliwy. Następnie, po odczekaniu czasu, który uważasz za odpowiedni – lub który został uzgodniony ze sprzedawcą – nadszedł czas na publikację.

Exploit POC/ można wysłać do PacketStorm Security/CX Security. Pamiętaj, aby podać numer ID MITRE i postępuj zgodnie z tymi wskazówkami, aby upewnić się, że wiadomość ma prawidłowy nagłówek.

Gdy luka zostanie opublikowana, wyślij linki do MITRE, odpowiadając na jej wiadomość e-mail z linkiem do opublikowanego exploita. Wtedy MITRE wyśle Ci wiadomość e-mail, aby potwierdzić, że zmienił status CVE z „zarezerwowany” lub po prostu dokona zmiany na swojej stronie internetowej.

Jeśli przebrnąłeś przez ten cały proces i wszystko się udało, gratulujemy! Jeśli dodatkowo zostałeś odpowiednio wynagrodzony, gratulujemy jeszcze bardziej i czekamy na kolejną odkrytą przez Ciebie lukę. To na pewno motywuje do dalszego działania!

Pamiętaj, że chętnie napiszemy też o niej, możesz też się z nami skontaktować i się pochwalić. Czyta nas wielu ciekawych specjalistów z branży bezpieczeństwa IT, więc na pewno będzie warto ☺️ Do usłyszenia!

Podziel się z innymi tym artykułem!