VPN killer. Accès à distance approprié aux serveurs de combat

L'opinion exprimée dans cet article est l'opinion personnelle de l'auteur. Il souligne que cela peut ne pas coïncider avec l'avis de son employeur, de ses supérieurs et du service de sécurité.

L'une des choses les plus cool de notre entreprise en termes d'infrastructure est la façon dont nous mettons en œuvre l'accès à distance. C'est juste une magie super-méga-protégée. J'ai parlé avec beaucoup de mes collègues agents de sécurité et auditeurs, et il semble que nous ayons accidentellement inventé une toute nouvelle histoire en mélangeant des solutions commerciales et nos logiciels. Et donc, j'ai pensé, il serait intéressant de plonger profondément dans les détails techniques de la façon dont l'industrie fonctionne avec des solutions d'accès à distance obsolètes et comment nous les mettons en œuvre.

Bon VPN personne ne conseillera pas


Je vais commencer par une déclaration forte: tous les VPN sont des ordures .

Le VPN, comme d'autres technologies numériques, peut être configuré de sorte que s'il est piraté, le monde ne s'arrêtera pas. Cependant, personne ne fait ça ... mais théoriquement ils peuvent!

Dans 99,95% des cas, le VPN est configuré pour:

  1. Création d'un pont réseau entre l'appareil (ordinateur portable ou autre serveur)
  2. ... et un plus grand réseau de serveurs (par exemple, dans le cloud ou sur site )
  3. ... et Internet, protégés par une couche supplémentaire de cryptage



Ce n'est pas une bonne idée. Imaginez si un virus s'est installé sur votre ordinateur portable et que vous vous connectez via VPN à un réseau de serveurs de combat? Ta Dam! Le virus dispose désormais d'un accès LAN à votre production. Qu'y a-t-il à l'échappement? Tristesse. Beaucoup de tristesse.

D'accord, disons que le cas du virus est tiré par les cheveux. Mais qu'en est-il du fait qu'un pirate peut infiltrer le VPN lui-même, par exemple, en utilisant une vulnérabilité à l'intérieur de l'appareil ou du logiciel sur lequel le VPN fonctionne? Donc, après avoir pénétré directement dans le réseau cible? C'est une affaire sérieuse et loin d'être théorisée. Vous pouvez en savoir plus dans l'article sur la façon dont Heartbleed a été utilisé pour capturer un VPN à l'aide du vecteur d'attaque, dont j'ai averti directement dans mon blog .

Il n'y a pas si longtemps, une vague de vulnérabilités VPN a balayé le monde entier, qui ont été immédiatement utilisées par les cybercriminels pour accéder aux réseaux cibles. Mais ce n'est pas surprenant, non? Ces systèmes «regardent» directement dans le réseau, sans aucun autre mécanisme de protection devant eux. Les correctifs et les correctifs ne sont généralement pas appliqués automatiquement et impliquent des mécanismes propriétaires contrôlés par des logiciels propriétaires fonctionnant sur un système d'exploitation propriétaire. Eh bien, bonne chance là-bas.

Est-il difficile de trouver ces appareils VPN? Avant d'écrire cet article, je n'avais jamais essayé, donc je ne savais pas avec certitude. Environ une demi-heure dans Shodan.io et s'il vous plaît - quelques résultats majeurs de la sortie:

  • Thomson Reuters est une entreprise de 41 milliards de dollars avec 26 000 employés, dont la moitié provient des services financiers.
  • SAP Concur est un service de gestion de voyages, le casser donnerait un tas de données personnelles et de paiement de toutes sortes.
  • Assurance progressive - données personnelles et informations médicales personnelles, associées à certaines données de paiement.
  • Chevron Phillips Chemical - le nom parle de lui-même.

Eh bien, ce n'est probablement pas très bon. Si ces choses sont si faciles à trouver, cela ne semble pas être la solution parfaite pour les mettre en ligne. Avons-nous un autre choix?

Zéro confiance


Zero Trust [littéralement: «zero trust»] - cela signifie essentiellement que vous autorisez chaque connexion, et ne supposez pas que certaines d'entre elles sont fiables car elles sont déjà à l'intérieur de votre réseau. Si vous voulez mieux comprendre ce terme et repenser votre approche des affaires, lisez cet article sur Network World (désolé pour un autre auto-RP éhonté).

