Image

Protezione del codice

Strumenti hardware e software per la protezione della proprietà intellettuale.

Protezione e vulnerabilità software

La protezione del software è importante per tutelare gli investimenti e la remuneratività di un prodotto software, in particolare nel caso di applicazioni standalone per sistemi desktop.

L'analisi statica di un eseguibile può rivelare informazioni relative al funzionamento e all'architettura di un software. Ad esempio, è possibile estrapolare stringhe di testo che contengono URL e credenziali di accesso usate dal programma per interfacciarsi con sistemi di gestione remota degli aggiornamenti o della licenza.

I programmi che sono scritti in linguaggi bytecode possono essere facilmente disassemblati. Ciò consente di ricostruire i codici sorgenti a partire dall'eseguibile, modificarli per aggirare eventuali limitazioni, e ottenere così libero accesso a tutte le funzionalità del software.

Questo può danneggiare la remuneratività del prodotto e, in alcuni casi, compromettere la riservatezza della proprietà intellettuale del produttore.

In altri casi le vulnerabilità di un software possono essere sfruttate per la diffusione o l'attivazione di software malevolo di terze parti. In questo caso il rischio maggiore consiste nel danno di immagine che ne deriva.

Ogni sistema di protezione ha dei punti deboli che possono esporre il software a manipolazioni ed usi impropri per cui nessuna strategia di difesa, per quanto elaborata, può dirsi infallibile.

Tuttavia, è possibile mettere in atto una serie di accorgimenti che hanno la finalità ostacolare il processo di reverse engineering, diminuendo le possibilità di successo per gli attaccanti con un livello di competenza medio-basso.

I nostri servizi includono l'analisi e la predisposizione di strategie di protezione:

  • Analisi statica dell’eseguibile finalizzata all'individuazione di vulnerabilità
  • Stripping e offuscamento di eseguibili scritti in linguaggi bytecode
  • Implementazione di soluzioni anti-debugging
  • Compressione e cifratura dell’eseguibile mediante loader
  • Implementazione di soluzioni anti-tampering

Sistemi per la gestione della licenza

Le licenze d'uso che corredano la distribuzione di software commerciali consentono di restringere l'uso del prodotto ai soli acquirenti, in toto o per le funzionalità avanzate.

È possibile definire politiche di attivazione della licenza basate sul tempo, il consumo di risorse, il possesso di un token software o un dongle fisico.

I sistemi di gestione della licenza fanno uso di schemi di crittografia di vario tipo per proteggere le informazioni di licenza dal rischio di manipolazioni.

Anche in questo caso, nessun sistema può prevenire la compromissione della licenza al 100%, tuttavia è sempre possibile attuare strategie di difesa efficaci.

I nostri servizi includono l'integrazione di sistemi per la gestione delle licenze:

  • Sistemi di licenza software basati su schemi di crittografia asimmetrica
  • Sistemi di licenza basati su dongle hardware con interfaccia USB

Hai bisogno di un sistema di licensing?