ReBitting
Blog ecologico. Sono stati usati solamente bytes riciclati
My Links
Home
Archives
Links
Contact
Syndication
Login
News
Tag Cloud
Agile
AJAX
AJAX Toolkit
Altro
ASP.NET
Database
IIS
Labs
LINQ
Live
OT
Refactoring
Resources
SCRUM
SDL
Security
Silverlight
WCF
WPF
XP
Recent Comments
Personalmente meno javascript vedo più mi dispiacc...
by Diego guidi
Ciao. Credo stia collaborando anche con Sun (StarO...
by Antonio
Ancora a commentare???Ma basta sti commenti :D...
by Salvatore Di Fazio
ah ho finalmente capito perchè era + facile trovar...
by marco
Sto dormendo in piedi... cmq faccio un esempio :DF...
by Salvatore Di Fazio
<< HTML 5
|
Home
|
Format of the initialization string does not conform to specification starting at index 0 >>
SDL (Parte 8 - 2: Analisi dei rischi)
The Threat-Modeling Process
Sebbene la procedura di alto livello coinvolga numerosi elementi, molti di questi richiedono poca esperienza nel campo della sicurezza:
1.
Define use scenarios.
2.
Gather a list of external dependencies.
3.
Define security assumptions.
4.
Create external security notes.
5.
Create one or more DFDs of the application being modeled.
6.
Determine threat types.
7.
Identify the threats to the system.
8.
Determine risk.
9.
Plan mitigations.
1.
Define use scenarios
A questo punto del progetto saremo in grado di determinare in quale scenario il nostro applicativo lavorerà.
Se, ad esempio, è un’applicazione mobile la quale ha dati sensibili, vorremmo avere qualche sistema di sicurezza se il palmare viene rubato.
2.
Gather a list of external dependencies
Le nostre applicazioni non sono autosufficenti (almeno le mie… se fate sistemi operativi, il discorso è diverso :D ), per funzionare hanno bisogno di un sistema operativo, magari un db, un Web server e/o un framework.
E’ importante documentare tutte queste dipendenze.
Esempio, per un’applicazione Web come Pet Shop 4.0:
·
Web client: Microsoft Internet Explorer 6 o FireFox 1.5 o successivo.
·
Microsoft Windows Server 2003
·
Lato server: Microsoft SQL Server 2005
·
Lato server: Microsoft Message Queue 2
·
Microsoft .NET Framework 2
3.
Define security assumptions
Questo è un punto alquanto delicato.
Le
securty assumptions
sono appunto delle assunzioni che diamo sul sistema dove il nostro applicativo gira.
Se, ad esempio, il nostro sistema è collegato ad internet, assumiamo che un firewall sia attivo (e già questa è una PESSIMA
security
assumptions
in quanto un firewall è facilmente disattivabile) o, se registra chiavi encriptate, e ci basiamo sul sistema operativo per proteggere le chiavi, assumiamo che il sistema operativo le protegga in maniera corretta (definire l’accesso ai files, l’utilizzo dell’applicativo solamente ad alcuni users o ad alcuni gruppi, etc).
4.
Create external security notes
Gli utenti ed altri designer che interagiscono con il nostro applicativo possono usare le
external security notes
per capire quali sono i confini da mantenere per tenere sicura l’applicazione.
Esempio, l’amministratore del sistema è in grado di leggere/modificare/cancellare qualsiasi file del sistema, anche del nostro applicativo. Con le
security notes
rendiamo quest’informazione pubblica all’utente/designer.
Pet Shop 4.0 External Dependencies
·
Clients
o
Clients con Internet Explorer 6.0 o sup o FireFox 1.5 o sup
·
Servers
o
Windows Server 2003 SP1
o
Microsoft IIS 6.0
o
Microsoft ASP.NET 2.0 e Framework 2.0
o
Microsoft SQL Server 2000, Microsoft SQL Server 2005, o Oracle 10g
o
Windows Server 2003 Terminal Services
o
Microsoft Message Queue 2.0
o
Microsoft Distributed Transaction Coordinator (MSDTC)
Pet Shop 4.0 Security Assumptions
·
I dati sensibili non risiedono nei pc clients, ma vengono spediti tramite una connessione SSL/TLS e i browser mandano i dati tramite questi protocolli.
·
DPAPI è usato nel server per proteggere le stringhe di connessione e le chiavi degli utenti non-amministratori.
·
Il database registra le informazioni sulle autenticazioni.
·
I dati di autenticazione vengono protetti in maniera adeguata dal database server, usando una tecnologia di autorizazione del server ed encriptando i dati.
·
IIS 6 e ASP.NET obbligano l’autenticazione.
·
Le configurazioni del Web service sono scritte nel Web.config e può esser modificato solamente dall’amministratore.
·
Il programma di setup dell’applicazione server configura correttamente l’ACL per il file Web.config.
·
Solamente l’amministratore può amministrare i servizi usando il Terminal Services o accedere al server se necessario.
·
Navigare in internet, leggere/scrivere e-mail, usare programmi di peer-to-peer o programmi di messaggistica, nel server è
PROIBITO.
·
Il database è configurato per usare i suoi protocolli di autenticazione nativi.
·
Le informazioni di connessione ai database sono salvate nel file Web.config dell’applicazione e protette usando il Protected Configuration option del DPAPI.
Pet Shop 4.0 External Security Information
Di seguito le
external security information
che troviamo nel libro per l’esempio di Pet Shop 4.0:
·
L’amministratore può cambiare qualsiasi settaggio del sistema, incluso il Web service.
·
Le uniche porte aperte sono:
o
TCP/3389: per l’amministrazione del sistema, accessibile solo dall’amministratore
o
TCP/80: HTTP accessibile da internet
o
TCP/443: HTTPS accessibile da Internet
o
TCP/1433-1521: porte del database, accessibile solo dal Web server e dall’amministratore del computer
o
TCP/3372: MSDTC, accessibile da tutti i pc coinvolti nel processo degli ordini; solitamente solo il Web server e il computer del database.
What is modeled and what do you depend on?
Seguendo l’esempio Pet Shop, dobbiamo iniziare a capire cosa modellare.
In esame quindi abbiamo un’applicazione Web che utilizza delle librerie da noi sviluppate per venirci in aiuto in vari compiti, che utilizzano il Framework 2.0, che viene usato dal Web server, il quale utilizza una porta TCP/IP per dialogare, la quale utilizza i driver di rete, i quali servono a dialogare con la scheda madre... etc :D
SampleApp Web Service
Da modellare
SampleCorp Web Service Libray
ASP.NET 2.0
.NET Framework 2.0
Dipendiamo
IIS6
TCP/IP Stack
Network Driver
NIC
Semplice... no!? :D
5.
Create one or more DFDs of the application being modeled
Ora è l’ora della creazione del DFD. Sbagliare questo passaggio significa sbagliare tutto il threat-modeling.
La spiegazione del DFD viene fatta ad alto livello in quanto esistono varie letture a riguardo e l’argomento è alquanto vasto.
Il livello più alto del DFD è il
context diagram
, il quale visualizza il sistema che stiamo sviluppando al centro e le entità esterne con il quale interagisce, questo ci fa capire chi interagisce con il nostro applicativo.
DFD Element Type
Shape
DFD Element Type
Description
Doppio cerchio
Processo complesso/Multiprocesso
Rappresentazione di un processo che si occupa di più distinte operazioni.
Cerchio
Processo
Rappresentazione di un processo che si occupa di un discreto task. In alcune rappresentazioni DFD viene disegnato come un rettangolo con gli angoli smussati.
Rettangolo
Entita esterna
Qualcosa o qualcuno che non possiamo controllare ma che può comandare la nostra applicazione.
Un esempio: utenti, eventi asincroni, processi esterni, etc
Line parallele
Data store
Database o file, rappresenta anche informazioni cached. Alcuni DFD lo rapprensentano come un rettangolo aperto ai lati con il nome del db o del file tra le due rette.
Freccia
Data flow
Rappresenta i dati in movimento da e verso il sistema. Esempio: dati via rete, shared memory etc
Linea puntata
Trust boundary
Specifico per il
threat modeling,
delineano i confini alti e bassi di affidabilità in cui i dati si muovono.
Esempio: confini di un processo dove un utente con bassi privilegi comunica con un utente con alti privilegi.
Come si vede nell’immagine, conviene aggiungere delle brevissime descrizioni che ci vengono in aiuto per capire il contesto del task che l’utente può effettuare.
Di seguito sono stati sviluppati anche i DFD per i processi complessi prensenti nel nostro applicativo.
Il primo rappresenta il nostro processo centrale.
Cosa fa a chi interagisce con lui. E lo chiamiamo DFD di livello 0 del nome dato al processo centrale; in questo caso PetShop 4.
Invece questo invece esplodiamo il processo complesso presente nel DFD di livello 0. Ovvero il processo nominato
Ordering 4.7
.
Tags:
SDL
Print
| posted on sabato 26 gennaio 2008 18.10
Comments
No comments posted yet.
Post a comment
Title
Name
Email
Url
Comments
Remember Me
Please add 3 and 8 and type the answer here:
Enter the code shown above: