Codziennie przez nasze komputery przewijają się dziesiątki, jeśli nie setki plików. Dokumenty, zdjęcia, muzyka, a wśród nich… no właśnie, plik z rozszerzeniem .pdf nie zawsze zawiera wyczekiwaną fakturę. Czasem pod niewinną nazwą kryje się skrypt, który tylko czeka na okazję, aby narobić bałaganu na Twoim komputerze. Problem jest stary jak internet, a tradycyjne metody rozpoznawania zawartości plików często okazywały się bezradne.
Problem jest poważniejszy, niż mogłoby się wydawać. Każdego dnia wykrywanych jest około 560 tyś. nowych złośliwych programów, a wiele z nich dociera do nas poprzez załączniki w wiadomościach e-mail. Złośliwe oprogramowanie ukryte w plikach PDF czy dokumentach Microsoft Office to plaga. Według danych z różnych raportów bezpieczeństwa, wiadomości e-mail pozostają głównym wektorem ataków (odpowiadając nawet za 90% z nich), a spreparowane załączniki to ulubiona metoda dostarczania złośliwego oprogramowania.
Google, które w swoich usługach przetwarza miliardy plików dziennie, postanowiło podejść do sprawy inaczej. Efektem jest Magika, narzędzie oparte na sztucznej inteligencji. Po długim okresie wewnętrznych testów i implementacji, jego dopracowana wersja 1.0 została właśnie udostępniona jako projekt open-source.
Koniec zabawy w chowanego – dlaczego stare metody rozpoznawania plików to przeżytek
Przez lata świat informatyki polegał na dwóch głównych sposobach identyfikacji plików – analizie rozszerzenia oraz tzw. magicznych liczbach.
Pierwsze rozwiązanie, czyli rozszerzenie pliku (.pdf, .zip, .exe), jest zawodne z prostego powodu – każdy może je dowolnie zmienić. Zmiana nazwy grozny_wirus.exe na faktura.pdf zajmuje sekundę i jest jedną z najstarszych sztuczek w podręczniku cyberprzestępców. Użytkownik, widząc znajomą ikonkę dokumentu, traci czujność i otwiera plik, uruchamiając lawinę problemów.
Druga metoda, czyli magiczne liczby, to specjalne znaczniki na początku pliku, które określają jego typ. Przykładowo, każdy plik typu GIF zaczyna się od 47 49 46 38. System może odczytać ten nagłówek i na jego podstawie stwierdzić, z czym ma do czynienia.
Jest to podejście solidne, ale także ma swoje mankamenty. Nie wszystkie formaty plików posiadają takie znaczniki, a te, które je mają, mogą zostać celowo zmodyfikowane w celu oszukania systemów zabezpieczeń. W praktyce prowadzi to do sytuacji, w których program antywirusowy lub system operacyjny błędnie klasyfikuje plik, otwierając potencjalną furtkę dla zagrożeń.
Oba powyższe rozwiązania kiedyś były wystarczające, dzisiaj po prostu są nieadekwatne do współczesnych zagrożeń.
Sztuczna inteligencja na tropie – jak działa Magika
Magika podchodzi do identyfikacji plików w sposób całkowicie odmienny. Zamiast skupiać się na powierzchownych danych, jak etykieta z nazwą czy krótki nagłówek, narzędzie wykorzystuje model głębokiego uczenia, aby zajrzeć do wnętrza pliku. Działa to na zasadzie zaawansowanego rozpoznawania wzorców. Sztuczna inteligencja została wytrenowana na ogromnym zbiorze danych, zawierającym około 100 milionów plików z ponad 200 różnych kategorii, dzięki czemu nauczyła się, jak wygląda od środka kod Pythona, dokument Worda czy obrazek w formacie PNG.
Co ciekawsze, Magika nie musi analizować całego pliku, co w przypadku wielogigabajtowych archiwów byłoby nieefektywne. Narzędzie inteligentnie odczytuje tylko jego najważniejsze fragmenty, a to pozwala na błyskawiczną identyfikację przy minimalnym obciążeniu systemu. Cały model AI jest przy tym zaskakująco mały, waży zaledwie kilka megabajtów, a analiza pojedynczego pliku na standardowym procesorze zajmuje mu zaledwie kilka milisekund.
Google przetestowało skuteczność swojego rozwiązania na gigantycznej skali, osiągając imponującą średnią dokładność na poziomie 99%. Taka precyzja sprawia, że Magika bezbłędnie odróżnia od siebie formaty, które dla starszych narzędzi były trudne do rozróżnienia, np. plik konfiguracyjny JSON od jego wariantu JSONL, czy kod napisany w języku C od C++. Wersja 1.0 narzędzia została przepisana w języku Rust, co dodatkowo zwiększyło wydajność i bezpieczeństwo kodu.
Z laboratorium Google na twój komputer – praktyczne zastosowania Magiki
Skuteczność Magiki w realnych warunkach została już potwierdzona. Google używa tego narzędzia wewnętrznie do skanowania setek miliardów plików tygodniowo w tak wymagających usługach, jak Gmail, Dysk Google oraz mechanizm Bezpiecznego Przeglądania. Gdy wysyłasz lub odbierasz załącznik, to właśnie Magika w pierwszej kolejności analizuje jego zawartość. Na tej podstawie plik jest kierowany do odpowiednich, wyspecjalizowanych skanerów bezpieczeństwa i polityk treści. Dzięki temu, jeśli ktoś spróbuje przesłać plik udający dokument, a będący w rzeczywistości złośliwym oprogramowaniem, zostanie on wyłapany, zanim zdąży wyrządzić jakąkolwiek szkodę.
Największą zaletą wersji 1.01 jest jednak udostępnienie narzędzia jako projektu open-source. Oznacza to, że programiści i administratorzy na całym świecie mogą bezpłatnie integrować je ze swoimi własnymi aplikacjami i systemami. Potencjalne zastosowania są nieograniczone. Można wykorzystać narzędzie do walidacji plików przesyłanych przez użytkowników na serwer, co uniemożliwi wgranie złośliwego skryptu w miejscu, gdzie aplikacja oczekuje awatara w formacie JPG. Innym przykładem jest automatyzacja sortowania i porządkowania olbrzymich zbiorów danych na podstawie ich faktycznej zawartości, a nie tylko zwodniczych nazw. Magika została już zintegrowana z dużymi platformami bezpieczeństwa np. VirusTotal.
Wraz z wersją 1.0 znacznie rozszerzono listę obsługiwanych formatów do ponad 200. Dodano wsparcie dla plików używanych w analizie danych i uczeniu maszynowym, jak Jupyter Notebooks czy modele PyTorch. Rozszerzono także rozpoznawanie nowoczesnych języków programowania (Swift, Kotlin, TypeScript) i narzędzi deweloperskich (np. Dockerfile). Co ciekawe, w przypadku rzadkich formatów, dla których brakowało wystarczającej liczby próbek do treningu, Google wykorzystało generatywną AI Gemini do stworzenia syntetycznych, ale realistycznych plików. Innymi słowy, sztuczna inteligencja pomogła w budowie lepszej sztucznej inteligencji.
Chcesz spróbować – instalacja i pierwsze kroki
Twórcy Magiki zadbali o to, aby instalacja i podstawowe korzystanie z narzędzia nie wymagało zaawansowanej wiedzy. Użytkownicy systemów Linux i macOS mogą zainstalować narzędzie za pomocą jednego polecenia w terminalu:
curl -LsSf https://securityresearch.google/magika/install.sh | sh
Dla systemu Windows przygotowano analogiczny skrypt instalacyjny.
Po instalacji można natychmiast przystąpić do analizy plików. Wystarczy wpisać w terminalu komendę magika, a następnie podać ścieżkę do pliku lub całego folderu, który chcemy sprawdzić, na przykład:
magika --colors /home/nazwa_użytkownika/Pobrane/*
Narzędzie w odpowiedzi wyświetli zidentyfikowany typ zawartości. Jeśli nie będzie pewne co do zawartości, oprócz klasyfikacji otrzymujemy wskaźnik oszacowania np.
[Low-confidence model best-guess: MP4 media file (video), score=0.447]
Dla deweloperów, którzy chcą włączyć Magikę do własnych projektów, przygotowano gotowe do użycia biblioteki w popularnych językach programowania, jak Python, Rust czy JavaScript/TypeScript, co sprawia, że integracja jest niezwykle prosta.
Nowy standard czy chwilowa nowinka – jaka przyszłość czeka Magikę?
Magika jest doskonałym przykładem praktycznego zastosowania sztucznej inteligencji do rozwiązania konkretnego, długoletniego problemu w świecie cyfrowym. Google, zamiast tworzyć kolejną abstrakcyjną technologię, dostarczyło konkretne narzędzie, które każdy może wdrożyć w swoich projektach w celu podniesienia poziomu bezpieczeństwa i automatyzacji. Wyjątkowa dokładność, szybkość działania i otwarty kod źródłowy sprawiają, że ma ona ogromny potencjał, by stać się nowym standardem w dziedzinie identyfikacji typów plików. Jest to ważny krok naprzód w niekończącej się grze w kotka i myszkę, jaką jest cyberbezpieczeństwo.
Źródła: Github, Google Open Source Blog