I seguenti requisiti per la sicurezza dei dati corrispondono alla Valutazione sulla protezione dei dati 2023.
Per le versioni di valutazione ricevute dopo febbraio 2024, consulta questa pagina.
Le app con accesso a determinati tipi di dati della piattaforma da Meta devono completare la valutazione annuale sulla protezione dei dati (DPA). La finalità della DPA è determinare se gli sviluppatori rispettano le Condizioni della Piattaforma Meta in relazione all'uso, alla condivisione e alla protezione dei Dati della Piattaforma. Una parte del questionario della DPA è incentrata sulla Condizione della piattaforma 6, che delinea i requisiti sulla protezione dei dati. Ti consigliamo di utilizzare questo documento per comprendere le aspettative, i requisiti e le evidenze correlate in relazione all'utilizzo della protezione dei dati e al relativo trattamento come definito nelle Condizioni della Piattaforma Meta.
Alla fine di questo documento troverai un glossario con i termini chiave e le relative definizioni.
Puoi trovare altre risorse video in Protocollo di dati.
In questo documento, l'espressione lato server è utilizzata come abbreviazione per qualsiasi ambiente back-end di un'organizzazione per l'elaborazione dei Dati della Piattaforma, sia in esecuzione su un host cloud come Amazon Web Services (AWS), ospitato dallo sviluppatore in un data center condiviso o esclusivo, sia in una soluzione ibrida (come combinazione di queste soluzioni).
I requisiti lato client fanno riferimento all'elaborazione dei Dati della Piattaforma all'interno di browser, dispositivi mobili, app su computer desktop e portatili, nonché altri tipi di dispositivi utilizzati dalle persone.
Crea (o aggiorna, se necessario) un diagramma o una descrizione del flusso di dati che illustri in che modo l'app o il sistema tratta i Dati della Piattaforma.
Infine, il diagramma o la descrizione del flusso di dati deve includere:
Potrebbe venirti richiesto di presentare prove a sostegno delle risposte relative alle protezioni della sicurezza dei dati che implementi. Ti consigliamo di leggere la Guida alle prove contenuta in questo documento per trovare esempi di prove accettabili e preparare le prove in modo adeguato. Accettiamo i più comuni tipi di file di documenti, oltre a screenshot e registrazioni dello schermo. Assicurati che i file non siano protetti da password. Puoi caricare più file, per un massimo di 2 GB ciascuno. Accettiamo file in formato .xls, .xlsx, .csv, .doc, .docx, .pdf, .txt, .jpeg, .jpg, .png, .ppt, .pptx, .mov, .mp4, .zip e .zipx.
Assicurati di oscurare (rimuovere) le informazioni sensibili dalle prove prima di inviarle.
Per le app a cui viene chiesto di caricare prove relative alle protezioni della sicurezza dei dati, Meta richiede due diversi tipi di documentazione:
Le prove relative alla normativa o alla procedura, talvolta definite come controllo amministrativo, sono documenti scritti che descrivono l'approccio utilizzato per una determinata protezione della sicurezza dei dati. Il tipo di prove può variare: può trattarsi dell'estratto di una serie di normative interne, di una parte o di tutta una pagina wiki interna oppure, se non disponi di una documentazione preesistente, di un documento creato ex novo che descriva l'approccio che utilizzi. In ogni caso, le prove relative alla normativa o alla procedura da te caricate devono illustrare chiaramente in che modo l'approccio a una determinata protezione si riferisce ai requisiti di Meta. Fornisci solo la normativa o i contenuti che sono pertinenti e necessari al controllo di sicurezza di Meta, oppure usa la casella di testo aperta associata alla domanda per indirizzare i nostri addetti al controllo verso le sezioni pertinenti.
Le prove relative all'implementazione illustrano nella pratica il modo in cui hai implementato la normativa o la procedura, direttamente attraverso uno screenshot o una registrazione dello schermo. I diversi sviluppatori presentano configurazioni diverse, pertanto non possiamo fornire esempi adatti a tutti gli scenari possibili. Premesso ciò, le prove relative all'implementazione devono essere dettagliate tanto quanto gli esempi che abbiamo fornito, nella misura del possibile.
Comprendiamo che possa essere oltremodo impegnativo preparare prove relative all'implementazione che dimostrino in modo esaustivo l'implementazione di una determinata protezione della sicurezza dei dati. Pertanto, ti consigliamo di presentare le prove secondo le indicazioni qui riportate, avendo cura di oscurare le informazioni sensibili dalle prove prima di inviarle:
Non inviare prove che contengano uno qualsiasi di questi valori in forma leggibile (non oscurata). Se per uno screenshot usi un editor di immagini, sovrapponi un riquadro nero sul valore da rimuovere. Se usi un editor di PDF, anziché aggiungere semplicemente un elemento sopra il testo, assicurati di oscurarlo con uno strumento che rimuova i valori (ad esempio, lo strumento "Oscura" dell'app in anteprima di Apple).
Domanda: Adotti la crittografia a riposo per tutti i Dati della piattaforma memorizzati in un ambiente cloud, server o data center?
La crittografia a riposo protegge i Dati della piattaforma rendendoli indecifrabili senza una chiave di decodifica separata. Ciò fornisce un ulteriore livello di protezione contro gli accessi di lettura non autorizzati.
Se memorizzi i Dati della piattaforma lato server:
Se lo sviluppatore NON memorizza i Dati della piattaforma lato server, questo requisito non è applicabile.
Questa domanda è pertinente se memorizzi i Dati della piattaforma tramite hosting IaaS (ad es. AWS EC2, IaaS di Microsoft Azure o Google Compute Engine), self-hosting o un approccio ibrido.
Tuttavia, esistono altri modelli di hosting back-end che costituiscono casi speciali:
Questa domanda non è pertinente se memorizzi i Dati della piattaforma solo tramite una di queste soluzioni (e non tramite IaaS, self-hosting o hosting ibrido). Dovrai invece illustrare questa relazione nella sezione Fornitori di servizi della Valutazione sulla protezione dei dati.
Se archivi i dati della Piattaforma solo tramite un'API di Meta, ad esempio usando player.setDataAsync()
, nell'SDK per Giochi istantanei la domanda non si applica.
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
AWS RDS: la crittografia a riposo è configurabile in AWS RDS, quindi gli sviluppatori devono assicurarsi che l'opzione di configurazione sia impostata per applicare questa protezione.
Per un'istanza RDS rappresentativa che contiene i Dati della piattaforma, utilizza lo strumento AWS CLI per recuperare la relativa configurazione StorageEncrypted.
# List RDS instances in default region $ aws rds describe-db-instances \ --query 'DBInstances[*].DBInstanceIdentifier' [ "database-1", "database-2" ] # For each instance returned, retrieve the storage encrypted config $ aws rds describe-db-instances \ --db-instance-identifier database-1 \ --query 'DBInstances[*].StorageEncrypted' [ true ] $ aws rds describe-db-instances \ --db-instance-identifier database-2 \ --query 'DBInstances[*].StorageEncrypted' [ true ]
In AWS DynamoDB viene applicata la crittografia a riposo come impostazione predefinita. Puoi recuperare la configurazione della crittografia a riposo per una tabella usando questi comandi.
$ aws dynamodb list-tables --output table -------------- | ListTables | +------------+ ||TableNames|| |+----------+| || Users || |+----------+| $ aws dynamodb describe-table \ --table-name Users \ --query "Table.SSEDescription.Status" "ENABLED"
AWS DocumentDB deve essere configurato per applicare la crittografia a riposo. Per un cluster rappresentativo che contiene i Dati della piattaforma, utilizza questi comandi per recuperare la configurazione StorageEncrypted.
$ aws docdb describe-db-clusters --query 'DBClusters[*].DBClusterIdentifier' [ "docdb-users" ] $ aws docdb describe-db-clusters \ --db-cluster-identifier 'docdb-users' \ --query 'DBClusters[*].StorageEncrypted' [ true ]
È possibile configurare i bucket di AWS S3 per applicare la crittografia a riposo a tutti gli oggetti creati all'interno del bucket. Utilizza questi comandi per elencare i bucket e recuperare la configurazione per la crittografia predefinita del bucket.
$ aws s3api list-buckets --output table --query "Buckets[*].Name" --------------------------------------------- | ListBuckets | +-------------------------------------------+ | platform.storage | +-------------------------------------------+ $ aws s3api get-bucket-encryption \ --bucket platform.storage \ --query "ServerSideEncryptionConfiguration.Rules[*].ApplyServerSideEncryptionByDefault" \ --output table --------------------- |GetBucketEncryption| +-------------------+ | SSEAlgorithm | +-------------------+ | AES256 | +-------------------+
Consulta la documentazione di Microsoft sulla crittografia a riposo in Azure pertinente all'utilizzo dell'organizzazione dei relativi servizi.
Consulta la documentazione di Google sulla crittografia a riposo in Google Cloud Platform.
Se non implementi la crittografia a riposo nell'ambiente lato server, puoi proteggere i Dati della piattaforma in un modo alternativo che sia comunque accettabile. In questo caso, è necessario descrivere quanto segue:
Domanda: In particolare per quanto riguarda i dati memorizzati sui dispositivi dell'organizzazione e su quelli personali: Adotti la crittografia a riposo o disponi di normative e regole per ridurre il rischio di perdita dei dati per tutti i Dati della piattaforma memorizzati su questi dispositivi?
Se uno sviluppatore consente l'utilizzo dei Dati della piattaforma su dispositivi come i computer portatili dei dipendenti o su dispositivi di memorizzazione rimovibili (ad esempio, le unità USB), tali dati sono ad alto rischio di accesso non autorizzato in caso di smarrimento o furto dei dispositivi. Gli sviluppatori devono adottare misure per limitare questo rischio.
Per ridurre il rischio di accesso non autorizzato ai Dati della piattaforma, gli sviluppatori devono disporre di controlli tecnici (preferibili) o amministrativi (non preferibili, ma accettabili) relativi ai Dati della piattaforma sui dispositivi (ad esempio, i computer portatili) e sui supporti rimovibili dell'organizzazione.
Tale requisito si applica indipendentemente dal fatto che elabori o meno i Dati della piattaforma lato server.
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Potresti usare uno o entrambi: a) controlli tecnici (ad esempio, la crittografia del disco) o b) regole/normative per ridurre il rischio di perdita dei Dati della piattaforma memorizzati su dispositivi dell'organizzazione come computer portatili e cellulari.
I controlli tecnici possono includere:
Le regole/normative possono includere:
Un'organizzazione classifica i Dati della piattaforma di Meta come "dati privati" in base ai propri standard di classificazione dei dati. L'organizzazione ha creato delle Linee guida sulla gestione dei dati e tutto il personale è tenuto a comprenderle e a rispettarle.
Domanda: Abiliti il protocollo di sicurezza TLS 1.2 o superiore per tutte le connessioni di rete che passano attraverso le reti pubbliche dove vengono trasmessi i Dati della piattaforma, si connettono a esse o le attraversano? Inoltre, ti assicuri che i Dati della piattaforma non vengano mai trasmessi su reti pubbliche in forma non crittografata (ad esempio, tramite HTTP o FTP) e che non vengano mai usati i protocolli di sicurezza SSL v2 e SSL v3?
I Dati della piattaforma trasmessi tramite Internet sono accessibili a chiunque sia in grado di osservare il traffico di rete. Pertanto, devono essere protetti mediante crittografia per evitarne la lettura da parte di tali soggetti non autorizzati.
Se elabori o meno i Dati della Piattaforma lato server:
La tabella che segue riepiloga la normativa sulla crittografia in transito per diversi tipi di trasmissione.
Tipo di trasmissione | Normativa sulla crittografia in transito |
---|---|
Da e verso dispositivi degli utenti finali (cellulari, PC, tablet, ecc.) e il tuo server o la tua infrastruttura cloud. |
|
Da e verso il tuo server o la tua infrastruttura cloud e qualsiasi server remoto, infrastruttura cloud o servizi di quarte parti. | È obbligatorio applicare la crittografia TLS 1.2 o superiore. |
Da e verso componenti interamente all'interno del data center privato, del tuo server o della tua infrastruttura cloud. | La crittografia TLS è consigliata ma non obbligatoria per i trasferimenti dei Dati della piattaforma che avvengono interamente all'interno di una rete cloud privata. |
Da e verso Meta e qualsiasi dispositivo, server o infrastruttura cloud | Fuori dall'ambito di applicazione della Valutazione sulla protezione dei dati: Meta controlla la normativa TLS per questi trasferimenti. |
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione. Un modo semplice di produrre prove dell'implementazione che dimostrino la configurazione di uno dei listener web consiste nell'usare lo strumento Qualys SSL Server Test.
Questo è un esempio di risultato dello strumento Qualys SSL Server Test. Leggi le annotazioni in rosso nella sezione Configurazione, che riepiloga quali versioni SSL/TLS sono supportate. Nota: questo esempio include solo le prime due pagine; tu devi includere l'intero risultato del test.
Puoi proteggere i Dati della Piattaforma in transito con un tipo diverso di crittografia oltre a quella TLS; l'approccio può essere accettabile solo se garantisce la stessa protezione. In questo caso, devi inviare i dettagli della crittografia a Meta affinché possa controllarli:
Domanda: Esegui test di app e sistemi in cerca di vulnerabilità e problemi di sicurezza almeno ogni 12 mesi? (Ad esempio, esegui un test di penetrazione manuale?)
Gli sviluppatori devono effettuare test in cerca di vulnerabilità e problemi di sicurezza così da individuarli in modo proattivo e, auspicabilmente, prevenire gli incidenti di sicurezza prima che si verifichino
Si applica a tutti gli sviluppatori:
Requisiti aggiuntivi per gli sviluppatori che elaborano i Dati della Piattaforma lato server:
Se l'organizzazione sta pensando di aggiungere SAST al processo di sviluppo, il NIST gestisce un elenco di strumenti open source e commerciali che può essere un utile punto di partenza per la scelta dello strumento.
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Se l'organizzazione tratta i Dati della Piattaforma in un ambiente cloud o server:
Il software del cloud o del server accessibile via Internet (ad esempio un'API REST per client web e mobili) che usi per elaborare i Dati della Piattaforma deve rientrare nell'ambito di questo test perché sia accettabile.
Se l'organizzazione NON elabora i Dati della Piattaforma in un ambiente cloud o server:
Test di penetrazione: un'organizzazione commissiona un test di penetrazione del proprio software in esecuzione sul lato server che si integra con le API di Meta ed elabora i Dati della Piattaforma. La società di test completa il test e redige una lettera di riepilogo come quella riportata di seguito. Si prega di notare le annotazioni in rosso, che mettono in evidenza la data in cui è stato effettuato il test (che deve essere stato eseguito entro gli ultimi 12 mesi) e un riepilogo dei risultati critici/di elevata gravità non risolti al termine del test (o di un nuovo test, se applicabile). Prima di inviare il report, rimuovi o oscura le informazioni sensibili, in particolare i passaggi dettagliati per la riproduzione delle vulnerabilità.
Analisi statica: se usi un approccio diverso, ad esempio uno strumento SAST, esporta i risultati in un documento che includa la data di esecuzione del SAST e un elenco di risultati che includa il tipo di risultato e la sua gravità/criticità.
Controllo della configurazione del cloud
Uno sviluppatore ricorre a NCC Scout Suite usando l'insieme di regole predefinito per il proprio provider cloud (in questo caso, AWS) per esaminare la propria configurazione cloud alla ricerca di vulnerabilità e problemi di sicurezza. Lo strumento genera un file JSON contenente i risultati dettagliati dell'esecuzione. In questo esempio, diversi problemi sono stati contrassegnati con la gravità "Pericolo" e lo sviluppatore deve controllarli e risolverli.
Il file JSON di NCC Scout Suite originale contiene dettagli sull'ambiente cloud da non caricare. Filtra invece le risposte per mostrare il numero di risultati per gravità.
$ python3 scout.py aws –-no-browser 2022-08-22 11:39:38 localhost scout[76981] INFO Saving data to scoutsuite-report/scoutsuite-results/scoutsuite_results_aws-043954759379.js $ cd scoutsuite-report/scoutsuite-results $ tail -n +2 scoutsuite_results_aws-043954750000.js| jq '. | {last_run}' | pbcopy { "last_run": { "ruleset_about": "This ruleset consists of numerous rules that are considered standard by NCC Group. The rules enabled range from violations of well-known security best practices to gaps resulting from less-known security implications of provider-specific mechanisms. Additional rules exist, some of them requiring extra-parameters to be configured, and some of them being applicable to a limited number of users.", "ruleset_name": "default", "run_parameters": { "excluded_regions": [], "regions": [], "services": [], "skipped_services": [] }, "summary": { "acm": { "checked_items": 4, "flagged_items": 2, "max_level": "warning", "resources_count": 2, "rules_count": 2 }, "awslambda": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "cloudformation": { "checked_items": 11, "flagged_items": 0, "max_level": "warning", "resources_count": 11, "rules_count": 1 }, "cloudfront": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 3 }, "cloudtrail": { "checked_items": 153, "flagged_items": 4, "max_level": "danger", "resources_count": 17, "rules_count": 9 }, "cloudwatch": { "checked_items": 2, "flagged_items": 0, "max_level": "warning", "resources_count": 2, "rules_count": 1 }, "codebuild": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "config": { "checked_items": 17, "flagged_items": 0, "max_level": "warning", "resources_count": 1227, "rules_count": 1 }, "directconnect": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "dynamodb": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 1, "rules_count": 0 }, "ec2": { "checked_items": 760, "flagged_items": 108, "max_level": "danger", "resources_count": 44, "rules_count": 28 }, "efs": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "elasticache": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "elb": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 3 }, "elbv2": { "checked_items": 42, "flagged_items": 4, "max_level": "danger", "resources_count": 0, "rules_count": 5 }, "emr": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "iam": { "checked_items": 801, "flagged_items": 27, "max_level": "danger", "resources_count": 87, "rules_count": 37 }, "kms": { "checked_items": 15, "flagged_items": 0, "max_level": "warning", "resources_count": 15, "rules_count": 1 }, "rds": { "checked_items": 1, "flagged_items": 0, "max_level": "warning", "resources_count": 27, "rules_count": 9 }, "redshift": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 6 }, "route53": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 1, "rules_count": 3 }, "s3": { "checked_items": 121, "flagged_items": 34, "max_level": "warning", "resources_count": 7, "rules_count": 18 }, "secretsmanager": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 1, "rules_count": 0 }, "ses": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 4 }, "sns": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 7 }, "sqs": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 8 }, "vpc": { "checked_items": 271, "flagged_items": 211, "max_level": "warning", "resources_count": 0, "rules_count": 9 } }, "time": "2022-08-22 11:42:25-0400", "version": "5.11.0" } }
Un altro approccio al controllo della configurazione del cloud da parte degli sviluppatori usa l'insieme di regole di Amazon Web Services.
# Show that AWS Foundational Security Best Practices are enabled $ aws securityhub get-enabled-standards { "StandardsSubscriptions": [ { "StandardsSubscriptionArn": "arn:aws:securityhub:us-west-1:043954759379:subscription/aws-foundational-security-best-practices/v/1.0.0", "StandardsArn": "arn:aws:securityhub:us-west-1::standards/aws-foundational-security-best-practices/v/1.0.0", "StandardsStatus": "READY" } ] } # Show that aggregator is configured for a representative region used to process Platform Data $ aws securityhub list-finding-aggregators $ aws securityhub get-finding-aggregator --finding-aggregator-arn '{REPLACE-WITH-FINDING-AGGREGATOR-ARN}' # Demonstrate that the ruleset is running by fetching active findings and counting the number of lines of output $ aws securityhub get-findings --query 'Findings[?RecordState==`ACTIVE`]' --filters '{"GeneratorId":[{"Value": "aws-foundational-security","Comparison":"PREFIX"}]}' --output text | wc -l 4876 # Demonstrate that there are no active critical severity findings $ aws securityhub get-findings --query 'Findings[?Severity.Label==`CRITICAL`] | [?RecordState==`ACTIVE`] | [*][Title, GeneratorId]' --filters '{"GeneratorId":[{"Value": "aws-foundational-security","Comparison":"PREFIX"}]}' []
Se gestisci un programma di divulgazione delle vulnerabilità (VDP) funzionante, ad esempio usando le piattaforme BugCrowd o HackerOne, puoi presentarlo come protezione alternativa a un test di penetrazione o a una scansione delle vulnerabilità. Per dimostrarlo, devi inviare le prove che dimostrino che:
In questo caso, le prove devono includere:
Domanda: I token d'accesso e le chiavi segrete dell'API di Meta sono protetti in entrambi i seguenti modi?
Token d'accesso e chiavi segrete sono fondamentali per garantire la sicurezza con cui le API di Meta decidono quali azioni consentire. Se un soggetto non autorizzato ottiene l'accesso a queste credenziali, potrebbe chiamare le API di Meta, assumendo l'identità dello sviluppatore reale, ed effettuare azioni per cui abbiamo concesso l'autorizzazione all'app (ad es. lettura dei dati sugli utenti dell'app dalle API di Meta).
Token d'accesso
Per quanto riguarda le chiavi segrete, deve essere presente una delle due seguenti condizioni:
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Includi la documentazione sulla normativa per la protezione dei token d'accesso e delle chiavi segrete dell'API di Meta. Se l'app elabora i token di accesso Meta lato server, includi prove che dimostrino le protezioni adottate (ad es. l'uso di una banca dati, la dimostrazione che i valori sono memorizzati in un formato crittografato, la configurazione dell'app per richiedere la verifica della chiave segreta).
Nelle prove che invii, assicurati di non includere (ovvero di rimuovere) i valori di testo delle chiavi segrete o dei token di accesso.
Un'organizzazione usa AWS Secrets Manager per memorizzare in modo sicuro i dati sensibili, comprese le chiavi segrete di Meta.
Un'organizzazione ha configurato la sua app di Meta per richiedere la verifica della chiave segreta per le chiamate API.
Domanda: esegui test di sistemi e processi da usare per rispondere a un incidente relativo alla sicurezza (ad esempio, una violazione dei dati o un attacco informatico) almeno ogni 12 mesi?
Prima o poi tutte le aziende subiscono un incidente di sicurezza, quindi è fondamentale che le organizzazioni abbiano previsto in anticipo le azioni da intraprendere per contenere gli incidenti, comunicare con gli stakeholder, riprendersi e imparare da quanto accaduto.
Gli sviluppatori devono possedere:
Tale requisito si applica indipendentemente dal fatto che elabori o meno i Dati della Piattaforma lato server.
Segui le istruzioni riportate in Preparazione delle prove per preparare sia le prove relative alla normativa o alla procedura che quelle relative all'implementazione.
Uno sviluppatore ha creato un piano di gestione degli incidenti completo basato su questo modello. Queste immagini descrivono solo l'indice del documento, ma di seguito è disponibile un link al modello completo.
Consulta il Modello completo del piano di gestione degli incidenti di Counteractive (formato docx)
Uno sviluppatore ha condotto un test del proprio piano di gestione degli incidenti tramite la simulazione di una situazione di emergenza e ha documentato i risultati ottenuti sulla base di questo modello.
Qui sono incluse solo le prime due pagine, ma è necessario inviare il documento intero.
Domanda: Richiedi l'autenticazione a più fattori per l'accesso remoto a ogni account in grado di connettersi all'ambiente cloud o server e/o per accedere ai servizi che usi per distribuire, mantenere, monitorare e gestire i sistemi in cui archivi i Dati della Piattaforma di Meta?
Una tecnica comune usata dagli utenti malintenzionati per ottenere l'accesso ai dati riservati prevede innanzitutto l'accesso agli strumenti usati dagli sviluppatori per creare o gestire le proprie app o i propri sistemi. Esistono strumenti avanzati per hackerare gli account protetti solo mediante password. L'autenticazione a più fattori offre un ulteriore livello di sicurezza contro questo rischio.
In relazione al trattamento dei Dati della Piattaforma da parte di un'organizzazione, l'accesso remoto ai seguenti tipi di strumenti deve essere protetto mediante l'autenticazione a più fattori (non una semplice password):
In particolare, l'autenticazione a più fattori o una protezione alternativa accettabile è richiesta per i seguenti casi:
Per quanto riguarda l'implementazione dell'autenticazione a più fattori:
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Un'organizzazione usa AzureAD come soluzione di accesso singolo (SSO). Questa normativa esige un'autenticazione a più fattori.
La normativa viene quindi mappata sulle app cloud a cui si applica. Se si usa questo approccio, le prove devono mostrare tutta la sezione degli Elementi selezionati per chiarire quali applicazioni cloud richiedono l'autenticazione a più fattori.
Questa regola richiede l'autenticazione a più fattori per tutti gli accessi.
Questo è l'esempio di una normativa AWS IAM che consente la configurazione dell'autenticazione a più fattori, ma che vieta altre azioni se l'autenticazione a più fattori non è presente.
Un'organizzazione ha configurato l'autenticazione su GitHub in modo da richiedere l'autenticazione a più fattori per tutti i membri dell'organizzazione.
Domanda: Hai predisposto un sistema per la manutenzione degli account (assegnazione, revoca, controllo di accessi e privilegi)?
Adottare buone pratiche di gestione degli account è fondamentale per evitare l'uso non autorizzato di account finalizzato ad accedere ai Dati della Piattaforma. In particolare, gli sviluppatori devono assicurarsi che l'accesso a risorse o sistemi venga revocato quando non più necessario.
Tale requisito si applica indipendentemente dal fatto che vengano elaborati o meno i Dati della Piattaforma lato server.
Segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Normativa/procedura: lo sviluppatore ha creato una gestione standard del ciclo di vita degli accessi che include procedure per concedere, controllare e revocare l'accesso.
Lo sviluppatore utilizza Workday come origine autorevole per i dati delle risorse umane (HR), che comprendono la situazione lavorativa attuale. Questo sviluppatore usa Google Cloud Identity come identity provider (IdP) per gestire gli account utente e concedere l'accesso a sistemi e strumenti informativi.
Lo sviluppatore fornisce prove che l'accesso degli ex dipendenti è stato revocato mostrando che di recente è stato eseguito un report relativo alla riconciliazione (entro i 12 mesi precedenti). In questo report viene mostrato che non esistono account utente attivi in Google Cloud Identity assegnati a persone che non siano dipendenti attivi, in base a un report di Workday sui dipendenti attuali.
Lo sviluppatore usa Google Cloud Identity come identity provider (IdP) per gestire gli account utente e concedere l'accesso a sistemi e strumenti informativi.
Lo sviluppatore fornisce prove che l'accesso viene revocato quando non è più utilizzato (ad es. nessun accesso nei 6 mesi precedenti). Fornisce dati sulla directory utente ordinati per ultimo accesso, per dimostrare che non sono presenti account utente attivi dove l'ultimo accesso è precedente al periodo stabilito.
Lo sviluppatore usa uno strumento di accesso singolo (SSO) per gestire le identità e concedere l'accesso a sistemi e strumenti informativi. Lo sviluppatore ha configurato GitHub per richiedere l'autenticazione SSO.
Domanda: Hai predisposto un sistema per mantenere aggiornati ambienti e codici di sistema, tra cui server, macchine virtuali, distribuzioni, librerie, pacchetti e software antivirus?
I componenti software ricevono aggiornamenti o patch regolari per risolvere vulnerabilità di sicurezza. Questi componenti raggiungono la fine della loro vita quando non sono più supportati. Gli sviluppatori che integrano o si affidano a questi componenti devono mantenerli aggiornati per evitare l'esecuzione di software con vulnerabilità note.
Per i seguenti componenti software, ove applicabile, devi dotarti di un metodo definito e ripetibile per identificare le patch disponibili in grado di risolvere le vulnerabilità di sicurezza, stabilire le priorità in base ai rischi e applicare le patch come attività continuativa:
Meta non richiede l'uso di uno strumento specifico per queste attività. È comune che un'organizzazione utilizzi diversi approcci per mantenere aggiornati diversi tipi di software (ad es. librerie integrate nell'app vs aggiornamenti dei sistemi operativi per i computer portatili dei dipendenti).
Questo requisito viene applicato indipendentemente dall'approccio di hosting (ad es. BaaS, PaaS, IaaS, self-hosted o ibrido), anche se l'insieme di componenti che sei responsabile di aggiornare varia.
Il diagramma qui sotto illustra dove potrebbero essere richieste patch per diversi tipi di architettura.
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Inizia identificando i tipi di software interessati nell'ambiente, ad es. librerie, SDK, pacchetti, immagini di macchine virtuali, contenitori e sistemi operativi di app, browser, sistemi operativi e altre applicazioni usati da dipendenti/collaboratori.
Potresti avere uno o più strumenti che utilizzi per le seguenti attività:
Snyk per un'app Node.js: lo sviluppatore utilizza l'interfaccia a riga di comando di Synk per identificare le dipendenze di terzi integrate che presentano vulnerabilità di sicurezza note e stabilisce le priorità in base alla gravità di queste ultime.
Lo sviluppatore utilizza NPM Audit per trovare vulnerabilità nelle dipendenze usate in un'applicazione Node. L'immagine di esempio qui sotto mostra diverse vulnerabilità con gravità alta per cui sono necessarie patch.
Lo sviluppatore usa Trivy per trovare vulnerabilità in un'immagine della macchina. L'immagine di esempio qui sotto mostra vulnerabilità con gravità alta nelle librerie incluse nell'immagine per cui sono necessarie patch.
Lo sviluppatore utilizza Windows Server Update Services (WSUS) per gestire la propria flotta di server e PC/computer portatili. L'immagine di esempio qui sotto mostra una vista amministratori dello strumento WSUS, che consente di controllare, approvare e distribuire gli aggiornamenti di Windows.
Senza file di registro affidabili, può essere difficile o impossibile per uno sviluppatore rilevare un accesso non autorizzato ai Dati della Piattaforma.
Se tratti i Dati della Piattaforma lato server, all'interno di quell'ambiente:
Se ti viene chiesto di caricare delle prove, queste devono dimostrare che:
Per un'organizzazione è importante capire come ci si aspetta che i Dati della Piattaforma vengano trattati e poi monitorare l'effettivo trattamento, in modo da assicurarsi che i Dati della Piattaforma vengano utilizzati solo per gli scopi previsti
Se tratti i Dati della Piattaforma lato server, all'interno di quell'ambiente devi:
Se ti viene richiesto di inviare le prove relative a questa protezione, segui le istruzioni riportate in Preparazione delle prove sia per le prove relative alla normativa o alla procedura sia per quelle relative all'implementazione.
Ti invitiamo a fornire prove che dimostrino che:
Affidarsi al controllo umano per identificare un comportamento inaspettato in un sistema moderno accessibile via Internet non è realistico. Esistono invece strumenti in grado di inserire file di registro e altri segnali per lanciare allarmi che richiedono ulteriori indagini da parte del controllo umano.
Se tratti i Dati della Piattaforma lato server, all'interno di quell'ambiente devi:
A questo scopo, gli sviluppatori adottano comunemente uno strumento di Security Information and Event Management (SIEM), ad esempio:
Devi fornire le prove che dimostrano che le origini dei segnali pertinenti vengono inoltrate allo strumento di loro scelta, che sono stati configurati i trigger o gli allarmi, che gli allarmi sono inoltrati al personale responsabile del follow-up e, infine, che esiste un processo in base al quale gli allarmi vengono adattati periodicamente (ad esempio, tramite cicli di revisione e aggiornamento mensili).
Terza parte: nella terminologia sulla gestione dei rischi, terza parte si riferisce agli sviluppatori nella Piattaforma Meta (l'aggettivo "proprietario/a/i/e" si riferisce a Meta; "seconda parte" si riferisce alle persone che usano i Prodotti di Meta).
Quarta parte: nella terminologia sulla gestione dei rischi, quarta parte si riferisce alle aziende a cui si affidano gli sviluppatori per fornire loro servizi a livello aziendale (l'aggettivo "proprietario/a/i/e" si riferisce a Meta, "seconda parte" agli utenti di Meta e "terza parte" agli sviluppatori nella Piattaforma Meta). Token d'accesso: una credenziale, ad esempio una password, che consente al software di chiamare un'API per eseguire una determinata azione (ad es. leggere dati dal profilo di un utente).
Amazon Web Services (AWS): la suite di Amazon per i servizi di cloud computing.
ID per singola app (ASID): un identificativo unico che Meta genera quando una persona sceglie di utilizzare un'app. Gli ASID aiutano a migliorare la privacy degli utenti rendendo più difficile correlare gli insiemi di dati agli utenti nelle app, dato che un utente singolo che usa 2 app possiede ASID diversi per ognuna di queste.
Chiave segreta: una chiave segreta condivisa che Meta mette a disposizione degli sviluppatori tramite la Dashboard gestione app. Possedere una chiave segreta autorizza i software a eseguire alcune azioni tramite l'API Graph, quindi gli sviluppatori devono assicurarsi che le parti non autorizzate non abbiano accesso alla chiave segreta.
Compromissione dell'app: se un utente malintenzionato riesce a ottenere l'accesso non autorizzato alla rete interna di un'organizzazione tramite una configurazione errata o una vulnerabilità nell'app (ad es. una vulnerabilità software in un'app web), si verifica una compromissione dell'app. Una possibile misura difensiva per la compromissione dell'app è un test di penetrazione dell'app stessa. Vedi anche Compromissione della rete.
Contenitore di applicazioni: un contenitore che crea pacchetti di codice software e dipendenze correlate in modo che un'app venga eseguita in diversi tipi di server (ad es. server che utilizzano diversi sistemi operativi come Linux o Windows Server). Lo sviluppatore crea un'immagine del contenitore che crea pacchetti della propria app. Un motore o un runtime del contenitore di applicazioni ospita (esegue) l'immagine del contenitore.
Crittografia dell'applicazione: un metodo per proteggere i dati in cui il software applicativo stesso esegue le operazioni di crittografia e decodifica. Al contrario, il protocollo Transport Layer Security (TLS) crittografa agevolmente i dati in transito quando un'applicazione stabilisce una connessione sicura con un server remoto (ad es. tramite HTTPS) e i provider di cloud offrono servizi per crittografare in modo trasparente i dati a riposo.
API (Interfaccia di programmazione dell'app): consente a 2 computer di comunicare tra loro su una rete, ad esempio un'app mobile che recupera il meteo di oggi per un determinato luogo da un sistema centralizzato di previsioni metereologiche.
Verifica della chiave segreta: un livello di sicurezza aggiuntivo per le chiamate API a Meta in cui uno sviluppatore genera un parametro (la verifica della chiave segreta) con cui dimostra che è in possesso della chiave segreta. La verifica della chiave segreta è il prodotto di una funzione hash (nota anche come funzione unidirezionale) basato sulla chiave segreta e il token d'accesso. Configurare un'app in modo che richieda la verifica della chiave segreta durante le chiamate all'API Graph riduce i potenziali danni da violazione dei token d'accesso dell'utente, dato che questi non possono essere usati senza la verifica della chiave segreta come parametro aggiuntivo.
BaaS (Backend as a Service): uno stile di cloud computing che fornisce una suite di funzionalità lato server per uno sviluppatore di app, in modo che questi possa concentrarsi sulla creazione del front-end (cioè la parte di un'app con cui interagiscono gli utenti). Le soluzioni BaaS sono simili a quelle PaaS e, per di più, aggiungono servizi come l'autenticazione dell'utente e le notifiche push mobili. Ecco alcuni tra i prodotti BaaS più popolari: AWS Amplify, app mobili di Azure, Firebase e MongoDB Switch
Testo crittografato: è un sinonimo di dati crittografati ed è il nome assegnato ai dati che vengono resi non leggibili tramite un algoritmo di crittografia. L'opposto del testo crittografato è il testo semplice.
Lato client: di solito le persone interagiscono con i servizi accessibili da Internet aprendo un sito web in un browser o eseguendo un'app mobile su telefono o tablet. Il browser o le app mobili vengono indicati come client locali o lato client. I client effettuano richieste da computer remoti (server) tramite Internet.
Cloud computing: si riferisce a uno stile di gestione per computer, reti e archivi server che permette a un'organizzazione di non preoccuparsi dell'ambiente fisico (ad es. un data center pieno di rack di server e cavi di rete). Al contrario, l'organizzazione può effettuare il provisioning di queste risorse on demand e pagare i servizi che utilizza.
Configurazione cloud: l'insieme di opzioni di cloud computing che un'organizzazione ha impostato in relazione al suo provider di servizi cloud che esegue alcuni software. Ecco alcuni esempi di configurazione cloud: quali tipi di connessioni di rete sono consentiti o bloccati, dove vengono scritti i file di registro e per quanto tempo vengono conservati e l'insieme di utenti autorizzati ad apportare modifiche alla configurazione cloud.
Controlli di compensazione: un controllo di sicurezza diverso da alcuni insiemi di requisiti di base, ma con lo scopo di offrire una protezione analoga per un determinato rischio.
Database: un software che consente di archiviare, leggere, aggiornare ed eliminare dati arbitrari. I database possono essere eseguiti in client e server. Le organizzazioni che si integrano con la Piattaforma Meta normalmente archiviano i dati che recuperano dall'API Graph all'interno di un database in esecuzione lato server.
Decodifica: processo in cui i dati crittografati vengono riportati al formato originale. In altre parole, la decodifica cambia il testo crittografato in testo semplice.
Crittografia: processo in cui i dati vengono trasformati in un formato utilizzabile solo dalle persone in grado di decodificarlo. In altre parole, la crittografia cambia il testo semplice in testo crittografato.
Crittografia a riposo: dati protetti con crittografia quando vengono scritti in un archivio permanente (ad es. un disco rigido). La crittografia a riposo fornisce un livello di protezione aggiuntivo per gli accessi non autorizzati, poiché un soggetto in grado di leggere i file non elaborati nel dispositivo di archiviazione vedrà il testo crittografato e non sarà in grado di decodificarlo, a meno che non riesca anche a ottenere l'accesso alla chiave di decodifica.
Crittografia in transito: dati protetti con crittografia quando vengono trasmessi in una rete. La crittografia in transito fornisce protezione da eavesdropping lungo il percorso di rete, poiché un soggetto in grado di leggere i pacchetti di rete vedrà il testo crittografato e non sarà in grado di decodificarlo, a meno che non riesca anche a ottenere l'accesso alla chiave di decodifica.
Software End Of Life (EOL): quando un'organizzazione sceglie di interrompere il supporto (ad es. creazione di patch per risolvere vulnerabilità di sicurezza) per un prodotto software, quel software viene considerato EOL. Dato che questi software non vengono più mantenuti, diventa molto rischioso eseguirli.
Google Cloud Platform (GCP): la suite di Google per i servizi di cloud computing. API Graph: il metodo principale tramite cui le app leggono e scrivono nel social graph di Meta. Tutti gli SDK e i Prodotti di Meta interagiscono in qualche modo con l'API Graph.
Funzione hash: una funzione di crittografia che considera qualsiasi dato come input e genera come output un codice breve che non può essere ripristinato all'input originale. In crittografia, le funzioni hash vengono usate per proteggere dati come le password: anziché memorizzare le password di un utente mediante testo semplice rischiando così il furto, queste vengono prima trasformate con una funzione hash e poi memorizzate. In seguito, per confermare che l'utente abbia inserito la password corretta, il sistema utilizza la stessa funzione hash per trasformare l'input e confrontare l'hash risultante con il valore memorizzato. Viene anche chiamata funzione unidirezionale, poiché l'hash di output non può essere ripristinato all'input originale.
Ambiente ospitato: si riferisce a un insieme di server, reti e dispositivi di archiviazione remoti che un'organizzazione esegue nel proprio data center o all'interno di un data center condiviso con altri clienti. Oggi questo metodo viene utilizzato relativamente poco, poiché il cloud computing è diventato più diffuso.
Identity Provider (IdP): un servizio cloud usato per centralizzare la gestione delle identità digitali e autenticare gli utenti. Le organizzazioni che si servono di un IdP di solito configurano le app cloud in modo che si basino sull'IdP stesso per l'autenticazione degli utenti. Le organizzazioni possono quindi gestire gli utenti creando app specifiche e concedendovi l'accesso e disabilitando gli account utente a livello centrale all'interno dell'IdP, anziché doverlo fare più volte per ogni app cloud.
Gestione delle identità e degli accessi: si riferisce alla categoria di strumenti e processi usati per gestire gli account e concedere l'accesso ai sistemi.
IaaS (Infrastructure as a Service): un approccio di cloud computing che permette ai clienti di configurare servizi di computing, archiviazione e rete senza essere responsabili delle risorse fisiche stesse (ad es. gestione di un data center pieno di server, dispositivi di rete e array di archiviazione). Rispetto all'approccio PaaS, quello IaaS offre all'organizzazione più controllo sulla configurazione delle proprie risorse cloud, ma al costo di una maggiore complessità di gestione delle risorse. Ecco alcuni tra i prodotti IaaS più popolari: Amazon EC2, Microsoft Azure IaaS e Google Compute Engine
Libreria: blocchi predefiniti di software preesistenti, di solito di un'azienda o di uno sviluppatore esterni, usati per gestire determinate attività all'interno di app o sistemi di un altro sviluppatore. Le librerie semplificano lo sviluppo di un'app, poiché lo sviluppatore non deve creare tutto da zero se esiste già una libreria per una determinata funzione. Tuttavia, le librerie possono contenere vulnerabilità di sicurezza, o possono includere librerie aggiuntive con vulnerabilità, quindi gli sviluppatori che le utilizzano come parte dell'app devono sapere quali librerie sono in uso e mantenerle aggiornate nel tempo.
Client mobile o app mobile: un'app che una persona installa sul proprio telefono o tablet da uno store di app mobili (ad es. App Store iOS o Google Play Store). Non è raro che i client mobili comunichino tramite Internet con l'API REST di un'organizzazione, e possono anche comunicare con altre parti (ad es. con l'API Graph tramite l'SDK di Facebook per Android).
Autenticazione a più fattori: un approccio di autenticazione che richiede più di un fattore per ottenere l'accesso a un'app o a un sistema. Questo approccio, al contrario dell'autenticazione a fattore singolo che si basa solo su una password per l'autenticazione dell'utente, di solito richiede anche uno o più dei seguenti elementi: un codice inviato tramite e-mail o SMS, il codice di un'app di autenticazione, una scansione biometrica o una chiave di sicurezza. Questa autenticazione protegge dalle intrusioni rendendo più difficile ai soggetti non autorizzati la forzatura di un account, ad es. tentando ripetutamente di accedere a un account tramite un indirizzo e-mail noto e password frequenti, finché il tentativo non va a buon fine.
Software nativo: le app che sono scaricate e installate su computer portatili o dispositivi mobili vengono dette software nativi (ad es. l'app Facebook per iOS). Al contrario, un'app che viene eseguita all'interno di un browser viene detta app web (ad es. aprire Facebook usando il browser Chrome).
Compromissione della rete: se un utente malintenzionato riesce a ottenere l'accesso non autorizzato alla rete interna di un'organizzazione tramite una configurazione errata o una vulnerabilità nella rete stessa, si verifica una compromissione della rete. Una possibile misura difensiva per la compromissione della rete è l'esecuzione di una scansione di rete per identificare configurazioni errate e vulnerabilità nella rete connessa a Internet. Vedi anche Compromissione dell'app.
Scansione di rete: un processo di gestione dei rischi che utilizza software per: (1) identificare i server attivi in una rete che rispondono a comunicazioni remote, quindi (2) scoprire se uno di questi server sta eseguendo versioni precedenti del software note per essere vulnerabili a uno o più attacchi alla sicurezza. Un'organizzazione può utilizzare periodicamente la scansione di rete per assicurarsi che non ci siano porte aperte impreviste nel perimetro di rete, ad esempio.
Node Package Manager (NPM): uno strumento usato dagli sviluppatori JavaScript per accelerare lo sviluppo, consentendo di includere pacchetti preimpostati in un'app o in un sistema. NPM include funzioni per controllare l'insieme di pacchetti utilizzati da un'app e identificare quelli con vulnerabilità di sicurezza note.
Bucket per l'archiviazione degli oggetti: un tipo di archivio permanente nel cloud che permette alle organizzazioni di memorizzare facilmente i file in archivi permanenti, compresi i file molto grandi, senza doversi preoccupare di adeguare le risorse fisiche (ad es. gli array di archiviazione) o di come eseguire il backup di questi file per garantire che non vengano persi in caso di disastro, ad esempio un incendio o un'inondazione.
Sistema operativo: il software in esecuzione su un computer o un dispositivo mobile che consente alle applicazioni di eseguire e usare le risorse di processore, memoria, archiviazione e rete di quel dispositivo, ad esempio Microsoft Windows, Apple macOS o iOS e Linux.
Membro dell'organizzazione: una persona con un ruolo e responsabilità all'interno di un'organizzazione, ad esempio un dipendente, un collaboratore esterno, un collaboratore occasionale, un tirocinante o un volontario.
Dispositivo dell'organizzazione: un computer o dispositivo mobile usato da un membro dell'organizzazione nel contesto di lavoro per l'organizzazione stessa.
Condizione della Piattaforma 6.a.i: si riferisce alla sezione (6), titolo (a), paragrafo (i) delle Condizioni della Piattaforma di Meta, che illustra gli obblighi degli sviluppatori della Piattaforma correlati alla sicurezza dei dati.
Pacchetto: un sinonimo di libreria.
Patch: aggiornamenti del software che risolvono vulnerabilità di sicurezza, correggono bug o aggiungono nuove funzionalità. Tutti i tipi di software ricevono patch, compresi sistemi operativi, contenitori, librerie e SDK.
Test di penetrazione: un attacco simulato a un'app o un sistema dove il tester tenta di trovare vulnerabilità nel codice o nella configurazione che potrebbero essere sfruttate da un soggetto non autorizzato. I tester di penetrazione si servono di strumenti simili a quelli dei criminali informatici per eseguire una ricognizione, cercare potenziali punti deboli e testare le vulnerabilità che potrebbero essere utilizzate per ottenere l'accesso non autorizzato. Al termine di un test di penetrazione, il tester crea un report che descrive i risultati, insieme alla gravità di ciascuno; l'organizzazione che esegue la manutenzione del software è responsabile di fornire correzioni che ne risolvano le vulnerabilità.
Testo semplice: è un sinonimo di dati non crittografati ed è il nome assegnato ai dati non protetti da crittografia. PaaS (Platform as a Service): un approccio di cloud computing con cui un cliente implementa un'applicazione in una piattaforma gestita dal provider di servizi cloud. Rispetto all'approccio IaaS, quello PaaS è più facile da gestire per i clienti, poiché l'host cloud gestisce sia le risorse fisiche (server, dispositivi di archiviazione e dispositivi di rete) sia il sistema operativo e il contenitore di applicazione dove viene eseguita l'app del cliente. Ecco alcuni tra i prodotti PaaS più popolari: AWS Elastic Beanstalk, Google App Engine, Force.com
Porta: quando un client effettua una connessione con un server tramite Internet, l'indirizzo di destinazione è composto da 2 parti: (1) un indirizzo IP (Protocollo Internet) per il server e (2) un numero di porta in quel server a cui risponde un'applicazione specifica. Normalmente i protocolli usano porte riservate (ad es. 443 per HTTPS), ma lo sviluppatore, se lo desidera, può servirsi di porte personalizzate per le comunicazioni di rete.
API REST: uno stile ampiamente adottato per creare servizi accessibili dal web dove il client e il server comunicano tramite protocollo HTTP. Uno sviluppatore nella Piattaforma Meta potrebbe ospitare un'API REST in un sottodominio come api.esempio.com a/da cui la propria app mobile invia e riceve i Dati della piattaforma.
Secure Shell (SSH): uno schema di comunicazione che consente agli amministratori di accedere da remoto ai server ed eseguire programmi negli stessi. Viene indicato come sicuro poiché le comunicazioni tra client e server sono protette da eavesdropping, a differenza dei protocolli precedenti come Telnet. È noto anche come Secure Socket Shell.
Secure Sockets Layer (SSL): una versione non sicura e obsoleta della crittografia in transito. La versione sicura più recente viene chiamata Transport Layer Security (TLS).
Server: un computer che fornisce servizi da remoto su una rete. I browser e le app mobili si connettono ai server tramite Internet.
Elaborazione serverless: uno stile di cloud computing dove l'host cloud gestisce l'infrastruttura fisica, il sistema operativo del server e il contenitore. Lo sviluppatore è responsabile solo del codice personalizzato e delle librerie associate, oltre che della configurazione cloud.
Lato server: i dati o l'elaborazione nel lato opposto a una connessione di rete (cioè in un server) vengono detti lato server. Al contrario, i dati o l'elaborazione in un dispositivo locale come un computer portatile o un dispositivo mobile vengono detti lato client.
Accesso singolo (SSO): una soluzione in cui le app si basano su una directory utente centralizzata (cioè un IdP) per autenticare gli utenti. Oltre a centralizzare l'amministrazione di account utente e accessi alle app per l'organizzazione, è vantaggiosa anche per gli utenti, poiché questi hanno un solo insieme di credenziali e non viene chiesto loro di mantenere credenziali diverse (ad es. nome utente e password) per ogni app.
SDK (Software Development Kit): un blocco predefinito di codice che uno sviluppatore può usare per semplificare il processo di sviluppo per una data necessità. Ad esempio, Meta crea e mantiene SDK che semplificano il lavoro con l'API Graph per gli sviluppatori iOS e Android. Come per le librerie, gli sviluppatori che utilizzano gli SDK nelle proprie app devono mantenerli aggiornati nel tempo.
SaaS (Software as a Service): consente ai clienti di usare app basate su cloud tramite Internet. A differenza di PaaS o IaaS, il cliente di un'app SaaS non implementa un codice personalizzato né è responsabile di configurazione, aggiornamento o patch dell'app, poiché sono tutte responsabilità del fornitore del software SaaS. Ecco alcuni tra i prodotti SaaS più popolari: Dopbox, MailChip, Salesforce, Slack
Analisi statica: vedi Test di sicurezza delle applicazioni statiche (SAST).
Test di sicurezza delle applicazioni statiche (SAST): un approccio per trovare le vulnerabilità in un software eseguendo uno strumento apposito nel codice di origine. Uno strumento SAST identifica le vulnerabilità potenziali, come quelle elencate nel progetto OWASP Top 10, e poi lo sviluppatore è responsabile di controllare i risultati, distinguere i veri positivi dai falsi positivi e correggere le vulnerabilità nel software. Uno strumento SAST può essere utile perché consente agli sviluppatori di trovare le vulnerabilità prima che vengano implementate in produzione, ma, a differenza di un test di penetrazione, non è in grado di trovare le vulnerabilità correlate alla configurazione di produzione dell'app.
Transparent Data Encryption: un tipo di crittografia a riposo applicata di solito all'archiviazione del database (cioè ai contenuti stessi del database e ai relativi file di registro). In questa soluzione, il software del database gestisce le chiavi di crittografia e organizza in modo trasparente le operazioni di crittografia (dopo le scritture) e quelle di decodifica (dopo le letture).
Transport Layer Security (TLS): uno schema di crittografia in transito che utilizza la crittografia per proteggere da eavesdropping i dati trasmessi tramite reti lungo il percorso di rete. TLS è la versione sicura più recente della tecnologia obsoleta precedente nota come SSL.
Autenticazione a due fattori (2FA): un sinonimo di autenticazione a più fattori. Vault: un sistema di gestione dei segreti per dati sensibili come chiavi di crittografia, token d'accesso e altre credenziali. Un vault permette di controllare rigorosamente chi è in grado di accedere ai segreti che contiene e offre servizi aggiuntivi come la conservazione dei registri di controllo.
Macchina virtuale: è molto simile a un contenitore di applicazioni; tuttavia, una macchina virtuale viene eseguita in un host detto hypervisor, mentre un contenitore di applicazioni viene eseguito nel motore di un contenitore. La differenza principale è che un'immagine di macchina virtuale contiene un sistema operativo, al contrario di un contenitore di applicazioni. Sia le macchine virtuali sia i contenitori di applicazioni includono applicazioni e dipendenze come le librerie.
Virtual Private Cloud (VPC): un termine usato da AWS per riferirsi a un insieme di risorse cloud simile a una rete tradizionale in un data center nell'era pre-cloud.
Vulnerabilità: un difetto in un sistema o in un'app che può essere sfruttato, ad es. per leggere dati che un determinato soggetto altrimenti non sarebbe autorizzato a leggere.
Programma di divulgazione delle vulnerabilità (VDP): un approccio con cui le organizzazioni richiedono report sulle vulnerabilità di sicurezza a ricercatori (detti anche hacker etici), in modo da scoprire le vulnerabilità e correggerle prima che gli utenti malintenzionati le sfruttino. Un VDP efficace richiede un insieme di ricercatori che cerchino attivamente le vulnerabilità, analisti all'interno dell'organizzazione che controllino le informazioni in arrivo e assegnino loro una priorità e tecnici esperti di sicurezza informatica in grado di creare e implementare correzioni per le vulnerabilità.
Analisi delle vulnerabilità: un approccio che utilizza un software per cercare vulnerabilità in server, reti e app. Rispetto a un test di penetrazione, l'analisi delle vulnerabilità è più economica e, di conseguenza, può essere eseguita ripetutamente (ad es. ogni mese o trimestre), ma di solito un test di penetrazione rileva vulnerabilità che l'analisi delle vulnerabilità non riesce a trovare. Questo perché i tester di penetrazione esperti sono dotati di competenze analitiche e istintive difficili da replicare con approcci esclusivamente automatizzati. Vedi anche Scansione di rete.
App web: le app web sono programmi eseguiti nei browser e comprendono risorse come documenti HTML, codice JavaScript, video e altri contenuti multimediali e CSS per la definizione dello stile. Al contrario di un'app mobile, che le persone installano su un cellulare da uno store di app, le app web vengono semplicemente recuperate da un server remoto tramite il browser (ad es. www.facebook.com), senza bisogno di un passaggio di installazione.