Comment sécuriser un peu plus son site web ASP.Net ?

Vous savez qu’aujourd’hui la sécurité des sites web est souvent mise à l’épreuve afin de pouvoir en extraire des informations sur les utilisateurs et pour des usages divers et variés, à bon ou mauvais escient.

C’est pourquoi il est important de ne pas semer des miettes de pain qui pourrait amener à compromettre la sécurité de votre site web. Car comme pour l’usurpation d’identité, c’est avez une miette de votre vie que l’on peut vous prendre votre identité.

Débarrasser les miettes

Lorsque vous créer une application Web en ASP.Net, celle-ci introduit dans chaque requête des informations sur la version du framework utilisé pour réaliser l’application. Information qui pourrait pour un hacker averti l’amener sur des failles de sécurité potentielles connues et donc l’inviter gentillement à essayer sur votre site.

Dans le fichier web.config, ajouter ceci pour enlever l’indication de la technologie utilisée

  <seystem.webServer>
    <httpProtocol>
        <customHeaders>
            <remove name="X-Powered-By" />
        </customHeaders>
    </httpProtocol>
  </system.webServer>

Il en reste. Ce sont la version d’ASP.Net et dans le cadre d’un projet MVC, la version de MVC utilisée.

Pour supprimer l’émission de la version d’ASP.Net, dans le web.config, ajouter ceci (<!> Attention, le code cité en exemple, ne reprend pas tous les attributs, seulement ceux nécessaire, ne copier par bêtement ;-))

<system.web>
  <httpRuntime enableVersionHeader="false" />
</system.web>

Pour supprimer la version de MVC, dans le fichier Global.asax ajouter ceci dans la méthode Application_Start()

MvcHandler.DisableMvcResponseHeader = true;

Débarrasser les miettes des parents

Eh oui, même à ce poste, on doit aussi débarrasser les miettes des parents. Autrement dit des administrateurs un peu flemmards.

Ce sont des points de détails mais ils sont parfois nécessaire pour s’affranchir d’une ouverture quelconque des portes ou d’accès non souhaités.

Dans le fichier web.config, ajouter une indication de suppression de la base locale

  <connectionStrings>
    <remove name="LocalSqlServer"/>
  </connectionStrings>

Ou si vous êtes certain de n’avoir besoin que de ce qui est déclaré dans votre fichier de configuration, ajouter ceci avant toute autre déclaration de connexion. Cela empêche ainsi d’exposer des connexions « héritées » qui n’ont pas à l’être.

  <connectionStrings>
    <clear/>
  </connectionStrings>

Dire aux parents de faire moins de miettes

Il y a des points sur lesquels vous n’y pourrez rien car il vous faut modifier des fichiers du serveur même. Et là, y’a que Papa ou Maman qui a le droit :-).

Ne plus dire qui héberge

NOTE: Cela n’est applicable que si vous avez installé le plug-in IIS UrlScan

Si vous « sniffez » les requêtes sur votre application et que le serveur n’est pas configuré, vous devriez y voir la version du serveur IIS qui héberge votre application. Et comme je vous ai déjà expliquez, une miette suffit parfois. Alors on prévient et on donne même la marche à suivre :-P.

Sur le serveur, dans le fichier C:\Windows\System32\inetsrv\urlscan\UrlScan.ini. Trouver le paramètre “RemoveServerHeader” et changer sa valeur à « 1 » pour supprimer cette information compromettante.

Et voilà, c’est tout. Y’a pas eu mort d’hommes :-).

Et Alan Turing tu connais ?

Un fichier de configuration est un fichier XML, un fichier physique et donc il suffit d’une faille de sécurité sur le serveur permettant son accès pour le lire. Et le lire avec Notepad++, et même WordPad si l’on veut.

Pourquoi ne pas donner un peu de complexité à la lecture alors. Eh oui pensez-y bien, un fichier de configuration sur un serveur est un simple fichier lisible et dont les données ne sont pas protégées sauf par des moyens de sécurités faillibles donc comme pour toutes choses, on prévient avant de guérir et donc on passe par la case Cryptage.

Pour cela, le serveur web est doté d’une machineKey qui est utilisé pour chiffrer et déchiffrer les informations cryptées dans un fichier de configuration. Ce qui donc empêche le décryptage à partir d’une autre machine puisque la clé est la propriété du serveur hébergeur. C’est aussi pour cela que l’action ne peut se faire que sur ce dernier.

Alors comment on fait ?

Eh bien Microsoft ayant fait la chose pour nous, autant lire ce qu’ils ont fait et décrit dans cette documentation

Conclusion

Prenez le temps de faire ces quelques étapes dès le début de votre projet. Et si vous êtes en plein dedans, vérifier que cela ait été fait.

En tant que développeur averti, voilà un conseil pour ceux qui ont peur de parler à leurs parents 🙂 (oh les timides ^^). Sachez que l’important est de prévenir et surtout avant de subir. Si vous faites fasse à un administrateur récalcitrant ou un chef de projet qui ne souhaite pas faire la manipulation, n’hésitez pas à faire le boulot et si besoin d’aller en parler plus haut car la sécurité n’a pas de prix. Cela peut bien se passer comme très mal et là je vous assure que plus vous montez haut plus ils sont tatillons sur les pertes possibles en sous sous :-D.

En tant que développeur averti, voilà un conseil pour ceux qui ont peur de parler à leurs parents 🙂 (oh les timides ^^). Sachez que l’important est de prévenir et surtout avant de subir. Si vous faites fasse à un administrateur récalcitrant ou un chef de projet qui ne souhaite pas faire la manipulation, n’hésitez pas à faire le boulot et si besoin d’aller en parler plus haut car la sécurité n’a pas de prix. Cela peut bien se passer comme très mal et là je vous assure que plus vous montez haut plus ils sont tatillons sur les pertes possibles en sous sous :-D.

Publicités
Comment sécuriser un peu plus son site web ASP.Net ?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s