web-dev-qa-db-fra.com

Vecteur d'attaque, surface d'attaque, vulnérabilité, exploit: où est la différence?

J'ai du mal à identifier la différence entre le vecteur d'attaque/la surface d'attaque/la vulnérabilité et l'exploitation.

Je pense que la différence entre une vulnérabilité et un exploit est la suivante: Une vulnérabilité est quelque chose qui pourrait être utilisé pour faire du mal (par exemple un débordement de tampon), mais ne signifie pas nécessairement que tout peut être fait. Un exploit exploite une vulnérabilité de manière "productive" (par exemple en lisant les octets suivants en mémoire après avoir déclenché un message d'erreur).

Selon Wikipedia (vulnérabilité)

Pour exploiter une vulnérabilité, un attaquant doit disposer d'au moins un outil ou une technique applicable pouvant se connecter à une faiblesse du système. Dans ce cadre, la vulnérabilité est également connue sous le nom de surface d'attaque.

La surface d'attaque et la vulnérabilité semblent donc être synonymes dans le contexte de la sécurité informatique (?)

Quelqu'un pourrait-il définir les mots ou donner des exemples de la différence entre eux?

22
Martin Thoma

Les 4 termes sont très différents:

Décrit l'attaque:

  • Attack Vector: la 'route' par laquelle une attaque a été effectuée. SQLi est généralement exécuté à l'aide d'un client de navigateur pour l'application Web. L'application Web est le vecteur d'attaque (peut-être aussi Internet, l'application cliente, etc.; cela dépend de votre concentration).
  • Exploit: la méthode pour profiter d'une vulnérabilité. Le code utilisé pour envoyer des commandes SQL à une application Web afin de tirer parti des entrées utilisateur non désinfectées est un "exploit".

Décrit la cible:

  • Attack Surface: décrit à quel point on est exposé aux attaques. Sans pare-feu pour limiter le nombre de ports bloqués, votre "surface d'attaque" correspond à tous les ports. Le blocage de tous les ports mais le port 80 réduit votre "surface d'attaque" à un seul port.
  • Vulnérabilité: une faiblesse qui expose le risque. Les entrées utilisateur non autorisées peuvent poser une "vulnérabilité" par une méthode SQLi.

Nous pouvons également considérer cela du point de vue d'un utilisateur comme cible. Un attaquant envoie un PDF PDF en pièce jointe à un utilisateur. L'utilisateur ouvre le PDF, est infecté et un logiciel malveillant est installé. Le "vecteur d'attaque" était le courrier électronique, l '"exploit" était le code dans le PDF, la "vulnérabilité" est la faiblesse du visualiseur PDF qui a permis l'exécution du code, la "surface d'attaque" est l'utilisateur et le système de messagerie.

26
schroeder

Cela est vrai à ma connaissance, mais je pense que certains pourraient avoir de légères améliorations sur le libellé:

  • Le vecteur d'attaque est le "type" de l'attaque, c'est ce qui permet à l'attaquant de réussir.
  • La surface d'attaque est le nombre de points de terminaison qui peuvent être attaqués, par exemple si vous ciblez un site Web, avec un langage de script (PHP/Node ...) et une base de données (MySql/Postgre ...), la surface d'attaque est plus grande que si vous ciblez une seule page statique sans contenu dynamique ni base de données.
  • Une vulnérabilité est une faiblesse d'un système qui peut être utilisée pour modifier le comportement prévu du système, parfois elles permettent des vidages de mémoire, parfois elles permettent d'usurper l'identité d'un utilisateur ...
  • et un exploit est l'outil utilisé pour poursuivre une attaque.
2
Purefan

Sur la base de ma compréhension et en considérant une application Web simple comme environnement de test, je peux voir la relation entre eux comme ci-dessous:

La surface d'attaque est utilisée pour identifier les composants/parties du système/web qui peuvent contenir des vulnérabilités (par exemple, fonction d'authentification d'application web)

L'évaluation de la vulnérabilité s'applique sur le composant/la partie identifié (authentification) qui se trouve dans l'étape des surfaces d'attaque afin de trouver des vulnérabilités (par exemple, aucune validation d'entrée)

Le vecteur d'attaque (types d'attaques) fait référence à l'identification des attaques qui peuvent être effectuées, en fonction des vulnérabilités identifiées (pas de validation d'entrée) telles que SQLI, XSS, FI, etc., etc.

L'exploitation est recommandée pour lancer la ou les attaques (par exemple, attaque SQLI, attaque XSS, attaque FI, ..etc) contre une vulnérabilité identifiée (pas de validation d'entrée) afin d'avoir accès aux données ou au système sur la machine victime.

1
Vahab Iranmanesh