¿Seguridad liderada por el desarrollo versus seguridad dirigida por la administración en un producto de software?

1

Hay casos en los que tiene la oportunidad, como desarrollador, de aplicar protecciones y características de seguridad más estrictas en un software, aunque podrían muy bien administrarse a nivel ambiental (es decir, el sistema operativo se encargaría de ello) .

¿Dónde diría que dibuja la línea y qué elementos tiene en cuenta en su decisión?

Ejemplos concretos

La gestión de usuarios es responsabilidad del sistema operativo

No se entiende exactamente como una función de seguridad, pero en un caso similar, Google Chrome usaba para no permitir perfiles separados. El motivo invocado (aunque ahora admite múltiples perfiles para un mismo usuario de sistema operativo) solía ser que la administración del usuario era responsabilidad del sistema operativo.

Deshabilitando los campos de formulario web

Una solicitud recurrente que veo dirigida en línea es para que la finalización automática se deshabilite en los campos del formulario. La finalización automática no existía en los navegadores antiguos, y era una característica bienvenida en el momento en que se introdujo para las personas que necesitaban rellenar formularios a menudo. Pero también trajo algunos problemas de seguridad, por lo que algunos navegadores comenzaron a implementar, además de la configuración (obviamente necesaria) en su propio panel de preferencias / personalización, un atributo autocomplete para los campos form o input . Y esto ahora se ha introducido en el próximo estándar de HTML5. Para los navegadores que no escuchan este atributo, se ofrecen hacks extraños * , como generar ID y nombres únicos para los campos para evitar que se sugieran en formularios futuros (lo que viene con otra manada de problemas, como contaminando su caché de autocompletado local y no impidiendo que se almacene una contraseña en él, sino duplicando probablemente sus ocurrencias).

En este caso en particular, y en otros, diría que se trata de una configuración de usuario y que es el deseo del usuario y la responsabilidad del usuario para habilitar o deshabilitar el llenado automático (deshabilitando la función por completo). Y si se basa en una política interna y un requisito de seguridad en un entorno corporativo, entonces sustituya al usuario por el administrador de lo anterior.

Supongo que se podría argumentar en contra de que el usuario puede querer acceder a aplicaciones (o sitios) no críticos con esta característica útil habilitada y aplicaciones críticas con esta característica deshabilitada. Pero entonces creo que para eso son las zonas de seguridad (en algunos navegadores), o el signo de que necesita un entorno / cuenta más seguro (y dedicado) para usar estas aplicaciones.

* Obviamente no niego la ingeniosidad de las personas que fueron forzadas a encontrar soluciones, solo la necesidad de dichas soluciones.

Preguntas

Eso fue un poco largo, así que supongo que mis preguntas son:

  • En general, ¿consideraría que es la responsabilidad de la aplicación (por lo tanto, del desarrollador)?
  • ¿Dónde dibuja la línea, si no es en el caso "general"?

Esto se publica de forma cruzada desde Programmers StackExchange , basado en un comentario del moderador .

    
pregunta haylem 16.09.2012 - 09:36
fuente

2 respuestas

4

El dilema no es específico de la seguridad, pero la seguridad hace que sea más fácil resolver (aunque no de una manera filosóficamente satisfactoria).

Considere el navegador web Firefox. Es muy autocontenido. Por ejemplo, tiene su propia capa criptográfica, con su propio almacenamiento de claves privadas y manejo de certificados e implementación de SSL y lista de anclajes de confianza. Del mismo modo, Firefox tiene su propia configuración para proxies. Por otro lado, tanto Internet Explorer como Chrome delegan bastante al sistema operativo en esas áreas. Esto es un compromiso: lo que se delega en el sistema operativo no debe volver a implementarse, PERO esto trae la configuración del sistema operativo a la imagen y puede agregar restricciones.

