Inżynieria odwrotna w architekturze IA-32 w środowisku MS Windows

Inżynieria odwrotna w architekturze IA-32 w środowisku MS Windows (reverse engineering)

O SZKOLENIU

Inżynieria odwrotna (reverse engineering) w architekturze IA-32 w środowisku MS Windows to w uproszczeniu, wszelkie procesy mające doprowadzić do rekonstrukcji danego przedmiotu celem ustalenia, w jaki sposób został wykonany i poznania zasad jego działania od podstaw. Inżynieria odwrotna jest istotnym obszarem wiedzy o bezpieczeństwie teleinformatycznym – jej zastosowanie pozwala na analizę złośliwego oprogramowania (malware).

Celem uzupełnienia informacji na zakończenie prowadzący przedstawi przykładową analizę złośliwego oprogramowania.

KORZYŚCI ZE SZKOLENIA

Grupa do 6 osób

Praktyczna analiza złośliwego oprogramowania

AGENDA SZKOLENIA

Teoria: Wprowadzenie do architektury procesorów IA-32. Rejestry, flagi, zarządzanie pamięcią Wprowadzenie do procesów i wątków, podstawowych struktur wewnętrznych RING 3 systemów rodziny MS Windows oraz zarządzania wyjątkami Wprowadzenie do formatu plików PE Wprowadzenie do „debugowania” funkcji, konwencji ich wywoływania oraz analiza ramek stosu Omówienie głównych instrukcji ASM Omówienie głównych funkcjonalności Windows API Omówienie narzędzi używanych w analizie odwrotnej

Ćwiczenia praktyczne: Analiza łańcuchów zanikowych w pamięci oraz obserwacja stosu w trakcie wykonywania kodu Metody zabezpieczania przed inżynierią odwrotną Metody maskowania kodu Wypakowywanie skompresowanego bądź zaszyfrowanego kodu Debugowanie procesów wielowątkowych

Przykładowa analiza złośliwego oprogramowania

Analiza behawioralna vs statyczna i dynamiczna inżynieria odwrotna

Inżynieria odwrotna – hardware, software i praktyka

Jako osoba łącząca ze sobą trzy techniczne światy – inżynierię oprogramowania, optymalizację produkcji i inżynierię biomedyczną – miałam w czasie swojej dotychczasowej aktywności zawodowej okazję obserwować różne przejawy wykorzystania inżynierii odwrotnej na mniej albo bardziej zaawansowanym poziomie, a także przy motywacji gorszymi bądź lepszymi intencjami.

Inżynieria odwrotna to ogólnie zbiór metod i sposobów działania pozwalających na poznanie działania danego obiektu. Obiektem tym może być implant medyczny, proteza, zaawansowana technologicznie maszyna czy kod programistyczny. W zależności od typu i poziomu skomplikowania obiektu wykorzystujemy inne metody, wynik jest jednak jeden – opracowanie pierwotnego sposobu wytworzenia elementu, tak by w następnym kroku można było ten obiekt powielić lub zmodyfikować.

Inżynieria wsteczna w odzwierciedlaniu procesów

Trzon produkcji i wytwarzania stanowią procesy, czyli powtarzalne schematy postępowania, które prowadzą do określonych w przybliżeniu efektów. W zależności od jakości prowadzonego procesu oraz poziomu jego powtarzalności wyniki mogą w pewnym stopniu różnić się od siebie o odchylenie standardowe. Po przekroczeniu założonego odchylenia wyrób uznaje się za niezdatny do użytku – mowa tutaj o tzw. skazach, niezgodności wymiarowej bądź gatunkowej. Im mniej odrzuconych elementów, tym lepiej, im bardziej powtarzalny proces, tym większa możliwość kontrolowania go. W fabrykach obserwujemy często duży przepływ personelu – ludzie przychodzą i odchodzą, pozostawiając po sobie metody, obliczenia, rozwiązania, czasami nawet całe zaprojektowane linie produkcyjne. Niestety, w zakładach, w których przykłada się mniejszą wagę do spełniania norm jakościowych – w odniesieniu do postępowania produkcyjnego, nie zaś jakości samych wyrobów finalnych – może dojść do sytuacji, w której występuje potrzeba zduplikowania linii produkcyjnej, jednak niestety nikt nie dysponuje odpowiednią dokumentacją.

