Mozilla rr – GDB na “sterydach”?

Zdarzają się takie dni, kiedy mało co wychodzi, nawet znalezione błędy w oprogramowaniu. Nie zamierzam bawić się w cybercoacha (jak termin się spopularyzuje to znacie mojego maila 😉 ) i pomagać ludziom w kwestiach zmiany myślenia oraz życia ze świadomością istnienia niereprodukowalnych podatności – wolę przedstawić konkretne narzędzia, które pomogą uporać się z tą sytuacją […]

Ghidra – alternatywa dla IDA Pro czy ładnie opakowany backdoor od NSA?

Jeżeli drogi Czytelniku przespałeś cały dzisiejszy dzień to śpieszę z informacją, że amerykańska agencja bezpieczeństwa (NSA) udostępniła, opracowane w swoich laboratoriach, narzędzie do inżynierii wstecznej binarek. Pakiet Ghidra funkcjonalnie prezentuje się bardzo bogato: obsługa najpopularniejszych architektur i nie tylko, wbudowany dekompilator, abstrakcja projektu, możliwość obsługi wielu binarek, praca grupowa i porównywanie plików. Jeden z moich […]

Czym jest podatność bezpieczeństwa?

Nietypowy, krótki post (w przygotowaniu mam długi tekst i jestem mniej, więcej połowie) w formie share’a z moim zdaniem najlepszego kanału o bezpieczeństwie IT na YouTube – tak chodzi oczywiście o LiveOverflow 🙂 W nieco ponad piętnastominutowym nagraniu autor opowiada na pytanie, z którym również często się spotykam: gdzie leży granica pomiędzy błędem a podatnością […]

Honggfuzz – Fast Track

Słowo wstępu Nie będę ukrywał, że honggfuzz był długo przeze mnie ignorowany – AFL działał dobrze, a tam gdzie nie domagał, korzystałem z LibFuzzera (tutaj część pierwsza i druga jego fast tracka). Nawet nie pomagały błędy, które za jego pomocą zostały odkryte – na przykład jedyny do tej pory krytyczny błąd w OpenSSL. Dopiero zachęcony […]

tcpdump 4.9.0 & 4.9.1 – 15 x CVE

Z racji okresu urlopowego i wakacji, niewiele działo się na blogu – zaległości zaczynam odrabiać tym wpisem 🙂 Na początku września została wydana wersja 4.9.2 popularnego narzędzia do przechwytywania pakietów tcpdump, łatająca ponad 85 podatności bezpieczeństwa. Moim “łupem” w tej niemałej puli było 15 poniższych CVE: CVE-2017-11108 The STP parser in tcpdump before 4.9.1 has […]

Podatności od “drugiej” strony – Windows patch diffing

Deweloperzy systemu operacyjnego Windows w tym roku nie mają łatwego życia – sama “dziesiątka” od początku roku uzbierała ponad 150 CVE. Microsoft, swoim zwyczajem wydaje poprawki w drugi wtorek każdego miesiąca (słynne “patch tuesday”). Dzień ten wypadł akurat przedwczoraj – więc stąd wpis nieco odmienny od głównej tematyki bloga 😉 Biuletyny bezpieczeństwa często bardzo enigmatycznie […]

Pożyczony & zapomniany kod – dlaczego tego nie robić?

Krótka historyjka Mimo, że tytuł posta jest dosyć oczywisty – porusza on całkiem poważny problem wielu projektów open-source i nie tylko. Używamy cudzy kod, rozwijamy własny projekt, generalnie wszystko jest całkiem okej. Po pewnym czasie skupiamy się na funkcjonalnościach i problemach doraźnych, wiedząc, że “pożyczony” kod sobie działa i spełnia nasze oczekiwania. Mija nawet kilka […]

[CVE-2017-6196] Ghostscript 9.21 – Use-after-free

Słowo wstępu Przez prawie 1,5 miesiąca nie pojawił się na blogu żaden post dt. podatności – zdecydowanie nadszedł czas, aby to zmienić. W tym poście opiszę bardzo ciekawe use-after-free w projekcie Ghostscript – interpreterze języka PostScript oraz plików PDF. Oprogramowanie to jest często wykorzystywane jako core generatorów plików PDF lub demon zajmujący się obsługą plików […]

LLVM LibFuzzer – Fast track #2

Słowo wstępu Kolejna część szybkiego wprowadzenia do zagadnień związanych z LibFuzzerem – w tym poście skupię się na nieco “głębszym” wykorzystaniu wbudowanych funkcjonalności, tunigu wydajności fuzzera oraz pokryciu kodu za pomocą SanitizerCoverage. Bez zbędnego rozwlekania, przechodzimy do konkretów 🙂 Jak robić to lepiej? W moim rozumieniu: lepiej = większy code coverage || więcej execs/s.. Generalnie […]

LLVM LibFuzzer – Fast track #1

Słowo wstępu Dużo ostatnio było o podatnościach – straciłem rachubę ile było to postów pod rząd 😉 W tym poście chciałbym przybliżyć bardzo ciekawy projekt LLVM LibFuzzer, w którym poziom testowania przeniesiony jest na poziom funkcji a nie całych binarek. Oczywiście generuje to pewne problemy, jak i również ma wiele zalet – ale o tym […]