separazione del runtime dell'applicazione - best practice

6

Ho bisogno di persuadere "la gestione" che eseguendo due o più applicazioni business-critical non correlate all'interno di un singolo ambiente runtime condiviso (vale a dire una singola "riga di comando") è una idea veramente pessima . Il problema è che la direzione non riconosce "l'autorità del ragazzo di sicurezza" (io) e vuole che la mia causa sia sostenuta da alcune raccomandazioni da un'autorità reale come ISO, ISACA, NIST o qualsiasi altra da tre a quattro lettere -agency.

Esiste una "best practice" definita in tutti gli standard di sicurezza che dichiarerebbe chiaramente che l'esecuzione di due o più applicazioni separate e non correlate (come i processi di database) in un singolo ambiente di runtime condiviso con lo stesso UID è errata ?

Tieni presente che lo so è una cattiva idea e posso presentare molte ragioni per confermare questa affermazione, ma nessuna di queste include una citazione da "uno standard".

    
posta mikky 08.09.2015 - 09:50
fonte

2 risposte

1

Trova chi assicura la tua azienda per i costi relativi alle informazioni perse, ecc. Tipicamente nel contratto definiscono i requisiti per un sistema critico come quello che stai descrivendo. Presentalo al tuo team legale nel modo più piacevole possibile (porta i bagel) rispetto alla gestione degli amministratori per risolverlo e per procura portare il tuo sistema allo standard.

Anche se non è esplicitamente specificato da un'agenzia di lettere, gli avvocati della tua azienda lo vedranno in questa luce:

"Se andiamo in tribunale per i dati persi e la compagnia assicurativa porta un esperto per testimoniare che il nostro sistema non stava usando le migliori pratiche, perderemo."

In Security, Legal può essere di grande aiuto.

    
risposta data 05.04.2016 - 23:23
fonte
0

Questa sembra una domanda molto generica, ma prenderò una pugnalata.

La maggior parte dei server (Apache, Nginx, ecc.) ha un processo genitore di proprietà di root che poi forchetta i lavoratori con un utente con privilegi ridotti; www-data nel caso di Apache. Il processo biforcato utilizza setuid e / o setgid per modificare l'utente e / o il gruppo e imporre il principio del privilegio minimo (che puoi leggere su Wikipedia)

Utilizzando la funzione ptrace, un processo utente può osservare e controllare l'esecuzione di processi con lo stesso ID utente, ma non può tracciare processi arbitrari. Si otterrà "Autorizzazione negata" nel tentativo di iniziare a tracciare un programma radice setuid.

In Linux ogni classe di processo (postgres, nginx, apache, ecc.) gira sotto un id utente jail separato e non può ptrace l'un l'altro.

Windows è un po 'più complicato perché è basato sui thread ma ci sono concetti simili. L'architettura di sicurezza di Windows, è basata sul Security Reference Monitor nel kernel. Il monitoraggio dei riferimenti di sicurezza applica il controllo degli accessi confrontando i SID degli utenti e dei gruppi nel token di accesso di sicurezza con autorizzazioni di accesso concesse nell'ACL del descrittore di sicurezza di un oggetto. Ulteriori informazioni in questo articolo MSDN link

HTH!

    
risposta data 08.09.2015 - 14:36
fonte

Leggi altre domande sui tag