Ponadto podczas pracy w produkcji wypracowuje się know-how, czyli zestaw rozwiązań i swoistych trików, które zapewniają powodzenie i większą efektywność procesu. Niestety, rzadko kiedy dokumentuje się know-how, część zmian w ustawieniach maszyn wprowadzana jest na bieżąco, co tym bardziej utrudnia ich powielanie. W takiej sytuacji z odsieczą przychodzi reverse engineering. Wewnętrzni specjaliści firmy bądź zewnętrzni eksperci ds. pomiarów 3D, wymiarowania i inżynierii odwrotnej są w stanie na podstawie istniejącego układu stworzyć taki sam bez aktualnych schematów czy informacji o parametrach procesu. Wykorzystuje się skanery 3D i tzw. trackery w celu ustalenia konkretnego położenia poszczególnych elementów układu względem siebie – dokładność do mikrometra zapewniana jest jedynie przez najlepszy sprzęt dostępny na rynku, konieczne więc będzie zaangażowanie firmy zewnętrznej, która już dysponuje tego typu sprzętem pomiarowym. Na podstawie wykonanych pomiarów można sporządzić wirtualną kopię linii produkcyjnej. Następnie każdy z jej elementów opisuje się, sczytując parametry maszyn z istniejącego układu w czasie pracy – temperatura procesu, czas wykonywania danej czynności, wymagany poziom czystości, wykorzystane narzędzia i nakładki oraz wszystkie inne niezbędne dane, które wymagają przeniesienia na układ numer dwa. Zaletą tworzenia cyfrowej kopii linii produkcyjnej czy układu maszyn jest to, że można z jej wykorzystaniem symulować pracę i oszacować wyniki w zależności od parametrów procesu. Po raz pierwszy mamy szansę zweryfikować bezstratnie, co się stanie, jeśli podwyższymy temperaturę, przyspieszymy daną czynność lub zmienimy skład chemiczny materiału wejściowego. Środowiska tego typu są trudne w obsłudze i programowaniu, dają jednak relatywnie wiarygod...

Inżynieria odwrotna nie tylko w informatyce

Etap 3: Możliwość zmiany

Dzięki analizie przeprowadzonej w poprzednim etapie można wyciągać wnioski na temat możliwości dostosowania badanej metodologii do: nowego środowiska (np. cyfryzacji), zmiany podejścia do prowadzenia projektów, automatyzacji. Dla każdego z wyznaczonych wcześniej elementów należy określić, w jakim stopniu można przenieść go do nowego układu. Warunkiem podjęcia tego procesu jest wykazanie, że za pomocą nowej struktury zniwelowane zostaną problemy wynikające ze starej.

Etap 4: Rekonstrukcja

Po zdefiniowaniu części składowych następuje rekonstrukcja, czyli opracowanie planu nowych elementów na podstawie zebranych wcześniej informacji. Podczas tego procesu warto zwrócić uwagę na dostosowanie danej metodologii do konkretnego przedsiębiorstwa oraz na zmiany, jakie zajdą w zakresie wykorzystywania zasobów. Na tym etapie należy opracować strategię przeprowadzenia procesu wprowadzania zmian w takiej kolejności, aby wpływały pozytywnie na adaptacje nowej metodologii w firmie.

Etap 5: Testy i symulacje

Ostatnim krokiem jest sprawdzenie stworzonych prototypów – wstępnie symulacyjne, a następnie praktycznie. Jest to etap, w którym zwracamy uwagę na wszelkie wcześniej nieprzewidziane zdarzenia. Ważne jest też, aby opracowane innowacje były intuicyjne nie tylko dla osoby, która je stworzyła, ale przede wszystkim dla osób, których one będą dotyczyć, czyli w głównej mierze dla użytkowników.

Z badań U.S. Nationall Institute of Standards and Technology wynika, że nawet 40% czasu pracy inżynierskiej jest poświęcane na lokalizowanie i weryfikację informacji z różnych źródeł, które stanowi czas bezproduktywny. Wprowadzając innowacyjne rozwiązania, warto zastanowić się, czy nie jest ono „wymyślaniem koła na nowo” – i zacząć w przedsiębiorstwie od digitalizacji istniejących już procesów tradycyjnych. Dla całego przedsiębiorstwa będzie to duży krok w stronę Przemysłu 4.0.

Źródło: Profesal

Jarosław Kułak
Jarosław Kułak

Leave a Comment