Co je reverzní inženýrství?  Jak to funguje?

Co je reverzní inženýrství? Jak to funguje?

Co je reverzní inženýrství?

Zpětné inženýrství je akt demontáže objektu, aby bylo vidět, jak to funguje. Dělá se primárně k analýze a získání znalostí o tom, jak něco funguje, ale často se používá k duplikování nebo vylepšení objektu. Mnoho věcí lze reverzně připravit, včetně softwaru, fyzických strojů, vojenské technologie a dokonce i biologických funkcí souvisejících s fungováním genů.

Praxe reverzního inženýrství aplikovaná na počítačový hardware a software je převzata ze starších průmyslových odvětví. Softwarové reverzní inženýrství se zaměřuje na program strojový kód – řetězec 0 a 1 s, které jsou odeslány do logického procesoru. Programové příkazy se používají k převedení strojového kódu zpět na originál zdrojový kód.

V závislosti na technologii mohou být znalosti získané během reverzního inženýrství použity k opětovnému použití zastaralých objektů, k provedení bezpečnostní analýzy, získání konkurenční výhody nebo k poučení někoho o tom, jak něco funguje. Bez ohledu na to, jak jsou znalosti použity nebo k čemu se vztahují, reverzní inženýrství je proces získávání těchto znalostí z hotového objektu.

Jaký je účel reverzního inženýrství?

Účelem reverzního inženýrství je zjistit, jak objekt nebo systém funguje. Existuje řada důvodů, proč to udělat. Pomocí reverzního inženýrství se můžete naučit, jak něco funguje, a znovu vytvořit objekt nebo vytvořit podobný objekt s přidanými vylepšeními.

Cílem softwaru nebo hardwaru pro reverzní inženýrství je často najít způsob, jak vytvořit podobný produkt levněji nebo proto, že původní produkt již není k dispozici. Reverzní inženýrství v informačních technologiích je také zvyklé řešit problémy s kompatibilitou a zajistit, aby hardware nebo software fungoval s jiným hardwarem, softwarem nebo operačními systémy, s nimiž původně nebyl kompatibilní.

Dobrým příkladem je software Apple Logic Pro, který hudebníkům umožňuje skládat, nahrávat, aranžovat, upravovat a míchat hudbu. Logic Pro je k dispozici pouze pro zařízení Mac a je relativně drahý. Program má několik vlastních digitálních nástrojů. S trochou vyšetřování mohl programátor zpětně analyzovat ty digitální přístroje, zjistěte, jak fungují, a přizpůsobte je pro použití v Logic Pro nebo pro jejich interoperabilitu s jiným hudebním softwarem, který je kompatibilní s Windows.

Jak funguje proces zpětného inženýrství?

Proces zpětného inženýrství je specifický pro objekt, na kterém se provádí. Bez ohledu na kontext však existují tři obecné kroky společné všem snahám o reverzní inženýrství. Obsahují:

  • Extrakce informací. Objekt, který se zpětně analyzuje, je studován, jsou extrahovány informace o jeho designu a tyto informace jsou zkoumány, aby se určilo, jak jednotlivé části do sebe zapadají. V softwarovém zpětném inženýrství to může vyžadovat shromáždění zdrojového kódu a souvisejících návrhových dokumentů pro studium. Může také zahrnovat použití nástrojů, jako je demontážní program, který rozdělí program na jednotlivé součásti.
  • Modelování. Shromážděné informace jsou abstrahovány do koncepčního modelu, přičemž každý model vysvětluje jeho funkci v celkové struktuře. Účelem tohoto kroku je převzít informace specifické pro originál a abstrahovat je do obecného modelu, který lze použít jako vodítko pro návrh nových objektů nebo systémů. V softwarovém zpětném inženýrství to může mít podobu diagramu toku dat nebo strukturního diagramu.
  • Posouzení. To zahrnuje kontrolu modelu a jeho testování v různých scénářích, aby bylo zajištěno, že jde o realistickou abstrakci původního objektu nebo systému. V softwarovém inženýrství by to mohlo mít podobu testování softwaru. Jakmile je testován, lze model implementovat tak, aby znovu vytvořil původní objekt.
