Voxxed Days: programming ways to face new attacks

Voxxed Days Ticino - G.Paternò

Voxxed Days Ticino - G.Paternò

Input Validation

Giuseppe ha mostrato esempi di codice comparando BAD and GOOD practises per evitare che un form sia vittima di Cross Site Scripting (XSS), di Cross Site Request Forgery (CSRF) o Insecure Direct Object Reference come nell’esempio seguente.

Bad
from django.http import HttpResponse
def say_hello(request):
name = request.GET.get(‘name’, ‘world’)
return HttpResponse(‘<h1>Hello, %s!</h1>’ % name)
Good
from django.shortcuts import render
def say_hello(request):
name = request.GET.get(‘name’, ‘world’)
return render(request, ‘hello.html’, {‘name’: name})
# template.html
<h1>Hello, {{ name }}!</h1>

Authentication & Authorization

I nomi delle grandi aziende e le stime delle perdite per le conseguenze di questi attacchi mostrate da Giuseppe al Voxxed days sono impressionanti. Nel 2010 Aberdeen Group ha stimato perdite per 221 billions $ solo a causa del furto di identità. Le violazioni a Dropbox, Samsung, Apple e Linkedin sono esempi per i partecipanti ai Voxxed days: la sicurezza è un asset aziendale e non una costosa opzione di cui si può fare a meno.

Le pratiche per evitare di essere vittima di queste falle di sicurezza non sono solo informatiche ma riguardano molto da vicino l’organizzazione e i processi aziendali:

  • Broken authentication
  • Missing function-level access control
  • Rely on a proven authentication backend!
  • Use a 2 Factor Authentication
  • Authorise every single request

con la dovuta attenzione a questi fattori, il layer di autenticazione e di accesso ai dati sarà più protetto e più difficile da violare.

Underlying platform

Dal lato tecnico ci sono fattori chiave a cui fare attenzione sulla piattaforma informatica per evitare falle di sicurezza:

  • Security misconfiguration: controllare sempre la correttezza delle configurazioni
  • Sensitive data exposure: controllare che dati sensibili non siamo mai direttamente esposti
  • Using software with known vulnerabilities (patching): tenere aggiornati i software per evitare bugs
  • Use automation tools(Puppet, Chef, Ansible, …): per tenere lo stesso standard di sicurezza ovunque
  • Internal Audit: attivare procedure di revisione interne per verificare che tutto funzioni

Share Us

PinIt

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.