Ciclo de Vida del Desarrollo de productos de Ciberseguridad

La realización de medidas para el desarrollo de programas seguros en todas las etapas del ciclo de vida (SDLC ─ Secure Software Development Lifecycle) es una condición de obligatorio cumplimiento para garantizar la competitividad en el mercado para las compañías que se dedican al desarrollo de software. Nuestra compañía introdujo en el proceso de desarrollo las mejores prácticas organizativas del proceso de desarrollo del aseguramiento de programas, con el objetivo de garantizar el suministro a nuestros usuarios de productos más confiables y seguros. En particular, Infotecs SDLC (ISDL) tiene en consideración los requerimientos de los estándares de la serie ISO/IEC 27000, los materiales OWASP, así como las recomendaciones NIST (por ejemplo, NIST SP 800-64, SP 800-100).

ISDL es un proceso complejo, que abarca toda la organización y que incluye:

Programa de capacitación

Sin un programa efectivo de adiestramiento, introducir el ISDL no sería posible. Nosotros hemos desarrollado toda una línea de cursos de calificación corporativos, cuyo objetivo es cubrir las lagunas respecto a los conocimientos en la esfera de la protección de la información, garantizar el soporte necesario y el aumento de la calificación profesional de los trabajadores considerando sus obligaciones y zonas de responsabilidad en el marco del ISDL. Aparte de los conocimientos teóricos sobre seguridad, nuestros cursos incluyen una serie de clases prácticas que son muy necesarias para los especialistas técnicos.

Recopilación de los requerimientos

La definición de los requerimientos al producto consiste en la búsqueda de compromiso entre los requerimientos del mercado y el nivel de seguridad necesario para la protección de los activos de los usuarios. Este compromiso se puede lograr solamente recopilando y analizando los requerimientos del mercado , los documentos de la legislación vigente así como los estándares y mejores prácticas.

Requerimientos del mercado

La recopilación de los requerimientos del mercado incluye la detección de problemas del usuario, que pueden ser resueltos con ayuda del producto o del servicio. En esta etapa es muy importante definir muchos detalles, por ejemplo, el tipo de datos a proteger, las funciones necesarias del producto, las posibles restricciones relacionadas con el medio de funcionamiento del producto etc.

Legislación vigente

La consideración de toda la legislación y normas en la etapa temprana facilita la disminución de los gastos, los riesgos de no compatibilidad, así como la fecha de puesta en el mercado del producto en su conjunto.

Estándares y mejores prácticas

A pesar de que la legislación por lo general no exige el cumplimiento de los estándares y las mejores prácticas, su uso es una de las condiciones importantes para asegurar la competitividad de los productos y de la compañía.

Proyección

En esta etapa se analiza detalladamente los requerimientos recolectados con el objetivo de definir la forma de realización de esos requerimientos en el producto, así como se determina la forma más confiable y segura de su realización. Si está planificado el uso de programas de terceros, primero se revisan de forma detallada y se realiza un análisis del área de ataques (además de que se elabora el modelo del atacante)  y se genera el modelo de las amenazas.

Análisis de los componentes de terceros

En el caso de uso de soluciones comerciales de terceros, se le exige al partner en el plazo más corto informarnos sobre las vulnerabilidades encontradas para la toma de las medidas necesarias para evitar que sean explotadas por personas malintencionadas. Aparte de ello, nuestros especialistas de forma automática le dan seguimiento a la información sobre las vulnerabilidades encontradas en el aseguramiento de programas con código fuente abierto (en el caso de que ese software se utiliza en nuestros productos o se prevé su uso en el futuro) para realizar a tiempo los cambios correspondientes.

Análisis del área de los ataques

El objetivo de este análisis es detectar los componentes y funciones a los que los cibercriminales pueden tener acceso y los pueden utilizar, con el objetivo de reducirla la cantidad de componentes y funciones al mínimo posible.  

Creación del modelo de amenazas

La creación del modelo de las amenazas es una las etapas más importantes del desarrollo del producto desde el punto de vista de la seguridad. Nosotros desarrollamos un modelo de amenazas teniendo en cuenta los resultados obtenidos en el paso anterior. Ese modelo en lo adelante se utiliza en la definición del nivel de seguridad necesario y la elección ulterior de las medidas de protección correspondientes que se deben realizaren el producto.

Desarrollo

El desarrollo de aseguramiento de programas seguro ante todo está orientado a que no surjan errores en el código en la etapa de desarrollo, lo que se puede lograr mediante:

Estándar de programación segura

Nosotros hemos desarrollado un estándar corporativo de programación segura que se ha insertado en el proceso de desarrollo del aseguramiento de programas. Este estándar se imparte en el programa de capacitación de nuestros especialistas y es de estricto conocimiento para aquellos especialistas que trabajan en el desarrollo de programas seguros.

Análisis del código

El análisis del código seguro hecho por expertos en seguridad y la revisión del código de los programas permite eliminar los errores en las etapas primarias de desarrollo del aseguramiento de programas. Estos métodos son lo bastante efectivos para la detección de errores lógicos tanto casuales como premeditados en el código de los programas.

