Aujourd'hui, alors que les réseaux informatiques deviennent de plus en plus populaires, la sécurité informatique nécessite non seulement de prévenir les virus informatiques, mais également d'améliorer la capacité du système à résister aux intrusions illégales de pirates informatiques. Elle nécessite également d'améliorer la confidentialité de la transmission des données à distance pour éviter le vol illégal lors de la transmission. Cet article traite uniquement de certaines situations pouvant survenir lors de la construction d'un serveur Web, dans l'espoir d'attirer l'attention.
1. Failles de sécurité
Les vulnérabilités sur le serveur Web peuvent être considérées sous les aspects suivants :
1. Fichiers secrets, répertoires ou données importantes sur le serveur Web auxquels vous n'autorisez pas d'autres personnes à accéder.
2. Lors de l'envoi d'informations d'un utilisateur distant au serveur, en particulier lors de l'envoi d'informations telles que des cartes de crédit, elles sont illégalement interceptées par des criminels à mi-chemin.
3. Il existe certaines vulnérabilités dans le serveur Web lui-même, qui permettent à certaines personnes d'envahir le système hôte, de détruire certaines données importantes et même de provoquer la paralysie du système.
4. Les vulnérabilités de sécurité de CGI comprennent :
(1) L'omission intentionnelle ou non de bogues dans le système hôte crée des conditions propices aux pirates informatiques illégaux.
(2) Les programmes écrits avec des scripts CGI peuvent fournir Web Hazard au système hôte.
5. Il existe également des serveurs Web simples téléchargés depuis Internet sans tenir compte de certains facteurs de sécurité et ne peuvent pas être utilisés pour des applications commerciales.
Par conséquent, que vous configuriez le serveur ou que vous écriviez des programmes CGI, vous devez faire attention à la sécurité du système. Essayez de combler toutes les failles existantes et de créer un environnement sûr.
2. Améliorer la sécurité et la stabilité du système
Précautions de sécurité du serveur Web :
1. Limitez l'ouverture de comptes sur le serveur web et supprimez régulièrement certains utilisateurs qui interrompent le processus.
2. Pour les comptes ouverts sur le serveur Web, imposez des exigences en matière de longueur de mot de passe et de modifications régulières pour éviter le vol.
3. Essayez d'en séparer les serveurs FTP, MAIL et autres, et supprimez certaines applications non pertinentes telles que ftp, sendmail, tftp, NIS, NFS, finger, netstat, etc.
4. Supprimez certains interpréteurs absolument inutiles tels que SHELL sur le serveur Web. Autrement dit, lorsque PERL n'est pas utilisé dans votre programme CGI, essayez de supprimer PERL dans l'interpréteur système.
5. Vérifiez régulièrement le fichier journal sur le serveur et analysez tout événement suspect. Lorsque des enregistrements tels que rm, login, /bin/perl, /bin/sh, etc. apparaissent dans le journal des erreurs, votre serveur peut avoir été envahi par des utilisateurs illégaux.
6. Définissez les autorisations et les attributs des fichiers système sur le serveur Web, attribuez un groupe public, tel que WWW, au document accessible à d'autres personnes et attribuez-lui uniquement des droits en lecture seule. Tous les fichiers HTML appartiennent au groupe WWW et le groupe WWW est géré par l'administrateur Web. Seuls les administrateurs Web ont un accès en écriture aux fichiers de configuration Web.
7. Lorsque certains serveurs Web pointent le répertoire des documents Web et le répertoire FTP vers le même répertoire, veillez à ne pas spécifier le répertoire FTP et CGI-BIN dans le même répertoire. Ceci a pour but d'empêcher certains utilisateurs de télécharger certains programmes tels que PERL ou SH via FTP et d'utiliser le CGI-BIN du Web pour les exécuter, ce qui aurait des conséquences néfastes.
8. Accédez à l'adresse IP ou au DNS de l'utilisateur en restreignant les autorisations, par exemple en ajoutant : à access.conf dans NCSA :
"Répertoire /complet/chemin/vers/répertoire"
"Limiter OBTENIR LE POST"
ordre d'échec mutuel
nier de tous
autoriser à partir de 168.160.142 abc.net.cn.
"/Limite"
"/Annuaire"
De cette manière, seuls les clients possédant le nom de domaine abc.net.cn ou l'IP appartenant à 168.160.142 peuvent accéder au serveur Web.
Pour les serveurs du CERN ou du W3C, ajoutez ceci à httpd.conf :
Protection UTILISATEURS LOCAUX {
GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)
}
Protéger /relatif/chemin/vers/répertoire/* UTILISATEURS LOCAUX
9.HTTPD sous WINDOWS
(1) Serveur de communications Netscape pour NT
Vulnérabilités de l'interpréteur PERL :
Netscape Communications Server ne peut pas reconnaître l'extension et sa relation d'application sous CGI-BIN. Par exemple, le fichier .pl est un fichier d'interprétation appelé automatiquement par le programme de code PERL. Même maintenant, le fichier perl.exe ne peut être stocké que dans le CGI. -Répertoire BIN vers le bas. Exécutez tel que : /cgi-bin/perl.exe? &mon_script.pl. Mais c'est
Est-il possible pour n'importe qui d'exécuter PERL lorsque quelqu'un ajoute quelque chose comme : /cgi-bin/perl.exe à l'URL de son navigateur ? -e unlink <*> peut entraîner le risque de supprimer des fichiers dans le répertoire courant du serveur. Cependant, d'autres comme O'Reilly WebSite ou Purveyor ne présentent pas cette vulnérabilité.
Vulnérabilités dans l'exécution CGI de fichiers batch :
Le contenu du fichier test.bat est le suivant :
@echo désactivé
echo Type de contenu : texte/plain
écho
écho Bonjour tout le monde !
Que se passe-t-il si l'URL du navigateur du client est :/cgi-bin/test.bat ? &dir, puis l'interpréteur de commandes est exécuté pour compléter la liste DIR. Cela donne au visiteur la possibilité d'exécuter d'autres commandes.
(2)Serveur du site Web O′Reilly pour Windows NT/95
La même vulnérabilité que Netscape existe lors de l'utilisation de fichiers batch dans les versions antérieures à WebSite1.1B. Cependant, la nouvelle version ferme le rôle de .bat dans CGI. Prend en charge PERL et la nouvelle version utilise VB et C comme outils de développement CGI.
(3) Serveur Web IIS de Microsoft
IIS avant le 5 mars 1996 présente de sérieux bugs sous NT, et vous pouvez utiliser la commande command arbitrairement. Cependant, la vulnérabilité a depuis été corrigée et vous pouvez vérifier la date de création de votre exécutable. Il existe encore quelques bugs de sécurité dans IIS 3.0, principalement l'octroi de droits sous CGI-BIN. De plus, de nombreux serveurs Web présentent eux-mêmes des failles de sécurité, qui sont continuellement mises à jour lors du processus de mise à niveau de version. Je ne les énumérerai pas une par une ici.
[Page coupée]
3. Considérez la sécurité du point de vue de la programmation CGI
1. Il est plus sûr d'utiliser un langage compilé qu'un langage interprété, et les programmes CGI doivent être placés sous CGI-BIN indépendamment du répertoire de stockage HTML afin d'empêcher certains visiteurs illégaux d'obtenir la source du langage interprété à partir du navigateur. dans le code.
2. Lorsque vous écrivez des programmes CGI en C, vous devriez essayer d'utiliser popen(), system(), toutes les commandes SHELL impliquant /bin/sh ainsi que system(), exec(), open(), eval( en PERL). et d'autres commandes telles que exec ou eval.
Lorsque le formulaire rempli par l'utilisateur est renvoyé à CGI, n'appelez pas directement des fonctions telles que system().
De plus, pour le cryptage et la transmission des données, il existe actuellement des protocoles SSL, SHTTP, SHEN et autres que chacun peut étudier.
4. Pare-feu
1. La notion de pare-feu
Le pare-feu fait référence à un périphérique composé de logiciels ou d'une combinaison de périphériques logiciels et matériels. Il est situé entre les ordinateurs d'une entreprise ou d'un groupe réseau et le canal externe (Internet). Il restreint l'accès des utilisateurs externes au réseau interne et. gère l'accès des utilisateurs internes au réseau externe.
2. Mesures de pare-feu
(1)Hôte proxy
"Réseau interne--Passerelle proxy--Internet"
De cette manière, le réseau interne ne communique pas directement avec Internet. Autrement dit, les utilisateurs de l'ordinateur du réseau interne et la passerelle proxy adoptent une méthode de communication, c'est-à-dire en fournissant des protocoles réseau internes (Netbios, TCP/IP, etc.), et le protocole de communication réseau TCP/IP standard est adopté entre la passerelle et l'Internet. Cela empêche les paquets de données réseau de voyager directement entre les réseaux internes et externes. Les ordinateurs internes doivent accéder à Internet via une passerelle proxy, ce qui permet d'empêcher facilement les ordinateurs du réseau interne d'accéder aux ordinateurs externes sur le serveur proxy. De plus, comme le serveur proxy utilise des normes de protocole différentes aux deux extrémités, il peut également empêcher directement les intrusions illégales du monde extérieur. De plus, la passerelle du serveur proxy peut effectuer des contrôles de sécurité tels que la vérification des paquets de données et la confirmation des mots de passe. De cette manière, les utilisateurs aux deux extrémités peuvent être mieux contrôlés et gérés, fonctionnant comme un pare-feu.
Étant donné que cette mesure de pare-feu est mise en œuvre via un serveur proxy, l'efficacité sera inévitablement affectée lorsqu'il y a de nombreux utilisateurs en ligne. Le serveur proxy est fortement sollicité, de sorte que de nombreux logiciels clients qui accèdent à Internet risquent de ne pas pouvoir accéder normalement à Internet en interne. ordinateurs en réseau.
(2) L'ajout du filtre au routeur est terminé
"Réseau interne--Filtre--Routeur--Internet"
Cette structure utilise des routeurs et des filtres pour empêcher conjointement les ordinateurs externes d'accéder au réseau interne en fonction d'adresses IP ou de noms de domaine. Elle peut également spécifier ou restreindre l'accès à Internet à partir du réseau interne. Le routeur achemine uniquement la communication de données sur un PORT spécifique de l'hôte, tandis que le filtre effectue le filtrage, la vérification et la surveillance de la sécurité, ce qui peut isoler en grande partie les connexions d'accès anormales entre les réseaux internes et externes.
[Page coupée]3. Considérez la sécurité du point de vue de la programmation CGI
1. Il est plus sûr d'utiliser un langage compilé qu'un langage interprété, et les programmes CGI doivent être placés sous CGI-BIN indépendamment du répertoire de stockage HTML afin d'empêcher certains visiteurs illégaux d'obtenir la source du langage interprété à partir du navigateur. dans le code.
2. Lorsque vous écrivez des programmes CGI en C, vous devriez essayer d'utiliser popen(), system(), toutes les commandes SHELL impliquant /bin/sh ainsi que system(), exec(), open(), eval( en PERL). et d'autres commandes telles que exec ou eval.
Lorsque le formulaire rempli par l'utilisateur est renvoyé à CGI, n'appelez pas directement des fonctions telles que system().
De plus, pour le cryptage et la transmission des données, il existe actuellement des protocoles SSL, SHTTP, SHEN et autres que chacun peut étudier.
4. Pare-feu
1. La notion de pare-feu
Le pare-feu fait référence à un périphérique composé de logiciels ou d'une combinaison de périphériques logiciels et matériels. Il est situé entre les ordinateurs d'une entreprise ou d'un groupe réseau et le canal externe (Internet). Il restreint l'accès des utilisateurs externes au réseau interne et. gère l'accès des utilisateurs internes au réseau externe.
2. Mesures de pare-feu
(1)Hôte proxy
"Réseau interne--Passerelle proxy--Internet"
De cette manière, le réseau interne ne communique pas directement avec Internet. Autrement dit, les utilisateurs de l'ordinateur du réseau interne et la passerelle proxy adoptent une méthode de communication, c'est-à-dire en fournissant des protocoles réseau internes (Netbios, TCP/IP, etc.), et le protocole de communication réseau TCP/IP standard est adopté entre la passerelle et l'Internet. Cela empêche les paquets de données réseau de voyager directement entre les réseaux internes et externes. Les ordinateurs internes doivent accéder à Internet via une passerelle proxy, ce qui permet d'empêcher facilement les ordinateurs du réseau interne d'accéder aux ordinateurs externes sur le serveur proxy. De plus, comme le serveur proxy utilise des normes de protocole différentes aux deux extrémités, il peut également empêcher directement les intrusions illégales du monde extérieur. De plus, la passerelle du serveur proxy peut effectuer des contrôles de sécurité tels que la vérification des paquets de données et la confirmation des mots de passe. De cette manière, les utilisateurs aux deux extrémités peuvent être mieux contrôlés et gérés, fonctionnant comme un pare-feu.
Étant donné que cette mesure de pare-feu est mise en œuvre via un serveur proxy, l'efficacité sera inévitablement affectée lorsqu'il y a de nombreux utilisateurs en ligne. Le serveur proxy est fortement sollicité, de sorte que de nombreux logiciels clients qui accèdent à Internet risquent de ne pas pouvoir accéder normalement à Internet en interne. ordinateurs en réseau.
(2) L'ajout du filtre au routeur est terminé
"Réseau interne--Filtre--Routeur--Internet"
Cette structure utilise des routeurs et des filtres pour empêcher conjointement les ordinateurs externes d'accéder au réseau interne en fonction d'adresses IP ou de noms de domaine. Elle peut également spécifier ou restreindre l'accès à Internet à partir du réseau interne. Le routeur achemine uniquement la communication de données sur un PORT spécifique de l'hôte, tandis que le filtre effectue le filtrage, la vérification et la surveillance de la sécurité, ce qui peut isoler en grande partie les connexions d'accès anormales entre les réseaux internes et externes.