8
votes

Quel risque la réflexion pose-t-elle? (Confiance moyenne)

Le manque de réflexion dans les environnements d'hébergement de confiance moyenne semble causer beaucoup de problèmes pour de nombreuses applications Web populaires.


0 commentaires

3 Réponses :


4
votes

Je n'ai jamais rien trouvé de «mauvais» qu'un utilisateur sera capable de faire l'utilisation de la réflexion. Les gens sont effrayés parce que vous êtes capable d'appeler des méthodes marquées comme privées ou protégées, mais d'après ce que j'ai vu, aucun d'entre eux n'a imposer de risque réel.

Très probablement, c'est au moins dans la partie une technique de vente pour vous amener à débuter pour (semi-) hébergement dédié :)


0 commentaires

6
votes

Réflexion permet à un code malveillant d'inspecter toutes sortes de secrets: pas tant de propriété intellectuelle (bien que sûre, cela aussi), mais des données qui doivent être privées et sécurisées, telles que les chaînes de connexion, les mots de passe, les données de compte bancaire, etc. / p>

Bien sûr, de nombreux programmes exposent ces données comme une évidence à travers des vecteurs encore plus facilement compromis, mais il n'y a aucune raison d'augmenter la surface d'attaque d'une application.

édité pour apporter une partie de la conversation des commentaires:

Il est probablement vrai que le risque réel est un accès sans restriction du système de fichiers, ce qui fait partie de la réflexion en un véritable danger. Si un mauvais acteur peut obtenir un assemblage (ou quelque chose qui est compilé dans un assemblage) dans votre répertoire virtuel, vous avez des problèmes si elles ont la permission de réflexion. (Bien sûr, si cela se produit, il existe également d'autres problèmes potentiels, mais cela ne devrait pas escompter cette vulnérabilité particulière.)

Dans un environnement d'hébergement partagé qui est simplement plus difficile à prévenir, bien que ce n'est certainement pas impossible. Peut-être que cela vaut la peine de poster cette question à serverfault pour voir ce que les bons gens doivent dire.


8 commentaires

Je ne comprends pas tout à fait comment cela fonctionne. Par exemple, dans un environnement d'hébergement partagé, comment puis-je accéder aux assemblées d'un autre client? Comment utiliser la réflexion pour inspecter le contenu des propriétés et des méthodes privées?


Si vous êtes (par exemple) Exécution d'un projet de site Web, plutôt que d'un projet d'application Web et que vous fournissez à l'utilisateur un moyen de télécharger des fichiers sur votre site, ils pourraient télécharger une page ASPX qui est compilée lorsqu'il est appelé - si cela est utilisé. Réflexion pour lire l'état de votre application, alors il est possible que les chaînes de connexion, etc., puissent être accès. C'est une possibilité mince, mais seule, donc le «pourrait» dans votre lien. N'oubliez pas que certains hôtes ne gèrent pas toujours un environnement de confiance moyen de «vanille», mais personnalisez les caractéristiques et ne sont pas disponibles.


Ben m'a battu. J'ajouterai simplement une dernière chose: dans un environnement d'hébergement partagé, vous héritez (certaines des) vulnérabilités de sécurité des autres applications exécutées sur votre serveur, de sorte que vos collègues clients ne doivent même pas être malveillants pour poser un danger pour poser un danger pour vous, juste négligent.


Je sais que de nombreux hôtes Web ne gèrent pas les environnements de confiance moyenne à Vanilla Medium. Certains hôtes permettent de réfléchir spécifiquement en raison des problèmes qu'il présente lorsqu'ils sont désactivés. J'essaie d'évaluer si cela est irresponsable, de leur part ou une allocation raisonnable.


La confiance totale est correcte, car cela implique que la filediopermissionnement sans restriction (ce qui permet à toutes sortes de méfaits de réflexion) - mais il est possible que le cas échéant que la réflexion (tout en fonctionnant autrement dans une intermédiaire) serait appropriée. Cela dépend de la rigide des politiques de sécurité de la société d'hébergement pour leurs serveurs d'hébergement partagés. Si différents clients du serveur sont vraiment protégés les uns des autres, il peut être raisonnable. Toutefois ...


... Il y a toujours toujours un danger pour qu'une autre application sur votre serveur partagé ait une vulnérabilité qui permettrait à un intrus d'obtenir un accès au système de fichiers et d'empêcher certains assemblage que vous appelez. Ensuite, lorsque vous appelez cet assemblage, cela peut faire de son méfait réfléchissant.


@Zhaphe - Ben Duguid dans ce scénario Le téléchargement d'un fichier .aspx est la vulnérabilité et non la réflexion. Si vous avez ce niveau d'accès, vous pouvez télécharger tout le code source et la réflexion est alors sans signification comme une attaque. Je n'ai pas encore vu une attaque que je suis d'accord sur la réflexion.


@Le ROOK - Les données sensibles que vos poignées d'application ne sont pas disponibles à partir de son code source.



3
votes

J'ai trouvé l'article MSDN suivant sur ce sujet:

Considérations de sécurité pour la réflexion forte> p>

Cet article Réponse de Jeff d'Echo: P>

la réflexion fournit la capacité de obtenir des informations sur les types et membres et pour accéder aux membres. Accéder aux membres non publics pourrait créer un risque de sécurité. Par conséquent, code qui accède aux membres non publics nécessite une impératrice de réflexion avec le drapeaux appropriés. p> BlockQuote>

Cependant, je ne crois pas que ce risque puisse être exploité entre les comptes d'hébergement du client. Il semble que cela ne poserait qu'un risque personnel. Par exemple, en utilisant la réflexion, je pourrais explorer mes propres assemblées dans mon environnement d'hébergement. Cependant, d'autres clients n'ont pas pu utiliser la réflexion pour explorer mes assemblées em>. Ils ne pouvaient que explorer leurs assemblées em>. P>

Cela pourrait poser un problème pour une seule application Web impliquant plusieurs équipes de développement. Une équipe de développement pourrait utiliser la réflexion pour explorer les assemblées d'une autre équipe de développement. P>

Cependant, il s'agit d'un scénario rare pour un environnement d'hébergement partagé. La plupart des sites Web d'hébergement partagés impliquent une très petite équipe qui accèdent pleinement à tout fort> le code. En d'autres termes, il n'y a pas de secrets. Tant que l'Assemblée est à l'abri des autres clients d'hébergement partagés, ce n'est pas un problème. P>

L'activation de la réflexion ne doit poser aucun risque pour la plupart des applications Web d'hébergement partagées: P>

<IPermission class="ReflectionPermission" version="1" Flags="RestrictedMemberAccess"/>


2 commentaires

Si l'accès à l'application Web a été compromis, la réflexion pourrait être utilisée pour explorer les chaînes de connexion de base de données et d'autres informations sensibles. C'est un compromis. Quelle est l'importance de savoir qu'une application est protégée de lui-même?


Pour être honnête, cela m'a laissé avec plus de questions. Bien que +1, vous avez confirmé qu'il y a des problèmes de sécurité avec une bonne référence. Je suis respectueusement en désaccord avec vous sur le scénario d'attaque, même si je n'en ai pas mieux, je ne peux donc pas parler de Smack.