Tři kroky k reverznímu inženýrství
Podrobnosti procesu zpětného inženýrství se liší v závislosti na věci, která se zpětně připravuje, ale obecně zapadá do těchto tří kroků.

Softwarové reverzní inženýrství zahrnuje použití několika nástrojů. Jeden nástroj je a hexadecimální dumper, který vytiskne nebo zobrazí binární čísla programu v hexadecimálním formátu. Znát bitové vzory, které představují procesor instrukce, stejně jako délky instrukcí, může reverzní inženýr identifikovat části programu a zjistit, jak fungují.

Dalším softwarovým nástrojem zpětného inženýrství je disassembler. Přečte binární kód a zobrazí každou spustitelnou instrukci jako text. Disassembler nemůže poznat rozdíl mezi spustitelnou instrukcí a daty, která program používá, takže a debugger se používá k zabránění disassembleru v demontáži datových částí programu. Tyto nástroje může používat a počítačový cracker a získat přístup do počítačového systému nebo způsobit jinou škodu.

Počítačem podporovaný design (CAD) je technika reverzního inženýrství používaná k opětovnému vytvoření vyrobené součásti, když již není k dispozici původní plán. Zahrnuje vytváření 3D obrazů dílu, aby jej bylo možné znovu vyrobit. Souřadnicový měřicí stroj měří součást a při jejím měření je pomocí CAD softwaru generován 3D obraz drátěného rámu a zobrazen na monitoru. Po dokončení měření se obraz drátěného rámu kótuje. Pomocí těchto metod lze reverzní inženýrství libovolné součásti.

Příklady reverzního inženýrství

Zpětné inženýrství se liší v závislosti na tom, na co se používá, a na účelu zpětného inženýrství technologie. Mezi běžné příklady patří:

Software

Existuje několik případů, kdy se k rozebrání softwaru používá reverzní inženýrství. Běžným příkladem je přizpůsobení programu napsaného pro použití s ​​jedním mikroprocesorem jinému. Mezi další příklady patří rekonstrukce ztraceného zdrojového kódu, studium toho, jak program provádí určité operace, zlepšení výkonu a oprava hmyz nebo oprava chyb, když zdrojový kód není k dispozici.

Jedním z příkladů je Phoenix, americká softwarová společnost, která vytvořila základní vstupní / výstupní systém (BIOS) software, který byl kompatibilní s proprietární verzí IBM. Za tímto účelem společnost Phoenix provedla reverzní inženýrství verze IBM způsobem, který je chránil před poplatky za autorská práva, zaznamenáním kroků, které následovaly, a neodkazováním na vlastní kód.

Malware je další oblastí, kde se používá softwarové reverzní inženýrství. Aktéři hrozeb často používají softwarový kód zmatek aby jejich škodlivý kód nebyl objeven nebo pochopen. Vlastníci infikovaného softwaru nebo systémů mohou pomocí reverzního inženýrství identifikovat škodlivý obsah, například a virus. Americká obranná zpravodajská agentura uvedla, že má v úmyslu tyto techniky použít zpětně analyzovat nepřátelský malware k vytvoření vlastních útočných kybernetických zbraní. K dispozici jsou nástroje, které pomáhají při zpětném inženýrství malwaru, například Software Ghidra od Národní bezpečnostní agentury, který se používá například pro zpětnou analýzu malwaru WannaCry.

Části počítače

Pokud chce výrobce procesoru zjistit, jak procesor konkurence funguje, může si koupit procesor konkurence, zpětně jej analyzovat a poté, co se naučí, vyrobit vlastní procesor. Tento proces je v mnoha zemích nezákonný a vyžaduje velké odborné znalosti a je nákladný. Zpětné inženýrství se často používá k vytváření náhradních dílů, když již nejsou k dispozici původní díly pro starší vybavení. Zpětné inženýrství počítačových částí se také provádí za účelem zvýšení bezpečnosti. Například, Google Project Zero identifikovala zranitelná místa v mikroprocesorech pomocí reverzního inženýrství.

Hodnocení zabezpečení sítě

Společnosti provádějící hodnocení zabezpečení sítě také používají reverzní inženýrství jako jeden ze svých nástrojů. Ony rozdělit jejich bezpečnostní skupinu do dvou týmů. Jeden tým simuluje útoky a druhý tým sleduje síť a zpětně analyzuje útoky druhého týmu. Informace získané z těchto falešných útoků se používají k posílení podnikové sítě.

Právní a etické výzvy s reverzním inženýrstvím

V USA je reverzní inženýrství obecně považováno za legální způsob, jak se o produktu dozvědět, pokud je původní verze získána legálně a nejsou porušeny žádné další smluvní ujednání. Americké obchodní zákony mají za cíl umožnit reverzní inženýrství, pokud je to v zájmu zlepšení produktu nebo vytvoření interoperability s jinými produkty, které byly dříve nekompatibilní.

Zpětné inženýrství patentovaného produktu je podle zákona o ochraně obchodních tajemství obecně legální, ale existují situace, kdy je jeho zákonnost sporná. Majitelé patentů se mohou odvolat proti komukoli, kdo kopíruje jejich vynálezy.

Software pro reverzní inženýrství za účelem kopírování nebo duplikování programu může představovat porušení zákona o autorských právech. Některé softwarové licence výslovně zakazují reverzní inženýrství. Další smluvní ujednání mohou také omezit použití reverzního inženýrství k získání přístupu ke kódu, včetně podmínek služby nebo upozornění na používání a nezveřejnění a dalších typů dohod pro vývojáře.

K řízení přístupu k softwaru a jinému digitálnímu obsahu chráněnému autorskými právy se často používají technologická ochranná opatření (TPM), jako jsou hesla, šifrování a zařízení pro řízení přístupu. Obcházení TPM může vyvolat právní problémy.

Mezi různé zákony týkající se reverzního inženýrství patří následující:

  • patentové právo;
  • autorská práva a zákon o spravedlivém použití
  • zákon o obchodním tajemství;
  • ustanovení o ochraně před protiprávními činy podle zákona Digital Millennium Copyright Act;
  • Zákon o ochraně osobních údajů v elektronických komunikacích; a
  • jakékoli smluvní právo specifické pro daný produkt.

Pokud je u soudu podána výzva k reverznímu inženýrství, musí původní majitel objektu, systému nebo duševního vlastnictví prokázat, že předmět vytvořil, nebo že vlastní patent nebo autorská práva. Osoba nebo organizace provádějící reverzní inženýrství musí prokázat, že informace získala legálním způsobem.

Jedním ze způsobů, jak záměrně zpětně analyzovat a vyvíjet nový softwarový produkt, aby se zabránilo porušení patentu nebo autorských práv, je použití čisté místnosti nebo etická zeď technika, při které na projektu pracují dvě samostatné skupiny programátorů, které zajišťují, že originál nebude přímo kopírován.

Reverzní inženýrství je složitá oblast etiky a práva. Šíření informačních technologií v mnoha odvětvích každodenního života je ještě komplikuje.

Jídlo s sebou

Reverzní inženýrství má v IT mnoho legitimních použití. Může to být jak právní, tak etický přístup k řešení problémů s kompatibilitou, k obnově starších částí, k posouzení zabezpečení, vylepšování stávajícího produktu nebo k jeho levnějšímu využití.

Příslušné kroky jsou komplikované a liší se podle toho, co se děje zpětným inženýrstvím. Například odborníci na QA, kteří chtějí řešit problémy uživatelů se softwarovými produkty, mohou zpětně analyzovat stížnost, abyste se dostali k její příčině. Identifikace hlavních příčin problémů uživatelů není snadná, ale techniky zpětného inženýrství eliminují některé dohady.

Share

Leave a Reply

Your email address will not be published.