C'è un vantaggio nell'usare il WRAP di Oracle per offuscare il codice PL / SQL

10

Le unità di programma memorizzate Oracle (procedure, funzioni, pacchetti e tipi) possono essere offuscate usando WRAP funzionalità.

Oltre alle argomentazioni generiche su "sicurezza attraverso l'oscurità" ci sono problemi specifici nell'utilizzo della funzionalità di wrapping?

    
posta Gary 12.11.2010 - 01:40
fonte

2 risposte

8

Sono disponibili unwrapper per il codice incluso nel meccanismo Oracle 10g e 11g. Questi includono sia uno "unwrapper" online che il codice sorgente di un unwrapper scritto in Python.

Pertanto, il wrapping farà ben poco per impedire a qualcuno con quel livello di accesso di ottenere il codice sorgente.

È possibile ottenere ulteriori indicatori della natura del codice utilizzando le viste * _DEPENDENCIES, tramite una traccia SQL o l'utilizzo di DBMS_TRACE.

Le viste di dipendenza mostreranno quali tabelle e altri oggetti potrebbero essere chiamati dal programma, direttamente o indirettamente. La traccia SQL mostrerà gli SQL eseguiti come risultato di una particolare chiamata a una procedura. Questo può includere "variabili di binding", ad esempio mostrare il sale utilizzato in una chiamata di crittografia. DBMS_TRACE non è in genere installato, ma quando installato e abilitato può essere utilizzato per tracciare il percorso effettuato attraverso il codice, in termini di numeri di riga e chiamate procedura / funzione.

Per proteggere il codice dall'essere analizzato, il primo ricorso dovrebbe essere l'uso di pacchetti. Con le procedure e le funzioni, la totalità del codice è disponibile per qualsiasi utente del database a cui è stato dato il permesso di eseguire il programma. Con i pacchetti sono disponibili solo le specifiche (nome del programma e nomi degli argomenti / tipi di dati) e il codice effettivo nel corpo è visibile solo al proprietario del programma e agli utenti con privilegi di database elevati (normalmente DBA).

    
risposta data 12.11.2010 - 01:54
fonte
2

Sembrerebbe che il text wrapping del codice sorgente PL / SQL non sia utile per eliminare i mezzi tecnici per leggere il codice PL / SQL, ma piuttosto per raggiungere uno o più dei seguenti obiettivi.

  1. Scoraggiare gli sviluppatori di software principianti dal basarsi su implementazioni piuttosto che interfacce per pacchetti e tipi. Pertanto, il wrapping del testo di origine potrebbe tendere ad evitare problemi di compatibilità con le versioni precedenti se e quando tali implementazioni sono state riviste.
  2. Sostenere l'affermazione secondo cui se qualcuno leggesse tali implementazioni, allora quella persona trasgredirebbe la legge DMCA negli Stati Uniti, o almeno dimostrerebbe l'intenzione di leggere tali implementazioni di fronte a misure che sono chiaramente intese a rendere sono difficili da leggere.
  3. Prevenire le persone che sono piuttosto informali sull'attività e piuttosto limitate nelle loro risorse dall'ottenere il testo del programma.
risposta data 09.03.2012 - 05:47
fonte

Leggi altre domande sui tag