• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • Backend
    • Dev community
    • Carriere tech
    • Intelligenza artificiale
    • Interviste
    • Frontend
    • DevOps/Cloud
    • Linguaggi di programmazione
    • Soft Skill
  • Talent
    • Discover Talent
    • Jobs
    • Manifesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in
ads

gabroglioMaggio 28, 2024

Security by design: cosa si intende?

Cybersecurity
security by design. Cosa si intende?
facebooktwitterlinkedinreddit

In questo articolo vado ad affrontare gli aspetti fondamentali del concetto di sicurezza applicato alle soluzioni ICT (security by design) che è bene tenere in considerazione quando si affronta la progettazione e lo sviluppo di una qualsiasi applicazione informatica.

Le applicazioni espongono dati personali, per questo motivo devono verificare chi ha effettuato la richiesta e condividere solo i dati ai quali l’utente autenticato ha diritto di accedere, avendo cura di differenziare i permessi di lettura e scrittura per ogni singolo utente.

Recommended article
Marzo 18, 2025

Scrivere codice sicuro: la guida essenziale per gli sviluppatori Java – Parte 3

peduz91

peduz91

Cybersecurity
Table Of Contents
  1. Autenticazione ed autorizzazione
  2. Sicurezza del perimetro
  3. OpenAPI
    • MFA
    • Strumenti di analisi
  4. Sicurezza applicativa
  5. OWASP
  6. Tutti devono collaborare

Autenticazione ed autorizzazione

Il primo concetto che viene naturale affrontare quando si parla di security by design è quello dell’autenticazione utente, in modo da verificarne i criteri di autorizzazione per poter verificare in maniera capillare le operazioni permesse sui singoli dati.

La definizione di ruoli permette di semplificare la gestione dei permessi permettendone la gestione all’interno di gruppi di utenti, questa associazione viene verificata una volta terminata correttamente l’autenticazione utente.

Per poter mettere in sicurezza gli applicativi occorre però allargare il concetto di sicurezza ponendo attenzione su tutti gli elementi che compongono l’architettura ed analizzando con attenzione tutti i possibili punti di accesso.

Sicurezza del perimetro

Nel mondo IoT gli applicativi vengono esposti sulla rete internet proprio allo scopo di rendere pubblico l’accesso ai dati, occorre però mettersi al riparo da possibili attacchi mirati a forzare l’accesso a dati protetti, proprio come uno scassinatore mira ad aprire la cassaforte di una banca.

Si inizia in questo modo ad approcciare il concetto di sicurezza a livello di disegno dell’intera architettura, non guardiamo più il singolo dato e l’applicativo che stiamo progettando, ma allarghiamo la visuale anche ai protocolli di rete ed alle componenti che la compongono.

L’utilizzo di firewall e WAF permettono di filtrare e bloccare l’accesso all’intera infrastruttura a quei client che tentino l’accesso non autorizzato ai dati o che mirino ad effettuare attacchi DDoS.

OpenAPI

Utilizzare formati e protocolli standard permette di analizzare con maggiore cura quanto si sta progettando e sviluppando, permettendo quindi un’analisi dettagliata delle eventuali falle di sicurezza.


Articolo consigliato: Come dotare i device IoT “resource – constrained” di un layer di sicurezza efficace


La specifica OpenAPI mira a definire in maniera formale ed universalmente riconosciuta l’interfaccia per l’accesso ai dati che vengono condivisi dal singolo micro servizio. Ad ogni risorsa vengono assegnati uno o più scope, solo gli utenti in possesso degli scopes richiesti possono accedere alla singola risorsa.

pizzashack security by design

Una volta dichiarata in maniera opportuna l’API esposta è possibile definire il flusso di autenticazione degli utenti. Il protocollo OAUTH è universalmente riconosciuto per l’autenticazione di applicativi WEB o tramite APP mobile, trattandosi di un protocollo standard viene mantenuto (attualmente è alla versione 2.0) ed evoluto (OIDC, PAR).

MFA

I tentativi di attacco mirati al data breach operano cercando di individuare le chiavi di accesso (username e password) degli utenti, il primo livello di sicurezza che possiamo attuare è la creazione di una password complessa in modo che sia difficilmente individuabile.

