Dziś głośno zrobiło się o nowym typie ataku Zero-day, którego efektem jest zainfekowanie antywirusa (ironia losu, prawda?). Nowy atak nosi nazwę DoubleAgent i potrafi przejąć kontrolę nad pakietem chroniącym, wykorzystując technologię Microsoft o nazwie Application Verifier oraz liczącą 15 lat podatność z ery Windows XP.
Application Verifier jako narzędzie do weryfikowania aplikacji użytkownika pozwala odkrywać i naprawiać błędy w aplikacjach. Haker może z kolei wstrzyknąć swój własny kod weryfikatora do konkretnej aplikacji, na przykład do antywirusa. Jest to o tyle newralgiczny problem, że w ten sposób atakujący może przejąć kontrolę nad programem, który z definicji chronić ma przed tego typu atakami. Ponieważ antywirus rozpoznawany jest przez system jako zaufana instancja, wykonywane przez niego akcje - nawet te rzeczywiście szkodliwe - zostają uznane za bezpieczne, dzięki czemu atakujący może ominąć najważniejsze zabezpieczenie każdego systemu.
Scenariusze szkodliwych działań po dokonaniu ataku mogą polegać choćby na:
- przekształceniu antywirusa w malware,
- zmodyfikowaniu wewnętrznego zachowania antywirusa,
- nadużyciu zaufanej natury antywirusa,
- uszkodzeniu maszyny,
- ataku Denial of Service (DoS).
Kod podwójnego agenta został przetestowany w większości znanych antywirusów, w tym Avast (CVE-2017-5567), AVG (CVE-2017-5566), Avira (CVE-2017-6417), Bitdefender (CVE-2017-6186), Trend Micro (CVE-2017-5565), Comodo, ESET, F-Secure, Kaspersky, Malwarebytes, McAfee, Panda, Quick Heal i Norton. Co istotne, DoubleAgent pozwala na użycie pewnego natarczywego mechanizmu, który umożliwia permanentne zagnieżdżenie w systemie, nawet po wykonaniu ponownego uruchomienia, aktualizacji, reinstalacji czy instalacji łatek przez użytkownika. Dowiedziono też możliwości umieszczenia złośliwego kodu do zaufanych procesów z wykorzystaniem techniki Generic Code Injection.
Microsoft udostępnił dostawcom pakietów chroniących technologię Protected Processe, która minimalizuje ryzyko wstrzyknięcia kodu, pozwalając na ładowanie jedynie zaufanego, podpisanego kodu. Z wyjątkiem Windows Defender żaden antywirus nie zaimplementował tego rozwiązania, mimo że jest ono dostępne od trzech lat.