Fuga de información

Fuga de información: ¿por qué los hackers conocerían la lógica de su código?

¿Por qué el mensaje de error pierde la lógica del código?

Primero, la información de error es un error de sintaxis, es decir, un error de sintaxis. Ingresar una sola letra "g" en la posición de la contraseña ciertamente no causará un error, por lo que esta declaración SQL es un error causado por una comilla simple adicional. Si usa PreparedStatement y otros métodos, este error no ocurrirá. Por lo tanto, la consulta SQL en segundo plano debe ser una concatenación de cadenas directamente, sin filtrar comillas simples.
En segundo lugar, parte de la condición WHERE que se muestra en el mensaje de error es username = '' y password = ''. Esta es otra lógica de inicio de sesión, por lo que siempre que el nombre de usuario y la contraseña sean correctos, esta declaración SQL devolverá la información de usuario requerida por el hacker. Por lo tanto, la instrucción SQL en segundo plano debe tener la forma de seleccionar desde dónde.
Según esta información, los piratas informáticos pueden lanzar fácilmente ataques de inyección SQL.

"Black Box Testing (Functional Testing)" es ejecutar directamente la aplicación sin obtener el código, y luego escanear las solicitudes y respuestas de la aplicación. Por ejemplo, en el escenario de fuga de información de errores, la detección de "recuadro negro" puede iniciar algunas solicitudes a la aplicación que inevitablemente conducirán a errores (como las comillas simples en el ejemplo anterior), y luego observar si la aplicación devuelve el registro de errores completo o devuelve La página procesada.

La fuga de información de error es una forma indirecta de fuga de información. La forma indirecta de filtración de información es principalmente reunir varias piezas de información dispersa para restaurar la apariencia general del código y luego lanzar ataques dirigidos.

Además del mensaje de error, ¿dónde más se filtrará la lógica del código?

Declaración de devolución de información y divulgación de información de anotación.

El código de front-end básicamente se puede mostrar en el navegador sin compilar, por lo que los piratas informáticos pueden ver fácilmente la información del comentario en el código de front-end. Sin embargo, si aparece información clave como la dirección IP del servidor, la dirección de la base de datos y la contraseña de autenticación en estas anotaciones. Una vez que esta información crítica se filtre, causará consecuencias muy graves.

"Prueba de caja blanca (Prueba de estructura)" significa obtener directamente el código fuente en línea y luego escanearlo. El principio de la información de anotación de escaneo de "caja blanca" es relativamente simple, porque los comentarios en cada idioma serán Las etiquetas especiales (como / * en Java y PHP) se pueden identificar con mayor precisión. Además, la detección de "recuadro blanco" generalmente se utiliza para detectar vulnerabilidades de código o vulnerabilidades lógicas.

Al solicitar una dirección de imagen, el servidor devolverá tres resultados de acuerdo con la "supervivencia" de la dirección y el tipo de datos devueltos: "error de formato de" imagen no existe "y la imagen se muestra normalmente. El hacker utiliza la lógica de devolver información a través del servidor para usar un SSRF que solicita una imagen para descubrir la "supervivencia" de todo el servicio de fondo.

Cuando inicia sesión en la aplicación, la lógica de retorno de la aplicación puede ser así: si el nombre de usuario y la contraseña ingresados ​​son correctos, el inicio de sesión es exitoso; si la aplicación no tiene este usuario, devuelve "el nombre de usuario no existe"; si el nombre de usuario y la contraseña ingresados Si no coinciden, devuelve "Error de contraseña".

¿Cuáles son las fugas directas comunes?

El primer método de fuga está relacionado con los archivos ocultos en la herramienta de administración de versiones.

SVN creará una carpeta .svn en el directorio del proyecto, que almacena la información del archivo de origen de cada versión de la aplicación, que también es la base de datos para que SVN implemente la reversión del código. Si el SVN puede aplicar cualquier versión del código a través de la extracción de datos en .svn, también puede hacerlo el hacker. Siempre que no elimine el directorio .svn del código cuando esté en línea, significa que los piratas informáticos pueden acceder a todos los archivos en la URL .svn. Luego, simplemente ejecutando un script simple, el hacker puede rastrear una versión completa del código.

Para este tipo de fuga de código fuente causada por contenido adicional en el directorio (.svn / .git), por un lado, debemos realizar una revisión manual del código en línea para asegurar que los archivos y carpetas irrelevantes se borren correctamente; por otro lado, También podemos restringir algunas rutas sensibles en el servicio HTTP.

Además de ser una herramienta de administración de versiones, Git también es una herramienta de administración de código muy popular. Además de la vulnerabilidad de archivos ocultos mencionada anteriormente (Git genera .git, que también contiene información de archivos para varias versiones de la aplicación), Git también tiene el problema de cargar código en plataformas públicas. Sin embargo, cargar código usando GitHub suele ser un comportamiento personal, por lo que nos resulta difícil evitarlo desde un nivel técnico.

La compañía debe comenzar con el fortalecimiento de la capacitación sobre conciencia de seguridad de los empleados y el fortalecimiento del sistema de gestión de la compañía para evitar que los empleados carguen códigos en privado. Además, la empresa también puede iniciar una inspección de patrulla en GitHub (la herramienta más conocida es Hawkeye), recuperando periódicamente las palabras clave del código de la empresa (como los nombres de paquetes, nombres de dominio, etc.) para pruebas. Es probable que el resultado de la correspondencia a través de estos métodos sea el código divulgado públicamente por los empleados. Después de la confirmación, podemos contactar a la persona que lo cargó para eliminarlo.

Resumen

Básicamente, el primer paso de todos los ataques comienza con la fuga de información. Y los piratas informáticos no tienen forma de atacar un sistema desconocido, por lo que los piratas informáticos utilizarán esta información filtrada para inferir la arquitectura general y la lógica de la aplicación.

Hay muchas formas y razones para la filtración de información, entre ellas, además de la filtración de información causada por hackers que lanzan ataques activamente, hay muchas filtraciones de información causadas por razones no técnicas.

  • Protección de la información: a través de medios técnicos, los recursos a los que no se debe acceder deben protegerse para evitar fugas de información;
  • Detección de códigos: desde dos direcciones de "recuadro blanco" y "recuadro negro", para detectar códigos, aplicaciones, etc., y proporcionar una alerta temprana de posibles fugas;
  • Auditoría manual: por fugas causadas por razones no técnicas, fortalezca la auditoría manual. Al mismo tiempo, desde el sistema de la compañía, para mejorar la conciencia de seguridad de los empleados.

img

Supongo que te gusta

Origin www.cnblogs.com/liugangjiayou/p/12711981.html
Recomendado
Clasificación