Web Design Blog / Informatyka:

Inżynieria wsteczna – co to jest? (przykłady)

Data publikacji: 22 marca 2019

Pojęcie to ma jeszcze inną nazwę np. technika odwracania. Inżynieria wsteczna to nic innego jak poznawanie tego jak coś funkcjonuje i jak to coś zostało wykonane. Inżynierii wstecznej dokonujemy wtedy, jeżeli chcemy stworzyć odpowiednik produktu na podstawie gotowego egzemplarza wykonanego np. przez konkurencję.

Po co komu innowacja – zrób lepiej coś co już istnieje

Oczywiście inżynieria odwrotna nie musi się wiązać z chęcią skopiowania pomysłu i może być przeprowadzana w celu porównania jakościowego dwóch urządzeń lub programów oraz audytów bezpieczeństwa. Z techniką odwracania mamy do czynienia odkąd ludzka inteligencja zaczęła tworzyć urządzenia.

Inżynieria wsteczna może odnosić się także do stworzenia dokumentacji, np. projektu CAD gotowego obiektu fizycznego.

Zalety inżynierii wstecznej

Tworzenie projektu „od tyłu” czyli bez badania potrzeb, możliwości wykonania i badań ma wiele zalet.

  • Brak konieczności „wymyślania koła na nowo”
  • Niższy koszt produkcji
  • Spora oszczędność czasu na rozwijanie pomysłu od nowa
  • Możliwość przeznaczenia środków na udoskonalenie pomysłu

Wady stosowania inżynierii wstecznej

Główną wadą jest ryzyko:

  • Ryzyko, że pomysł może mieć luki
  • Ryzyko, że sposób rozwiązania jest nieefektywny i droższy w wykonaniu
  • kwestie moralne/etyczne
  • Inżynieria wsteczna też pochłania zasoby, które można przeznaczyć na rozwój i badania

Przykłady inżynierii wstecznej

99,9% wszelkich pomysłów na biznes, start-upów, programów, aplikacji, gier, portali, urządzeń i wytworów ludzkiej kultury.

  • Facebook i VK
  • Ebay i Allegro
  • …i tak można wymieniać bez końca

Ciekawostki ze świata prawa autorskiego

Nie jestem ekspertem od prawa dlatego będę się posługiwał cytatami.

Pierwsza z nich to fakt, że proces inżynierii wstecznej programu komputerowego (czyli aplikacji, strony itp.) jest całkowicie legalny. Funkcjonalność aplikacji nie jest chroniona prawem autorskim. Na potwierdzenie tych słów zamieszczam orzeczenie Trybunału Sprawiedliwości Unii Europejskiej: https://curia.europa.eu/jcms/upload/docs/application/pdf/2012-05/cp120053en.pdf Okazuje się, że dopóki nie dochodzi do skopiowania kodu źródłowego, nie ma mowy o naruszeniu praw autorskich i łamaniu prawa.

Drugą ciekawostką, nieco bardziej intuicyjną i łatwiejszą do zrozumienia jest fakt, że pomysły też nie są chronione prawem autorskim.

Tutaj za przykład podam cytat z polskiego prawa autorskiego art. 1 ust.21:

nie są objęte ochroną odkrycia, idee, procedury, metody i zasady działania oraz koncepcje matematyczne

Prawo autorskie USA (art. 17 U.S.C. Sekcja 102 b) mówi też, że:

Prawo autorskie nie chroni pomysłu, procedury, procesu, metody, sposobu działania, bez względu na formę, w której zostały opisane..

Jak przeciwdziałać inżynierii wstecznej?

O ile niemożliwe jest przeciwdziałanie inżynierii wstecznej na wysokim poziomie abstrakcji o tyle można przeciwdziałać lub utrudnić odkrywanie szczegółów implementacyjnych.

Wiele zasad z bezpieczeństwa informatycznego może pomóc w przeciwdziałaniu inżynierii wstecznej np. produktów cyfrowych. Wiele z nich opiera się na idei dostarczania użytkownikowi tylko tych informacji, które są mu niezbędne. Na przykład wpisanie dobrego loginu i złego hasła wyświetla komunikat „zły login i/lub hasło” a nie „niepoprawne hasło”. Stosowanie tej zasady w konstruowaniu funkcjonalności utrudni potencjalnym „inżynierom” odgadnięcie jak coś może działać.

Drugą techniką jest security through obscurity, (czyli bezpieczeństwo przez niejawność) strategia polega na specjalnym utrudnianiu poznawania jak coś działa i utrudnianiu penetracji „w głąb” systemu. Tworzenia niejako pułapek i próby „zmylenia przeciwnika”. Jedną z nich jest stosowanie time-outu, który imituje obliczanie lub pobieranie danych.

Trzecią techniką może być obfuskacja kodu źródłowego i innych elementów, czyli celowe pisanie kodu w sposób niejasny. W programowaniu może być to użycie obfuskacji, czyli używania niesemantycznych nazwa funkcji i zmiennych, różnego rodzaju szyfrowania i haszowania tam gdzie nie jest to konieczne lub potrzebne.

Możemy też tworzyć mechanizmy wykrywające próby infiltracji i ingerencji. Na tej zasadzie działają np. detektory graczy oszukujących w grach multiplayer i nie tylko.

Inżynieria wsteczna – co to jest? (przykłady)
4.4 (88%) głosów: 5


Komentarze

Brak komentarzy.

Dodaj swój komentarz