2017-09-04 4 views
1

Il est mentionné sur Microsoft Docs que les conteneurs fournissent l'isolation et la sécurité. Considérez un scénario dans lequel une application accepte le code utilisateur et l'exécute sur le serveur. Donc, si nous hébergeons l'application sur un conteneur hyper-v sur un serveur Windows, alors nous pouvons être sûrs que tout ce qu'un utilisateur écrira, il ne pourra pas affecter le bien-être de notre application et le conteneur qui l'héberge.Exécution de code non approuvé dans les conteneurs Windows Hyper-V

J'ai passé la semaine dernière à lire des documents Microsoft sur des conteneurs, mais je n'ai pas encore trouvé de réponse directe à cette requête. Jusqu'à présent, j'ai compris que notre système d'exploitation hôte ne sera pas affecté. De plus, toutes les modifications apportées par l'application seront capturées dans un bac à sable, de sorte que notre système d'exploitation hôte ne court presque aucun risque.

Répondre

1

Les conteneurs isolent une application avec l'espacement des noms de noyau. Cela signifie que les applications partageront toutes le même noyau et qu'un exploit de niveau noyau exécuté à l'intérieur d'un conteneur pourrait échapper à ce conteneur et avoir un impact sur le reste de l'hôte. Docker permet diverses options pour exposer des parties de l'hôte au conteneur, cela dépendra donc de la façon dont vous exécutez le conteneur. Et hors de la boîte, docker n'a pas de limites sur l'utilisation, de sorte que vous pouvez être DoS'd par une application non approuvée. Les conteneurs offrent plus de sécurité que tout ce qui se passe à l'extérieur d'un conteneur sur le même hôte, mais moins de sécurité que si vous produisiez une machine virtuelle par application entièrement distincte. Vous devez décider où sur l'échelle de sécurité vous devez être, et combien de temps et d'expérience vous avez pour verrouiller l'environnement du noyau et du conteneur.

+0

Salut merci pour l'info. Mais ce dont je parlais était des conteneurs hyper-v, donc il n'y a pas de problème de partage du noyau avec l'hôte. Aussi ma préoccupation est le bien-être de l'application. Donc, si je tourne une VM et lance l'application à l'intérieur, alors mon hôte sera en sécurité en cas d'attaque, mais l'application peut tomber. Mais puisque l'image de conteneur est immuable, je suis confus que même si l'utilisateur écrive un code non fiable, si mon application tournera bien ou pas. Les attaques DOS ne sont pas quelque chose que j'ai l'intention d'empêcher avec des conteneurs. Seules les attaques par code malveillant. –

+1

Si vous exécutez le code dans la même machine virtuelle ou espace de noms que votre application, ce code peut retirer votre application. Le cas d'utilisation le plus courant consiste à exécuter du code non sécurisé seul dans son propre conteneur. Et un code malveillant peut attaquer votre serveur par DoS, par ex. ':() {: |: & };:' fera tomber la plupart des hôtes qui ont bash. L'utilisation de l'ensemble de votre processeur, de votre mémoire ou de toute autre ressource telle que l'ID de processus ou l'espace de pile est une attaque DoS. – BMitch

+0

J'ai un mécanisme que tous les codes entrés par l'utilisateur seront automatiquement tués après 5 secondes. Donc, ce n'est pas une très grande préoccupation pour nous. Je crois qu'un tel code aura un tel effet pendant 5 secondes maximum. En dehors de cela, puis-je croire que l'application est à l'abri de toutes les autres attaques comme la suppression de fichiers, modification de registre, etc Si l'application continue à fonctionner en cas d'attaques, je crois que nous allons aller de l'avant avec des conteneurs hyper-v penser un moyen d'empêcher DoS comme propre conteneur pour le code malveillant ..... –