He trabajado en entornos muy centrados en el desarrollo durante mi carrera, y puedo confirmar que la mayoría de los desarrolladores siempre tomarán el camino más corto hacia la victoria y lo acortarán siempre que sea posible, a menos que cause una ejecución lenta del código. Por lo general, los problemas de seguridad no se pueden ver en absoluto.
No hay una respuesta correcta o incorrecta, ya que cada desarrollador / grupo de desarrollo tiene una dinámica diferente y responde de diferentes maneras. Dicho esto, hay cosas que puedes hacer, como:
-
Invierta en alguna capacitación interna de codificación segura. La mayoría de las casas principales de PenTest ofrecerán esto como un servicio donde enviarán a lo largo de uno de sus mejores y más brillantes equipos de trabajo durante un período de unos días, guiándolos a través de los peligros de no escapar de los personajes y dejando los búferes sin marcar: ) Este es un gran punto de partida, ya que al menos los hace comenzar a considerar el error de sus formas, pero no debe ser aislado o una actividad única.
-
A continuación, puede intentar ejecutar un poco de una captura interna de la bandera / hack-fest que hace que todos trabajen en un ataque y defender la capacidad para comenzar realmente a vivir los problemas que crean sin darse cuenta. Cerveza gratis & La pizza generalmente ayuda a conducir estas sesiones :)
-
Después de eso, para mí, el siguiente paso en la ecuación es darles las herramientas y la inteligencia que necesitan para solucionar estos problemas en el origen a medida que avanzan. La mayoría de las boutiques de prueba de la pluma le dirán que las únicas personas que deben / pueden hacer el análisis de código son los examinadores de la pluma entrenados con años de experiencia. Esto, por supuesto, es una mentira basada en las ventas. Hay algo de cierto en esto, ya que un experimentado revisor de código fuente puede rastrear miles de líneas de código de manera mucho más eficiente que su desarrollador promedio, cuando buscan errores, pero ¿qué sucede si el desarrollador realmente hace esto mientras codifica? ? en ese caso, el desarrollador va a ser más eficiente que el probador de bolígrafos, y aquí es donde esto comienza a pagar dividendos. Esencialmente, obtenga un montón de herramientas gratuitas de revisión de código fuente como AppCodeScan, Checkstyle, Hammurapi, JCR (Java Code Reviewer) o2 OWASP y luego conviértalos en parte de la compilación del desarrollador, y deles el tiempo que necesitan para ponerse al día. ellos. Si sus desarrolladores pueden colocar la última función que escribieron, o un cambio importante, en una herramienta rápida y sucia como la anterior antes de que compilen, y obtener una pista de que algo va a causar un problema, pueden solucionarlo rápidamente. , pre alfa incluso.
-
Para mí, la parte final de la ecuación es que las pruebas de lápiz previas y posteriores a la publicación DEBEN introducir los resultados en el ciclo de desarrollo, de modo que los desarrolladores puedan ver los problemas que causan y poner estrategias para detener la ofensa. . Suena simple, pero a menudo se pasa por alto!
Como dije al principio, aquí no hay una respuesta correcta o incorrecta, pero espero que lo anterior pueda darte una idea o dos para irte y jugar.