La Multi Factor Authentication aumenta il livello di sicurezza in quanto viene richiesta una azione ulteriore da parte dell’utente che si sta autenticando, come ade esempio una seconda autorizzazione tramite l’app mobile installata sullo smartphone o l’inserimento di un OTP inviato tramite e-mail o SMS.

Questo tipo di autenticazione può essere attuata sia in fase di prima autenticazione utente che nel caso di determinate operazioni per le quali sia richiesto un livello ulteriore di sicurezza.

Strumenti di analisi

Come si fa a capire se un sistema è sotto attacco? Purtroppo non c’è una sola risposta a questa domanda, in quanto i tentativi di attacco possono essere molteplici e chi li effettua varia la tipologia di intrusione proprio per evitare di essere riconosciuto.

Possiamo però effettuare un’analisi statistica sui tentativi di accesso, ad esempio classificando una classe di IP che tenta numerosi accessi in un lasso di tempo ristretto può identificare un attacco DDoS, diversi accessi con utente o password errati possono invece evidenziare il tentativo di furto delle credenziali di accesso.

L’integrazione quindi con strumenti di reportistica ed analisi dei dati di accesso (ad esempio l’utilizzo di ELK) possono aiutare nell’individuare potenziali attacchi ai sistemi informatici.

Sicurezza applicativa

Quando parliamo di ingegneria del software intendiamo analizzare tutti i processi produttivi dedicati allo sviluppo di applicativi efficienti e sicuri, occorre quindi porre particolare attenzione alle librerie che sono utilizzate all’interno del progetto.

Un caso che viene menzionato sovente è quello della vulnerabilità introdotta da Log4j, strumenti analisi del codice e scansione delle dipendenze sono un valido aiuto nell’individuare falle di sicurezza e notificarle a partire dallo sviluppo, tramite le pipeline di CI/CD o la verifica periodica degli ambienti produttivi.

La definizione dello SBOM (Software Bill Of Materials), aiuta i progetti a tenere sotto controllo le componenti applicative per individuare eventuali librerie che contengono potenziali falle di sicurezza e procedere alla loro sostituzione con versioni accreditate come sicure.

OWASP

L’Open Worldwide Application Security Project pone l’attenzione sulla definizione di linee guida per migliorare la sicurezza delle applicazioni web. OWASP Top 10 è un documento rivolto agli sviluppatori e che descrive i principali rischi di sicurezza.

La piattaforma 42Crunch è un valido supporto allo sviluppo di servizi web per l’esposizione dei dati tramite interfacce web o APP mobile, mette a disposizione degli sviluppatori i plugin da integrare nei tool di sviluppo per la scansione statica della definizione swagger delle API.

security by design

Una verifica costante è prevista anche nelle fasi di test delle API tramite l’invio di request verso gli endpoints dichiarati nella definizione swagger per testarne le risposte sia in caso di dati corretti che in caso di errore, a corredo dei gateway può essere installata la componente firewall per la verifica a runtime delle API pubblicate.

Tutti devono collaborare

Il security by design riguarda quindi tutti gli elementi dell’architettura, in modo da evitare falle che possono essere utilizzate dagli hackers, non è però un concetto statico ed occorre verificare periodicamente lo stato di salute di tutte le componenti.

La collaborazione all’interno del team è fondamentale, nessuno si deve sentire escluso da questo concetto, all’interno di Profesia miriamo ad avere gruppi di lavoro competenti e sensibili sulle tematiche di sicurezza che riteniamo essere alla base dello sviluppo di applicativi di successo.

Codemotion Collection Background
Dalla community
Selezionati per te

Vuoi scoprire più articoli come questo? Dai un’occhiata alla collection Dalla community dove troverai sempre nuovi contenuti selezionati dal nostro team.

Share on:facebooktwitterlinkedinreddit

Tagged as:API architettura cloud Security

gabroglio
Ricopro il ruolo di Platform Engineer presso Profesia, collaboro con le organizzazioni per definire le opportune scelte architetturali. Partendo dai requisiti di business lavoro per creare soluzioni efficienti ed estensibili nel tempo applicando gli opportuni pattern basati su standard e protocolli noti.
Gran finale dell’Hackathon “Made in Italy Innovation Challenge” con Codemotion e l’Istituto Poligrafico e Zecca dello Stato
Previous Post
Navigare la complessità: scopri i design pattern comportamentali per un codice efficace
Next Post

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions