Sicurezza Web: 6 azioni per tenere il sito al sicuro

sicurezza web sqli mitm

A volte sembra che gli attacchi informatici siano qualcosa che esiste solo nei film o nei telegiornali. Sebbene sia vero che gli hacker sono spesso interessati a obiettivi di grandi dimensioni, altri sono pronti a colpire la nostra infrastruttura per ottenere un riscatto economico o per vendere i nostri dati alla concorrenza.

Un attacco informatico, per quanto richieda conoscenze specifiche, è spesso eseguito in tempi molto brevi e un esperto informatico è capace di stimare velocemente le possibili vulnerabilità del nostro sito.

Qui di seguito troviamo qualche aspetto da tenere in conto se vogliamo tenere il nostro sito sicuro.

Installare un certificato SSL

Forse avrete già notato che alcuni siti sono vengono etichettati da alcuni browser (Chrome ad esempio) come non sicuri. Ma cosa si intende esattamente per “non sicuro”?

Significa che il sito non ha installato un certificato SSL, ossia che adotta uno standard, noto come Secure Sockets Layer, per la comunicazione criptata tra il nostro PC e il server. Le comunicazioni criptate sono immuni dalle intercettazioni di agenti esterni, in quanto quest’ultimi non hanno un modo per decifrare i dati da noi comunicati.

Quindi installare un certificato SSL terrà gli utenti del nostro sito al sicuro e in aggiunta il nostro sito sarà ben visto dai navigatori e dai motori di ricerca.

Personalizza la configurazione

Al momento dell’installazione di un sito WordPress, il menu ci chiederà alcuni dettagli per la configurazione che desideriamo, tra le altre il nome utente e password dell’amministratore, il prefisso per le tavole del nostro database ed alcuni sali crittografici.

Inutile a dirsi, password semplici e valori di default per la configurazione possono semplificare enormemente la vita dell’avversario informatico, che attraverso un attacco brute force potrebbe ottenere le nostre credenziali in poche ore.

Sanitizzare l’input dell’utente

iniezione sql

In un film vediamo gli hacker inserire una sequenza strana di caratteri fino a quando sul monitor inizia a comparire una montagna di informazioni. Nel mondo reale funziona davvero così: l’attacker fornisce un input che, bypassando alcuni check interni, riesce a comunicare con qualche componente del nostro server per ottenere le credenziali degli utenti o per controllare il nostro server da remoto.

Le “porte d’ingresso” sono tantissime e non si possono riassumere tutte in questo articolo, ma proviamo ad elencare alcuni punti importanti:

  • Le query SQL verso i database vanno scritte da un esperto che conosca le best practices. Le iniezioni SQL sono il tipo di attacco attraverso il quale le informazioni confidenziali in un database possono essere rese di dominio pubblico.
  • Se usiamo dei plugins wordpress o delle librerie open source, assicuriamoci che questi siano sicuri. Per un avversario informatico è facilissimo individuare i plugins installati e preparare un attacco ad hoc.
  • Sanitizzazione XSS e CSRF: potreste già aver notato che inserire codice HTML all’interno di un form per i commenti non è permesso. Gli hacker utilizzano il cross-site scripting (XSS) per rubare i cookie utente e accedere ai nostri account. Il cross site request forgery invece fa partire un attacco verso il nostro sito “mascherando” alcune azioni web dietro un innocuo pulsante, ad esempio.

Affidarsi ad un pentester

Se il nostro sito si limita a pubblicare delle ricette di cucina o al nostro hobby per la fotografia, probabilmente installare un certificato SSL potrebbe essere più che abbastanza.

Diverso è il discorso se dobbiamo registrare i dati dei nostri utenti, abbiamo un ecommerce e abbiamo integrato un sistema per i pagamenti, o comunque forniamo un qualche servizio professionale.

In questo caso è bene rivolgersi ad un addetto nel campo della sicurezza informatica, noti anche come pentesters. Il pentesting (abbreviazione di penetration testing) prevede di simulare un attacco informatico autorizzato e ben controllato per identificare possibili falle all’interno del sistema.

Un’agenzia di pentesting, o hacking etico, utilizza una serie di strumenti software per l’analisi delle vulnerabilità e l’automazione dell’attacco. L’operazione prevede le fasi seguenti:

  • Agglomerazione dei dati pubblici del sito: si cercano quante più informazioni possibili in rete, sui database whois e sui social networks
  • Scan: in questa fase si identificano le varie componenti della stack tecnologica e le versioni. Ogni componente è rintracciata nei database per individuare eventuali vulnerabilità associate
  • Iniezione del payload: nel caso in cui siano stati rilevati dei componenti software a rischio, viene preparato un attacco per verificare un possibile uso privilegiato (exploit) verso il server. Particolare cautela viene messa nella preparazione dell’attacco per evitare possibili conseguenze negative (es. cancellazione dati da database o interruzioni di servizio)
  • Analisi tracce post-attacco e reporting: al termine dell’attacco bisogna verificare se sono rimaste tracce e riportare le vulnerabilità riscontrate.

Backup e configurazione DB

Fare il backup dei dati è un sistema facile e poco costoso per una rete di salvataggio. Se un attacco dovesse cancellare i dati del nostro business, sarà facile ripristinare le informazioni in tempi brevi.

A questo riguardo, sarà anche importante configurare il nostro database in modo da ridurre gli accessi privilegiati e di conseguenza la superficie di attacco.

Utilizzare un web application firewall

Il WAF, o web application firewall, è un layer software di protezione aggiuntiva da mettere tra il nostro server e la rete internet.

Questo software altamente specializzato è in grado di rilevare quando una richiesta HTTP verso il nostro sito ha l’aria “sospetta”. Tra i provider WAF più noti e apprezzati troviamo Sucuri e alcuni CDN come CloudFlare e Akamai. Per WordPress ci si può affidare a Wordfence, un WAF specializzato per questa piattaforma.

Leave a Reply

Your email address will not be published. Required fields are marked *