Reverzní inženýrství
Author
Albert FloresReverzní inženýrství je proces analýzy softwaru, hardware či jiného produktu, při kterém se zpětně zjišťuje jeho funkce, struktura a návrh. Tato metoda se využívá nejen v oblasti informačních technologií, ale také například v automobilovém průmyslu. Cílem reverzního inženýrství je získání znalostí o systému a jeho funkčnosti, bez potřeby dostupných zdrojových kódů, specifikací nebo dokumentací. Tento proces se provádí pomocí různých technik a nástrojů, které umožňují analyzovat, testovat a porozumět danému produktu. Reverzní inženýrství se využívá například při opravách chyb v software, při rozšiřování funkčnosti systému, nebo při zjištění možností konkurenčních výrobků. V automobilovém průmyslu se tato metoda používá například při analýze konkurenčního vozidla nebo při vylepšování existujících technologií. Proces reverzního inženýrství může být složitý a vyžadovat odborné znalosti. Při provádění tohoto procesu je důležité dodržovat zákony a etická pravidla, protože může docházet k porušení autorských práv nebo obchodního tajemství. Reverzní inženýrství je důležitým nástrojem pro technologický rozvoj a inovace. Přináší možnost prozkoumání a porozumění existujícím technologiím, což může vést k jejich zdokonalení či vytvoření nových a lepších produktů.
Tu-4 Reverzní inženýrství (též zpětné inženýrství nebo zpětná analýza, zkratka RE) je označení pro proces, jehož cílem je odkrýt princip fungování zkoumaného předmětu (např. mechanického zařízení nebo počítačového programu), většinou za účelem sestrojení stejně či podobně fungujícího předmětu (nemusí však být výslovnou kopií originálu). Reverzní inženýrství může být v závislosti na situaci a právním systému nelegální (např. jako průmyslová špionáž nebo porušení práv duševního vlastnictví), ne však ve všech státech světa stejně.
Charakteristika
Výstupem reverzního inženýrství je obnovení návrhu (či jen dokumentace), které může být podkladem k vytvoření podobného produktu, bezpečnostnímu auditu a podobně.
Příklady zpětného inženýrství
V architektuře je RE používáno pro rekonstrukci 3D modelu skutečného objektu (naskenováním bodů, které jsou zpracovány v CAD programech).
Ve vojenství je často RE využíváno ke kopírování cizích technologií. Například Britové a Američané vyráběli za druhé světové války kanystry na benzín podle německého vzoru (tzv. +more Jerrycan) a na základě reverzního inženýrství také vyprodukovali vlastní verzi letounových střel V-1, která však nebyla nasazena. Sovětský svaz v letech 1945-1949 vyvinul strategický bombardér Tupolev Tu-4, který byl téměř dokonalou kopií amerického letounu B-29. Američané se u letounů F-117 a později B-2 značně inspirovali sovětskou technologií krytí před radary (dnes známé jako stealth).
Během studené války schválil Ronald Reagan plán CIA reagující na krádeže západních technologií tím, že východním agentům bylo podstrčeno několik technologií se skrytými chybami. To se stalo příčinou výbuchu sibiřského plynovodu (po atomových výbuších dosud největší umělá exploze vůbec).
V elektrotechnice bývají zkoumány integrované obvody - RE v oblasti počítačových procesorů přispívá k velké míře kompatibility instrukčních sad.
Zpětné inženýrství v programování
Reverzní inženýrství je v informatice definováno jako proces analýzy předmětného systému s cílem identifikovat komponenty systému a jejich vzájemné vazby a/nebo vytvořit reprezentaci systému v jiné formě nebo na vyšší úrovni abstrakce.
Reverzní inženýrství využívá dekompilátory (tj. opak překladače), disassemblery, virtualizaci, sledování či záznam činnosti zařízení pomocí logického analyzátoru nebo dalších pomůcek.
Zpětné inženýrství je často využíváno pro získání softwarové dokumentace, která umožní například: * analyzovat určité proprietární datové formáty (pro zvýšení interoperability), * odhalit slabiny čipových karet * pochopit funkci databázových modelů * odhalit funkci kódu počítačových programů ** odstranění ochrany proti kopírování počítačových her, aplikací, operačních systémů apod. (tzv. +more cracking) ** vyhledávání bezpečnostních chyb (viz programátorská chyba, zranitelnost, exploit) * implementovat ovladač zařízení, který není pro jisté prostředí dostupný ** ovladače grafických karet pro projekt X. Org ** ovladače pro bezdrátové síťové karty pro Linux, FreeBSD apod.
Proti reverznímu inženýrství je software typicky chráněn pomocí obfuskací kódu, šifrováním, hardwarovým klíčem a dalšími prostředky.
Příkladem software vzniklého díky reverznímu inženýrství je Samba, kde byl problém duševního vlastnictví vyřešen uložením povinnosti zveřejnit dokumentaci firmě Microsoft ze strany orgánů Evropské unie (na základě vyšetřování zneužití monopolního postavení).
Právní aspekty
Reverzní inženýrství upravuje v českém právu autorský zákon (121/2000 Sb.).
V některých případech zpětné analýzy počítačového programu však může dojít k nutnosti zásahu do technických prostředků ochrany (obecně nepřesně nazývané Digital rights management), který je sám o sobě zásahem do práv autora (v takových případech je zpětná analýza v České republice podle § 43 autorského zákona nelegální) nebo může být právo zpětné analýzy smluvně poskytovatelem programu prakticky vyloučeno.