web-dev-qa-db-fra.com

Comment calculer votre dette de sécurité de la demande?

Dette de sécurité de l'application a quelques similitudes de la dette technique, mais il y a peu de différences que nous devons réfléchir à leur décider si notre charge de la dette de sécurité s'est trop élevée et doit être payée. J'aimerais savoir comment calculer les dettes de sécurité dans nos applications bancaires?

11
Filipon

À ce stade, il n'y a pas de méthode normalisée de calcul de la taille (inventaire) de la dette technique. Je travaille avec une équipe de recherche composée de chercheurs de doctorat de l'Université de Glasgow et MIT afin de commencer à créer un cadre pour résoudre ce problème. Nous combinons l'analyse de processus théoriques de MIT pour Sécurité ( STPA-SEC ) et les concepts de l'architecture navale navale, connu sous le nom de conception de la vulnérabilité . Alors que les techniques sont destinées à analyser une organisation et tout sous-processus, il est Convient également à une seule application comme cible d'analyse.

Ce qui suit est en cours de développement et de test. Les concepts sont néanmoins utiles.

Ingénierie de la vulnérabilité de la théorie des systèmes

Calcul de la "dette de sécurité des applications", à mon équipe, n'est qu'une autre forme de "ingénierie de la vulnérabilité de la théorie des systèmes". Ceci est différent de la gestion typique de la vulnérabilité qui peut être adressée avec des scanners et des correctifs automatisés et de la configuration. Au lieu de cela, il examine le "système" en question (votre application, dans ce cas) dans tout son contexte de personnes, de processus et de technologies, car il se connecte à d'autres systèmes. De ce point de vue de la théorie des systèmes, vous déterminez ensuite lorsque les vulnérabilités et les faiblesses (vulnérabilités proches futures) sont.

Ces vulnérabilités pourraient être à travers le spectre de:

  • SQLI caché derrière des mesures d'atténuation (vulnérabilités SQLI nues et exposées sont une problème, pas A dette)
  • sous-systèmes non non attribués
  • processus de correction manuelle nécessitant une intervention humaine pour déclencher et compléter
  • manque d'audit

Toutes ces choses représentent une "dette de sécurité" ou une "vulnérabilité de systèmes".

Notez que cette approche n'est pas concernée par Menaces Bien que des vulnérabilités puissent être définies par une compréhension des menaces. Ce n'est pas un processus de modélisation des menaces (voir la dernière section).

Étape 1: Analyse de la vulnérabilité (forme hyper-condensée)

  1. Définir le problème de sécurité (qu'est-ce que tu crains?)
  2. Identifier Types du contrôle non sécurisé (par exemple la logique du programme, la maintenance du système, l'assurance)
  3. Identifier Causes des types de contrôle non sécurisés (par exemple Processus, technologie, ressources, connaissances, culture, etc.)
  4. Déterminer si ces causes existent actuellement (état constant ou intermittent)

Vous vous retrouvez avec une analyse systémique des vulnérabilités actuelles de votre système.

Mais maintenant, vous devez toujours déterminer si vous avez besoin de do quelque chose à ce sujet.

Étape 2: Analyse de la commande de réponse (forme hyper-condensée)

  1. Déterminez les contrôles de réponse/récupération autour de chaque vulnérabilité identifiée (pouvons-nous détecter et répondre aux événements non sécurisés?)
  2. Déterminer quelles contrôles de réponse/de récupération ne peuvent contenir suffisamment d'incidents qui exploitent ou sont causés par les vulnérabilités
  3. Déterminez si les contrôles suffisants de réponse/récupération souffrent de vulnérabilités actuelles pouvant entraîner un contrôle insuffisant.

Vous vous retrouvez avec une liste de vulnérabilités de sécurité avec des atgos insuffisantes. C'est votre dette.

Notez que tous les éléments résultant de ce processus sont technologiques (en fait, de nos études de cas initiales, peu d'articles sont technologiques). Vous constaterez peut-être que votre problème SQLI est en réalité une faiblesse des processus d'examen du code résultant d'une culture de développement de la mise au point de fonctionnalités et non de la qualité du code. La dette, dans ce cas, est culturelle.

Étape 3: Alignement des risques

C'est ici que vous commencez à concevoir les compromis entre 1) réduire les vulnérabilités de différentes manières (personnes ou processus ou technologies) et 2) amélioration des contrôles de réponse de sorte que les objectifs du système puissent être pris en charge =.

Tout comme tout processus d'atténuation des risques, vous devez garder des coûts d'atténuation plus bas que les pertes attendues et tout doit être achevé pour soutenir les objectifs du système.

Modélisation de la vulnérabilité et modélisation de la menace

En prenant une approche de la théorie des systèmes et de la vulnérabilité, nous avons constaté que ce processus favorise des recours rentables et cible la cause fondamentale des problèmes, et non des effets des problèmes. Il identifiera également des zones qui doivent être supprimées afin de réduire les vulnérabilités (processus soustractif).

Les approches axées sur la menace ont tendance à être réactives, coûteuses, technologiques et additives (il y a une nouvelle menace, nous avons besoin de plus de choses!). Cela a pour effet de créer davantage de dettes, de ne pas la réduire.

6
schroeder

Le meilleur conseil que j'ai entendu est de comprendre une liste de tous les types d'événements pouvant survenir à la suite de votre dette de sécurité. Ensuite, essayez d'estimer le coût de chacun de ces événements. Ensuite, déterminez la probabilité que ces événements se produisent par an. Votre formule finale devrait ressembler à quelque chose comme

Probability(event type 1) * Cost(event type 1) + 
Probability(event type 2) * Cost(event type 2) + 
... +
Probability(event type N) * Cost(event type N)

Par exemple, disons que vous déterminez qu'il existe deux problèmes qui pourraient être exploités par votre garantie de sécurité: Injection SQL + CSRF. (J'ai inventé des chiffres pour faciliter les calculs):

  • Nous prévoyons 5 attaques d'injection SQL réussies par an, chacune d'entre elles aurait un coût de récupération de 100 000 $
  • Nous attendons 10 attaques de CSRF réussies avec un coût de récupération de 25 000 $

Votre coût estimé de la dette de sécurité pour l'année en question serait la suivante:

(5 * 100 000 $) + (10 * $ 25 000) = 750 000 $

6
Dan Landberg