Compartir tecnología

Análisis e investigación de prevención de vulnerabilidades web comunes

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Prefacio:

En la era digital actual, las aplicaciones web desempeñan un papel importante, proporcionándonos diversos servicios y funciones en línea. Sin embargo, estas aplicaciones a menudo enfrentan diversas amenazas potenciales a la seguridad, que pueden provocar fugas de información confidencial, parálisis del sistema y otras consecuencias adversas.

  • Vulnerabilidad de inyección SQL

El ataque de inyección SQL (Inyección SQL), conocido como ataque de inyección o inyección SQL, se usa ampliamente para obtener ilegalmente el control de un sitio web. Es una vulnerabilidad de seguridad que ocurre en la capa de base de datos de una aplicación. Al diseñar el programa, se ignora la verificación de las instrucciones SQL contenidas en la cadena de entrada, y la base de datos la considera erróneamente como una instrucción SQL normal y la ejecuta, exponiendo así la base de datos a ataques, que pueden conducir al robo o modificación de datos. , y eliminado, y causando aún más daños al sitio web. Peligros como la incorporación de códigos maliciosos y la implantación de programas de puerta trasera.

Normalmente, las ubicaciones para la inyección SQL incluyen:

  1. El envío de formularios, principalmente solicitudes POST, también incluye solicitudes GET;
  2. Envío de parámetros de URL, principalmente parámetros de solicitud GET;
  3. Envío de parámetros de cookies;
  4. Algunos valores modificables en el encabezado de la solicitud HTTP, como Referer, User_Agent, etc.;
  5. Algunos puntos de entrada de borde, como información de archivo de archivos .mp3, etc.

