Puerta trasera , entrada secreta (del inglés puerta trasera - "puerta trasera", literalmente "puerta trasera") - un defecto en el algoritmo que el desarrollador incorpora deliberadamente y permite el acceso no autorizado a los datos o el control remoto del sistema operativo y la computadora como un todo [1 ] .
El objetivo principal de una puerta trasera es obtener acceso rápido y encubierto a los datos, en la mayoría de los casos encriptados y protegidos. Por ejemplo, se puede incorporar una puerta trasera en el algoritmo de encriptación para que un atacante realice escuchas telefónicas posteriores del canal seguro [1] [2] .
Este generador fue desarrollado por la NSA y estandarizado como un generador de números pseudoaleatorios criptográficamente fuerte por el Instituto Nacional de Estándares y Tecnología de EE. UU . NIST en 2006. Sin embargo, ya en 2007, investigadores independientes sugirieron que se podría incorporar una puerta trasera en este algoritmo. [3] [4] [5]
Una ilustración del funcionamiento del algoritmo según la especificación NSA [6] :
Este algoritmo utiliza curvas elípticas. - el generador de un grupo de puntos en una curva elíptica, - un punto en una curva elíptica - una constante definida por el estándar, se desconoce cómo fue elegida. Los parámetros de la propia curva también los establece el estándar.
Principio de funcionamiento:Ecuación de la curva
se puede reescribir en la forma y escribir las siguientes expresiones para el funcionamiento del algoritmo:
. . — el estado interno del generador en el paso actual - el estado interno del generador en el siguiente paso — salida del generador en el paso actual Supuesta puerta trasera:Como es un número primo , entonces existe un número tal que . Encontrar es un problema computacionalmente difícil de logaritmo discreto en una curva elíptica, para el cual actualmente no existen algoritmos eficientes. Pero si asumimos que el atacante sabe , entonces se obtiene el siguiente ataque: Si es la siguiente salida del generador, y si existe tal que , entonces el punto se encuentra en la curva y se cumple la siguiente igualdad: . Conociendo el número , puedes calcular: . Por lo tanto, un atacante que conoce el número no solo puede calcular la siguiente salida del generador, sino también enumerar rápidamente todos los estados internos posibles del generador y restaurar su estado interno inicial. Según estudios independientes [2] [7] , con conocimiento , solo 30 bytes de la secuencia de salida del generador son suficientes para restaurar su estado interno inicial mediante una simple enumeración de valores. Según los investigadores, dicha vulnerabilidad puede considerarse como una puerta trasera.
Los investigadores de Yandex han descubierto una vulnerabilidad en la implementación del protocolo TLS en uno de los productos de software de Apple [2] . En su opinión, este error bien puede resultar ser una puerta trasera integrada deliberadamente en el algoritmo por uno de los desarrolladores.
Sección de código con un error: estático DSStatus SSLVerifySignedServerKeyExchnge (....) { DSStatus err ; .... si (( err = SSLHashSHA1 . actualización ( & hashCtx , & SignedParams )) != 0 ) ir a fallar ; ir a fallar ; si (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) ir a fallar ; .... fallar : .... devolver error ; }Como puede ver, hay dos líneas de goto fail después de la primera instrucción if , y la segunda línea siempre se ejecuta, independientemente del resultado de if . Por lo tanto, el procedimiento de verificación del certificado está incompleto. Un atacante con conocimiento de esta vulnerabilidad podría falsificar el certificado y ser autenticado. Esto le permitirá organizar un ataque man-in-the-middle , interfiriendo así con la conexión segura entre el cliente y el servidor. Los investigadores que descubrieron este error en la implementación no pueden decir con certeza si fue intencional o accidental. Es muy posible que se trate de una puerta trasera integrada en el algoritmo por uno de los desarrolladores.
Muchos algoritmos criptográficos modernos utilizan un cierto conjunto de constantes internas en su trabajo. Por regla general, estas constantes están especificadas por el estándar y se eligen por razones de resistencia criptográfica a los tipos de criptoanálisis actualmente conocidos . Pero, en teoría, los desarrolladores pueden utilizar la elección de constantes al estandarizar un algoritmo con intenciones maliciosas: por ejemplo, para crear ciertas vulnerabilidades y puertas traseras en el algoritmo.
Como ejemplo del uso de constantes, podemos citar trabajos de investigación recientes sobre el tema del llamado "hashing malicioso" [8] [9] , donde los autores lograron construir colisiones para la función hash criptográfica SHA1 modificando sus constantes redondas. Tenga en cuenta que el ataque propuesto por los autores del estudio no es un ataque a la función hash SHA1 en sí , solo permite encontrar colisiones si las constantes de ronda se pueden cambiar y solo para ciertos tipos de archivos.
Breve descripción de SHA1 :SHA1 es una función hash redonda moderna. El algoritmo hash es el siguiente:
El propósito del ataque considerado es encontrar tales constantes y tales mensajes y , eso . Este ataque modifica solo los primeros 512 bits (bloque 1) de los mensajes para los que se requiere construir una colisión. El algoritmo se basa en el conocido ataque de diferencia en SHA1 propuesto en 2005 [10] [11] y tiene complejidad en el orden de las operaciones, lo que dificulta su implementación en la práctica. Por lo tanto, hasta ahora no se han encontrado colisiones reales para SHA1 .
Pero en el caso de crear una versión maliciosa de SHA1 , un atacante puede variar no sólo los bloques de mensajes y , sino también las constantes redondas . Según la investigación [9] , esto reduce en gran medida la complejidad del ataque al orden de las operaciones y convierte la construcción de este tipo de colisiones en una tarea real que se puede realizar en varios ordenadores. Por lo tanto, los autores del estudio lograron construir colisiones de un solo bloque para muchos tipos de archivos conocidos.
Colisión de un solo bloque:y - los primeros bloques de mensajes (512 bits) que difieren entre sí, pero dan la misma suma hash - el resto del contenido, que es el mismo para ambos archivos Un ejemplo del uso de hashing malicioso para crear puertas traseras
Usando el ataque descrito, se crearon dos sh-scripts que, cuando se seleccionan , dan la misma suma de hash SHA1, pero funcionan de manera diferente.
Como puede ver, la diferencia entre estos dos scripts está solo en los primeros bloques de 512 bits, que son basura comentada. Pero el contenido de estos bloques luego se usa en la condición if , por lo tanto, los scripts se comportan de manera diferente cuando se ejecutan. Dichos archivos pueden ser utilizados por el creador con intenciones maliciosas.
Las puertas traseras se pueden integrar no solo en el software, sino también en el hardware. Los fabricantes de hardware pueden utilizar estas puertas traseras para incorporar funciones maliciosas en la etapa de producción.
Las puertas traseras de hardware tienen una serie de ventajas sobre las de software:
Un ejemplo de una puerta trasera de hardware sería un firmware de BIOS malicioso . Según los estudios [12] , dicho firmware se puede construir sobre la base del firmware gratuito Coreboot [13] y SeaBIOS . Coreboot no es un BIOS completo: solo es responsable de detectar el hardware disponible en la máquina y transferir el control al propio "relleno del BIOS", que puede ser utilizado como SeaBIOS modificado por un atacante para adaptarse a sus necesidades .
El principio de funcionamiento del firmware malicioso se puede describir brevemente de la siguiente manera: inmediatamente después de que se enciende la computadora infectada, incluso antes de que se cargue el sistema operativo, intenta establecer una conexión con el servidor del atacante a través de Internet. Si tal intento tiene éxito, entonces se descarga algún bootkit de forma remota , lo que a su vez brinda al atacante la oportunidad de realizar acciones maliciosas con la computadora infectada: robo de datos o control remoto . Si falla el intento de conectarse a Internet, el sistema operativo se carga normalmente. Una ventaja indudable para un atacante es que el firmware modificado en sí no contiene ningún código malicioso y los bootkits son difíciles de detectar.
Software malicioso | |
---|---|
Malware infeccioso | |
Ocultar métodos | |
Malware con fines de lucro |
|
Por sistemas operativos |
|
Proteccion |
|
contramedidas |
|