¿Cuál es la manera más rentable de cumplir con el requisito 6.5 de PCI, la capacitación de desarrolladores?

0

Somos una pequeña empresa que está cada vez más presionada para ser una reclamación de PCI.

Nuestro producto principal es una API que mueve datos de titulares de tarjetas entre un cliente y un proveedor. Estoy en el proceso de obtener la queja de la compañía PCI DSS.

El problema que tengo es que no queremos gastar mucho dinero en la capacitación de desarrolladores. PCI DSS Recruitment 6.5: "Verifique que los procesos requieran capacitación en técnicas de codificación segura para desarrolladores, según las mejores prácticas y guías de la industria".

¿Cuál es la forma más rentable de cumplir con este requisito?

    
pregunta Rup 31.07.2012 - 17:16
fuente

3 respuestas

4

La seguridad se comporta como cualquier otra propiedad de calidad :

Si su software no es confiable y le causa daño a su cliente, puede ser demandado por una indemnización por daños y / o una mala cobertura de la prensa. Lo mismo es cierto para los problemas de seguridad.

Al igual que otras propiedades de calidad, el uso de una gran cantidad de dinero para eventos de una sola vez, no es probable que tenga un efecto duradero. Asegurar la calidad a largo plazo requiere estructuras que la respalden.

Para ser más concretos: una capacitación de seguridad general de 3 días para todos los desarrolladores puede ser bastante costosa, pero probablemente no sea una forma efectiva de gastar el dinero.

Un enfoque a largo plazo puede ser este: designe un pequeño número de expertos en seguridad y edúquelos (por ejemplo, permitiéndoles visitar cursos, obtener consultas externas, ...). Este grupo lo hará

  • identifique los aspectos de seguridad que son importantes para sus compañeros desarrolladores (por ejemplo, un desarrollador de aplicaciones web que use Java debería centrarse en OWASP en lugar de desbordamientos de búfer)
  • apoyar al grupo de desarrollo de arquitectura para minimizar el potencial de errores relacionados con la seguridad
  • enseñe a los otros desarrolladores sobre aspectos de seguridad basados en la arquitectura concreta que utilizan en su empresa
  • hacer revisiones de código
  • fomentar discusiones sobre aspectos de seguridad.

Permítanme darles un ejemplo: una empresa desarrolla una aplicación web utilizando el marco Java Server Faces basado en componentes. En JSF, los componentes de interfaz de usuario generan código HTML y JavaScript. Por lo tanto, los desarrolladores de componentes deben conocer XSS y evitar toda entrada.

Los desarrolladores de funciones empresariales utilizan estos componentes de interfaz de usuario. No necesitan escribir código HTML, por lo que no necesitan escapar de la entrada (y no pueden hacerlo porque escapar es la tarea de los componentes). Pero los desarrolladores de funciones de negocios deben entender cómo usar los componentes de forma segura (por ejemplo, no generan código HTML por sí mismos para eludir los componentes).

    
respondido por el Hendrik Brummermann 31.07.2012 - 20:22
fuente
2

No estoy de acuerdo con la redacción de varios de los comentarios anteriores, pero no con el sentimiento. Los errores de codificación del desarrollador son la fuente de la mayoría de los problemas. Dicho esto, incluso los desarrolladores experimentados que se preocupan por la seguridad se caen (de lo contrario no tendríamos que parchear los sistemas operativos de MS todos los meses, ¿verdad?)

(Sin embargo, también creo que el alcance de la pregunta es demasiado amplio, y para eso probablemente lo cerrará hasta que se edite para que se ajuste al modelo aquí en Sec.SE.)

Hay muchas preguntas similares en el foro que sugieren "mejores prácticas", las 10 listas principales (como OWASP), etc. que pueden formar el núcleo de una sesión de capacitación enfocada y orientada al desarrollador. Su desarrollador senior o gerente de desarrollo sería la persona adecuada para encabezar esto. Es posible que deba traer ayuda externa para crear un programa de capacitación adecuado. Se puede hacer de forma relativamente económica dependiendo de cuán independientes sean sus desarrolladores. La mayoría de los desarrolladores que conozco estarían encantados de poder agregar más habilidades y experiencia estáticas a su repertorio (los lenguajes y los marcos vienen y van, pero persiste la seguridad). No es necesario enviarlos a todos en el curso SANS.

Es posible que el modelo "Train-the-trainer" (TTT) funcione bien para usted. La capacitación jerárquica siempre es más barata que educar formalmente a todos.

Sin embargo, termino diciendo que el sentimiento en los comentarios es correcto. "Enseña a un hombre a pescar ..." y todo eso.

    
respondido por el logicalscope 31.07.2012 - 19:07
fuente
1

Todo lo que necesitas hacer es ir con SDL enlace

Simplemente integrando este proceso con el equipo de desarrollo que está ordenado.

    
respondido por el Andrew Smith 01.08.2012 - 00:35
fuente

Lea otras preguntas en las etiquetas