Métodos de prevención comunes:

  • Todas las declaraciones de consulta utilizan la interfaz de consulta parametrizada proporcionada por la base de datos. Las declaraciones parametrizadas utilizan parámetros en lugar de incorporar variables de entrada del usuario en la declaración SQL. Casi todos los sistemas de bases de datos actuales proporcionan interfaces de ejecución de declaraciones SQL parametrizadas. El uso de esta interfaz puede prevenir eficazmente ataques de inyección SQL.
  • Escape o codifique los caracteres especiales ('"<>&*;, etc.) que ingresan a la base de datos.
  • Confirme el tipo de cada dato. Por ejemplo, los datos numéricos deben ser números y los campos de almacenamiento en la base de datos deben corresponder a tipos int.
  • La longitud de los datos debe especificarse estrictamente, lo que puede evitar que las declaraciones de inyección SQL relativamente largas se ejecuten correctamente hasta cierto punto.
  • La codificación de cada capa de datos del sitio web está unificada. Se recomienda utilizar la codificación UTF-8 para todos los datos. La codificación inconsistente de las capas superior e inferior puede provocar que se omitan algunos modelos de filtrado.
  • Limite estrictamente los permisos de operación de la base de datos de los usuarios del sitio web y proporcione a este usuario permisos que solo sean suficientes para su trabajo, minimizando así el daño de los ataques de inyección a la base de datos.
  • Evite que el sitio web muestre mensajes de error de SQL, como errores de tipo, discrepancias de campos, etc., y evite que los atacantes utilicen estos mensajes de error para emitir algunos juicios.
  • Antes del lanzamiento del sitio web, se recomienda utilizar algunas herramientas profesionales de detección de inyección SQL para detectar y reparar estas vulnerabilidades de inyección SQL de manera oportuna.

  • Vulnerabilidad de secuencias de comandos entre sitios

Los scripts entre sitios (a menudo denominados XSS) ocurren en el lado del cliente y pueden usarse para robar privacidad, phishing, robar contraseñas, difundir códigos maliciosos y otros ataques.

Las tecnologías utilizadas en los ataques XSS son principalmente HTML y Javascript, incluidos VBScript y ActionScript. Aunque los ataques XSS no dañan directamente el servidor WEB, se propagan a través del sitio web, lo que provoca que los usuarios del sitio web sean atacados, lo que provoca el robo de cuentas de usuario del sitio web, lo que provoca graves daños al sitio web.

Los tipos XSS incluyen:

  • Sitio cruzado no persistente: la vulnerabilidad de secuencias de comandos entre sitios reflejada es actualmente el tipo más común de sitio cruzado. El código entre sitios generalmente existe en los enlaces. Cuando se solicita dicho enlace, el código entre sitios se refleja a través del servidor. Este tipo de código entre sitios no se almacena en el servidor (como una base de datos). Los ejemplos dados en los capítulos anteriores son situaciones de este tipo.
  • Sitio cruzado persistente: este es el tipo más directo de daño entre sitios. El código entre sitios se almacena en el servidor (como una base de datos). Una situación común es que un usuario publica en un foro. Si el foro no filtra los datos del código Javascript ingresados ​​por el usuario, los navegadores de otros usuarios que navegan por la publicación ejecutarán el código Javascript incrustado en el autor.
  • DOM entre sitios (DOM XSS): es una vulnerabilidad entre sitios que ocurre en el DOM (modelo de objetos de documento) del cliente. La razón principal es el problema de seguridad causado por la lógica de procesamiento del script del cliente.

Las técnicas de prevención XSS comúnmente utilizadas incluyen:

  1. Al igual que con las recomendaciones para la protección contra inyección SQL, se supone que todas las entradas son sospechosas y se deben verificar estrictamente palabras como script, iframe, etc. en todas las entradas. La entrada aquí no es solo la interfaz de entrada con la que los usuarios pueden interactuar directamente, sino que también incluye variables en las cookies en las solicitudes HTTP, variables en los encabezados de las solicitudes HTTP, etc.
  2. Verifique no solo el tipo de datos, sino también su formato, longitud, rango y contenido.
  3. No se limite a realizar la verificación y el filtrado de datos en el lado del cliente. Los pasos clave de filtrado se realizan en el lado del servidor.
  4. Los datos de salida también deben verificarse. Los valores en la base de datos pueden generarse en varios lugares en un sitio web grande. Incluso si la entrada está codificada y se realizan otras operaciones, se deben realizar controles de seguridad en todos los puntos de salida.
  5. Pruebe todas las amenazas conocidas antes de lanzar su aplicación.

  • Vulnerabilidad de contraseña débil

No existe una definición estricta y precisa de contraseña débil. Las contraseñas que otras personas (que pueden conocerle bien) pueden adivinar fácilmente o descifrar con herramientas de descifrado generalmente se consideran contraseñas débiles. La configuración de contraseñas suele seguir los siguientes principios:

  1. No utilice contraseñas vacías ni contraseñas predeterminadas del sistema, que suelen ser contraseñas débiles.
  2. La longitud de la contraseña no debe ser inferior a 8 caracteres.
  3. La contraseña no debe ser una secuencia continua de caracteres (por ejemplo: AAAAAAAA) ni una combinación de caracteres repetidos (por ejemplo: tzf.tzf.).
  4. La contraseña debe ser una combinación de los siguientes cuatro tipos de caracteres: letras mayúsculas (AZ), letras minúsculas (az), números (0-9) y caracteres especiales. Contiene al menos un carácter de cada tipo. Si un determinado tipo de carácter contiene solo uno, entonces el carácter no debe ser el primero ni el último.
  5. La contraseña no debe incluir el nombre y la fecha de nacimiento, fecha de aniversario, nombre de inicio de sesión, dirección de correo electrónico y otra información relacionada con la persona, padres, hijos y cónyuge, así como palabras del diccionario.
  6. Las contraseñas no deben ser palabras con números o símbolos que reemplacen ciertas letras.
  7. Las contraseñas deben ser fáciles de recordar y rápidas de ingresar para que otros no puedan ver fácilmente su entrada detrás de usted.
  8. Cambie su contraseña al menos una vez cada 90 días para evitar que intrusos no detectados sigan usándola.

  • Vulnerabilidad de seguimiento de encabezados HTTP

La especificación HTTP/1.1 (RFC2616) define el método HTTP TRACE, que los clientes utilizan principalmente para probar u obtener información de diagnóstico enviando una solicitud TRACE al servidor web. Cuando el servidor web habilita TRACE, el encabezado de la solicitud enviada se devolverá completamente en el contenido (Cuerpo) de la respuesta del servidor, donde es probable que el encabezado HTTP incluya token de sesión, cookies u otra información de autenticación. Un atacante podría aprovechar esta vulnerabilidad para engañar a usuarios legítimos y obtener su información privada. Esta vulnerabilidad a menudo se combina con otros métodos para llevar a cabo ataques efectivos. Dado que las solicitudes HTTP TRACE pueden iniciarse a través de scripts del navegador del cliente (como XMLHttpRequest) y se puede acceder a ellas a través de la interfaz DOM, los atacantes las explotan fácilmente. Los métodos para defenderse de las vulnerabilidades de seguimiento de encabezados HTTP suelen desactivar el método HTTP TRACE.

  • Vulnerabilidad de ejecución remota de comandos de Struts2

Apache Struts es un marco de código abierto para crear aplicaciones web Java. Hay un error de filtrado de entrada en Apache Struts que puede explotarse para inyectar y ejecutar código Java arbitrario si se encuentra un error de conversión.

La mayoría de las razones por las que los sitios web tienen vulnerabilidades de ejecución remota de código se deben a que el sitio web utiliza Apache Struts Xwork como marco de aplicación del sitio web. Debido a que este software tiene vulnerabilidades de ejecución remota de código de alto riesgo, el sitio web enfrenta riesgos de seguridad. CNVD se ha ocupado de muchas de estas vulnerabilidades, como por ejemplo: una vulnerabilidad de ejecución remota de comandos (CNVD-2012-13934) en el sitio web "GPS Vehicle Satellite Positioning System"; una vulnerabilidad de ejecución remota de código en el libro de visitas de Aspcms (CNVD-2012-11590); , etc.

  • Vulnerabilidad de carga de archivos

Las vulnerabilidades de carga de archivos generalmente son causadas por un filtrado laxo de las variables de ruta de carga de archivos en el código de la página web. Si el código de implementación de la función de carga de archivos no limita estrictamente el sufijo y el tipo de archivo cargado por los usuarios, un atacante puede cargar cualquier archivo a través de un directorio accesible. a través de la Web, incluido el archivo de puerta trasera del sitio web (webshell), controlando así de forma remota el servidor del sitio web.

Por lo tanto, durante el desarrollo de sitios web y aplicaciones, los archivos cargados deben estar estrictamente restringidos y verificados, y deben cargarse archivos que contengan códigos maliciosos. Al mismo tiempo, los permisos de ejecución de los directorios relacionados están restringidos para evitar ataques webshell.

  • Vulnerabilidad de fuga de dirección IP privada

La dirección IP es un indicador importante de un usuario de la red y es lo que los atacantes necesitan saber antes de lanzar un ataque. Hay muchas formas de obtenerlo, y los atacantes también adoptarán diferentes métodos dependiendo de las diferentes condiciones de la red, como: usar el comando Ping en la LAN para hacer ping al nombre de la otra parte en la red para obtener la IP usando la versión IP de; QQ para mostrarlo directamente en Internet. La forma más eficaz es interceptar y analizar los paquetes de datos de la red de la otra parte. El atacante puede encontrar y analizar directamente la información del encabezado IP del paquete de datos interceptado a través del software y luego conocer la IP específica en función de esta información.

Para obtener el "método de análisis de paquetes" más eficaz, puede instalar algún software que pueda eliminar automáticamente la información de IP en el encabezado de los paquetes de datos enviados. Sin embargo, existen algunas desventajas al utilizar este software, tales como: consume recursos seriamente y reduce el rendimiento de la computadora, se verá afectado al acceder a algunos foros o sitios web, no es adecuado para usuarios de cibercafés, etc. El método más popular para que los usuarios individuales oculten su IP hoy en día es usar un proxy. Después de usar un servidor proxy, el "servicio de reenvío" modificará los paquetes de datos enviados, haciendo que el método de "análisis de paquetes" sea ineficaz. Algunos software de red que filtran fácilmente las IP de los usuarios (QQ, MSN, IE, etc.) admiten el uso de métodos proxy para conectarse a Internet. Especialmente después de que QQ usa software proxy como "ezProxy" para conectarse, la versión IP de QQ no puede. mostrar la dirección IP. Aunque un proxy puede ocultar eficazmente la IP de un usuario, un atacante también puede eludir el proxy y encontrar la dirección IP real de la otra parte. El método utilizado por el usuario para ocultar la IP, en cuyas circunstancias también depende de la situación.

  • Solicitud de inicio de sesión sin cifrar

Debido a que la configuración web es insegura y las solicitudes de inicio de sesión transmiten campos confidenciales, como nombres de usuario y contraseñas, sin cifrar, los atacantes pueden espiar la red para robar esta información confidencial. Se recomienda cifrar, como SSH, antes de transmitir.

  • Vulnerabilidad de fuga de información sensible

La inyección SQL, XSS, cruce de directorios, contraseñas débiles, etc. pueden provocar la filtración de información confidencial y los atacantes pueden obtener información confidencial a través de vulnerabilidades.Se utilizan diferentes métodos de defensa para diferentes causas.

  • CSRF

Las aplicaciones web se refieren al término general para utilizar la arquitectura B/S y proporcionar servicios a través de protocolos HTTP/HTTPS. Con el uso generalizado de Internet, las aplicaciones web se han integrado en todos los aspectos de la vida diaria: compras en línea, aplicaciones bancarias en línea, transacciones de valores y acciones, aprobaciones administrativas gubernamentales, etc. En estas visitas web, la mayoría de las aplicaciones no son navegación web estática, sino que implican un procesamiento dinámico en el lado del servidor. En este momento, si los programadores de Java, PHP, ASP y otros lenguajes de programación no tienen suficiente conocimiento de seguridad y no verifican estrictamente la entrada de parámetros del programa, etc., surgirán uno tras otro problemas de seguridad de las aplicaciones web.

Entonces, ¿cómo se pueden descubrir a tiempo las vulnerabilidades anteriores?

tengo que mencionarServicio de escaneo de vulnerabilidades VSS!!

¿Qué es un servicio de escaneo de vulnerabilidades?

Desde el auge de Internet, los incidentes de seguridad de la red que utilizan ataques de vulnerabilidad han continuado y se están volviendo cada vez más graves. Las pérdidas económicas causadas por las vulnerabilidades en todo el mundo son enormes cada año y aumentan año tras año. Las vulnerabilidades se han convertido en uno de los principales culpables que dañan Internet y también se han convertido en el foco de atención del público.

"El servicio de escaneo de vulnerabilidades (VSS) es un servicio de detección de seguridad para el escaneo de vulnerabilidades de sitios web. Actualmente proporciona múltiples servicios, como detección general de vulnerabilidades, gestión del ciclo de vida de las vulnerabilidades y escaneo personalizado. Después de que los usuarios crean una nueva tarea, pueden activar el escaneo manualmente. Tareas para detectar vulnerabilidades del sitio web y proporcionar sugerencias de reparación de vulnerabilidades.

La seguridad del sistema de red depende del eslabón más débil del sistema de red. La seguridad del sistema de red es un proceso dinámico. La forma más efectiva es realizar análisis de seguridad y escaneos regulares del sistema de red, descubrir y encontrar vulnerabilidades en un. oportunamente y modificarlos.

    • Escenarios de aplicación del servicio de escaneo de vulnerabilidades:
      1. Sitio web/sistema de solicitud en línea

Cuando un nuevo sitio web/sistema de aplicación se conecta, primero es necesario realizar una evaluación de seguridad del sitio web/sistema de aplicación para evaluar si el sitio web/sistema de aplicación en línea tiene vulnerabilidades y riesgos, para garantizar la seguridad del sitio web/sistema de aplicación después se pone en línea, y para reducir el riesgo de ser pirateado o pirateado y garantizar el funcionamiento seguro del sitio web/sistema de aplicación después de que se pone en línea.

      1. Amenazas y ataques a sitios web/sistemas de aplicaciones

A medida que siguen creciendo nuevas amenazas y ataques, la seguridad de las aplicaciones web afecta directamente la sostenibilidad del desarrollo empresarial. Los sitios web/sistemas de aplicaciones a menudo están sujetos a ataques y amenazas a la seguridad de la red, lo que resulta en escuchas, retransmisión, manipulación y ataques de denegación de servicio de la información de la red, así como negación del comportamiento de la red, suplantación de identidad, acceso no autorizado, transmisión de virus y otros problemas. . La inspección de seguridad es una inspección exhaustiva del sitio web/sistema de aplicación, y se brindan sugerencias de reparación profesionales para evitar que piratas informáticos utilicen el sitio web y afecten la seguridad del sitio web.

      1. Monitoreo en tiempo real del sitio web/sistema de aplicaciones

El gobierno, la educación, las finanzas y otras unidades necesitan monitorear el sitio web en tiempo real. Si la vulnerabilidad no se repara a tiempo, afectará gravemente la imagen del gobierno, la educación y otras unidades y causará enormes pérdidas a la empresa. Se requiere monitoreo y administración en tiempo real de la seguridad del sistema del sitio web/aplicación. La detección de seguridad muestra intuitivamente los resultados del monitoreo, le avisa tan pronto como se descubren riesgos, identifica rápidamente anomalías en las páginas web y notifica alertas para evitar que las vulnerabilidades sean explotadas y afecten la seguridad del sistema.

      1. Sistemas de sitios web/aplicaciones y otros requisitos de cumplimiento

La protección del nivel de seguridad de la información es un sistema básico para la seguridad de la información en mi país y requiere que los operadores de red cumplan con los requisitos del sistema de protección del nivel de seguridad de la red. La garantía de Clase A requiere que los operadores de sistemas de aplicaciones o sitios web realicen evaluaciones de seguridad al menos dos veces al año para garantizar el cumplimiento de la garantía de Clase A. Las pruebas de seguridad ayudan a los usuarios que necesitan dicho seguro a realizar evaluaciones de seguridad y cumplir con los requisitos de cumplimiento de dicho seguro.

    • ¿Qué incluye generalmente un servicio de escaneo de vulnerabilidades?
      1. Escaneo de vulnerabilidades web

Los piratas informáticos pueden explotar fácilmente las lagunas y debilidades del sitio web para provocar ataques, provocar efectos adversos y pérdidas económicas.

Escaneo general de vulnerabilidadesLa rica biblioteca de reglas de vulnerabilidad puede realizar un escaneo de vulnerabilidades completo y en profundidad para varios tipos de sitios web y proporcionar informes de escaneo completos y profesionales.

Escanee las vulnerabilidades más urgentesPara las vulnerabilidades CVE más urgentes, los expertos en seguridad analizan las vulnerabilidades de inmediato, actualizan las reglas y brindan el escaneo de vulnerabilidades CVE más rápido y profesional.

      1. Escaneo de contraseñas débiles

Los activos como hosts o middleware generalmente usan contraseñas para el inicio de sesión remoto y los atacantes suelen usar tecnología de escaneo para detectar sus nombres de usuario y contraseñas débiles.

Múltiples escenas disponiblesConexión integral del sistema operativo, que cubre el 90% del middleware y admite la detección de contraseñas débiles para servicios web estándar, sistemas operativos, bases de datos, etc.

Rica biblioteca de contraseñas débilesBiblioteca rica de coincidencia de contraseñas débiles, simula piratas informáticos para detectar contraseñas débiles en varios escenarios y admite diccionarios personalizados para la detección de contraseñas.

      1. Escaneo de middleware

El middleware puede ayudar a los usuarios a desarrollar e integrar software de aplicaciones complejas de manera flexible y eficiente. Una vez que los piratas informáticos descubren y explotan las vulnerabilidades, afectará la seguridad de las capas superior e inferior.

Escenarios de escaneo enriquecidosAdmite la vulnerabilidad de la versión y el escaneo del cumplimiento de la configuración de los principales contenedores web, marcos de desarrollo de front-end y pilas de tecnología de microservicios de back-end.

Múltiples métodos de escaneo opcionalesAdmite la identificación de middleware y su versión en el servidor a través de varios métodos, como paquetes estándar o instalación personalizada, y descubre de manera integral los riesgos de vulnerabilidad en el servidor.

      1. Pruebas de cumplimiento de contenido

Cuando se descubre que un sitio web tiene un discurso que no cumple con las normas, causará múltiples pérdidas a la marca y la economía de la empresa.

Identificación precisaActualice sincrónicamente los datos de muestra de los puntos políticos actuales y eventos de opinión pública, y ubique con precisión diversos contenidos pornográficos, relacionados con la violencia, el terrorismo, la política y otros contenidos sensibles.

Inteligente y eficienteRealice análisis semánticos contextuales sobre contenido de texto e imágenes e identifique de forma inteligente variantes de texto complejas.

  • Resumir:

Una vez que los delincuentes aprovechen las vulnerabilidades, las empresas sufrirán enormes pérdidas. Si puede descubrir de forma proactiva los riesgos del sitio web y tomar medidas correctivas de manera oportuna, puede reducir los riesgos y las pérdidas. Por lo tanto, el escaneo de vulnerabilidades, como medida preventiva proactiva, juega un papel muy importante para evitar eficazmente ataques de piratas informáticos y cortar los problemas de raíz.

Los servicios de escaneo de vulnerabilidades pueden resolver eficazmente los desafíos que enfrenta la gestión de seguridad de los sitios web y también pueden cumplir mejor con la eficiencia y precisión requeridas en el trabajo de inspección de seguridad, a fin de mejorar el nivel de gestión de seguridad de los sitios web y las aplicaciones.