• Assurez la sécurité des applications de la bonne manière! Détectez, protégez, surveillez, accélérez et plus encore…
  • N'exposez pas le dossier .git, qui peut contenir des informations sensibles.

    Lorsque vous initialisez et déployez votre application via Git, cela crée un .git dossier contenant les informations nécessaires. Si .git est accessible via un serveur Web ou une interface sur Internet, il peut potentiellement fuir des données sensibles.

    Pire encore, si vous avez des informations d'identification stockées dans un fichier de configuration.

    Utilisez ceux-ci outils pour trouver les informations d'identification dans le référentiel GitHub.

    Si vous n'êtes pas sûr d'avoir .git quelque part sur vos applications Web, vous pouvez utiliser un scanner de vulnérabilité de sécurité comme OpenVAS, Gitjacker, Ou d'autres mentionné ici.

    Gitjacker est plus que de détecter le répertoire .git. Il télécharge le répertoire entier.

    Il existe plusieurs façons de gérer cela.

    Vous pouvez choisir de ne pas garder .git dossier sur le serveur ou bloquer toute demande. Le blocage de la demande est assez simple, et c'est ainsi que vous pouvez le faire en fonction du serveur Web que vous utilisez.

    Nginx

    Si vous utilisez Nginx, vous pouvez ajouter les éléments suivants location directive en nginx.conf filet

    location ~ /\.git {
      deny all;
    }

    Ce qui précède demanderait à Nginx de lancer 403 comme ci-dessous chaque fois qu'il y a une requête contenant .git

    Sinon, vous pouvez renvoyer 404 si vous ne voulez pas qu'un attaquant suppose que vous avez .git sur le serveur.

    location ~ /\.git {
      return 404;
    }

    Et cela reviendrait le Code d'état HTTP comme 404 comme ci-dessous.

    Quoi que vous choisissiez, n'oubliez pas de redémarrer le Nginx après avoir modifié la configuration.

    service nginx restart

    Apache HTTP

    Voyons comment bloquer .git dans le serveur Web Apache. Vous pouvez utiliser RedirectMatch or DirectoryMatch pour y parvenir.

    L'utilisation de RedirectMatch est probablement la plus simple. Il vous suffit d'ajouter ce qui suit dans httpd.conf  or .htaccess fichier.

    RedirectMatch 404 /\.git

    Ce qui précède lancerait 404 lorsque quelqu'un accède à .git, et ce qui suit affichera 403.

    RedirectMatch 403 /\.git

    Ensuite, essayons d'utiliser la règle DirectoryMatch en ajoutant ce qui suit dans httpd.conf fichier.

    <DirectoryMatch "^/.*/\.git/">
      Deny from all
    </Directorymatch>

    Redémarrez Apache et accédez à l'URL, y compris .git; il affichera 403 Erreur interdite.

    Cloudflare

    C'est mon préféré. Bloquez la demande au bord!

    Mais, comme vous pouvez le deviner, cela ne fonctionnera que si votre site est accéléré grâce au Cloudflare réseau.

    • Connectez-vous à Cloudflare
    • Allez dans l'onglet Pare-feu >> Règles de pare-feu >> Créer une règle de pare-feu

    • Donnez un nom à la règle - Bloquer GIT
    • Sélectionner un champ - URI
    • Opérateur - contient
    • Valeur - .git
    • Choisissez une action - Bloquer et enregistrer

    Il faudra environ 1 minute pour propager la règle dans tous les centres de données Cloudflare. Une fois terminé, Cloudflare fera le reste.

    Une chose à noter, lors de la mise en œuvre de la règle de pare-feu Cloudflare pour bloquer, vous devez vous assurer que origine n'est pas exposé. Sinon, un attaquant peut contourner Cloudflare pour accéder aux fichiers .git.

    Conclusion

    J'espère que ce qui précède vous aidera à atténuer le risque d'exposition du répertoire .git.