¿Diferencia entre patrones de diseño seguros y una línea de guía de codificación genérica?

3

¿Existe una diferencia entre los patrones de diseño seguro y una guía de codificación genérica a partir de la cual puede derivar una línea de guía de codificación específica de la tecnología?

Los patrones como "autenticación", "sesiones seguras" o "validación de entrada" son patrones seguros y también deben abordarse dentro de una línea de guía de codificación.

Entonces, ¿hay alguna diferencia o es simplemente otra definición para el mismo "contenido"?

    
pregunta Th0mas 17.06.2014 - 16:22
fuente

2 respuestas

4

Hay múltiples variantes de terminología por ahí, por lo que no habrá una respuesta absoluta.

Yo diría que "patrón de diseño seguro" es una expresión que será utilizada por personas que creen que los desarrolladores son una especie de simio que puede lograr Seguridad si se hace lo suficientemente obediente a las reglas formales estrictas. Mientras que las "pautas de codificación" serían empleadas por personas más realistas que han comprendido que los desarrolladores están mejor engañados con el "empoderamiento" (y los bananos), y pueden alcanzar un nivel de seguridad decente si se les ofrece orientación. Un requisito realmente crucial para la seguridad es que las personas entiendan lo que están haciendo.

    
respondido por el Tom Leek 17.06.2014 - 16:34
fuente
1

El término "patrón de diseño de seguridad" generalmente significa una práctica de diseño que cuando se aplica correctamente garantiza que una propiedad de seguridad se cumple. Por ejemplo, la marca registrada :

  

Una marca registrada en seguridad informática es un contrato entre el código que verifica las propiedades de seguridad de un objeto y el código que requiere que un objeto tenga ciertas propiedades de seguridad. Como tal, es útil para garantizar un flujo de información seguro. En los lenguajes orientados a objetos, las marcas registradas son análogas a la firma de datos, pero a menudo se pueden implementar sin criptografía.

Por lo tanto, un desarrollador puede registrar un objeto como marca registrada y utilizar la ocultación de información para asegurarse de que otros módulos no puedan falsificar la marca registrada. Entonces, un cliente puede estar seguro de que la presencia de la marca registrada (a veces tan simple como instanceof ) implica que la propiedad se mantiene en tiempo de ejecución.

Por ejemplo, la salida de un desinfectante HTML y una plantilla HTML que desinfecta todas las entradas puede tener una marca registrada como HTML seguro conocido. El código descendente podría verificar la marca registrada para distinguir entre el contenido que aún debe ser tratado con sospecha de aquel que se originó dentro del sistema o que se ha filtrado al ingresar al dominio de seguridad.

Por el contrario, una directriz de codificación podría ser

  

Cuando necesite verificar que se respeta una propiedad de seguridad, como la buena formación o la procedencia, use una de las bibliotecas de validación escritas por nuestros ingenieros de seguridad o verifique que la entrada tenga una marca registrada para saber que la propiedad era revisado en sentido ascendente.

El patrón explica cómo diseñar un objeto o módulo con ciertas propiedades de seguridad, y las pautas apuntan a los clientes que requieren esa propiedad en formas de mantenerlo en su código.

Los patrones explican la relación entre las invariantes y las decisiones de diseño / API, mientras que las pautas establecen qué prácticas usar & cuando para que los desarrolladores puedan coordinar efectivamente su trabajo.

Cuando se trabaja en un lenguaje orientado a objetos con poca ocultación de información, la marca registrada de objetos es más difícil, por lo que una guía de codificación podría ser

  

No falsifique marcas registradas o el equipo del núcleo seguro lo perseguirá.

que no aboga por el uso de un patrón de diseño seguro, pero cuando se sigue mejora la seguridad del sistema al evitar abusos de las características del lenguaje que violan los contratos de seguridad.

    
respondido por el Mike Samuel 17.07.2014 - 17:46
fuente

Lea otras preguntas en las etiquetas