The following data security requirements correspond to the 2022-23 Data Protection Assessment.
Apps with access to certain types of Platform Data from Meta are required to complete the annual Data Protection Assessment (DPA). DPA is designed to determine whether developers meet the requirements of Meta Platform Terms as it relates to the use, sharing, and protection of Platform Data. A subset of the DPA questionnaire is focused on Platform Term 6, which outlines data security requirements. We recommend you utilize this document to understand the expectations, requirements, and related evidence with respect to data security use and processing as defined in Meta Platform Terms.
Please note there is a glossary included at the end of this document with key terms and definitions.
Find more video resources from Data Protocol.
Throughout this document, the phrase server side is used as a shorthand for any backend environment that an organization uses to process Platform Data, whether running on a cloud host like Amazon Web Services (AWS), hosted by the developer in a shared or exclusive data center, or a hybrid (combination of these).
Client side requirements refer to processing Platform Data within browsers, mobile devices, within apps on desktop and laptop computers, and other types of devices used by people.
Créez (ou mettez à jour, si nécessaire) un diagramme ou une description du flux de données qui illustre la manière dont l’application ou le système traite les données de la plateforme.
En fin de compte, le diagramme ou la description du flux de données devrait inclure :
Vous devrez peut-être fournir des justificatifs étayant vos réponses liées aux fonctionnalités de protection de la sécurité des données que vous mettez en œuvre. Nous vous recommandons de consulter le Guide des justificatifs dans ce document pour découvrir des exemples de justificatifs acceptables et les préparer en conséquence. Nous acceptons les types de fichiers courants, ainsi que les captures et les enregistrements d’écran. Veillez à ce que les fichiers ne soient pas protégés par un mot de passe. Vous pouvez importer plusieurs fichiers d’une taille maximale de 2 Go chacun. Nous acceptons les formats suivants : .xls, .xlsx, .csv, .doc, .docx, .pdf, .txt, .jpeg, .jpg, .png, .ppt, .pptx, .mov, .mp4, .zip et .zipx.
Veillez à bien supprimer les données sensibles du justificatif avant envoi.
Pour les applications invitées à importer des justificatifs relatifs aux fonctionnalités de protection de la sécurité des données, Meta exige deux types de documents différents :
Les justificatifs de politique ou de procédure, parfois appelés contrôle administratif, sont des documents écrits qui décrivent l’approche d’une fonctionnalité de protection de la sécurité des données en particulier. Ils peuvent prendre différentes formes : il peut s’agir d’un extrait d’un ensemble de politiques internes, d’une partie ou de la totalité d’une page wiki interne, ou d’un document nouvellement créé que vous utilisez pour décrire l’approche si vous n’avez pas de documentation préexistante. Dans tous les cas, les justificatifs de politique ou de procédure que vous importez doivent expliquer clairement comment l’approche d’une fonctionnalité de protection en particulier se rapporte aux exigences de Meta. Veillez à ne fournir que la politique ou le contenu pertinent et nécessaire pour l’examen de sécurité de Meta, ou utilisez le champ de texte libre associé à la question pour orienter nos équipes d’examen vers la ou les sections pertinentes.
Les justificatifs de mise en œuvre illustrent la façon dont vous avez mis en pratique la politique ou la procédure, directement par le biais d’une capture ou d’un enregistrement d’écran. Les équipes de développement disposant de configurations différentes, nous ne pouvons pas fournir d’exemples pour tous les scénarios. Cela dit, les justificatifs de mise en œuvre doivent, dans la mesure du possible, présenter le même niveau de détail que les exemples que nous avons fournis.
Nous comprenons qu’il peut être très difficile de préparer des justificatifs de mise en œuvre qui prouvent de manière exhaustive la mise en œuvre d’une fonctionnalité de protection de la sécurité des données en particulier. Dans cette optique, vous devez envoyer les justificatifs conformément aux conseils fournis ici, en prenant soin de supprimer les informations sensibles qui y figurent avant envoi :
N’envoyez pas de justificatifs qui contiennent l’une de ces valeurs sous une forme lisible (non supprimée). Si vous utilisez un éditeur d’images pour une capture d’écran, recouvrez les valeurs d’un rectangle noir. Si vous utilisez un éditeur PDF, assurez-vous de rédiger le texte à l’aide d’un outil qui supprime réellement les valeurs plutôt que de simplement ajouter une couche tout en préservant le texte (par exemple, l’outil de rédaction de l’application Aperçu d’Apple).
Question : Appliquez-vous le chiffrement au repos à toutes les Données de la Plateforme stockées dans le cloud, sur un serveur ou dans un environnement de centre de données ?
Le chiffrement au repos protège les Données de la Plateforme en rendant les données indéchiffrables sans clé de déchiffrement distincte. Cela offre un niveau de protection supplémentaire contre l’accès en lecture non autorisé.
Si vous stockez des Données de la Plateforme côté serveur :
Si le développeur NE stocke PAS des Données de la Plateforme côté serveur, cette exigence ne lui est pas applicable.
Si vous stockez des Données de la Plateforme via un l’hébergement IaaS (par ex. AWS EC2, Microsoft Azure IaaS et Google Compute Engine), l’auto-hébergement ou une approche hybride, alors cette question ne s’applique pas.
Mais certains autres modèles d’hébergement backend constituent des cas particuliers :
Si vous stockez des Données de la Plateforme uniquement via l’un de ces derniers (sans utiliser l’IaaS, l’auto-hébergement ou un hébergement hybride), cette question ne s’applique pas. Vous devriez plutôt décrire cette relation dans la section Fournisseur de services de l’évaluation de la protection des données.
Si vous stockez des Données de la Plateforme uniquement via une API Meta, par exemple en utilisant player.setDataAsync()
, dans le SDK Instant Games, cette question ne s’applique pas.
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
AWS RDS - le chiffrement au repos est configurable dans AWS RDS, donc les développeurs doivent s’assurer que l’option de configuration est définie de manière à appliquer cette protection.
Pour une instance de RDS représentative contenant des Données de la Plateforme, utilisez l’outil AWS CLI afin d’obtenir sa configuration 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 ]
AWS DynamoDB est chiffré au repos par défaut. Vous pouvez obtenir la configuration de chiffrement au repos pour un tableau en utilisant ces commandes.
$ aws dynamodb list-tables --output table -------------- | ListTables | +------------+ ||TableNames|| |+----------+| || Users || |+----------+| $ aws dynamodb describe-table \ --table-name Users \ --query "Table.SSEDescription.Status" "ENABLED"
AWS DocumentDB doit être configuré de manière à appliquer le chiffrement au repos. Pour un cluster représentatif contenant des Données de la Plateforme, utilisez ces commandes afin d’obtenir la configuration 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 ]
Les buckets AWS S3 doivent être configurés de manière à appliquer le chiffrement au repos à tous les objets créés dans le bucket. Utilisez ces commandes pour faire apparaître les buckets et récupérer la configuration du chiffrement de bucket par défaut.
$ 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 | +-------------------+
Consultez les documents de Microsoft sur le chiffrement au repos dans Azure qui correspondent à l’utilisation de ces services par l’organisation.
Consultez les documents de Google sur le chiffrement au repos sur la Google Cloud Platform.
Si vous ne mettez pas en place le chiffrement au repos dans l’environnement côté serveur, vous pouvez protéger les Données de la Plateforme d’une autre manière valable. Dans ce cas, vous devriez décrire les aspects suivants :
Question : En ce qui concerne spécifiquement les données stockées sur des appareils personnels et de l’organisation : Imposez-vous le chiffrement au repos ou avez-vous mis en place des politiques et de règles visant à réduire le risque de perte de données, pour toutes les Données de la Plateforme stockées sur ces appareils ?
Si un développeur permet la présence de Données de la Plateforme dans des appareils comme les ordinateurs portables des employés ou les supports de stockage amovibles (par ex. les clés USB), ces données sont exposées à un risque élevé d’accès non autorisé en cas de perte ou de vol des appareils. Les développeurs devraient prendre des mesures pour limiter ce risque.
Pour réduire les risques d’accès non autorisé aux Données de la Plateforme, les Développeurs doivent mettre en place des solutions pertinentes de contrôle technique (option privilégiée) ou administratif (option non privilégiée mais valable) sur les appareils de l’organisation (par ex. les ordinateurs portables) et les supports amovibles.
Cette exigence s’applique que vous traitiez ou non les données de la plateforme côté serveur.
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Vous pouvez utiliser l’une de ces solutions ou les deux : a) contrôles techniques (par ex. chiffrement du disque), ou b) règles/politiques pour réduire le risque de perte des Données de la Plateforme stockées sur les appareils de l’organisation, comme les ordinateurs portables ou les téléphones mobiles.
Les contrôles techniques peuvent consister à :
Les règles/politique peuvent comprendre :
Une organisation classe les Données de la Plateforme de Meta comme « données confidentielles » dans le cadre de sa politique de classification des données. Elle a créé un Règlement sur la gestion des données que tout le personnel est tenu de comprendre et respecter.
Question : Activez-vous le protocole de sécurité TLS 1.2 ou supérieur pour toutes les connexions réseau qui passent par, ou connectent, ou traversent des réseaux publics où les Données de la Plateforme sont transmises ? De plus, veillez-vous à ce que les données de la plateforme ne soient jamais transmises via des réseaux publics de façon non chiffrée (ex. via HTTP ou FTP), et à ce que les protocoles de sécurité SSL v2 et SSL v3 ne soient jamais utilisés ?
Les Données de la Plateforme transmises sur Internet sont accessibles à quiconque peut observer le trafic réseau. Il faut donc les protéger à l’aide du chiffrement pour éviter que les parties non autorisées puissent les lire.
Indépendamment du fait que vous traitiez ou non les données de la plateforme côté serveur :
Le tableau ci-dessous résume la politique de chiffrement en transit pour différents types de transferts.
Type de transfert | Politique de chiffrement en transit |
---|---|
Entre des appareils d’utilisateur final (téléphones mobiles, PC, tablettes, etc.) et le serveur ou l’infrastructure cloud, dans un sens comme dans l’autre. |
|
Entre le serveur ou l’infrastructure cloud et tout serveur distant, infrastructure cloud ou service de prestataires externes, dans un sens comme dans l’autre | Le chiffrement TLS 1.2 ou versions ultérieures doit être mis en place |
Entre des composants strictement à l’intérieur du data center, serveur ou infrastructure de cloud privés | Le chiffrement TLS est recommandé, sans être exigé, pour les transferts de Données de la Plateforme strictement à l’intérieur d’un réseau cloud privé |
Entre Meta et tout appareil, serveur ou infrastructure de cloud, dans un sens ou dans l’autre | Hors champ d’application de l’Évaluation de la protection des données - Meta contrôle la politique de chiffrement TLS pour ces transferts |
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place. Une façon simple de produire des justificatifs de mise en œuvre qui démontrent la configuration de l’un des auditeurs web est d’utiliser l’outil Qualys SSL Server Test.
Voici un exemple de sortie de l’outil Qualys SSL Server Test. Noter les annotations rouges dans la section Configuration, qui résume les versions SSL/TLS prises en charge. Remarque : cet exemple ne comprend que les deux premières pages, mais vous devriez inclure la totalité du résultat du test.
Vous pouvez protéger les données de la plateforme en transit en utilisant un autre type de chiffrement que TLS ; cela peut être acceptable si l’approche fournit une protection équivalente. En l’espèce, vous devez fournir des détails sur le chiffrement utilisé afin que Meta puisse l’examiner :
Question : testez-vous l’application et les systèmes pour identifier d’éventuelles vulnérabilités et problèmes de sécurité au moins tous les 12 mois ? (Effectuez-vous par exemple un test d’intrusion manuel ?)
Les équipes de développement doivent tester les vulnérabilités et problèmes de sécurité afin de les détecter proactivement, en évitant dans l’idéal les incidents de sécurité avant qu’ils ne se produisent.
Exigences pour toutes les équipes de développement :
Exigences supplémentaires pour les équipes de développement qui traitent les données de la plateforme côté serveur :
Si l’organisation envisage d’ajouter un outil SAST au processus de développement, le NIST dispose d’une liste d’outils open source et commerciaux qui peut vous servir de point de départ pour choisir un outil.
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Si l’organisation traite les données de la plateforme dans un environnement cloud ou de serveur :
Le logiciel sur serveur ou dans le cloud accessible par Internet (par exemple, une API REST utilisée par des clients web et mobiles) que vous utilisez pour traiter les données de la plateforme doit se trouver dans le champ d’application de ce test pour qu’il soit valable.
Si l’organisation ne traite PAS les données de la plateforme dans un environnement cloud ou de serveur :
Test d’intrusion : une organisation commande un test d’intrusion de son logiciel fonctionnant côté serveur qui s’intègre aux API Meta et traite les données de la plateforme. L’entreprise de test termine ce dernier et produit une lettre de synthèse semblable à celle présentée ci-dessous. Les annotations rouges indiquent la date à laquelle le test a eu lieu (dans les 12 derniers mois). On trouve également un résumé des résultats de gravité critique/élevée non résolus à la fin du test (ou du second test, le cas échéant). N’oubliez pas de supprimer les informations sensibles du rapport (en particulier toute étape détaillée de reproduction de la vulnérabilité) avant de l’envoyer.
Analyse statique : si vous utilisez une approche différente, par exemple un outil SAST, exportez les résultats dans un document qui comprend la date d’exécution du SAST et une liste de résultats comprenant le type de chaque résultat et sa gravité ou son état critique.
Examen de la configuration cloud
Une équipe de développement utilise NCC Scout Suite en utilisant l’ensemble de règles par défaut de son fournisseur cloud (dans ce cas, AWS) pour examiner sa configuration cloud en quête de vulnérabilités et de problèmes de sécurité. L’outil produit un fichier JSON contenant les résultats détaillés de l’exécution. Dans cet exemple, on constate un certain nombre de problèmes dont la gravité correspond à un « danger », et que l’équipe de développement doit examiner et résoudre.
Le fichier JSON brut de la suite NCC Scout contient des détails sur votre environnement cloud que vous ne devez pas télécharger. En revanche, filtrez les réponses pour afficher le nombre de résultats par 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" } }
Autre approche d’examen de la configuration cloud pour les équipes de développement utilisant l’ensemble de règles d’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"}]}' []
Si vous exploitez un programme de divulgation des vulnérabilités (VDP) opérationnel, par exemple à l’aide des plateformes BugCrowd ou HackerOne, vous pouvez le présenter comme une fonctionnalité de protection alternative au lieu d’un test d’intrusion ou d’une analyse de vulnérabilité. Pour le prouver, vous devez soumettre des justificatifs selon lesquels :
Dans ce cas, les justificatifs doivent comprendre :
Question : La clé secrète et les tokens d’accès de l’API Meta sont-ils protégés de l’une des manières suivantes ?
La clé secrète et les tokens d’accès sont essentiels à la sécurité des décisions prises par l’API Meta concernant les actions à autoriser. Si une partie non autorisée accédait à ces identifiants, elle pourrait appeler les API de Meta, en usurpant l’identité du vrai développeur, et réaliser l’une des actions que nous avons accordées à l’application (par ex. lire des données de l’API Meta sur les utilisateurs de l’application).
Tokens d’accès
Clé secrète - l’une de ces deux exigences doit être respectée :
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Incluez des documents sur le règlement visant à protéger les tokens d’accès de l’API Meta et la clé secrète. Si l’application traite les tokens d’accès Meta côté serveur, incluez un justificatif des mesures de protection que vous appliquez (par ex. utiliser un modèle de base de données de type vault, démontrer que les valeurs sont stockées sous forme chiffrée, configurer l’application de manière à exiger des preuves de clé secrète).
Veillez à ne pas inclure (et donc supprimez) les valeurs de texte en clair de toutes les clés ou tokens d’accès dans le justificatif que vous envoyez.
Une organisation utilise AWS Secrets Manager pour le stockage sécurisé des données sensibles, et notamment de la clé secrète Meta.
Une organisation a configuré son application Meta pour demander une preuve de clé secrète pour les appels d’API :
Question : Testez-vous les systèmes et processus que vous utiliseriez pour répondre à un incident de sécurité (par ex., une violation de données ou une cyberattaque) au moins tous les 12 mois ?
Tôt ou tard, toutes les entreprises sont touchées par des incidents de sécurité. Il est donc essentiel que les organisations prévoient à l’avance quelles personnes seront chargées de traiter l’incident et de quelle manière, de communiquer avec les parties prenantes, de le régler et d’en tirer les leçons pour l’avenir.
Le développeur doit avoir mis en place :
Cette exigence s’applique que vous traitiez ou non les Données de la Plateforme côté serveur.
Veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Un développeur a créé un plan de réponse complet aux incidents d’après ce modèle. Ces images représentent seulement la table des matières, mais un lien vers l’intégralité du modèle figure en dessous.
Voir le modèle de plan de réponse en cas d’incident de Counteractive (format docx)
Un développeur a mené un test sur son plan de réponse en cas d’incident via un exercice de simulation et il a noté les résultats en utilisant ce modèle.
Seules les deux premières pages sont incluses ici, mais il vous faut envoyer le document complet.
Question : Exigez-vous l’authentification à plusieurs facteurs pour l’accès à distance à chaque compte pouvant se connecter au cloud ou à l’environnement serveur et/ou pour accéder aux services que vous utilisez afin de déployer, assurer la maintenance de, surveiller et exploiter les systèmes dans lesquels vous stockez des Données de la Plateforme de Meta ?
Une technique ordinaire utilisée par les adversaires pour accéder aux données confidentielles consiste à commencer par obtenir l’accès aux outils utilisés par le développeur pour créer ou exploiter son application/système. Il existe des outils sophistiqués permettant de pirater les comptes protégés seulement par des mots de passe ; l’authentification à plusieurs facteurs offre un niveau de sécurité supplémentaire contre ce risque.
Dans le cadre du traitement des Données de la Plateforme par une organisation, l’accès à distance à ces outils doit être protégé par l’authentification à plusieurs facteurs (c’est à dire pas simplement par un mot de passe) :
Plus particulièrement, l’authentification à plusieurs facteurs ou une autre mesure de protection valable sont exigées dans les cas suivants :
En ce qui concerne la mise en place de l’authentification à plusieurs facteurs :
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Une organisation utilise AzureAD comme solution d’authentification unique. Ce règlement exige une authentification à plusieurs facteurs.
Ce règlement est alors associé aux applications cloud auxquelles il est applicable. En utilisant cette approche, le justificatif devrait refléter la totalité de la section Éléments sélectionnés afin d’indiquer clairement quelles applications cloud exigent l’authentification à plusieurs facteurs.
Cette règle demande l’authentification à plusieurs facteurs pour toutes les connexions.
Voici un exemple de politique AWS IAM qui permet la configuration de l’authentification à plusieurs facteurs mais qui interdit d’autres actions en l’absence de cette dernière.
Une organisation a configuré l’authentification sur GitHub de manière à exiger l’authentification à plusieurs facteurs pour tous les membres de l’organisation.
Question : Disposez-vous d’un système pour la maintenance des comptes (affectation, révocation et examen des accès et des privilèges) ?
Les bonnes habitudes en matière de gestion de comptes sont importantes pour éviter que des comptes ne soient utilisés par des personnes non autorisées pour accéder aux données de la plateforme. Les développeurs doivent surtout s’assurer que l’accès aux ressources et aux systèmes est révoqué lorsqu’il n’est plus nécessaire.
Cette exigence s’applique que vous traitiez ou non les données de la plateforme côté serveur.
Suivez les instructions de la section Préparer vos justificatifs pour préparer vos documents démontrant vos politiques/procédures et votre mise en œuvre.
Politiques/procédures - Un développeur a créé un standard de gestion du cycle de vie des accès qui comprend des procédures visant à accorder, à examiner et à révoquer des accès.
Un développeur utilise Workday en tant que source de référence pour les données des ressources humaines (RH), notamment la situation professionnelle actuelle. Ce développeur utilise Google Cloud Identity en tant que fournisseur d’identité pour gérer les comptes et accorder des accès aux outils et aux systèmes d’information.
Un développeur fournit un justificatif démontrant que l’accès a été révoqué pour les membres du personnel qui ont quitté l’entreprise : un document indiquant qu’un rapport de rapprochement a été effectué récemment (au cours des 12 derniers mois) et montrant qu’il n’y a aucun compte Google Cloud Identity actif pour des personnes qui ne font pas actuellement partie du personnel, selon la liste du personnel de Workday.
Un développeur utilise Google Cloud Identity en tant que fournisseur d’identité pour gérer les comptes et accorder des accès aux outils et aux systèmes d’information.
Un développeur fournit un justificatif démontrant que l’accès est révoqué lorsque les comptes ne sont plus utilisés (par ex., aucune connexion au cours des 6 derniers mois), son annuaire de comptes trié par dernière connexion, afin de démontrer qu’il n’y a pas de comptes actifs avec une dernière connexion plus ancienne que cela.
Un développeur utilise un outil d’authentification unique pour gérer les identités et accorder des accès aux outils et aux systèmes d’information. Le développeur a configuré GitHub de façon à exiger une authentification unique.
Question : Avez-vous mis en place un système pour tenir à jour le code et les environnements du système, y compris les serveurs, les machines virtuelles, les distributions, les bibliothèques, les packages et les logiciels antivirus ?
Les composants logiciels sont régulièrement mis à jour ou corrigés pour régler les vulnérabilités de sécurité. Leur durée de vie se termine lorsqu’ils ne sont plus pris en charge. Les développeurs qui utilisent ou dépendent de ces composants doivent en faire le suivi pour éviter le fonctionnement de logiciels présentant des vulnérabilités identifiées.
Pour les composants logiciels suivants, le cas échéant, vous devez disposer d’une manière définie et réitérable d’identifier les correctifs disponibles pour régler les vulnérabilités de sécurité, en établissant des priorités en fonction du risque et en appliquant des correctifs de manière habituelle :
Meta n’exige pas l’utilisation d’un outil particulier pour ces activités. Il est courant que les organisations adoptent des approches différentes pour garder à jour différents types de logiciel (par ex. les bibliothèques intégrées à l’application vs la mise à jour de système pour les ordinateurs des employés).
Cette exigence est applicable quelle que soit l’approche d’hébergement (par ex. BaaS, PaaS, IaaS, auto-hébergement ou hybride), même si l’ensemble de composants que vous êtes tenu de tenir à jour varie.
Le diagramme ci-dessous illustre les cas dans lesquels un correctif peut être demandé pour différents types d’architecture.
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Commencez par identifier les types de logiciel concernés dans l’environnement, par ex. les bibliothèques, les SDK, les packages, les images de machines virtuelles, les conteneurs d’applications, les systèmes d’exploitation, les navigateurs et les autres applications utilisées par les employés/contributeurs.
Peut-être avez-vous un ou plusieurs outils que vous utilisez pour les activités suivantes :
Snyk pour une application NodeJS - Un développeur utilise l’interface de ligne de commande Synk pour identifier les dépendances de tiers intégrées ayant présenté des vulnérabilités de sécurité et établir des priorités en fonction de leur gravité.
Un développeur utilise NPM Audit pour trouver des vulnérabilités dans les dépendances utilisées dans une application Node. L’image figurant ci-dessous à titre d’exemple reflète des vulnérabilités à haute gravité demandant un correctif.
Un développeur utilise Trivy pour trouver des vulnérabilités dans une image de machine. L’image figurant ci-dessous à titre d’exemple reflète des vulnérabilités à haute gravité dans des bibliothèques demandant un correctif.
Un développeur utilise Windows Server Update Services (WSUS) pour la gestion de sa flotte de serveurs et PC/ordinateurs portables. L’image figurant ci-dessous à titre d’exemple montre une vue admin de l’outil WSUS, permettant la vérification, l’approbation et le déploiement des mises à jour de Windows.
En l’absence de fichiers journaux fiables, il peut être difficile, voire impossible, pour un développeur de détecter les accès non autorisés aux Données de la Plateforme.
Si vous traitez des Données de la Plateforme côté serveur, dans cet environnement :
S’il vous est demandé d’importer un justificatif, ce dernier doit montrer que :
Une bonne compréhension de la manière dont les Données de la Plateforme doivent être traitées et dont la surveillance de ce traitement doit se dérouler permet aux organisations de veiller à ce que les Données de la Plateforme ne soient utilisées qu’aux fins prévues.
Si vous traitez des Données de la Plateforme côté serveur, dans cet environnement serveur, vous devriez :
S’il vous est demandé de produire un justificatif de cette protection, veuillez suivre les instructions de la section Préparation de justificatif afin de préparer les justificatifs en matière de règlement/procédure et de mise en place.
Vous devriez fournir des justificatifs montrant que :
Il n’est pas réaliste de confier à des humains l’examen et l’identification de comportements inattendus dans un système moderne accessible sur Internet. Mieux vaut faire appel aux outils existants, capables de traiter les fichiers journaux et autres signaux pour déclencher des alertes. Ces alertes peuvent alors être soumises à un examen humain plus poussé.
Si vous traitez des Données de la Plateforme côté serveur, dans cet environnement serveur, vous devriez :
Les développeurs adoptent en général à cet effet un outil de gestion des informations et des évènements de sécurité (SIEM), par exemple :
Vous devriez fournir des justificatifs montrant que les sources de signaux pertinentes sont transmises à l’outil correspondant, que les déclencheurs et les alertes ont été configurés, que les alertes sont transmises au personnel responsable du suivi, et enfin qu’il existe un processus permettant d’ajuster régulièrement les alertes (par ex. via des cycles mensuels de vérification et mise à jour).
Tierce partie : en gestion des risques, la tierce partie fait référence aux équipes de développement qui utilisent la plateforme de Meta (la première partie (interne) étant Meta, et la deuxième les personnes qui utilisent ses produits).
Quatrième partie : en gestion des risques, la quatrième partie fait référence aux entreprises qui fournissent aux équipes de développement les services nécessaires à leur activité (la première partie (interne) étant Meta, la deuxième partie les personnes qui utilisent ses produits et la tierce partie les équipes de développement qui utilisent la plateforme de Meta). Token d’accès : un identifiant, tel qu’un mot de passe, qui permet à un logiciel d’appeler une API pour effectuer une action (par exemple, lire les données d’un profil).
Amazon Web Services (AWS) : la suite de services de cloud computing d’Amazon.
ASID (ID spécifique à une application) : un identifiant unique que Meta génère lorsqu’une personne choisit d’utiliser une application. Les ASID renforcent la confidentialité en rendant plus difficile la mise en correspondance des personnes entre les applications via les ensembles de données, car une personne utilisant deux applications aura des ASID différents dans chaque application.
Clé secrète : une clé secrète partagée que Meta met à la disposition des équipes de développement via le tableau de bord de l’application. La possession de la clé secrète autorise le logiciel à effectuer certaines actions via l’API Graph. Les équipes de développement doivent donc veiller à ce que les parties non autorisées ne puissent pas y accéder.
Compromission d’une application : lorsqu’une personne malintentionnée obtient un accès non autorisé au réseau interne d’une organisation en raison d’une erreur de configuration ou d’une vulnérabilité dans son application (par exemple, une vulnérabilité logicielle dans une application web). Pour éviter la compromission d’une application, vous pouvez effectuer un test d’intrusion. Voir également Compromission réseau.
Conteneur d’application : un conteneur regroupe le code logiciel et les dépendances associées afin qu’une application puisse s’exécuter sur différents types de serveurs (par exemple, des serveurs utilisant différents systèmes d’exploitation, comme Linux ou Windows Server). Une équipe de développement créera une image de conteneur pour son application. Une plateforme de conteneurisation héberge (exécute) l’image de conteneur.
Chiffrement d’application : une méthode de protection des données dans laquelle le logiciel de l’application effectue lui-même les opérations de chiffrement et de déchiffrement. La Transport Layer Security (TLS) chiffre quant à elle de manière transparente les données en transit lorsqu’une application établit une connexion sécurisée à un serveur distant (par exemple, via le protocole HTTPS), et les fournisseurs de cloud offrent des services permettant de chiffrer de manière transparente les données au repos.
API (interface de programmation d’application) : permet à deux ordinateurs de communiquer via un réseau. Par exemple, une application mobile récupérant la météo du jour pour un certain lieu à partir d’un système de prévisions météorologiques centralisé.
Preuve de clé secrète : une protection supplémentaire pour les appels d’API à Meta. Elle permet aux équipes de développement de générer un paramètre (la preuve de clé secrète) qui démontre qu’elles possèdent la clé secrète. La preuve de clé secrète est le produit d’une fonction de hachage (également appelée fonction à sens unique) basée sur la clé secrète et le token d’accès. Configurer une application de façon à exiger des preuves de clé secrète lors des invocations de l’API Graph réduit les risques potentiels liés à la fuite des tokens d’accès utilisateur, car ces token d’accès ne peuvent pas être utilisés sans ce paramètre supplémentaire.
Backend as a Service (BaaS) : un type de cloud computing qui fournit une suite de fonctionnalités côté serveur à une équipe de développement d’applications, afin qu’elle puisse se concentrer sur la création du frontend (la partie d’une application avec laquelle les personnes interagissent). Les solutions BaaS sont similaires au PaaS, mais comprennent également des services tels que l’authentification et les notifications push mobiles. Quelques exemples de produits BaaS populaires : AWS Amplify, Azure Mobile Apps, Firebase et MongoDB Switch.
Texte chiffré : synonyme de données chiffrées, texte chiffré est le nom attribué aux données rendues illisibles par un algorithme de chiffrement. Le contraire de texte chiffré est texte brut.
Côté client : le public interagit généralement avec les services accessibles sur Internet en ouvrant un site web dans un navigateur ou une application mobile sur un téléphone ou une tablette. Les navigateurs et les applications mobiles sont qualifiés de clients locaux ou côté client. Les clients envoient des requêtes à partir d’ordinateurs distants (serveurs) via Internet.
Cloud computing : un type de gestion des ordinateurs serveurs, des réseaux et du stockage qui permet à une organisation de ne pas avoir à se soucier de l’environnement physique (un centre de données rempli de racks de serveurs et de câbles réseau). Au lieu de cela, l’organisation peut utiliser ces ressources à la demande et payer les services qu’elle consomme uniquement.
Configuration cloud : l’ensemble d’options de cloud computing qu’une organisation a définies en lien avec son utilisation d’un fournisseur de cloud exécutant certains logiciels. Par exemple, les types de connexions réseau autorisées ou bloquées, l’endroit où les fichiers journaux sont conservés et pendant combien de temps, et l’ensemble de personnes autorisées à apporter des modifications à la configuration cloud.
Contrôle de compensation : un contrôle de sécurité qui diffère d’un ensemble d’exigences de base, mais qui vise à fournir une protection comparable contre un risque.
Base de données : un logiciel qui permet de stocker, de lire, de mettre à jour et de supprimer des données arbitraires. Les bases de données peuvent s’exécuter sur des clients ou sur des serveurs. Les organisations qui intègrent la plateforme Meta stockent généralement les données qu’elles récupèrent à partir de l’API Graph dans une base de données qui s’exécute côté serveur.
Déchiffrement : le processus par lequel les données chiffrées sont retranscrites dans leur format d’origine. En d’autres termes, le déchiffrement transforme le texte chiffré en texte brut.
Chiffrement : le processus par lequel les données sont transcrites dans un format inutilisable pour les personnes ne pouvant pas les déchiffrer. En d’autres termes, le chiffrement transforme le texte brut en texte chiffré.
Chiffrement au repos : les données qui ont été protégées par chiffrement lorsqu’elles sont conservées dans un espace de stockage persistant (comme un disque dur). Le chiffrement au repos fournit une protection supplémentaire contre les accès non autorisés, car une personne pouvant lire les fichiers bruts sur le périphérique de stockage verra le texte chiffré et ne pourra pas le déchiffrer, à moins qu’elle n’ait également accès à la clé de déchiffrement.
Chiffrement en transit : les données qui ont été protégées par chiffrement lors de leur transmission sur un réseau. Le chiffrement en transit fournit une protection contre l’écoute clandestine tout au long du chemin réseau, car une personne pouvant lire les paquets réseau verra le texte chiffré et ne pourra pas le déchiffrer, à moins qu’elle n’ait également accès à la clé de déchiffrement.
Logiciel en fin de vie : lorsqu’une organisation décide d’arrêter de maintenir un produit logiciel (par exemple, en utilisant des correctifs pour résoudre les vulnérabilités), on dit qu’il est en fin de vie. Le logiciel n’étant plus maintenu, il devient très risqué de l’exécuter.
Google Cloud Platform (GCP) : la suite de services de cloud computing de Google. API Graph : le principal moyen pour les applications de lire et d’écrire sur le graphe social de Meta. Tous les SDK et produits de Meta interagissent avec l’API Graph d’une manière ou d’une autre.
Fonction de hachage : une fonction cryptographique qui transforme les données d’entrée en un code court qui ne peut pas être retranscrit dans son format d’origine. En cryptographie, les fonctions de hachage sont utilisées pour protéger des données telles que les mots de passe. Plutôt que de stocker le mot de passe d’une personne en texte brut pouvant être volé, les mots de passe sont d’abord hachés, puis stockés. Par la suite, pour confirmer qu’une personne a saisi le bon mot de passe, le système utilisera la même fonction de hachage pour transformer les données d’entrée et comparer le hash généré à la valeur stockée. Également appelée fonction à sens unique, car le hash généré ne peut pas être retranscrit dans son format d’origine.
Environnement d’hébergement : un ensemble de serveurs distants, de réseaux et de périphériques de stockage qu’une organisation exécute dans son propre centre de données ou dans un centre de données en colocation. Depuis que le cloud computing est devenu populaire, ce modèle est plutôt rare.
Fournisseur d’identité : un service de cloud utilisé pour l’authentification et pour centraliser la gestion des identités digitales. Les organisations qui utilisent un fournisseur d’identité configurent généralement les applications cloud de façon à ce qu’elles s’appuient sur ce fournisseur d’identité pour l’authentification. L’organisation peut ensuite créer des comptes, leur accorder un accès à certaines applications et les désactiver de manière centralisée via le fournisseur d’identité plutôt que d’avoir à le faire pour chaque application cloud une par une.
Gestion des identités et des accès : les outils et processus utilisés pour gérer les comptes et accorder des accès aux systèmes.
Infrastructure as a Service (IaaS) : un modèle de cloud computing qui permet aux clients de configurer des services de calcul, de stockage et de mise en réseau sans être responsables des ressources physiques (par exemple, un centre de données rempli de serveurs, de périphériques réseau et de baies de stockage). Par rapport au Paas, l’IaaS donne aux organisations plus de contrôle sur la configuration de leurs ressources dans le cloud. La gestion de ces ressources est toutefois plus complexe. Quelques exemples de produits IaaS populaires : AWS EC2, Microsoft Azure IaaS et Google Compute Engine.
Bibliothèque : composants logiciels préexistants provenant généralement d’une entreprise ou d’équipes de développement externes et utilisés pour gérer certaines tâches au sein de l’application ou du système d’une autre équipe. Les bibliothèques simplifient le développement d’une application, car l’équipe de développement n’a pas à innover inutilement lorsqu’une bibliothèque existe déjà pour une fonction donnée. Les bibliothèques peuvent toutefois présenter des vulnérabilités ou inclure d’autres bibliothèques qui en présentent. Les équipes de développement qui utilisent des bibliothèques pour développer leur application doivent donc savoir quelles bibliothèques sont en cours d’utilisation et les tenir à jour au fil du temps.
Client mobile ou application mobile : une application qu’une personne installe sur un téléphone ou une tablette à partir d’une boutique d’applications (comme l’App Store ou le Google Play Store). Les clients mobiles communiquent souvent sur Internet via l’API REST d’une organisation et peuvent également communiquer avec d’autres parties (comme l’API Graph via le SDK Facebook pour Android).
Authentification multifacteur : une méthode d’authentification qui exige plusieurs facteurs pour accéder à une application ou à un système. L’authentification multifacteur, contrairement à l’authentification à facteur unique, qui repose uniquement sur un mot de passe, demande généralement un code envoyé par e-mail ou par SMS, un code envoyé via une application d’authentification, un scan biométrique ou une clé de sécurité, voire plusieurs de ces options, en plus du mot de passe. L’authentification multifacteur protège contre le piratage en rendant plus difficile pour les personnes non autorisées de forcer l’accès à un compte (par exemple, en essayant de se connecter à un compte à plusieurs reprises en utilisant une adresse e-mail connue et des mots de passe communs).
Logiciel natif : les applications téléchargées et installées sur des ordinateurs portables ou des appareils mobiles sont qualifiées de logiciels natifs (par exemple, l’application Facebook pour iOS). En revanche, une application qui s’exécute dans un navigateur est qualifiée d’application web (par exemple, Facebook dans Chrome).
Compromission réseau : lorsqu’une personne malintentionnée obtient un accès non autorisé au réseau interne d’une organisation en raison d’une erreur de configuration ou d’une vulnérabilité dans le réseau. Pour éviter la compromission réseau, vous pouvez effectuer une analyse réseau afin d’identifier les erreurs de configuration et les vulnérabilités du réseau connecté à Internet. Voir également Compromission d’une application.
Analyse réseau : un processus de gestion des risques qui utilise un logiciel pour : (1) identifier les serveurs actifs d’un réseau qui répondront aux communications à distance, puis (2) déterminer si l’un de ces serveurs exécute d’anciennes versions de logiciels vulnérables à un ou plusieurs exploits. Une organisation peut effectuer des analyses réseau régulières afin de s’assurer qu’il n’y a pas de ports ouverts imprévus sur son périmètre réseau, par exemple.
Node Package Manager (NPM) : un outil utilisé par les équipes de développement JavaScript pour accélérer le développement en permettant l’inclusion de packages prédéfinis dans l’application ou le système d’une équipe. NPM comprend des fonctionnalités qui permettent d’examiner l’ensemble de packages utilisés par une application et d’identifier les packages présentant des vulnérabilités connues.
Buckets de stockage d’objets : un type de stockage dans le cloud qui permet aux organisations de stocker facilement des fichiers dans un espace de stockage persistant, y compris des fichiers très volumineux, sans avoir à se soucier des ressources physiques, comme les baies de stockage, ou de sauvegarder ces fichiers pour s’assurer qu’ils ne seront pas perdus en cas de catastrophe, comme un incendie ou une inondation.
Système d’exploitation : le logiciel exécuté sur un ordinateur ou un appareil mobile qui permet aux applications d’exécuter et d’utiliser le processeur, la mémoire, le stockage et les ressources réseau de cet ordinateur. Par exemple, Windows de Microsoft, macOS ou iOS d’Apple et Linux.
Membre de l’organisation : personne ayant un rôle et des responsabilités au sein d’une organisation (personnel fixe ou occasionnel, sous-traitant, stagiaire, bénévole, etc.).
Appareil appartenant à l’organisation : un ordinateur ou un appareil mobile utilisé par un membre d’une organisation dans le cadre du travail effectué pour cette organisation.
Condition 6.a.i de la plateforme : la section (6), titre (a), paragraphe (i) des Conditions générales de la Plateforme Meta, qui décrit les obligations des équipes de développement qui utilisent la plateforme en matière de sécurité des données.
Package : synonyme de bibliothèque.
Correctif : mise à jour logicielle visant à résoudre des problèmes de sécurité, à corriger des bugs ou à ajouter de nouvelles fonctionnalités. Toutes sortes de logiciels peuvent être corrigés, y compris les systèmes d’exploitation, les conteneurs, les bibliothèques et les SDK.
Test d’intrusion : une attaque simulée contre une application ou un système afin de trouver des vulnérabilités dans le code ou la configuration qui pourraient être exploitées par une personne non autorisée. Les personnes chargées de ces tests, appelées « pentesters », utilisent des outils similaires à ceux des cybercriminels pour effectuer une reconnaissance, rechercher des faiblesses potentielles et tester des vulnérabilités qui pourraient être utilisées pour obtenir un accès non autorisé. À la fin du test d’intrusion, les pentesters créent un rapport sur les vulnérabilités trouvées et sur leur gravité. L’organisation qui maintient le logiciel doit alors se charger de trouver des solutions à ces vulnérabilités.
Texte brut : synonyme de données non chiffrées, texte brut est le nom attribué aux données qui n’ont pas été protégées par chiffrement. Platform as a Service (PaaS) : un modèle de cloud computing dans lequel un client déploie une application sur une plateforme gérée par le fournisseur de cloud. Par rapport à l’IaaS, le PaaS est plus simple à gérer pour les clients, car à la fois les ressources physiques (serveurs, périphériques de stockage et périphériques réseau), le système d’exploitation et le conteneur dans lequel l’application du client s’exécute sont gérés par le fournisseur de cloud. Quelques exemples de produits PaaS populaires : AWS Elastic Beanstalk, Google App Engine et Force.com.
Port : lorsqu’un client se connecte à un serveur via Internet, l’adresse de destination comprend deux parties : (1) l’adresse IP du serveur et (2) un numéro de port auquel une application particulière répondra sur ce serveur. Les protocoles communs utilisent des ports réservés (par exemple, 443 pour HTTPS), mais s’ils le souhaitent, les équipes de développement peuvent utiliser des ports personnalisés pour les communications réseau.
API REST : un type très populaire de développement de services accessibles sur le web dans lequel le client et le serveur communiquent via le protocole HTTP. Une équipe de développement sur la plateforme Meta peut héberger une API REST sur un sous-domaine tel que api.example.com vers ou depuis lequel son application mobile envoie et reçoit les données de la plateforme.
Secure Shell (SSH) : un protocole de communication sécurisé qui permet aux admins de se connecter à distance aux serveurs et d’exécuter des programmes sur ces serveurs. Il est désigné comme sécurisé car les communications entre le client et le serveur sont protégées contre l’écoute clandestine, contrairement aux protocoles plus anciens, comme Telnet. Également appelé Secure Socket Shell.
Secure Sockets Layer (SSL) : une version obsolète et non sécurisée du chiffrement en transit. La version sécurisée moderne est appelée Transport Layer Security (TLS).
Serveur : un ordinateur qui fournit des services à distance via un réseau. Les navigateurs et les applications mobiles se connectent à des serveurs via Internet.
Informatique sans serveur : un type de cloud computing dans lequel le fournisseur de cloud gère l’infrastructure physique, le système d’exploitation du serveur et le conteneur. L’équipe de développement est uniquement responsable du code personnalisé et des bibliothèques associées ainsi que de la configuration cloud.
Côté serveur : les données ou les calculs de l’autre côté d’une connexion réseau (c’est-à-dire sur un serveur) sont qualifiés de côté serveur. Les données ou les calculs sur un appareil local, comme un ordinateur portable ou un appareil mobile, sont quant à eux qualifiés de côté client.
Authentification unique : un modèle dans lequel les applications s’appuient sur un annuaire centralisé (fournisseur d’identité) pour l’authentification. En plus de centraliser l’administration des comptes et de l’accès aux applications pour l’organisation, elle permet de n’utiliser qu’un seul ensemble d’identifiants. Pas besoin d’avoir des identifiants différents (comme un nom d’utilisateur et un mot de passe) pour chaque application.
SDK (kit de développement logiciel) : comprend un code qu’une équipe de développement peut utiliser pour simplifier le processus de développement pour un besoin donné. Par exemple, Meta crée et maintient des SDK qui simplifient l’utilisation de l’API Graph pour les équipes de développement iOS et Android. Comme pour les bibliothèques, les équipes de développement qui utilisent des SDK dans leurs applications doivent les tenir à jour au fil du temps.
Software as a Service (SaaS) : permet aux clients d’utiliser des applications basées dans le cloud via Internet. Contrairement au PaaS ou à l’IaaS, le client d’une application SaaS ne déploie pas de code personnalisé et n’est pas responsable de la configuration, de la mise à niveau, ni des correctifs de l’application SaaS. Il s’agit de responsabilités qui incombent au fournisseur de logiciel SaaS. Quelques exemples de produits SaaS populaires : Dopbox, MailChip, Salesforce et Slack.
Analyse statique : voir Test de sécurité d’application statique.
Test de sécurité d’application statique (SAST) : une approche permettant de trouver des vulnérabilités dans un logiciel en appliquant un outil spécialisé au code source. Les outils SAST identifient les vulnérabilités potentielles, telles que celles répertoriées dans le top 10 du projet OWASP, et l’équipe de développement doit ensuite examiner les résultats, distinguer les vrais positifs des faux positifs et corriger les vulnérabilités du logiciel. Les tests de sécurité d’application statique permettent aux équipes de développement de trouver des vulnérabilités avant que l’application ne soit mise en production. Mais contrairement aux tests d’intrusion, les outils SAST ne peuvent pas trouver de vulnérabilités liées à la configuration de la production de l’application.
Chiffrement transparent des données : un type de chiffrement au repos qui s’applique généralement au stockage en base de données (à la fois au contenu de la base de données et à ses fichiers journaux). Dans ce modèle, le logiciel de base de données gère les clés de chiffrement et traite les opérations de chiffrement (écriture) et de déchiffrement (lecture) de manière transparente.
Transport Layer Security (TLS) : un protocole de chiffrement en transit qui utilise le chiffrement pour protéger les données transmises via des réseaux contre l’écoute clandestine tout au long du chemin réseau. La TLS est la version sécurisée moderne de la technologie obsolète appelée SSL.
Authentification à deux facteurs : un synonyme d’authentification multifacteur. Vault : un système de gestion des secrets pour les données sensibles telles que les clés de chiffrement, les token d’accès et d’autres identifiants. Cet outil permet de contrôler qui peut accéder aux secrets qu’il contient et offre des services supplémentaires, tels que des journaux d’audit.
Machine virtuelle : très similaire à un conteneur, une machine virtuelle s’exécute sur un hyperviseur, alors qu’un conteneur s’exécute dans une plateforme de conteneurisation. La principale différence est qu’une image de machine virtuelle contient un système d’exploitation, tandis qu’un conteneur n’en contient pas. À la fois les machines virtuelles et les conteneurs contiennent des applications et des dépendances, comme les bibliothèques.
Cloud privé virtuel : un terme utilisé par AWS pour désigner un ensemble de ressources dans le cloud qui ressemble au réseau d’un centre de données traditionnel, lorsque le cloud n’existait pas encore.
Vulnérabilité : une faille dans un système ou une application qui pourrait être exploitée. Par exemple, lorsqu’une personne lit des données qu’elle n’a pas le droit de lire.
Programme de divulgation des vulnérabilités : un modèle dans lequel les organisations sollicitent des rapports sur les vulnérabilités à des équipes de recherche (ou « hackers éthiques »), afin que les vulnérabilités soient découvertes et corrigées avant que des personnes malintentionnées ne puissent les exploiter. Pour qu’un programme de divulgation des vulnérabilités soit efficace, il doit comprendre une équipe qui recherche activement les vulnérabilités, des analystes qui examinent et trient les divulgations entrantes et des équipes d’ingénierie qui connaissent bien le domaine de la cybersécurité et qui sont capables de déployer des solutions aux vulnérabilités.
Analyse de vulnérabilité : une méthode qui s’appuie sur un logiciel pour rechercher des vulnérabilités dans les serveurs, les réseaux et les applications. Par rapport à un test d’intrusion, une analyse de vulnérabilité est moins chère et peut donc être exécutée à plusieurs reprises (par exemple, une fois par mois ou par trimestre). Mais un test d’intrusion peut trouver des vulnérabilités qu’une analyse de vulnérabilité ne trouvera pas, car les pentesters ont des instincts et des compétences analytiques difficiles à reproduire avec des approches strictement automatisées. Voir également Analyse réseau.
Application web : les applications web sont des programmes qui s’exécutent dans des navigateurs et qui se composent de ressources telles que des documents HTML, un code JavaScript, des vidéos et d’autres contenus multimédia, et du CSS pour le style. Par rapport aux applications mobiles, qui doivent être installées sur un appareil mobile à partir d’une boutique d’applications, les applications web sont récupérées via un navigateur à partir d’un serveur distant (par exemple, www.facebook.com) et sans installation.