Całkiem niedawno, zespół specjalistów z firmy ESET zajmujący się badaniem podatności przeanalizował próbkę nowego malware stworzonego specjalnie do przejmowania kontroli nad Microsoft SQL Server 2012. Nazwa tego backdoora to „Skip-2.0” i został on stworzony prawdopodobnie przez popularną, chińską grupę hackerską znaną pod nazwami APT17, Winniti Group czy Axiom.

Skip-2.0 jest narzędziem typu post-exploitation i pozwala na zaszycie się na skompromitowanej już maszynie z serwerem SQL i stworzenie backdoora, dzięki któremu atakujący może połączyć się zdalnie do dowolnego konta na serwerze i wykonywać niezauważalnie operacje na bazach danych.

Autoryzacja do serwera MS SQL odbywa się za pomocą, tak zwanego „magic password”, które jest uniwersalne i działa jak wytrych otwierający drogę do dowolnego konta na serwerze. Backdoor pozwala na zdalne modyfikowanie zawartości baz danych, kopiowanie czy usuwanie treści, a wszystkie te operacje nie są rejestrowane w logach audytowych SQL oraz mechanizmach publikowania treści.

Takie działanie, pozwala na przeprowadzenie oszustw na wielką skalę. Jednym z zaraportowanych działań hackerskich grupy APT17 była manipulacja wirtualnymi walutami w grach komputerowych w celu pozyskiwania korzyści finansowych. Nie wiadomo było, jakim sposobem posłużyli się hackerzy zdalnie modyfikując bazę danych. Teraz, fakty te można powiązać i zanalizować przypadek wykorzystania backdoora „Skip-2.0”.

Właśnie tak postąpiła firma ESET analizując kod i zachowanie wirusa. Raport z analizy dostępny jest tutaj.

Na podstawie powyższego schematu możemy zrozumieć zasadę działania całego backdoora. Oczywiście jest to technika post-explitation i wcześniej należy skompromitować maszynę i uzyskać dostęp do poświadczeń administracyjnych.
Dostarczenie ładunku do serwera odbywa się poprzez VMProtected Launcher, co jest charakterystyczne właśnie dla chińskiej grupy APT17. Zaszyfrowanym ładunkiem są znane już narzędzia o nazwach PortReuse oraz ShadowPad, które pozwalają wykorzystanie istniejącego w systemie procesu, który nasłuchuje na otwartym porcie TCP, w celu podszycia się pod legalny odbiornik i przekaźnik komunikacji sieciowej. Narzędzia te za pomocą DLL hijacking ukrywają się bibliotece Windows zainstalowanej w C:\Windows\System32\TSVIPSrv.dll. Biblioteka ta ładowana jest do pamięci przy starcie systemu przez standardową usługę SessionEnv.
Procesem, do którego podłącza się backdoor jest bezpośrednio proces sqlserv.exe, który jest standardowym procesem na maszynach hostujących MS SQL Server. Następnie, z pamięci procesu wywoływany jest uchwyt do biblioteki sqllang.dll i wykorzystywane są funkcje właśnie z tej biblioteki. Funkcje te zwracają odpowiednie parametry, jeśli autoryzacja jest udana oraz jeśli należy zalogować informację w dzienniku zdarzeń SQL. Manipulacja nimi oraz wywoływanie ich ręcznie, powoduje oszukanie procesu autoryzacji w SQL Server i ominięcie wszelkich zabezpieczeń oraz wyłączenie logowania zdarzeń.

W raporcie zawarte są sposoby wykrycia i mitygacji skompromitowanej maszyny, jak również IoC (Indicators of Compromise) ataku.

Chociaż podatność została już załatana przez Microsoft w najnowszej aktualizacji oraz dotyczy tylko Microsoft SQL Server wersjach 11 oraz 12, to nadal jest to najczęściej używana wersja SQL na Świecie i podatność dotyczy ogromnej ilości serwerów.