Medios de automatización

El proceso de desarrollo de los programas de computación prevé el empleo de medios automatizados (compiladores, sistemas de control de las versiones, analizadores de código, etc.) que deben estar ajustados de forma correcta para su buen funcionamiento. Para garantizar la efectividad, esos instrumentos deben actualizarse a tiempo, por lo que siempre tratamos de que los medios de automatización utilizados en el desarrollo de nuestros productos estén actualizados respecto a las nuevas versiones.

Comprobación

El objetivo de esta etapa es la comprobación de que el producto cumple con los requerimientos de nivel necesario de seguridad. Para la valoración funcional del producto es conveniente realizar una comprobación (test) integracional, regresiva y modular. A su vez, la comprobación de las medidas de protección, el escaneo de las vulnerabilidades y las pruebas de penetración son una parte importante de la comprobación de la seguridad que se ejecuta en la etapa de comprobación.

Comprobación de las medidas de protección

En esta etapa se realiza la comprobación de las medidas de protección durante la cual se comprueba que las mismas han sido desarrolladas de forma correcta y en realidad garantizan el nivel requerido de seguridad.

Scan para la detección de vulnerabilidades

El scan regular automático de las vulnerabilidades permite detectar y eliminar las vulnerabilidades antes del lanzamiento del producto al mercado. En esta etapa también se recomienda ejecutar una prueba de fuzzing para comprobar que el programa responde de forma correcta a los datos de entrada aleatorios como a los esperados. Esto permite identificar los errores de rebosamiento del búfer, la comprobación de los datos de entrada y los problemas de seguridad

Test de penetración

El test de penetración realizado por especialistas en ciberseguridad permite de forma efectiva detectar las vulnerabilidades complejas y como consecuencia, complementa de forma exitosa el scan con ayuda de medios automatizados.

Emisión y soporte del producto

El lanzamiento del producto al mercado se realiza solamente después de la realización exitosa de la comprobación final de la seguridad (FSR – Final Security Review), ejecutada por un equipo compuesto por los desarrolladores del producto y expertos en seguridad. Además, nosotros hemos desarrollado un plan de reacción a los incidentes para la erradicación de los posibles problemas de seguridad en nuestros productos. Nosotros también ofrecemos servicios de soporte técnico y le suministramos a nuestros usuarios de forma expedita toda la información requerida sobre los cambios planificados en el producto.

Comprobación final de la seguridad/certificación

El objetivo fundamental de la revisión final de la seguridad es la comprobación de que el producto está listo y la toma de decisión sobre su salida al mercado. Esa comprobación incluye la valoración de la seguridad del producto y en caso de ser requerido, su certificación. 

Plan de reacción a los incidentes de seguridad

Ninguna compañía desea desarrollar productos de software con vulnerabilidades de seguridad. No obstante, en el proceso de desarrollo es imposible evitar de forma absoluta los errores, así como es imposible evitar la aparición de nuevos tipos de amenazas. Por eso la existencia de un plan de reacción a los incidentes de seguridad preparado con antelación puede de forma significativa economizar el tiempo y los gastos.

Gestión de la configuración y los cambios

Prácticamente cualquier producto terminado requiere de su puesta a punto para su correcto funcionamiento posterior en producción. No obstante, para que el producto cumpla con los requisitos de seguridad durante su explotación, es necesario un control constante del estado del producto, su actualización periódica (por ejemplo, en el caso de salida de una nueva versión, la necesidad de corrección de errores, y/o la erradicación de vulnerabilidades encontradas.

Salida de explotación

Cuando llega el momento de término de la explotación del producto (en el caso de su obsolescencia, necesidad de renovación u otras causas) no se puede olvidar que la información a proteger debe mantenerse protegida. Para ello es necesario planificar de forma anticipada y definir el proceso de salida del producto del mercado, teniendo en consideración las medidas de protección que se deben aplicar para garantizar la seguridad en la organización ulterior del conservación de la información, el borrado de los datos y la destrucción del equipamiento y los programas en su conjunto. 

Conservación de la información

La conservación de la información importante tiene en consideración no solamente la garantía de su acceso, (por ejemplo, cuando lo requiere la ley) sino su protección en el proceso y si es necesario, después de la salida del producto de explotación.

Borrado de los datos

Para evitar la difusión de la información protegida es necesario prestar especial atención a los métodos y al equipamiento que se utilizan para destruir o borrar los datos de los soportes de información. La elección de los métodos correspondientes de destrucción de la información protegida (mediante su reescritura, desmagnetización o destrucción) se debe realizar considerando en nivel necesario de seguridad.  

Destrucción del equipamiento y del aseguramiento de programas

La destrucción física del equipamiento y programas puede ser necesaria solamente en el caso de que la información protegida no se puede borrar con ayuda de otros métodos. Por otro lado, como regla se recomienda de forma enfática borrar el aseguramiento de programas obsoleto, debido a que en caso contrario su uso ulterior puede traer el surgimiento de nuevos riesgos.