r   e   k   l   a   m   a
r   e   k   l   a   m   a

Idą złe czasy dla odwrotnej inżynierii, szyfrowanie uchroni kod przed dekompilacją

Strona główna AktualnościOPROGRAMOWANIE

W marcu w Singapurze rozpocznie się konferencja SyScan. Wystąpi na niej dość znany ekspert od bezpieczeństwa Jacob Torrey, by przedstawić nowy mechanizm zabezpieczania oprogramowania przed dekompilacją i odwrotną inżynierią o nazwie HARES (Hardened Anti-Reverse Engineering System). Po tym wystąpieniu producenci własnościowego software, zarówno pożytecznego jak i złośliwego, będą mogli spać spokojniej – przeniknięcie ich tajemnic stanie się znacznie trudniejsze.

Dekompilacja i odwrotna inżynieria powszechnie jest stosowana przez zajmujących się bezpieczeństwem badaczy. Dzięki niej mogą zrozumieć, jak przechwycone egzemplarze szkodników działają i opracować na tej podstawie odpowiednie strategie obronne. Co by nie mówić, malware nie towarzyszy raczej kod źródłowy z dokumentacją. To samo można powiedzieć jednak o własnościowym oprogramowaniu, którego producenci w zamknięciu kodu widzą metodę obrony przed piractwem i nieuczciwą konkurencją. Nic więc dziwnego, że nie mniej niż eksperci od bezpieczeństwa, z technik dekompilacji i odwrotnej inżynierii korzystają też crackerzy czy cyberprzestępcy, szukających możliwych do wykorzystania luk w programach.

Jacob Torrey opracował metodę, która uczyni pracę whitehatów, crackerów i blackhatów znacznie trudniejszą. Pozwala ona na zaszyfrowanie programu tak, by było odszyfrowane dopiero tuż przed uruchomieniem kodu. Aplikacja w ten sposób zabezpieczona staje się kompletnie nieprzejrzysta, nie da się z jej zachowania odtworzyć stosowanych algorytmów ni wykryć podatności, które można by wykorzystać do ataku.

r   e   k   l   a   m   a

Z przedstawionego przez eksperta abstraktu wystąpienia, wynika, że HARES wykorzystuje tzw. Translation Lookaside Buffer, specjalny bufor pamięci w procesorach x86 od Intela i AMD, który zawiera fragmenty tablicy stron pamięci operacyjnej. Pozwala on na szybkie odwzorowanie adresów pamięci wirtualnej na adresy pamięci fizycznej. Po podziale tego bufora możliwe staje się oddzielenie pamięci, w której przechowywany jest kod programu od pamięci przechowującej jego dane. Metoda Torreya pozwala na pełne zaszyfrowanie bloku pamięci z kodem, i odszyfrowywanie jej w momencie uruchomienia programu za pomocą klucza przechowywanego w cache procesora. Do zaszyfrowanej pamięci nie można uzyskać dostępu z niezaszyfrowanych miejsc.

Badacze, którzy mieli okazję zgłębić już działanie HARES-a, mówią że jest odporny nawet na ataki typu cold boot, w których dane są dosłownie zamrażane w pamięci komputera. Typowe narzędzia odwrotnej inżynierii, takie jak disassembler IDA Pro, próbując odczytać kod programu są przekierowywane przez rozdzielenie TLB do zaszyfrowanego obszaru. Na nic się zdaje technika fuzzingu, polegająca na wprowadzaniu do programu losowych danych w nadziei jego awarii, ujawniającej po analizie zrzutu pamięci interesujące luki. Program oczywiście wciąż można zawiesić, ale z awarii nie idzie niczego wywnioskować, gdyż nie wiadomo, co akurat ją wywołało.

Oczywiście można pomyśleć i o atakach, które poradzą sobie z tym wyrafinowanym zabezpieczeniem. W końcu można próbować przechwycić klucz deszyfrujący, umieszczany podczas instalacji programu w pamięci podręcznej procesora. Jeśli jednak oprogramowanie zostanie zabezpieczone przez samego producenta sprzętu, wówczas szanse powodzenia takiego ataku są znikome. Bardziej realistyczne jest zastosowanie sprzętowych debuggerów JTAG, ale tych niezwykle kosztownych urządzeń typowy haker raczej nie będzie miał (chyba że pracuje dla NSA).

Intencje Torreya są oczywiście szlachetne – chce, by producenci oprogramowania mogli budować systemy i aplikacje nieprzeniknione dla cyberprzestępców. Przyznaje zarazem, że opracowaną przez niego metodę wykorzystają też twórcy malware, tak by zabezpieczyć się przed analizami ekspertów od bezpieczeństwa. Znany haker grugq już skomentował to na Twitterze: HARES to koniec łatwej analizy malware.

Wynalazca HARES-a przyznaje, że w przyszłości możliwe będą jeszcze skuteczniejsze techniki zabezpieczeń przed odwrotną inżynierią, czyli pełne szyfrowanie homomorficzne, w którym uruchamiany na procesorze kod nigdy nie zostaje odszyfrowany. Póki co jednak to akademicka dziedzina, choć istnieją realne implementacje, uruchamiany w ten sposób kod działa miliony razy wolniej niż normalnie. Metoda Torreya jest natomiast czymś, z czego już dziś będzie mógł skorzystać każdy producent oprogramowania. Testy pokazały, że zabezpieczone HARES-em 32-bitowe pliki .exe skompilowane na Windows 7 działają zaledwie 2% wolniej niż normalnie.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.