Hoy en día, a medida que las redes informáticas se vuelven cada vez más populares, la seguridad informática no sólo requiere prevenir los virus informáticos, sino también mejorar la capacidad del sistema para resistir intrusiones ilegales de piratas informáticos. También requiere mejorar la confidencialidad de la transmisión remota de datos para evitar robos ilegales durante la transmisión. Este artículo solo analiza algunas situaciones que pueden ocurrir al construir un servidor web, con la esperanza de llamar la atención.
1. Vulnerabilidades de seguridad
Las vulnerabilidades en el servidor web se pueden considerar desde los siguientes aspectos:
1. Archivos secretos, directorios o datos importantes en el servidor web a los que no permite que otros accedan.
2. Cuando se envía información de un usuario remoto al servidor, especialmente cuando se envía información como tarjetas de crédito, los delincuentes la interceptan ilegalmente a mitad de camino.
3. Existen algunas vulnerabilidades en el propio servidor web que permiten a algunas personas invadir el sistema host, destruir algunos datos importantes e incluso provocar la parálisis del sistema.
4. Las vulnerabilidades de seguridad de CGI incluyen:
(1) La omisión intencional o no de errores en el sistema host crea condiciones para los piratas informáticos ilegales.
(2) Los programas escritos con scripts CGI pueden generar riesgos web para el sistema host.
5. También existen algunos servidores web sencillos que se descargan de Internet sin tener en cuenta algunos factores de seguridad y no se pueden utilizar para aplicaciones comerciales.
Por lo tanto, ya sea que esté configurando el servidor o escribiendo programas CGI, debe prestar atención a la seguridad del sistema. Intente tapar las lagunas existentes y cree un entorno seguro.
2. Mejorar la seguridad y estabilidad del sistema.
Precauciones de seguridad del servidor web:
1. Limitar la apertura de cuentas en el servidor web y eliminar periódicamente algunos usuarios que interrumpan el proceso.
2. Para las cuentas abiertas en el servidor web, establezca requisitos sobre la longitud de la contraseña y cambios periódicos para evitar robos.
3. Intente separar FTP, MAIL y otros servidores de ellos, y elimine algunas aplicaciones irrelevantes como ftp, sendmail, tftp, NIS, NFS, finger, netstat, etc.
4. Elimine algunos intérpretes absolutamente innecesarios como SHELL en el servidor web. Es decir, cuando no utilice PERL en su programa CGI, intente eliminar PERL en el intérprete del sistema.
5. Verifique periódicamente el archivo de registros en el servidor y analice cualquier evento sospechoso. Cuando aparecen registros como rm, login, /bin/perl, /bin/sh, etc. en el registro de errores, es posible que su servidor haya sido invadido por algunos usuarios ilegales.
6. Establezca los permisos y atributos de los archivos del sistema en el servidor web, asigne un grupo público, como WWW, al documento al que otros puedan acceder y asígnele derechos de solo lectura. Todos los archivos HTML pertenecen al grupo WWW y el administrador web administra el grupo WWW. Sólo los administradores web tienen acceso de escritura a los archivos de configuración web.
7. Cuando algunos servidores web apuntan el directorio de documentos web y el directorio FTP al mismo directorio, debe tener cuidado de no especificar el directorio FTP y CGI-BIN en el mismo directorio. Esto es para evitar que algunos usuarios carguen algunos programas como PERL o SH a través de FTP y utilicen el CGI-BIN de la Web para ejecutarlos, lo que provocará consecuencias adversas.
8. Acceda a la IP o DNS del usuario restringiendo el permiso, como agregando: a access.conf en NCSA:
"Directorio /ruta/completa/al/directorio"
"Limitar OBTENER PUBLICACIÓN"
orden de fracaso mutuo
negar de todos
permitir desde 168.160.142.
"/Límite"
"/Directorio"
De esta forma, sólo los clientes con el nombre de dominio abc.net.cn o la IP perteneciente a 168.160.142 pueden acceder al servidor web.
Para servidores CERN o W3C, agregue esto a httpd.conf:
Protección USUARIOS LOCALES {
ObtenerMáscara @(*.capricornio.com, *.zoo.org, 18.157.0.5)
}
Proteger /relativa/ruta/al/directorio/* USUARIOS LOCALES
9.HTTPD en WINDOWS
(1) Servidor de comunicaciones Netscape para NT
Vulnerabilidades del intérprete PERL:
Netscape Communications Server no puede reconocer la extensión y su relación de aplicación en CGI-BIN. Por ejemplo, el archivo .pl es un archivo de interpretación llamado automáticamente por el programa de código PERL. Incluso ahora, el archivo perl.exe solo se puede almacenar en CGI. -Directorio BIN hacia abajo. Ejecutar como por ejemplo: /cgi-bin/perl.exe? &mi_script.pl. Pero esto es
¿Es posible que cualquiera ejecute PERL cuando alguien agrega algo como: /cgi-bin/perl.exe a la URL de su navegador? -e unlink <*> puede causar el riesgo de eliminar archivos en el directorio actual del servidor. Sin embargo, otros como O'Reilly WebSite o Purveyor no tienen esta vulnerabilidad.
Vulnerabilidades en la ejecución CGI de archivos por lotes:
El contenido del archivo test.bat es el siguiente:
@eco apagado
echo Tipo de contenido: texto/sin formato
eco
eco ¡Hola mundo!
¿Qué pasa si la URL del navegador del cliente es:/cgi-bin/test.bat? &dir, luego se ejecuta el intérprete de comandos para completar la lista DIR. Esto le da al visitante la posibilidad de ejecutar otros comandos.
(2) Servidor de sitio web O′Reilly para Windows NT/95
Existe la misma vulnerabilidad que Netscape cuando se utilizan archivos por lotes en versiones anteriores a WebSite1.1B. Sin embargo, la nueva versión cierra la función de .bat en CGI. Admite PERL y la nueva versión utiliza VB y C como herramientas de desarrollo CGI.
(3) Servidor web IIS de Microsoft
IIS anterior al 5 de marzo de 1996 tiene errores graves en NT y puede utilizar el comando de forma arbitraria. Sin embargo, desde entonces la vulnerabilidad ha sido parcheada y puede verificar la fecha de creación de su ejecutable. Todavía hay algunos errores de seguridad en IIS 3.0, principalmente la concesión de derechos bajo CGI-BIN. Además, muchos servidores web tienen algunas vulnerabilidades de seguridad, que se actualizan continuamente durante el proceso de actualización de la versión. No las enumeraré una por una aquí.
[Cortar-Página]
3. Considere la seguridad desde la perspectiva de la programación CGI.
1. Es más seguro utilizar lenguaje compilado que lenguaje interpretado, y los programas CGI deben colocarse en CGI-BIN independientemente del directorio de almacenamiento HTML. Esto es para evitar que algunos visitantes ilegales obtengan la fuente del lenguaje interpretado del navegador. en el código.
2. Al escribir programas CGI en C, debe intentar usar popen(), system(), todos los comandos SHELL que involucran /bin/sh así como system(), exec(), open(), eval( en PERL). y otros comandos como exec o eval.
Cuando el formulario completado por el usuario se devuelve a CGI, no llame directamente a funciones como system().
Además, para el cifrado y la transmisión de datos, actualmente existen SSL, SHTTP, SHEN y otros protocolos que todos pueden estudiar.
4. Cortafuegos
1. El concepto de cortafuegos
Firewall se refiere a un dispositivo que está compuesto por software o una combinación de dispositivos de software y hardware. Se encuentra entre las computadoras de una empresa o grupo de red y el canal externo (Internet). Gestiona el acceso de los usuarios internos a la red externa.
2. Medidas de cortafuegos
(1)Anfitrión proxy
"Red interna--Puerta de enlace proxy--Internet"
De esta forma, la red interna no se comunica directamente con Internet. Es decir, los usuarios de la computadora de la red interna y la puerta de enlace proxy adoptan un método de comunicación, es decir, proporcionan protocolos de red internos (Netbios, TCP/IP, etc.), y el protocolo de comunicación de red TCP/IP estándar se adopta entre la puerta de enlace y La Internet. Esto evita que los paquetes de datos de la red viajen directamente entre redes internas y externas. Las computadoras internas deben acceder a Internet a través de una puerta de enlace proxy, lo que facilita restringir el acceso de las computadoras de la red interna a computadoras externas en el servidor proxy. Además, debido a que el servidor proxy utiliza diferentes estándares de protocolo en ambos extremos, también puede prevenir directamente intrusiones ilegales del mundo exterior. Además, la puerta de enlace del servidor proxy puede realizar controles de seguridad como verificar paquetes de datos y confirmar contraseñas. De esta forma, se puede controlar y gestionar mejor a los usuarios en ambos extremos, funcionando como un firewall.
Debido a que esta medida de firewall se implementa a través de un servidor proxy, la eficiencia inevitablemente se verá afectada cuando hay muchos usuarios en línea. El servidor proxy está muy cargado, por lo que es posible que muchos software de cliente que acceden a Internet no puedan acceder a Internet normalmente en el interior. ordenadores de la red.
(2) Se completó la adición del filtro del enrutador
"Red interna--Filtro--Enrutador--Internet"
Esta estructura utiliza enrutadores y filtros para restringir conjuntamente el acceso de las computadoras externas a la red interna en función de direcciones IP o nombres de dominio. También puede especificar o restringir el acceso a Internet desde la red interna. El enrutador solo enruta la comunicación de datos a un PUERTO específico en el host, mientras que el filtro realiza filtrado, filtrado, verificación y monitoreo de seguridad, lo que puede aislar en gran medida los inicios de sesión de acceso anormales entre las redes internas y externas.
[Cortar-Página]3. Considere la seguridad desde la perspectiva de la programación CGI.
1. Es más seguro utilizar lenguaje compilado que lenguaje interpretado, y los programas CGI deben colocarse en CGI-BIN independientemente del directorio de almacenamiento HTML. Esto es para evitar que algunos visitantes ilegales obtengan la fuente del lenguaje interpretado del navegador. en el código.
2. Al escribir programas CGI en C, debe intentar usar popen(), system(), todos los comandos SHELL que involucran /bin/sh así como system(), exec(), open(), eval( en PERL). y otros comandos como exec o eval.
Cuando el formulario completado por el usuario se devuelve a CGI, no llame directamente a funciones como system().
Además, para el cifrado y la transmisión de datos, actualmente existen SSL, SHTTP, SHEN y otros protocolos que todos pueden estudiar.
4. Cortafuegos
1. El concepto de cortafuegos
Firewall se refiere a un dispositivo que está compuesto por software o una combinación de dispositivos de software y hardware. Se encuentra entre las computadoras de una empresa o grupo de red y el canal externo (Internet). Gestiona el acceso de los usuarios internos a la red externa.
2. Medidas de cortafuegos
(1)Anfitrión proxy
"Red interna--Puerta de enlace proxy--Internet"
De esta forma, la red interna no se comunica directamente con Internet. Es decir, los usuarios de la computadora de la red interna y la puerta de enlace proxy adoptan un método de comunicación, es decir, proporcionan protocolos de red internos (Netbios, TCP/IP, etc.), y el protocolo de comunicación de red TCP/IP estándar se adopta entre la puerta de enlace y La Internet. Esto evita que los paquetes de datos de la red viajen directamente entre redes internas y externas. Las computadoras internas deben acceder a Internet a través de una puerta de enlace proxy, lo que facilita restringir el acceso de las computadoras de la red interna a computadoras externas en el servidor proxy. Además, debido a que el servidor proxy utiliza diferentes estándares de protocolo en ambos extremos, también puede prevenir directamente intrusiones ilegales del mundo exterior. Además, la puerta de enlace del servidor proxy puede realizar controles de seguridad como verificar paquetes de datos y confirmar contraseñas. De esta forma, se puede controlar y gestionar mejor a los usuarios en ambos extremos, funcionando como un firewall.
Debido a que esta medida de firewall se implementa a través de un servidor proxy, la eficiencia inevitablemente se verá afectada cuando hay muchos usuarios en línea. El servidor proxy está muy cargado, por lo que es posible que muchos software de cliente que acceden a Internet no puedan acceder a Internet normalmente en el interior. ordenadores de la red.
(2) Se completó la adición del filtro del enrutador
"Red interna--Filtro--Enrutador--Internet"
Esta estructura utiliza enrutadores y filtros para restringir conjuntamente el acceso de las computadoras externas a la red interna en función de direcciones IP o nombres de dominio. También puede especificar o restringir el acceso a Internet desde la red interna. El enrutador solo enruta la comunicación de datos a un PUERTO específico en el host, mientras que el filtro realiza filtrado, filtrado, verificación y monitoreo de seguridad, lo que puede aislar en gran medida los inicios de sesión de acceso anormales entre las redes internas y externas.