Microsoft otwiera źródła zapytań CodeQL, silnika do analizy kodu

Microsoft otwiera źródła zapytań CodeQL, silnika do analizy kodu

Autor: Krzysztof Sulikowski

Opublikowano: 2/26/2021, 7:42 PM

Liczba odsłon: 2559

W zeszłym tygodniu Microsoft ostatecznie zakończył dochodzenie w sprawie Solorigate i szczegółowo opisał, które jego zasoby padły ofiarą ataku, jakich użył technik obronnych, a także jakie lekcje z tego wyciągnął. Teraz firma udostępniła źródła zapytań CodeQL, które wykorzystała w w tym dochodzeniu.

CodeQL jest silnikiem do analizy kodu, który opiera się na jego semantyce i składni. Tworzy on bazę danych zbudowaną na podstawie modelu kompilowanego kodu, do której można następnie wysyłać zapytania, tak jak w zwykłej bazie danych. CodeQL może być używany zarówno do analizy statycznej, jak i wstecznej inspekcji kodu. Microsoft korzystał z silnika w celu przeanalizowania kodu użytego w atakach Solorigate. Dzięki temu udało się namierzyć wskaźniki naruszenia bezpieczeństwa (IoC) i inne wzorce kodowania wykorzystane przez atakujących — bezpośrednio na poziomie kodu.

Microsoft utworzył zasadniczo wiele baz danych CodeQL z różnych potoków kompilacji, a następnie zebrał je w jednej infrastrukturze, aby umożliwić wykonywanie zapytań w całym systemie. Umożliwiło to wykrycie złośliwej aktywności w kodzie w ciągu kilku godzin od opisania wzorca kodowania. Mając na uwadze, że jest to bardziej technika składniowa i semantyczna, która polega na identyfikowaniu podobieństw we wzorcach kodowania, takich jak używane nazwy zmiennych, Microsoft podkreślił, że nawet jeśli takie same wzorce zostaną znalezione we własnej bazie kodu, niekoniecznie oznacza to, że jest ona zagrożona. Po prostu wielu programistów może mieć taki sam styl pisania kodu.

Trzeba też pamiętać, że złośliwy aktor (czyli atakujący) nie musi być ograniczony do jednego stylu kodowania. W zasadzie jeśli atakujący znacznie odbiegnie od swojego zwykłego wzorca pisania, pozostanie on niewykryty przez zapytania CodeQL. Dlatego też Microsoft nie ograniczył się do tej metody podczas swojego dochodzenia:

Dzięki połączeniu tych dwóch podejść [identyfikacji syntaktyki i składni kodu] zapytania są w stanie wykryć scenariusze, w których złośliwy aktor zmienił techniki, ale używał podobnej składni, bądź zmienił składnię, ale stosował podobne techniki. Ponieważ jest możliwe, że złośliwy aktor mógł zmienić zarówno składnię, jak i techniki, CodeQL był tylko częścią naszych szerszych działań dochodzeniowych.
— Microsoft Security Team

Zapytania użyte przez Microsoft przeszły na Open Source po to, aby inne organizacje mogły wykonywać podobne analizy. Służą one rozpoznaniu takich cech semantycznych i składniowych kodu, które są wspólne z kodem użytym przez cyberprzestępców organizujących ataki Solorigate. Oczywiście elementy utrzymane w tym stylu mogą zostać odnalezione również w niegroźnym kodzie, dlatego każdą wykrytą implementację należy zweryfikować.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia