Softwarová forenzní analýza - Software forensics

Softwarová forenzní analýza je věda o analýze softwaru zdrojový kód nebo binární kód zjistit, zda porušení duševního vlastnictví došlo ke krádeži. Je ústředním bodem soudních sporů, soudních sporů a urovnání sporů, když jsou společnosti ve sporu ohledně problémů týkajících se softwaru patenty, autorská práva, a obchodní tajemství. Softwarové forenzní nástroje mohou porovnávat kód a určit korelaci, což je měřítko, které lze použít jako vodítko pro odborníka na softwarovou forenzní analýzu.

Minulé metody softwarové forenzní analýzy

Včetně minulých metod porovnávání kódu hashování, Statistická analýza, text vhodný, a tokenizace. Tyto metody porovnávaly softwarový kód a vytvářely jediné měřítko indikující, zda došlo ke kopírování. Tato opatření však nebyla dostatečně přesná, aby byla přípustná u soudu, protože výsledky nebyly přesné, algoritmy se daly snadno oklamat jednoduchými substitucemi v kódu a metody nezohledňovaly skutečnost, že kód může být podobný z důvodů kromě kopírování.

Porušení autorských práv

Po použití softwarových nástrojů k porovnání kódu k určení míry korelace může odborník pomocí iteračního procesu filtrování určit, že korelovaný kód je způsoben kódem třetí strany, nástroje pro generování kódu, běžně používané názvy, běžné algoritmy, společné programátoři nebo kopírování. Pokud je korelace způsobena kopírováním a kopírka neměla oprávnění od držitele práv, pak porušení autorských práv došlo.

Ochrana a porušení obchodního tajemství

Software může obsahovat obchodní tajemství, která podniku poskytují konkurenční výhodu. Ke zjištění krádeže obchodního tajemství lze ke zjištění porušení autorských práv použít stejné nástroje a procesy. Pokud byl kód zkopírován bez oprávnění a tento kód má vlastnosti obchodního tajemství - není to obecně známo, podnik ho udržuje v tajnosti a jeho utajení udržuje jeho hodnotu pro obchod -, pak zkopírovaný kód představuje krádež obchodního tajemství.

Krádež obchodního tajemství může také zahrnovat převzetí funkčnosti kódu, aniž byste jej museli doslova kopírovat. Porovnání funkčnosti kódu je velmi obtížný problém, který ještě musí být proveden jakýmkoli algoritmem v rozumném čase. Z tohoto důvodu je hledání krádeže funkčnosti kódu stále většinou manuální proces.

Porušení patentu

Stejně jako u funkce obchodního tajemství není v současné době možné vědecky detekovat porušení softwarových patentů, protože softwarové patenty pokrývají spíše obecnou implementaci než konkrétní zdrojový kód. Například program, který implementuje patentovaný vynález, lze napsat v mnoha dostupných programovacích jazycích pomocí různých názvů funkcí a názvů proměnných a provádění operací v různých sekvencích. Existuje tolik kombinací způsobů implementace vynálezů do softwaru, že ani ty nejmodernější moderní počítače nemohou uvažovat o všech kombinacích kódu, které by mohly porušovat patent. Tato práce je stále ponechána na lidské odborníky využívající jejich znalosti a zkušenosti, ale je problémem, že mnozí v softwarové forenzní technice se snaží automatizovat vyhledáním algoritmu nebo zjednodušením procesu.

Objektivní fakta před subjektivními důkazy

Jedním z důležitých pravidel každé forenzní analýzy je, že nejprve je třeba vzít v úvahu objektivní fakta. Kontrola komentářů v kódu nebo prohledávání Internetu s cílem najít informace o společnostech, které kód distribuují, a programátorech, kteří tento kód napsali, jsou užitečné až po zvážení objektivních skutečností týkajících se korelace. Jakmile byla analýza provedena pomocí forenzních nástrojů a postupů, analytici pak mohou začít hledat subjektivní důkazy, jako jsou komentáře v kódu. Pokud jsou informace v těchto subjektivních důkazech v rozporu s objektivní analýzou, musí analytici o subjektivních důkazech pochybovat. Falešná upozornění na autorská práva, oznámení o otevřených zdrojích nebo jména programátorů, která byla přidána do zdrojového kódu po provedení kopírování, nejsou v reálných případech krádeží kódu neobvyklá, aby zamaskovaly kopírování.

Reference