Nous avons acheté la solution Okta Advanced Server Access (OASA) pour introduire l'autorisation Zero-Trust sur les serveurs de combat.
OASA est cool pour trois raisons:

1. Ceci est juste un aperçu de la configuration d'OpenSSH sur les stéroïdes


Sous le capot, la plateforme OASA est un déploiement bien géré d'OpenSSH (la même commande ssh dans votre console). Et OpenSSH est une solution d'administration à distance extrêmement bien testée et sécurisée. Soit dit en passant, depuis 2003, OpenSSH n'a pas eu une seule vulnérabilité qui pourrait conduire à un accès à distance non autorisé dans la configuration standard.
Les points d'entrée dans ce schéma sont des instances régulières d'Amazon Linux 2. EC2. Ainsi, la zone d'attaque est extrêmement petite. N'oubliez pas: l'un des principaux problèmes liés à l'utilisation d'un VPN est la configuration logicielle / OS propriétaire qui empêche les correctifs automatiques. La possibilité de mettre à jour nos points d'entrée réseau avec le reste de l'infrastructure est une grande victoire.

2. Il n'y a pas de ponts réseau


Comme je l'ai mentionné ci-dessus, la plupart des VPN sont configurés pour créer un pont réseau entre un périphérique réseau, tel qu'un ordinateur portable, et un réseau de serveurs sur Internet. Un de mes points les plus douloureux dans les VPN est qu'ils interceptent tout votre trafic réseau. Vous pouvez, bien sûr, reconfigurer pour un comportement différent, mais nos clients et les protocoles de sécurité NIST 800-53 SC-7 (7) en ont généralement besoin.

C'est un bon exemple de la façon dont certaines mesures de sécurité sont loin derrière le développement de l'industrie. Dans le monde de la vieille école, le VPN pourrait être la seule couche pour crypter le trafic. Les auditeurs pensent parfois que sans protection VPN, vous enverrez vos données via des canaux non cryptés.

Heureusement, il y a une meilleure façon. Dans le modèle OASA, une connexion est établie individuellement entre vous et le serveur. Par exemple, en réponse à la demande «Je souhaite accéder à l'instance EC2 i-028d62efa6f0b36b5», votre système se connecte au point d'entrée du réseau, puis au serveur cible. OASA protège également ces connexions en émettant des certificats clients de dix minutes après la première vérification de vos données via l' authentification unique , puis en vérifiant que vous êtes sur l'appareil de confiance prévu (et vérifié).

Il y a peu de liberté pour parcourir le net. Un administrateur peut entrer un point d'entrée réseau et transférer des ports vers une autre destination, mais cette fonction est désactivée par défaut et doit être explicitement demandée lors de l'établissement d'une connexion. Et la meilleure partie est que personne ne m'oblige à transporter tout le trafic via le cloud privé virtuel, car cela ne s'appelle pas un «VPN».

3. Accès réseau dédié et IP aléatoire


Ces points d'entrée réseau sont déployés séparément pour chaque cloud privé virtuel (par exemple, un pour la production, un pour le transfert, un pour le développement, etc.). De plus, chacun d'eux est étroitement surveillé par notre solution de sécurité, qui enregistre toutes les activités et filtre le trafic. Si le cracker est à l'intérieur de l'un des points d'entrée, quelque chose ne fonctionnera pas non plus. Dans toutes les situations, notre système de sécurité ne permet pas d'accéder aux ressources protégées simplement parce que vous êtes déjà dans le cloud privé virtuel.

Un de mes mécanismes de défense préférés est apparu par accident. Lorsque nous avons commencé à configurer les points d'entrée, chacun était configuré pour une adresse IP statique à partir d'AWS. Assez rapidement, nous avons constaté que ces adresses IP n'étaient parfois pas liées aux instances EC2 au bon moment, ce qui pouvait conduire à une auto-configuration OASA incorrecte. Ayant connu les délices d'une douzaine de correctifs différents en production, je ne pouvais pas le supporter et j'ai simplement supprimé toute l'histoire des adresses IP statiques - et cela a fonctionné.



