Una volta che il prodotto diventa famoso e la base di clienti aumenta, non è più possibile servire i clienti utilizzando sistemi semplici senza troppi colli di bottiglia. Sistemi software program distribuiti sono inevitabili ed è direttamente correlato alla crescita del prodotto. Costruire sistemi distribuiti è difficile e allo stesso tempo è divertente. Sta risolvendo un grande puzzle senza effective che ti offre una sfida unica ogni giorno o ogni settimana a seconda delle dimensioni del sistema. Non è possibile immaginare che alcun sistema sia costruito senza sicurezza in esame poiché per la maggior parte delle organizzazioni la sicurezza è “lavoro zero” o “lavoro uno”, qualunque ordine segua. Ora costruire la sicurezza nei sistemi distribuiti come una grande sfida è un eufemismo.
Gli sviluppatori di software program in precedenza si erano concentrati principalmente sull’incarico del prodotto e hanno cercato di adattarsi alla sicurezza nel prodotto in seguito. Questo approccio è arrivato con molti costi generali e rielabora. È cambiato molto negli ultimi tempi da quando le organizzazioni hanno iniziato a concentrarsi più di prima. Gli sviluppatori hanno iniziato a considerare la sicurezza nella fase iniziale del progetto. Tuttavia, questo tipo di adozione varia in varie dimensioni dell’organizzazione e la loro maturità. Questo articolo parlerà di alcune tendenze di sicurezza distribuite comuni dai recenti rapporti di sicurezza e di come gli sviluppatori possono provare a difenderli durante la costruzione.
Sicurezza e il suo costo nei sistemi distribuiti
Con la sicurezza che diventa una priorità, diamo un’occhiata al suo impatto sui sistemi distribuiti. Se sei un sistema distribuito medio -su larga scala, a quel punto stai già servendo un sacco di clienti, con conseguente aumento del carico di lavoro sui sistemi. Inoltre, qualsiasi impatto sul tuo sistema sarà già grande e influenzerà centinaia e migliaia di clienti, se non di più. È una grande responsabilità. Eventuali modifiche a questo sistema devono essere attentamente costruite, testate, rilasciate e monitorate. Per quanto il lato software program delle cose stia diventando importante o più complesso, il lato della sicurezza delle cose è ugualmente complicato. Costruire un sistema distribuito su larga scala è costoso e non ci entrerò qui. Ma sistemi distribuiti sicuri, o mancanza di essi, possono diventare estremamente costosi. Se si considera la sicurezza come un ripensamento, finirà per essere più lavoro e potrebbe causare più danni. Perché i costi di sicurezza non sono solo finanziari e possono causare gravi danni alla fiducia, alla reputazione e alle questioni normative. Inoltre, le conseguenze di affrontare un incidente in termini di operazioni sono un processo ingombrante. Implica quasi ogni parte dell’azienda, tra cui sviluppo, sicurezza, legale, PR e dirigente. Come mostra la ricerca (1), il costo della violazione è molto più costoso che ripararli in anticipo.
Perché i problemi di sicurezza noti persistono nei sistemi distribuiti
Dati questi costi e continui sforzi difensivi, perché alcuni problemi di sicurezza non scompaiono? Ci sono più teorie e pratiche là fuori su come costruire sistemi distribuiti più sicuri. Questa non è una nuova space. Tuttavia, nello spazio di sicurezza, anche se il problema è ben noto o identificato, ci vuole davvero molto tempo per essere completamente fissati da tutto il software program là fuori. Advert esempio, il OWASP Prime-10 Net Software Minacce non sono cambiati molto negli ultimi 10 anni, anche se tutti sanno che esiste (2). È principalmente a causa di molteplici motivi e per citarne alcuni:
- Le modifiche al software program sono sempre e le modifiche sono soggette a errori se non viene eseguito correttamente.
- Gli aggressori ottengono innovativi e trovano soluzioni various o altre opzioni per sfruttare lo stesso vettore di attacco.
La sicurezza del sistema distribuito non è molto diversa; Ci sono problemi noti che continuano a esistere per molti anni.
Lezioni dal DBIR: attacchi persistenti nei sistemi distribuiti
Per comprendere queste questioni persistenti, per questa analisi utilizzerò il rapporto di investigazione della violazione dei dati (DBIR) (3) da Verizon Enterprise, uno dei famosi relazioni di sicurezza del settore. Il rapporto mostra che alcuni degli attacchi non sono cambiati negli ultimi 10 anni; Per esempio, Denial of Service Assaults Distributed (DDoS)gli attacchi e le applicazioni Net relative alle credenziali sono uno dei migliori vettori di attacco per le violazioni. Quindi, in questo articolo, ci immergeremo in profondità in alcune delle tecniche utilizzando le quali gli sviluppatori possono impedire il DDO e gli attacchi relativi alle credenziali e come ridimensionare questo approccio advert altri problemi di sicurezza del sistema distribuito.
Denial of Service Attacchi distribuiti
Sulla base del DBIR di Verizon, gli attacchi di negazione degli attacchi di servizio continuano advert essere le migliori preoccupazioni negli ultimi dieci anni. Come indica la Figura 1, i modelli di attacco sono in tendenza man mano che l’utilizzo dell’applicazione Net aumenta.
Fig. 1. Modelli nel tempo negli incidenti (3)
Ecco alcuni dei passaggi che gli sviluppatori possono intraprendere per prevenirlo. Questo non è un elenco completo, ma questi sono alcuni critici che gli sviluppatori possono controllare. A causa della lunghezza dell’articolo, sto astratte alcuni dei concetti qui e collegando i riferimenti per la lettura futura.
- Limitazione della tariffa: Come sviluppatore, il passo più critico che potresti fare per impedire che si verifichino questi DDO è consentire la limitazione dei tassi sui tuoi servizi. Esistono vari livelli di limitazione della tariffa che potresti considerare: limiti a livello di API e limiti a livello di utente. Esistono vari meccanismi e implementazioni di limitazione della velocità disponibili per ulteriori letture (4).
- Monitorare il traffico in arrivo: Spesso, un cambiamento nel modello può indicare se qualcuno sta parlando con i nostri servizi più frequentemente, aiutandoci a decidere come rispondere. Sii cauto con limiti di quantity statico: se il quantity cresce progressivamente, l’attenzione dovrebbe essere sul tasso di aumento.
- Scacciamento del carico: Questo è un altro meccanismo di controllo della congestione del traffico che sarebbe utile (5).
Attacchi basati sulle credenziali
Il rapporto DBIR mostra che gli attacchi relativi alle credenziali sono uno dei principali problemi negli ultimi 10 anni. Ha anche senso che le credenziali siano uno dei fattori critici quando, una volta ottenuti, dà le chiavi al regno, quindi gli aggressori lo farebbero per un migliore ritorno sugli investimenti per i loro sforzi.
Fig. 2 Prime-3 Seleziona la varietà e le enumerazioni vettoriali in violazioni non di non-misuse (3)
Come ho già detto nella sezione Attacchi DDoS, ci sono vari strumenti e approcci che l’organizzazione della sicurezza potrebbe adottare. Ma ecco alcuni passaggi fondamentali che gli sviluppatori possono intraprendere i loro programmi per ridurre la superficie di questi attacchi:
- Usa le credenziali temporanee: Le credenziali a lungo termine non sono tuo amico. Sono invece con troppi rischi per la sicurezza e vanno per le credenziali effimere.
- Registro attentamente: La registrazione è essenziale per il debug e per lo studio di eventuali problemi operativi e di sicurezza in futuro. Ma è anche vulnerabile a registrare alcuni dati sensibili come le credenziali.
- Autenticazione multi -fattore: Questo è uno dei controlli critici per prevenire problemi di accesso non autorizzati. L’MFA dovrebbe essere abilitato ove possibile.
- Monitoraggio: Abilitare le credenziali sul monitoraggio relativo all’utilizzo è anche un altro ottimo modo per prevenire la protezione delle credenziali. Il monitoraggio potrebbe essere basato sul modello di accesso utente, la locale e altri parametri.
C’è anche una spinta in crescita per usare i passkeys anziché le password, e molto lavoro sta accadendo in quello spazio, che non tratterò in questo articolo.
Codificare la sicurezza in sistemi distribuiti
Ora, abbiamo parlato di come affrontare un paio di problemi di sicurezza del sistema distribuito. Puoi chiedere: “Non darmi il pesce, insegnami come pescare?” Questo è un punto giusto. Sebbene alcuni dei problemi di sistema distribuito siano comuni, potrebbero molto variare a seconda del settore e della regione in cui il servizio opera (6). Quindi, identifica la tendenza comune e cerca anche di localizzare i problemi specifici per il tuo settore, regione. Il modo migliore per ampliare i problemi è parlare con i tuoi staff di sicurezza e identificare quali problemi potrebbero essere più rilevanti per il tuo software program. Una volta identificato, è possibile utilizzare il framework di attacco Mitre (7) come riferimento; Darà varie tecniche che gli aggressori possono utilizzare per entrare nell’applicazione, consiglierà anche alcune soluzioni. Questo è un ottimo modo per pensare in anticipo e incorporare la sicurezza durante lo sviluppo del software program.
Conclusione
Costruire, mantenere e gestire sistemi distribuiti è difficile e farlo in modo sicuro è ancora più difficile. In questo articolo, abbiamo parlato di come alcuni dei problemi di sicurezza del sistema distribuito non siano unici ogni anno; Piuttosto, è come “NullpointerException” nella programmazione: è ben noto, ma accade spesso. Tuttavia, le tecniche e le tattiche sono state numerous, poiché anche gli aggressori diventano innovativi. Per prevenire tali problemi, gli sviluppatori possono prendere alcuni controlli comuni e, per ridimensionare noi stessi, utilizzare i dati globali e applicare il contesto locale advert esso, come il settore in cui operi e la regione di cui fai parte. Oltre a utilizzare i staff di sicurezza locali, i staff possono utilizzare framework di attacco come Miter per superare alcuni dei problemi di sicurezza nei sistemi distribuiti. Gli sviluppatori possono iniziare oggi applicando questi passaggi ai loro progetti attuali o imminenti per costruire la sicurezza da zero.
Riferimenti
- Hackerone. (ND). Risparmio dei costi per la fissazione di difetti di sicurezza durante lo sviluppo. Recuperato da https://www.hackerone.com/weblog/cost-savings-fixing-security-flaws
- Phoenix Safety. (ND). OWASP Prime 10 nel corso degli anni: quali sono le vulnerabilità sfruttate? Recuperato da https://phoenix.safety/owasp-top-10-across-the-years-what-aare-the-exploited-vulnerabilities/
- Verizon. (2024). 2024 Rapporto sulle indagini sulla violazione dei dati. Recuperato da https://www.verizon.com/enterprise/assets/stories/2024-dbir-data-breach-investigations-report.pdf
- Microsoft. (ND). Limiti API di protezione del servizio. Recuperato da https://be taught.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-enties/service-rotection-api-limits
- Amazon Net Providers. (ND). Usando lo spargimento di carico per evitare il sovraccarico. Recuperato da https://aws.amazon.com/builders-library/using-load-shedding-to-avoid-overload/
- Crowdstrike. (ND). 2025 Rapporto sulle minacce globali. Recuperato da https://www.crowdstrike.com/en-us/global-threat-report
- MITRA. (ND). ATT & CK Framework. Recuperato da https://assault.mitre.org/
Le opinioni espresse in questo articolo sono esclusivamente quelle degli autori e non dei loro datori di lavoro.