Che cosa implica la difesa in profondità per un'app Web?

12

Suppongo che significhi diversi livelli di sicurezza, dalla sicurezza a livello di app, al rafforzamento dei server, all'addestramento del personale, ma quali sono ciascuno di questi livelli e quali sono alcune buone risorse per ogni livello di difesa?

In ordine di importanza per un'app Web, contrassegnare ciascun livello, definirlo brevemente e quindi elencare una o più risorse per ulteriori informazioni.

    
posta VirtuosiMedia 19.11.2010 - 13:19
fonte

4 risposte

6

La risorsa più importante nel paradigma della difesa in profondità è l'intelligenza umana : impiegare persone esperte della sicurezza responsabili della difesa continua e persistente.

Gli strumenti cambiano, le strutture delle app web cambiano, vengono scoperte nuove tecniche di exploit, cose che preludono a costruire una squadra umana strong per difendere.

Passare alla tattica, ma ancora ad alto livello:

secure coding (app layer) -> empowering teams to develop attacker-resilient applications -> OWASP

secure infrastructure -> empowering teams to deploy attacker-resilient servers and supporting equipment

http://cisecurity.org/ The Center for Internet Security (CIS) is a non-profit enterprise whose Benchmarking and Metrics Division helps organizations reduce the risk of business and e-commerce disruptions resulting from inadequate technical security controls. The Division provides enterprises with consensus best practice standards for security configurations, as well as resources for measuring information security status and for making rational decisions about security investments.

http://iase.disa.mil/stigs/checklist/ Defense Information Systems Agency (DISA)

http://web.nvd.nist.gov/view/ncp/repository
http://csrc.nist.gov/fdcc/faq-common_security_configurations.html
The National Checklist Program (NCP), defined by the NIST SP 800-70 Rev. 1, is the U.S. government repository of publicly available security checklists (or benchmarks) that provide detailed low level guidance on setting the security configuration of operating systems and applications.

capable incident detection and response -> empowering teams to detect, contain, respond, & fix

collection of incident response checklists: http://www.knowyourenemy.eu/checklists.php

Richard Bejtlich recently blogged:

"Resources for Building Incident Response Teams Recently a colleague asked me for resources for building incident response teams. I promised I would provide a few ideas [...]

The CERT.org CSIRT Development site is probably the best place to start. From there you can find free documents, links to classes offered by SEI on building CIRTs, and so on. I don't think you can beat that site!

I don't think the resources at the FIRST site are as helpful, but the process of working toward membership is a great exercise for a new CIRT.

My TaoSecurity books page lists several books which CIRTs will likely find helpful."

Nel nome della brevità, forse quanto sopra è sufficiente?

    
risposta data 20.11.2010 - 00:42
fonte
7

Penso che sia probabilmente più importante capire cosa NON significhi "difesa in profondità". Non significa "una lunga lista di straordinari controlli dal suono, come i firewall e gli algoritmi di crittografia".

La difesa in profondità è un termine tecnologicamente neutro che significa che due o più controlli indipendenti dovrebbero fallire prima che un sistema venga compromesso. Per esempio. tieni i calzoni in alto con cintura e amp; bretelle & stringa: -)

Il punto chiave qui è 'indipendente' - se tutti i tuoi controlli hanno modalità di errore comuni, o se solo uno di loro ha bisogno di fallire prima di aver perso, allora non c'è 'difesa in profondità'. Ad esempio, se ciascuno dei tuoi livelli è accessibile da quello precedente tramite HTTP e tutti hanno la stessa vulnerabilità, l'impostazione firewall / DMZ viene effettivamente resa irrilevante dal momento che l'utente malintenzionato può utilizzare la stessa vulnerabilità per possederli tutti.

    
risposta data 20.04.2011 - 23:31
fonte
4

Da quando hai iniziato a chiedere in modo specifico un'app Web, ad esempio dal punto di vista dell'applicazione, mi concentrerò principalmente su questo. In ordine di livelli dall'esterno, ecco un campionamento:

  • Protocollo sicuro (SSL / TLS)
  • firewall
  • DMZ
  • WAF
  • IDS / IPS
  • sistema operativo rinforzato
  • server Web rinforzato
  • codice gestito con framework consolidato
  • l'autenticazione
  • controllo dell'accesso ai file (ad esempio ACL NTFS)
  • Controllo dell'accesso all'URL (ad esempio la configurazione Web di ASP.NET)
  • controllo di accesso applicativo
  • convalida dell'input
  • stored procedure
  • collegamento dei parametri db (ad esempio oggetti comando / parametro ADO) o ORM
  • DB rinforzato
  • autorizzazioni severe sugli oggetti DB
  • codifica dell'output
  • ecc.

Si noti che la maggior parte di questi sono di natura applicativa, e la maggior parte degli elementi di rete / OS sono di natura architettonica ...

    
risposta data 21.11.2010 - 15:34
fonte
2

Stai chiedendo una risposta piuttosto lunga, quindi mi limiterò a provarci.

Se ci avviciniamo a un'app web dal punto di vista dell'utente, allora c'è:

  • Livello di rete (pacchetti HTTP / fili fisici / router / ISP)
    • Vedi Wikipedia
  • Software server (noto anche come IIS / httpd / etc)
    • Dipende dallo stack del server (LAMP / .NET / etc.)
  • Il tuo codice applicazione
    • Dipende da cosa è fatta la tua applicazione
  • Più che non entrerò.
risposta data 19.11.2010 - 22:18
fonte

Leggi altre domande sui tag