Galerie de cartes mentales CISSP-8-Développement de la sécurité des applications
La carte mentale du développement de la sécurité des applications de la certification professionnelle CISSP-Information System Security comprend principalement les objectifs d'apprentissage du développement d'applications, la sécurité du développement de systèmes, les modèles de développement de logiciels, les langages et concepts de programmation, les systèmes d'application typiques et l'évaluation de l'efficacité de la sécurité des logiciels.
Modifié à 2021-11-10 12:06:10This is a mind map about bacteria, and its main contents include: overview, morphology, types, structure, reproduction, distribution, application, and expansion. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about plant asexual reproduction, and its main contents include: concept, spore reproduction, vegetative reproduction, tissue culture, and buds. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about the reproductive development of animals, and its main contents include: insects, frogs, birds, sexual reproduction, and asexual reproduction. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about bacteria, and its main contents include: overview, morphology, types, structure, reproduction, distribution, application, and expansion. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about plant asexual reproduction, and its main contents include: concept, spore reproduction, vegetative reproduction, tissue culture, and buds. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about the reproductive development of animals, and its main contents include: insects, frogs, birds, sexual reproduction, and asexual reproduction. The summary is comprehensive and meticulous, suitable as review materials.
Développement de la sécurité des applications
Objectifs d’apprentissage du développement d’applications
Sécurité du cycle de vie du développement logiciel
Approche du cycle de vie du développement logiciel
Modèle de maturité
Opération et maintenance
Gestion du changement
Équipe produit intégrée
Contrôles de sécurité dans les environnements de développement
Sécurité de l'environnement logiciel (langage de programmation, bibliothèques, boîtes à outils, environnement de développement complet, runtime) ;
Faiblesses et vulnérabilités de sécurité au niveau du code source
La gestion de la configuration en tant que composant important du codage sécurisé
Sécurité de l'interface des applications
Effets sur la sécurité des logiciels
Auditer et enregistrer les modifications
Analyse et atténuation des risques (Actions correctives, tests et validation, tests de régression)
Tests d'acceptation des utilisateurs
Problèmes de développement d’applications
modèles architecturaux
Architecture à trois niveaux
utilisateur
l'extrémité avant
Middleware complexe
base de données
Fonctionnalités de suivi des bogues et de sécurité
serveur client
Client : interface utilisateur, opérations de base de données locale, mécanisme de communication
Serveur : exécuter et traiter les demandes de données et renvoyer les résultats
navigateur/serveur
Contrôle environnemental V Contrôle des applications
Équilibre de plusieurs méthodes de contrôle
Comprendre les limites entre les contrôles environnementaux et les contrôles d'application
Fonctionnalité de sécurité V
Équilibre entre les fonctionnalités du logiciel et les mesures de sécurité
Équilibre entre les exigences fonctionnelles, les exigences de sécurité et les mécanismes de sécurité
Expérience utilisateur de sécurité V
généralement inversement proportionnel à
Fonction de sécurité V configuration sécurité
L'installation par défaut ne garantit pas la sécurité
La sécurité de la configuration n'est pas activée (l'accès doit être refusé par défaut)
Non-respect du principe d'installation minimale
Installation post-correctif
Sécurité du développement du système
SDLC
Début du projet
Clarifier les exigences et déterminer les objectifs de sécurité de base du produit
Évaluation de l'analyse des risques, évaluation des menaces et des vulnérabilités, Estimer le rapport coût/bénéfice de différentes contre-mesures de sécurité
Gestion des risques
Analyse de risque
analyse de la demande
Exigences de sécurité
Exigences fonctionnelles du système ou de l'application
normes et lignes directrices
restrictions à l'exportation
Niveau de sensibilité des données
Politiques de sécurité associées
Résultats de l’analyse coûts/avantages
Niveau de protection requis pour atteindre les objectifs
L'équipe de développement du projet et de gestion des exigences effectue une analyse complexe des exigences fonctionnelles actuelles et futures probables pour garantir que le nouveau système répond aux exigences de l'utilisateur final.
Les membres de l'équipe de projet examineront également les documents produits pendant la phase initiale du projet et les réviseront et les mettront à jour si nécessaire.
Pour les projets relativement petits, les processus ci-dessus sont souvent inclus dans les étapes initiales du projet.
Les exigences de sécurité doivent également être définies en conséquence. (Les exigences de sécurité sont déterminées lors de la phase d'analyse des besoins, Le personnel de sécurité doit être impliqué lors de la phase d'exigences)
conception du système
Développement de logiciels dans le cadre de la conception du système
Le matériel est différent du logiciel
Généralement, les fonctions implémentées par le logiciel sont décidées lors de la conception du système.
La vérification des logiciels doit prendre en compte tout le contexte dans lequel le système est conçu
Considérez les spécifications
La différence entre logiciel et matériel
Le logiciel peut avoir des branches et le logiciel peut exécuter différentes commandes en fonction de différentes entrées, le logiciel est donc complexe ;
Le logiciel n'est pas physique et ne s'use donc pas ;
Le logiciel peut être modifié facilement et rapidement ;
Le processus de développement logiciel doit être entièrement planifié, contrôlé et enregistré pour détecter et corriger les résultats inattendus causés par les modifications logicielles.
Les composants logiciels ne sont pas standardisés et remplaçables aussi souvent que le matériel.
Outils pour décrire les exigences des utilisateurs et le comportement interne du système
Comprend toutes les activités liées à la conception de systèmes et de logiciels.
Concevoir l'architecture du système, les sorties système et les interfaces système
Établir les exigences en matière d'entrée de données, de flux de données et de sortie de données, et concevoir généralement des fonctionnalités de sécurité logicielle basées sur l'architecture de sécurité de l'entreprise.
conception
conception de données
Extraire les données de conception de données et de modèle d'information et les convertir en structures de données
Conception architecturale
Définit les principales structures et relations entre les composants de l'application
processus de conception
Convertir les composants structurés en processus descriptifs
approche de conception de sécurité
Modélisation des menaces (STRIDE)
Analyse de minimisation de la surface d'attaque
Entrées et sorties propres
Questions à considérer
Structure de répartition du travail (WBS) pour les phases suivantes
Détails du produit et de l'environnement dans lequel il est mis en œuvre
Problèmes de modularisation et de réutilisation des produits
Développement et mise en œuvre de logiciels
L'ouvrage principal
Le code source a été généré et des scénarios de test et des cas de test ont été développés en conséquence
Commencer à implémenter les tests unitaires et d’intégration
Les procédures et les systèmes commencent également à être documentés pour la maintenance, puis passent aux tests d'acceptation et à la transition de production.
Type d'essai
Test de l'unité
Vérifier la structure des données, la logique et les conditions aux limites
Tests d'intégration
Vérifier que les composants fonctionnent ensemble conformément aux spécifications de conception
Test du système
Fonction/Performances
Test d'admission
S'assurer que le code répond aux besoins des clients
Les tests de régression
Une fois les modifications apportées au système, elles seront testées à nouveau pour Garantir les niveaux de fonctionnalité, de performance et de protection
test de fonctionnalité
Test de performance
test de chargement
test de pression
Tests de fuzzing
Envoyez des données complexes/aléatoires au logiciel pour provoquer des erreurs logicielles. Il est principalement utilisé pour identifier les débordements de tampon, le DOS, les injections, les erreurs de vérification et autres erreurs pouvant provoquer le blocage, le crash ou l'apparition du logiciel.
Analyse des vulnérabilités
Utilisez des outils automatisés pour vérifier les principales erreurs du programme, telles que les erreurs de langage fortement typées, les erreurs de développement et de configuration, les erreurs de séquence de transactions (erreurs de séquence de transactions), les conditions de déclenchement de mappage (Conditions de déclenchement de mappage.), etc., généralement plus manuelles. des travaux sont nécessaires après l'enquête de numérisation.
Tests manuels
En analysant un programme grâce à l'expérience et à l'intuition humaines, souvent à l'aide de la technologie informatique, les testeurs peuvent localiser les erreurs de conception, telles que les erreurs logiques. Comprend des tests d'intrusion.
Analyse dynamique
L'analyse dynamique est une analyse opportune d'un programme en cours d'exécution. Elle est généralement exécutée après une analyse statique et une fois que les problèmes de base du programme ont été résolus.
Séparation des environnements et séparation des responsabilités
vérifier (vérification)
S'assurer que les spécifications du produit sont respectées
confirmer (validation)
S'assurer que les principaux objectifs du projet sont atteints
Se concentrer sur la façon d'utiliser et d'exploiter le système ou l'application développé
Attestation (Attestation)
caractéristiques techniques et non techniques de sécurité d’un système informatique et de ses Évaluation de la sécurité des mesures de protection, mesurant la manière dont les conceptions et les mises en œuvre spécifiques répondent Un ensemble défini d'exigences de sécurité pour soutenir le processus d'accréditation.
Un processus d’examen et d’évaluation des contrôles de sécurité
Exécuté par une agence d’inspection externe indépendante
Confirmer la conformité aux politiques et normes de sécurité
Évaluation ou approbation (Accréditation)
Un organisme faisant autorité déclare officiellement qu'un système informatique a été approuvé et peut capable de fonctionner dans un mode de sécurité spécifique qui emploie un ensemble défini de mesures de sécurité répondant à un niveau de risque acceptable
Approbation du système par la direction
acceptation claire du risque
Migrations et correctifs
À ce stade, le système passe de la phase d'acceptation à l'environnement de production réel.
Les activités de cette phase comprennent l'obtention des approbations de sécurité (accréditation de sécurité);
Former les utilisateurs selon le plan ;
Mettre en œuvre le système, y compris l'installation et la conversion des données ;
Si nécessaire, effectuez des opérations parallèles.
Opération et maintenance
Configurer correctement l'environnement de sécurité
Effectuer en permanence des tests de vulnérabilité, surveiller l’activité du système et auditer les événements (Une vulnérabilité est découverte lors de la phase de maintenance et la mesure prise est de la signaler)
Si des changements majeurs surviennent, effectuez une évaluation des risques, et effectuer les processus de certification et d'accréditation (re-certification, ré-accréditation)
Disposer (élimination)
Détruisez les données en fonction de leur sensibilité.
Méthode de destruction
dommages physiques
Démagnétisation
écraser
Cycle de vie de l'ingénierie des systèmes SELC (Cycle de vie de l'ingénierie des systèmes)
Analyse des besoins, conception, mise en œuvre, vérification, exploitation Analyse des besoins, Conception, Implémentation, Vérification, Exploitation
Gestion des changements et des configurations
Modèle de maturité des capacités (MMC)
Initiale (ad hoc)
Répétable
Défini
Géré (Géré, métrique)
Optimisation (amélioration continue)
Intégration du modèle de maturité des capacités (CMMI)
1, 3, 5 sont identiques, 2. Géré, 4. Quantifié et géré
Équipe produit intégrée
Développement intégré de produits et de processus (IPPD) développement intégré de produits et de processus
Techniques de gestion qui optimisent les processus de conception, de fabrication et de support en intégrant simultanément toutes les activités d'acquisition nécessaires à l'aide d'équipes multidisciplinaires
IPPD facilite l'atteinte des objectifs de coûts et de performances, depuis la conception du produit jusqu'à la production, y compris l'assistance sur site
Un principe clé de l'IPPD est le modèle de collaboration multidisciplinaire des équipes de produits intégrés (IPT).
TPI
Les représentants de toutes les disciplines fonctionnelles travaillent avec le chef d'équipe pour élaborer des programmes réussis et équilibrés, identifier et résoudre les problèmes et prendre des décisions judicieuses et opportunes.
Les membres de l'équipe ne consacrent pas nécessairement 100 % de leur temps au projet, et un membre peut faire partie de plusieurs équipes IPT.
Le but des IPT est de prendre des décisions d'équipe basées sur les contributions en temps réel de toutes les équipes (par exemple, gestion de projet, ingénierie, fabrication, tests, logique, gestion financière, achats et gestion des contrats), y compris les clients et les fournisseurs.
Les membres de l'équipe des ITP sont composés de membres de niveau chef de projet, y compris des membres de l'entreprise et des sous-traitants du système/sous-système.
Un IPT typique se situe au niveau du programme et peut, par exemple, comprendre les disciplines fonctionnelles suivantes : ingénierie de conception, fabrication, ingénierie des systèmes, test et évaluation, sous-traitance, assurance qualité, formation, finance, fiabilité, maintenabilité, support, approvisionnement. gestion des contrats, fournisseurs et clients.
DevOps
concept
en principe
Développer et tester des systèmes de production similaires
Déployer avec un processus reproductible et fiable
Surveiller et vérifier la qualité opérationnelle
Élargissez la boucle de rétroaction
modèle de développement logiciel
modèle de cascade
Planification, analyse des besoins, conception de logiciels, rédaction de programmes, tests de logiciels, exploitation et maintenance
modèle en spirale
Développement de programmation structurée
développement itératif
modèle prototype
abandonner
Améliorer
prototypage rapide
Découvrez le modèle
Développement d’analyses conjointes
Développement rapide d'applications (RAD)
Réutiliser les modèles
chambre propre
développement de composants
Développement agile
Programmation extrême XP
Mêlée
Maigre
Manifeste Agile 4 phrases
Individus et interactions sur les processus et les outils Logiciel fonctionnel avec une documentation complète Coopération client avant la négociation du contrat Mieux vaut réagir au changement que suivre le plan
Langages et concepts de programmation
programmation structurée
Analyse et conception descendantes ; Mise en œuvre ascendante, étape par étape
Perspective orientée utilisateur, distinction stricte des étapes de travail
Inconvénients : cycle de développement long, processus de développement lourd et complexe L'audit est plus difficile et la communication avec les utilisateurs n'est pas intuitive.
programmation orientée objet
Il est composé de deux parties : classe et objet.
gentil (Classe)
La classe définit les caractéristiques abstraites d'une chose
Une classe définit les propriétés d'une chose et ce qu'elle peut faire (son comportement)
Les méthodes et propriétés d'une classe sont appelées "membres".
objet (Objet)
L'objet est une instance d'une classe.
Le système alloue de l'espace mémoire aux objets mais pas aux classes ; Les classes sont abstraites. Il est impossible pour le système d'allouer de l'espace aux choses abstraites. Les objets sont concrets.
objet = méthode de propriété
Les attributs:
Décrit la structure et les caractéristiques d'état de l'objet
méthode:
La fonction ou le processus qu'un objet peut exécuter
Méthodes de communication entre objets : transmission de messages
polymorphisme (polymorphisme)
La compréhension la plus simple de l'encapsulation est l'empaquetage, qui fait référence au masquage des propriétés et des détails d'implémentation d'un objet. Seule l’interface est exposée au monde extérieur, c’est-à-dire que l’état interne de l’objet est transparent au monde extérieur.
Encapsulation (Encapsulation)
signifie cacher les informations sur l'objet
membres du public
membre privé
hériter (héritage)
Est un mécanisme permettant de créer un ou plusieurs sous-types à partir d'une classe existante.
Architecture logicielle
Structure de données
Représentation des relations logiques entre les éléments de données
scalaire
liste chaînée
arbre hiérarchique
cohésion et couplage (forte cohésion, faible couplage)
cohésion
Reflète le nombre de types de tâches différents qu'un module peut effectuer
Plus la cohésion est élevée, plus il est facile de la mettre à jour et de la modifier, sans affecter les autres modules qui interagissent avec d'autres
couplage
De combien d'interactions un module a besoin pour effectuer ses tâches
Un faible couplage facilite la réutilisation et les modifications n'affecteront pas les autres modules.
Informatique distribuée
Architecture du courtier de requêtes d'objet commun (CORBA)
Modèle Microsoft COM/DCOM
EJB
API
L'API est un connecteur pour l'IoT (Internet des objets) qui permet aux appareils de se connecter les uns aux autres
API de transfert d'état représentatif (REST)
Conseils d'utilisation d'experts en sécurité REST
Trois chemins sûrs pour les API REST
Système d'application typique
Sécurité Internet
recueillir un message (La collecte d'informations)
Interface de gestion (Interfaces administratives)
Authentification et contrôle d'accès (Authentification et contrôle d'accès)
Validation des entrées (Validation des entrées)
réponse
Attaque par débordement de tampon
Attaque de script intersite XSS
Attaque par injection SQL
Validation des paramètres (Validation des paramètres)
Gestion des séances (Gestion des séances)
Gestion de base de données
système de gestion de base de données (SGBD)
Assemblages qui gèrent et contrôlent l’accès aux données
Organiser et stocker les données dans un certain format, Enregistrez les fichiers qui permettent aux utilisateurs d'accéder, de gérer et de mettre à jour
Focus : Collecte, stockage, récupération de données
Plus soucieux de l’intégrité, suivi de la disponibilité et enfin de la confidentialité
métadonnées
Essence : Données sur les données
Données clés liées à la définition de la source de données, à la définition de la cible, aux règles de conversion, etc.
Caractéristiques:
la cohérence des données
Les opérations doivent être conformes à la politique d'intégrité de chaque base de données, Données de transaction complètes cohérentes
partage de données
Plusieurs utilisateurs peuvent accéder à la base de données en même temps. Avec contrôle de concurrence
Récupération de données
En cas d'erreur ou de panne du système, le système peut être récupéré. Vérifier les transactions en cours de traitement au moment du crash ou du rollback, Ou une transaction a été effectuée pour maintenir la cohérence des données.
Le point de contrôle est une technique de récupération courante
contrôler en toute sécurité
Fournit divers contrôles de sécurité pour restreindre l’accès des utilisateurs
langage de base de données
Langage de définition de données (DDL), Par exemple : CREATE, DROP, ALTER et autres instructions.
Langage de manipulation de données (DML), Par exemple : SELECT (requête), INSERT (insertion), Instructions UPDATE (modifier), DELETE (supprimer).
Langage de contrôle des données (DCL), Par exemple : GRANT, REVOKE et autres déclarations.
Déclaration de contrôle des transactions (TCL), Par exemple : COMMIT, ROLLBACK et autres instructions.
Assurer une approche ou un processus efficace
Compression : la possibilité de compresser les données et d'économiser de l'espace de stockage et des E/S.
Réorganiser : récupérer l'espace inutilisé
Refactoring : ajout et modification d'enregistrements, de données, de contrôles d'accès, Configuration du disque et capacités de traitement
Modèle de base de données
modèle de base de données hiérarchique
Une structure arborescente logique composée d'enregistrements et de champs liés dans la structure arborescente logique.
Une structure arborescente contient de nombreuses branches, chaque branche possède de nombreuses feuilles ou champs de données
L'accès nécessite un chemin clair, Ne convient pas aux changements fréquents, convient aux requêtes fréquentes
Exemple : LDAP Lightweight Directory Access Protocol, structure de registre
Modèle de base de données réseau
Utilisez des graphiques orientés pour représenter les types d'entités et les relations entre les entités. Une structure redondante de type réseau, pas une structure arborescente stricte
Chaque élément de données a plusieurs nœuds parents et nœuds enfants
Récupération plus rapide par rapport aux modèles hiérarchiques
modèle de base de données relationnelle
Caractéristiques : attributs/champs (colonnes) et tuples/enregistrements (lignes)
Combinaison de produits cartésiens
Clés primaires et étrangères
La clé primaire identifie de manière unique un enregistrement
Clé étrangère : si une valeur d'attribut dans une table correspond à une clé primaire dans une autre table, et une certaine relation est établie, alors cet attribut est considéré comme une clé étrangère
Composants de base:
Langage de définition de données (DDL)
Définir la structure de la base de données (Structure) et la structure des données (Schéma)
Structure : décrit la taille de la table, l'emplacement des clés, les vues et les relations entre les éléments de données.
Schéma : décrit les types de données et leurs propriétés que la base de données stocke et sur lesquels elle opère
Définir l'organisation, les opérations d'accès et les procédures d'intégrité de la base de données
Langage de manipulation de données (DML)
Commande d'opération utilisateur
Langage de contrôle des données (DCL)
Créer des objets d'accès et d'autorisation utilisateur
Langage de requête (QL)
Faire une requête de requête à la base de données
générateur de rapports
Sortie du traitement des données de manière définie par l'utilisateur
(SGBDR) intégrité relationnelle
Intégrité de l'entité (Intégrité de l'entité)
Chaque enregistrement est identifié de manière unique par la valeur de la clé primaire
complétude sémantique (Intégrité sémantique)
Veiller au respect des règles structurelles et des règles sémantiques, Empêchez les données sémantiquement incorrectes d'entrer dans la base de données. Ceci peut être réalisé grâce à des règles contraintes par des règles
(référence) intégrité référentielle (Intégrité référentielle)
Aucun enregistrement de base de données ne peut référencer une clé primaire inexistante. Si un enregistrement contenant une clé primaire est supprimé, Tous les enregistrements référencés doivent être supprimés. (clé étrangère)
Dictionnaire de données:
Il s'agit d'une bibliothèque centrale qui décrit les éléments de données et leurs relations. Peut stocker des informations clés telles que l'utilisation des données, les relations entre les données, les sources de données et les formats de données
Le dictionnaire de données est un élément de gestion centralisé qui contrôle les données de la base de données. Décrit les références croisées entre les éléments de données et les bases de données
Décrit une collection de définitions d'éléments de données, d'objets de schéma et de clés de référence
Les objets de schéma incluent des tables, des vues, des index, des procédures, des fonctions et des déclencheurs.
Le logiciel de gestion de données lit le dictionnaire de données, détermine si le module existe et vérifie les éléments spécifiques. Les autorisations d'accès du processus utilisateur définissent également les paramètres d'autorisation d'affichage pour chaque utilisateur.
Mettez à jour le dictionnaire de données lorsque de nouveaux enregistrements, tables, vues ou schémas doivent être ajoutés
modèle de base de données orienté objet
Combiner le modèle de données objet en programmation orientée objet avec un SGBD, Peut stocker des images, des voix, des vidéos et d'autres données.
Les bases de données orientées objet utilisent des classes pour définir les propriétés et les procédures de leurs objets
modèle de base de données relationnelle-objet
Interface de programmation de base de données
Connectivité de base de données ouverte, ODBC
Base de données de connexion et d'intégration d'objets, OLEDB
Objets de données ActiveX, ADO
Interconnexion de base de données Java, JDBC
Vulnérabilités et menaces des bases de données
intégrité (intégrité)
retour en arriere
Terminez la transaction en cours, annulez les modifications et restaurez l'état précédent
soumettre
Soumettre, terminer la transaction en cours et exécuter les modifications apportées par l'utilisateur, S'il ne peut pas être exécuté avec succès, revenez en arrière
point de sauvegarde/point de contrôle (point de contrôle)
Si une erreur est détectée, l'utilisateur peut retourner à l'emplacement correspondant.
Utiliser des mécanismes de verrouillage pour faire face à la menace d'opérations simultanées
polymérisation (Agrégation)
Certaines informations ne sont pas sensibles séparément mais le sont ensemble.
Solution
Contrôler strictement l'accès aux fonctions agrégées
Il est interdit aux utilisateurs d'accéder directement aux données via les vues.
raisonnement (Inférence)
Agréger le résultat souhaité
Le raisonnement ne parvient pas à afficher les informations disponibles
Solution:
Contrôle d'accès
Contrôle d'accès basé sur le contenu
Contrôle d'accès contextuel
inhibition de l'unité (Suppression cellulaire)
Techniques utilisées pour masquer des unités spécifiques
Partitionnement de base de données (partition de base de données)
Diviser la base de données en différentes parties
bruit et perturbation (bruit et perturbation)
Techniques pour insérer de fausses informations dans des bases de données
Vue base de données
plusieurs instances (SGBDR)
Créez plusieurs tuples avec la même clé primaire et Relations entre instances définies par niveaux de sécurité
impasse (Verrouillage mort)
Autres menaces
base de données
Traitement des transactions en ligne, OLTP
Principes ACIDE
Atomicité
Soit toutes les modifications sont validées, soit la base de données est restaurée
Cohérence
Suivez l'intégrité de la base de données, Assurer la cohérence des données dans les différentes bases de données
Isolement
Les transactions ne s'affectent pas les unes les autres
Durabilité
Une fois soumis, il ne peut pas être annulé
Traitement analytique en ligne, OLAP
OLAP est la principale application des systèmes d'entrepôt de données
Convient aux décideurs et aux cadres supérieurs
Entreposage de données et exploration de données
Pour permettre la récupération d'informations et l'analyse de données, Combinez plusieurs bases de données ou sources de données en une seule grande base de données
exploration de données
Classification : regroupement des données en fonction de similitudes communes
Possibilité : Identifier les interdépendances entre les données, et appliquer des possibilités à leurs relations
système expert
programmation basée sur des règles
Les règles sont basées sur des unités logiques si-alors
composition
moteur d'inférence
Le moteur d'inférence fournit une interface utilisateur, des capacités d'accès aux fichiers externes, aux plans et aux programmes.
base de connaissances
La base de connaissances contient des données liées à un problème ou un domaine spécifique
Les systèmes experts sont souvent utilisés par IDS pour examiner automatiquement les journaux de sécurité
Réseaux de neurones artificiels
Modèle électronique basé sur la structure neuronale du cerveau humain
Le cerveau stocke les informations sous forme de modèles
Lorsque vous apprenez quelque chose et que vous l'utilisez souvent, Le chemin de connexion à l’unité de stockage d’informations sera renforcé
Les réseaux de neurones sont programmés pour avoir des capacités de prise de décision et d’apprentissage. Améliorer sa fonctionnalité grâce à un processus de prise de décision approfondi par essais et erreurs
menacer
débordement de tampon (Débordement de tampon)
passage secret Convertir la chaîne
Horaire
stockage
Réutilisation de la mémoire/réutilisation des objets (Réutilisation de la mémoire/Réutilisation d'objets)
ingénierie sociale
Trappe/Porte dérobée (Trappe/Porte dérobée)
attaque d'usurpation d'identité (attaque d'usurpation d'identité)
sécurité Internet
vandalisme
Remplacez l'image et le titre émis par l'image et le titre modifiés
perception et réalité
fraude financière
Tromperie de services et de transactions dans des environnements virtuels
accès privilégié
Restreindre l'accès aux utilisateurs privilégiés
Voler des informations sur les transactions
vol de propriété intellectuelle
attaque par déni de service
sécurité spécifique
recueillir un message
Interface de gestion
Authentification et contrôle d'accès
Gestion de la configuration
Entrez la confirmation
Confirmation des paramètres
Gestion des séances
SAML
Langage de balisage d'assertion de sécurité SAML, Il s'agit d'un protocole basé sur XML. Est une norme d’identité fédérée. Utilisé pour transmettre des informations d'authentification et d'autorisation dans différents domaines de sécurité et peut être utilisé pour mettre en œuvre une authentification unique. Semblable à Kerberos s'appuyant sur KDC, SAML dépend d'IDP (fournisseur d'identité). SAML possède une fonctionnalité appelée application des politiques.
OAuth2.0
OAuth (Open Authorization) est un standard ouvert, Permettre aux utilisateurs d'autoriser des applications tierces à accéder à des ressources privées (telles que des photos, des vidéos, des listes de contacts) stockées par l'utilisateur sur un site Web, Sans donner votre nom d'utilisateur et votre mot de passe à des applications tierces.
L'OAuth d'origine émettra un jeton avec une période de validité très longue (généralement un an ou aucune limite de validité). Dans OAuth 2.0, le serveur émettra un jeton d'accès à courte validité et un jeton d'actualisation de longue durée. Cela permettra au client d'obtenir un nouveau jeton d'accès sans que l'utilisateur ait à le refaire, et limitera également la période de validité du jeton d'accès.
déplacer le code
applet java
Le langage Java est composé de bytecode, de machine virtuelle Java Convertissez-le en code machine que la machine peut reconnaître.
L'applet s'exécute dans un bac à sable (Le bac à sable permet d'obtenir une autorisation minimale, Est un moyen efficace pour lutter contre les attaques de code malveillant alternative au logiciel antivirus)
Contrôle ActiveX
Code malicieux
Virus
Caractéristiques : Reproduction et destruction, nécessite un hôte
virus macro
Virus du secteur de démarrage
Vous pouvez supprimer les données dans la zone de démarrage ou redémarrer la zone
Virus compressé
Attachez-vous au programme exécutable et compressez-le en utilisant les autorisations de l'utilisateur
virus caché
Masquer les modifications qu'il a apportées à l'enregistrement de démarrage de la boîte de fichiers
Virus métamorphique
Faites une copie changeante, mais toujours utilisable, de vous-même
Par le bruit ou les fausses instructions, les moteurs de mutation et les nombres aléatoires Générateur pour changer l'ordre des instructions et échapper à la détection
Virus divisé
Infecte simultanément le secteur de démarrage du disque dur et les fichiers exécutables
virus auto-infligé
Éviter la détection par un logiciel antivirus en masquant son propre code
virus de script
virus des tunnels
Installez-vous sous un programme antivirus, un logiciel antivirus Lors de la détection de virus, sept intercepte cet appel
ver
Peut s'auto-répliquer sans hôte
Distribué par e-mails, téléchargements de sites Web, etc.
Réseau de zombies
Un bot est un type de malware, un malware latent code
cheval de Troie
Un programme déguisé en un autre programme
rootkit
bombe logique
Une bombe logique est exécutée lorsqu'un événement spécifique se produit
Logiciel antivirus
méthode de détection des caractéristiques (signature)
Détection heuristique (heuristique) Comportement anormal détecté
Compteur de suspicion
Certains logiciels antivirus créent de manière suspecte un bac à sable, Analyser dynamiquement le code suspect
Classification:
L'examen des informations sur un morceau de code est appelé analyse statique
Permettre à une partie du code de s’exécuter dans une machine virtuelle est appelé analyse dynamique.
Programme de vaccination
Ciblez un virus et faites-lui croire qu'il est infecté.
bloqueur de comportement
Programme antivirus
Se protéger contre les virus grâce à des méthodes administratives, physiques et techniques
Détection du spam
Filtrage bayésien
attaque par déni de service (DOS) (Cela semble être une activité normale)
Caractéristiques
Consommer la bande passante du réseau de la victime
Consommer les ressources de la victime
Classification
attaque de schtroumpf
Exploiter les failles du protocole ICMP
attaque de fragmentation
Exploiter les failles du protocole UDP
smurf et farggle sont deux façons d'exploiter les failles du protocole et Exemple d'utilisation d'un réseau amplifié pour lancer DoS
Attaque d'inondation SYN
Utilisation de la négociation à trois d'une connexion TCP
Limite de file d'attente de connexion dépassée
attaque en forme de larme
Exploitez ce défaut de conception en envoyant de très petits paquets fragmentés
Attaque par déni de service distribué (DDOS)
Le routage des dolines est l'un des moyens de gérer les DDOS
Évaluer l’efficacité de la sécurité des logiciels
Certification et accréditation
effet
Intégrez des capacités de sécurité de l’information dans les systèmes d’information fédéraux grâce à l’application des meilleures pratiques de gestion, de contrôles de sécurité opérationnels et techniques.
Maintenir la connaissance de l'état de sécurité des systèmes d'information grâce au renforcement continu des processus de surveillance
Fournir des informations importantes à la haute direction pour guider les décisions, y compris l'acceptation des risques pour les opérations de l'organisation et des risques pour les actifs, les individus, d'autres organisations ou les pays découlant de l'utilisation et de l'exploitation des systèmes d'information ;
Audit et journalisation des modifications
Fonction d'audit des informations
Les procédures d'audit aident à détecter toute activité inhabituelle
Le niveau et le type d'audit dépendent des exigences d'audit du logiciel installé et de la sensibilité des données traitées ou stockées par le système.
Les ressources système doivent être protégées lorsqu'elles sont disponibles
Le rôle de l’audit des journaux
La nécessité d'établir une base de référence
Performances des différents serveurs et systèmes
Fonctions d’application et problèmes d’exploitation et de maintenance
Détection efficace des intrusions
analyse médico-légale
Se conformer aux diverses lois et réglementations
Intégrité des informations
L'application compare ou rapproche ce qui est traité avec ce qui devrait être traité
Comparer les totaux
Vérifier le numéro de série
exactitude des informations (contrôle des applications)
Vérifier l'exactitude de la saisie : la validation des données et les contrôles de validation doivent être intégrés dans les applications appropriées.
Vérification des caractères : comparez les caractères saisis aux types de caractères attendus, tels que des chiffres ou des lettres.
Vérifications de plage : valider les données d'entrée par rapport aux limites supérieure et inférieure de la réservation
Vérifications des relations : comparez les données d'entrée aux données du fichier d'enregistrement principal
contrôle de plausibilité (Contrôles de caractère raisonnable) : comparer les données d'entrée aux normes attendues, à d'autres formes de contrôles d'intégrité
Limites de transaction : vérifiez les données saisies et comparez-les avec les limites fixées par la direction dans la transaction.
Analyse et atténuation des risques
Gestion des risques
La gestion des risques est un processus continu qui couvre tout le cycle de vie du projet
Le processus de gestion des risques comprend la planification, l'identification, l'analyse, la surveillance et le contrôle des risques.
L'identification des risques commence avant le lancement du projet et le nombre de risques augmente à mesure que le projet mûrit.
Le processus de documentation des risques comprend l'atténuation des risques et la planification de la continuité
Les mesures de réduction des risques peuvent réduire la probabilité qu'un événement se produise. L'atténuation des risques entraînera des coûts et nécessitera une analyse coûts-avantages ;
La planification de la continuité ou une série d'activités entreprises au moment ou avant qu'un événement ne se produise. La planification peut être des activités préventives avant qu'un risque ne se produise ou des activités après qu'un risque se produise.
Stratégies d’analyse et d’atténuation des risques
S'intégrer au processus SDLC ainsi qu'au processus de gestion du changement de l'organisation
Utiliser des méthodes standardisées d’évaluation des risques et signaler les risques aux parties prenantes
Suivre et gérer les faiblesses identifiées lors de l’évaluation, de la gestion du changement et de la surveillance continue
Actions correctives - Gestion des correctifs
Paramètres de base
Recherche
Comparaison MD5 des empreintes digitales et des signatures numériques
Vérification de l'intégrité des fichiers
Évaluation et tests
Tester les correctifs dans un environnement de test
Atténuation (« restauration »)
Déploiement (« déploiement »)
Désormais déployé sur des systèmes moins critiques
Validation, reporting et journalisation
Journal, enregistrement et archivage des mises à jour des correctifs
Tester et vérifier
La mise en œuvre de mesures de contrôle des risques nécessite des tests
Les évaluateurs de sécurité ou d'autres entités indépendantes vérifient et confirment les vulnérabilités qui nécessitent une vérification
dans les grandes organisations
Des équipes indépendantes de vérification et de validation (IV&V) déterminent si les problèmes de sécurité et les vulnérabilités ont été résolus
Les développeurs et les propriétaires de systèmes ne peuvent pas autoriser les déclarations selon lesquelles les risques ont été atténués sans le consentement d'une entité indépendante.
Signature de code
La signature de code est une technique utilisée pour garantir l'intégrité du code, identifier qui a développé ce code et déterminer à quoi le développeur voulait que ce code soit utilisé.
Les certificats de signature de code et les certificats numériques aident les utilisateurs à éviter de télécharger des fichiers ou des applications qui fuient.
Lorsque le code est signé, il peut déterminer l'authenticité du code et détecter s'il a été modifié par quelqu'un d'autre que le développeur.
La signature de code est utilisée pour
Assurez-vous que les extraits de code ne sont pas modifiés
Identifiez la source du code (développeur ou signataire)
Déterminer si le code mérite la confiance pour un objectif spécifique
La signature du code se compose de trois parties
Sceaux, certificats numériques et identifiants uniques
Ce que la signature de code ne peut pas faire
Il n’est pas garanti que les extraits de code soient exempts de failles de sécurité
Il n'y a aucune garantie que l'APP ne chargera pas de code dangereux ou modifié (tel que des plug-ins irréalisables) pendant l'exécution.
Il ne s'agit pas d'une technologie de gestion des droits numériques (DRM) ou de protection contre la copie.
Tests de régression et d'acceptation Tests de régression et d'acceptation
Considérations relatives aux tests
Testez les bugs rapidement
Observez les effets secondaires des correctifs
Rédigez un plan de test de régression pour chaque correction de bug
Si deux tests ou plus sont similaires, déterminez lequel est le moins efficace et jetez-le.
Identifier les plans de tests, les livrer et les documenter en continu
Préoccupation liée aux problèmes fonctionnels plutôt qu'à la conception
Déterminez les modifications apportées aux données, quelle que soit leur taille, et détectez toute corruption qui en résulte
Suivez l'impact des modifications sur la mémoire du programme
Les tests de régression
L'approche la plus efficace est une bibliothèque de tests basée sur un pool de cas de tests standards qui peuvent être exécutés à chaque fois qu'une nouvelle version est créée.
La difficulté de créer une bibliothèque de tests consiste à déterminer quels cas de test inclure
Les tests automatisés et les cas de test impliquent également des conditions aux limites et un timing, qui appartiennent tous à la bibliothèque de tests.
Pour que les tests automatisés soient efficaces, ils sont rentables et efficaces lorsqu'ils intègrent suffisamment de variables dans le cadre d'une méthodologie de test complexe.
test d'admission (Test d'admission)
Tests formels effectués pour déterminer si un système répond à ses critères d'acceptation et pour permettre au client de déterminer s'il doit accepter le système
Dans le développement agile, les tests/critères d'acceptabilité sont généralement établis par le client professionnel et décrits dans le langage du domaine métier.
Étape SwA (software assurance) (Assurez-vous que le logiciel développé ou acheté répond aux exigences de sécurité Modèle de maturité de l'assurance logicielle SAMM SAMM est un framework utilisé pour concevoir des logiciels sécurisés et adaptés aux risques spécifiques d’une organisation.)
phase de planification
Obtenez les exigences identifiées pour les services ou produits logiciels, identifiez les méthodes logicielles de substitution potentielles et identifiez les risques de substitution.
Les exigences de développement sont incluses dans l’énoncé des travaux
Établir des stratégies d'acquisition et inclure l'identification des risques associés à diverses stratégies d'acquisition de logiciels
Élaborer des critères d’évaluation et un plan d’évaluation
Phase d'appel d'offres
Créer/émettre une demande de proposition (RFP) avec description du travail, description de l'offrant, termes et conditions, pré-qualification et certification,
Évaluer les propositions soumises par les fournisseurs en réponse à une demande de proposition (RFP) ou à un appel d'offres (ITT)
Terminer les négociations contractuelles, y compris les modifications des termes et conditions
Phase de suivi et d’acceptation
Cette étape consiste principalement à surveiller le travail du fournisseur et à accepter la prestation finale ou la livraison du produit comme convenu dans le contrat.
Établir et convenir du calendrier de travail du contrat
Mettre en œuvre des procédures de contrôle des changements
Examiner et accepter les livrables du logiciel
phase de suivi
Maintien en puissance (y compris la gestion des risques, la gestion des cas d'utilisation de l'assurance et la gestion du changement)
Élimination et hors ligne
Dans les phases suivantes, les risques logiciels doivent être gérés grâce à une analyse continue des cas d'utilisation de l'assurance et ajustés pour réduire les risques.
Les professionnels de la sécurité doivent s'assurer que des politiques et procédures SwA bien documentées sont en place dans toute l'entreprise.
Des erreurs inattendues entraînent des opérations défectueuses
Insertion délibérée de code malveillant
Voler des informations importantes ou sensibles
Voler des informations personnelles
Modifier des produits, insérer des agents ou corrompre des informations