Por ejemplo, cuando queremos agregar alguna compatibilidad con tarjetas inteligentes al navegador, el controlador relevante debe instalarse en el sistema operativo (en el mundo de Windows, un "Proveedor de servicios criptográficos"), pero esto no es suficiente para Firefox, que < em> también necesita su propio controlador (una DLL PKCS # 11). La forma de Firefox entonces aumenta la complejidad y los costos de administración. Por otro lado, si configuro un proxy en Chrome, lo establezco en todo el sistema y afecta a todas las demás aplicaciones; mientras que con Firefox, puedo configurarlo solo para Firefox, que es más flexible; p.ej. Si quiero observar el comportamiento de mi servidor web cuando las conexiones provienen de IP distintas, me gustaría ejecutar varios navegadores simultáneamente, algunos de los cuales usan proxies SOCKS. No puedo hacer eso con Chrome (a menos que use máquinas virtuales), necesito Firefox para eso.

Por lo tanto, el dilema consiste principalmente en equilibrar la flexibilidad con la complejidad. Firefox es un sistema operativo por derecho propio, lo que lo hace bastante portátil, pero requiere una administración específica. Ahora, ¿cómo entra seguridad en eso? Cuando decimos "seguridad", a menudo pensamos "culpar" (con esto 'nosotros' me refiero a 'la mayoría de los gerentes'). Esto resuelve el dilema: si, como desarrollador, tengo la opción de confiar en el sistema operativo para hacer su trabajo, o hacerlo yo mismo, entonces no se me puede culpar por elegir este último, incluso si aumenta los costos enormemente.

Como dije, esto es altamente insatisfactorio, pero el dilema está resuelto. Incluso se admite socialmente que un desarrollador contratado se niega a hacer el trabajo por completo si lo considera "inseguro". Mientras que delegar en el sistema operativo, por cuestiones de seguridad, se siente como audaz y audaz, y de alguna manera arriesgada, y, como desarrollador, esto funcionó mejor y nunca se debe insinuar en la introducción de problemas de seguridad, porque de lo contrario el audaz desarrollador se convertirá en un chivo expiatorio audaz . ¡Ay de quien no se atreve a compartir la paranoia del ambiente!

(El argumento anterior se puede convertir en un argumento para la integración del navegador en el sistema operativo, que es lo que Microsoft hace con IE).

    
respondido por el Tom Leek 16.09.2012 - 16:15
fuente
1

Su pregunta es demasiado amplia para dar una respuesta clara. La única respuesta que puedo imaginar es: "depende".

En términos generales, si tiene una propiedad de seguridad específica de la aplicación, la aplicación tendrá que aplicarla e implementar la funcionalidad de seguridad. Por otro lado, si tiene una propiedad de todo el sistema que desea que se aplique en todas las aplicaciones, es posible que deba implementarse en el sistema operativo o en algún otro nivel inferior. Pero los detalles de la situación específica probablemente determinarán la respuesta correcta.

La situación con autocompletado no está realmente impulsada por un debate sobre la seguridad de los desarrolladores frente a los administradores. Es una situación específica, que surgió debido a otros factores; Si desea saber más sobre cómo se desarrolló la web de esa manera, haga una pregunta por separado. Pero asegúrese de encuadrarlo con cuidado: es probable que una pregunta sobre lo que "deberían" hacer los navegadores sea demasiado subjetiva para hacer una buena pregunta. Y si se encuentra discutiendo en la pregunta acerca de lo que cree que es lo correcto, tal vez este sitio no sea el mejor para la pregunta. Intente evitar cualquier cosa con algún indicio de una perorata y céntrese en preguntas técnicas que tener una respuesta técnica, o donde las respuestas puedan ser respaldadas por evidencia o análisis.

Como recordatorio, de acuerdo con las Preguntas frecuentes, las preguntas deben ser sobre una situación específica y concreta a la que se enfrenta. Esto no es un foro de discusión. Entonces, ¿cuál es el problema real al que te enfrentas? Una pregunta sobre un dilema único y específico donde surgió esto sería sobre el tema; pero preguntar sobre "seguridad liderada por el desarrollo frente a la administración" (lo que sea que signifique) en general es demasiado amplio.

    
respondido por el D.W. 16.09.2012 - 10:01
fuente

Lea otras preguntas en las etiquetas