La differenza tra jailing, sandboxing e interpretazione

6

Nelle mie lezioni di sicurezza IT ho frequentemente ripercorso questi termini e ho avuto difficoltà a distinguere tra loro, quindi ho cercato di capire le loro differenze:

Sandboxing : meccanismo di difesa contro codice mobile , che viene eseguito in un ambiente runtime separato. Codice e dati sono separati per evitare che il programma si modifichi da solo. Questo è usato per piccole applicazioni come le applet nella JVM.

Interpretazione : meccanismo di difesa contro codice mobile . L'accesso diretto all'hardware è impedito e tutti gli indirizzi e le chiamate di sistema vengono interpretati e analizzati. I browser Web utilizzano questa tecnica a scapito delle prestazioni.

Jailing : meccanismo di difesa contro un programma sconosciuto . Tutte le chiamate di sistema di un prigioniero del programma supervisionato vengono controllate da un altro jailer del programma che può anche intercettarle e bloccarle.

Queste definizioni sono valide o ci sono altre differenze / similarità che non ho visto? Soprattutto alcuni scenari del mondo reale sarebbero utili, ad esempio so che il sandboxing è usato nella JVM come parte della sicurezza di Java.

    
posta AdHominem 19.07.2016 - 19:15
fonte

1 risposta

1

Ho sentito in questi termini un tentativo di spiegare a un livello più alto di astrazione un continuum di modi per affrontare il problema dell'hosting di codice eseguibile su un sistema che desideri proteggere.

  1. Nativo: consente al codice eseguibile di essere eseguito normalmente sul sistema di destinazione con i diritti e i privilegi completi di altro codice sul sistema

  2. Jail: consente al codice eseguibile di funzionare normalmente sul sistema di destinazione, tranne per il fatto che l'accesso alle risorse sensibili, da syscalls specifiche a API specifiche a risorse come il disco o i / o di rete, indipendentemente dal contesto, è bloccato in qualche modo. Pensa a questo come a una lista nera: una politica di default consentita con regole di rifiuto specifiche.

  3. Sandbox: un ambiente più restrittivo di un carcere. Il codice eseguibile viene eseguito in un'astrazione del sistema di destinazione, sebbene sia consentito un accesso limitato limitato alle risorse sensibili. Pensa a questo come una whitelist - una politica di default deny (beh, default abstract / faked) con alcune regole di autorizzazione specifiche.

  4. Interpret: è un termine scadente per il concetto, che rappresenta l'altra estremità dello spettro da Nativo. Il codice eseguibile viene eseguito in un ambiente completamente astratto senza alcuna interazione diretta con le risorse sul sistema di destinazione. Un termine migliore può essere "Simulato".

Spero che ti aiuti.

    
risposta data 08.08.2016 - 05:50
fonte

Leggi altre domande sui tag