¿Cómo pruebo y aseguro los analizadores ASN.1?

6

Por lo que puedo decir, .NET no tiene un ASN.1 parser para leer o escribir datos construido en el marco. Esto significa que cualquier código que crea o verifica datos ASN.1 está utilizando una biblioteca de terceros de calidad variable. Bouncy Castle , y JavaScience para .NET son algunos ejemplos de tales bibliotecas.

Soy consciente de algunas instalaciones de producción que utilizan analizadores ASN1 menos utilizados y menos probados. Teniendo en cuenta los problemas de análisis de datos en el pasado, y también que OpenSSL sigue teniendo problemas con el análisis de ASN1 Creo que el análisis de ASN1 es una preocupación que se pasa por alto.

Background

ASN.1 se utiliza en certificados TLS, correo electrónico X.400, X.500 y servicios de directorio de Protocolo ligero de acceso a directorios (LDAP), H.323 (VoIP), Kerberos, BACnet y Protocolo simple de administración de red (SNMP) para describir las unidades de datos de protocolo (PDU) que intercambian. Cualquier software personalizado que lea o escriba datos ASN.1 fuera de un contenedor de confianza podría exponer al sistema a riesgos.

Consulte Wikipedia para obtener más información.

Pregunta

  • ¿Cómo pruebo y aseguro los analizadores ASN.1?

  • ¿Qué analizadores son más seguros que otros?

  • ¿Cómo hace .NET AD LDAP, la validación del certificado oid y los kerberos sin una biblioteca integrada?

pregunta random65537 01.07.2012 - 04:50
fuente

3 respuestas

3

Realmente no puede probar un analizador ASN.1 para su corrección, porque es una pieza compleja de software y no sabemos cómo demostrar que una pieza de software determinada es correcta. Lo que puedes hacer es confiar en una biblioteca con buena reputación. Es posible que desee consultar esta pregunta . Alternativamente, reimpóntelo usted mismo; esto no es muy difícil si se adhiere a un subconjunto viable de ASN.1 (por ejemplo, solo codificación DER, solo algunos tipos de cadena, ...).

.NET necesariamente tiene algún código incorporado para realizar el análisis ASN.1; esto no significa que necesariamente le otorgue acceso a esa biblioteca.

Al menos, las bibliotecas ASN.1 escritas en Java o en lenguaje .NET se benefician de la resistencia innata de estos lenguajes a los desbordamientos de búfer (si se produce un desbordamiento de búfer, se lanza una excepción, que es ligeramente mejor, desde un punto de seguridad). de vista, para realmente sobrescribir datos en la memoria).

    
respondido por el Thomas Pornin 14.09.2012 - 19:35
fuente
0

Creo que el codificador / decodificador ASN.1 se puede generar automáticamente a partir de una descripción formal del formato y, por lo tanto, debería estar relativamente a salvo de los errores (de programación). Compruebe los compiladores ASN.1. También puede buscar ASN.1 en la base de datos CVE de MITER y verificar qué tan comunes son esas fallas y quién las hace. O si una biblioteca como el castillo hinchable en general tiene una tendencia a tales fallas, en comparación con, por ejemplo, OpenSSL. Creo que el riesgo es muy bajo, solo conozco uno de estos incidentes.

    
respondido por el pepe 18.07.2012 - 16:15
fuente
0

¿Cuál es su capacidad cuando se trata de analizar. De lo que realmente estamos hablando en general, si quiere poder validar ASN.1, afortunadamente, dado que existe una definición EBNF para ASN.1, sería un proyecto largo pero podría usar cualquiera de los analizadores LALR Marcos para ayudar a generar el código.

Básicamente estarías recreando la biblioteca.

No estoy seguro de lo que quieres decir con seguro. Una PDU válida se ajustaría a ASN.1. Pero está buscando un problema diferente si desea limitar el tipo o la cantidad de datos que pueden solicitarse con este método. Lo único que realmente puedo decir es que las bibliotecas más populares probablemente hayan tenido un mayor escrutinio, en última instancia, solo una parte del sistema general que se implementará.

    
respondido por el M15K 15.08.2012 - 18:58
fuente

Lea otras preguntas en las etiquetas