OASA a juste besoin d'une adresse IP accessible sur Internet; elle n'a pas besoin d'être connue à l'avance. Lorsque le client est prêt à établir une connexion, un GUID unique est demandé, à l'aide duquel l'IP est déterminée:

  • Utilisateur: je veux me connecter pour me connecter à vpc-99f2acff
  • Application client OASA: J'ai défini vpc-99f2acff comme serveur connu avec le GUID 25af5d4f-e657-4583-b0bd-beb1ca4f0c1f
  • Serveur OASA: K 25af5d4f-e657-4583-b0bd-beb1ca4f0c1f accessible au 3.22.198.24, voici les certificats
  • Application client OASA: certificats installés, connexion à 3.22.198.24 via SSH ...

Cela signifie que chaque instance de notre infrastructure de point d'entrée (un article séparé à ce sujet à votre attention) est livrée avec un tout nouvel ensemble d'adresses IP. Ainsi, les pirates aléatoires devront rechercher une adresse IP parmi des dizaines de millions, et leur nombre augmente chaque jour. Malheureusement pour eux, cette recherche est complètement vaine, grâce à ...

Frappe de port d'entreprise


Port knocking [littéralement: frapper sur les ports] est une chose que, en principe, personne n'utilise dans le monde réel, mais qui est très amusant à configurer. En bref, le détournement de port est une séquence de «bosses» vers divers ports de réseau fermés, et si la séquence se répète correctement, le «vrai» port s'ouvre sur votre IP. Élégant, mais peu pratique dans de vrais grands projets.
J'ai été inspiré par l'idée et j'ai pensé comment améliorer l'idée. La solution que j'appelle Enterprise Port Knocking était donc née .

Je voulais créer un mécanisme qui garantirait la proximité de nos points d'entrée sur Internet, jusqu'à ce que quelqu'un puisse y accéder. Ce mécanisme était censé être facile à utiliser, fiable et authentifié d'une manière existante.
J'ai esquissé l'architecture du mécanisme et je l'ai accompagnée dans notre équipe d'ingénieurs incroyablement talentueuse. Quelques semaines plus tard, nous avons commencé.

Le service est assez simple et se déploie en tant que fonction AWS Lambda, avec un accès via l'AWS API Gateway (la joie d'une architecture sans serveur!) Pour une utilisation facile et fiable. Le mécanisme fonctionne comme ceci:

  1. L'utilisateur est authentifié avec succès via SSO.
  2. L'application contourne les comptes AWS configurés à la recherche d'un groupe de sécurité spécialement marqué (concept AWS pour les règles de pare-feu)
  3. L'application met à jour le groupe de sécurité, permettant l'accès à l'adresse IP du demandeur. Une règle du groupe de sécurité stocke également l'horodatage d'ajout.
  4. La tâche cron efface la liste des adresses IP autorisées à chaque période de temps spécifiée.

Grâce à cette situation, nous proposons désormais une solution d'accès à distance totalement fermée à Internet et nécessitant une authentification à deux facteurs via notre base de données utilisateurs avant d'ouvrir le port dans le pare-feu .

Et c'est facile!


Je n'ai pas encore évoqué la simplicité de fonctionnement de ces mécanismes. Je sais qu'il existe de nombreux composants, mais ensemble, ils créent une autorisation très simple:

  1. Connectez-vous via SSO.
  2. Cliquez sur le lancement d'Enterprise Port Knocking dans le portail SSO.
  3. Dans le terminal, à l'aide de la commande SSH, spécifiez la destination comme ID de l'instance EC2 cible. Le système OASA est suffisamment intelligent pour déterminer le point d'entrée à utiliser et tout le reste se produit automatiquement!



L'ensemble de ce système est une grande victoire pour notre infrastructure, pour notre respect de tous les accords de sécurité et pour la sécurité de nos clients. Les utilisateurs apprécient vraiment la facilité de connexion à nos serveurs, car vous n'avez pas besoin de passer par une authentification supplémentaire ou de vous souvenir du VPN à utiliser. Et j'aime vraiment mon sommeil calme. Tout le monde a gagné avec le nouveau modèle!

Eh bien, sauf pour les pirates, bien sûr.


All Articles