Diego Pastor Gustavo Flores Henrry Surci Gary Surco Miguel Quiroga Resumen capitulo 12 ADQUISICION, DESARROLLO Y MANTENIMIENTO DE SISTEMAS 12.1 Requisitos de seguridad de los sistemas.Objetivo.- Asegurar que la seguridad esté incluida dentro de los sistemas de información. Esto quiere decir que se debe incluir la infraestructura, las aplicaciones de negocios y las aplicaciones desarrolladas por usuarios. El diseño y la implementación de los procesos de negocios que soportan las aplicaciones pueden ser cruciales para la seguridad. Por lo tanto los requisitos de seguridad deberían ser identificados y consensuados entes de desarrollar los sistemas de información. 12.1.1 Análisis y especificación de los requisitos de seguridad.Control.- Los enunciados de los requisitos de negocios para sistemas nuevos o para mejoras a sistemas existentes deberían especificar los requisitos de control. Guía de implementación.- Las especificaciones deberían considerar los controles automatizados a ser incorporados en el sistema y las necesidades de controles manuales de apoyo. Los requisitos y controles de seguridad deben reflejar el valor de los activos de información implicados y el posible daño a la organización que resultaría de fallos o ausencia de seguridad. Los requisitos del sistema para la seguridad de información y procesos para implementar la seguridad deben ser integrados en las etapas iniciales de los proyectos de sistema de información. Los controles implentados en la etapa de diseño implican menos costos en la implementación y mantenimiento, en el caso que los productos sean comprados; se debe realizar pruebas formales y realizar un proceso de adquisición, y se deberá tomar mucho énfasis en la seguridad que los proveedores proporcionen. Por otra parte si se desea se puede hacer uso de productos independientes evaluados y certificados, para un criterio de evaluación para productos de seguridad de TI consúltese la ISO/IEC 15408. 12.2 Seguridad de las aplicaciones del sistema.Objetivo.- Evitar pérdidas, modificaciones o mal uso de los datos de usuario en las aplicaciones, Se debe diseñar dentro de las aplicaciones las medidas de control, esto debe incluir la validación de los datos de entrada, el tratamiento interno y los datos de salida. Si se requiere controles adicionales para sistemas de información sensible deberán ser determinados en base a los requisitos de seguridad y la evaluación de riesgos. 12.2.1 Validación de los datos de entrada.Control.- Se deberán validar los datos de entrada a las aplicaciones del sistema para garantizar que son correctas y apropiadas. Guía de implementación.- se deberá aplicar verificaciones a la entrada de las transacciones de los datos de referencia y las tablas de parámetros, los controles siguientes deberían ser considerados: Entrada duplicada, verificación de fronteras esto ayudara a detectar los siguientes errores Valor fuera de rango Caracteres inválidos en los campos de datos Datos que faltan o están incompletos Datos que exceden los límites de volumen por exceso o defecto Datos de control no automatizados o inconsistentes Revisión periódica del contenido de los campos clave de datos para confirmar su validez e integridad. Inspección de los documentos físicos de entrada para ver si hay cambios no autorizados. Procedimientos para responder a los errores de validación. Procedimientos para comprobar la integridad de los datos de entrada Definición de las responsabilidades de todos los implicados en el proceso de entrada de datos. Creación de un registro de actividades envueltas en el procesamiento de los datos de entrada. La re-examinación y la validación de los datos de entrada pueden ser consideradas, donde sea aplicable de este modo se reducirá el riesgo de errores y para prevenir los ataques estándar. 12.2.2 Control del proceso interno.- Control.- Se deberá incorporar a los sistemas comprobaciones de validación para detectar cualquier tipo de corrupción de información a través de errores del proceso. Guía de implementación.- El diseño de las aplicaciones deberán asegurar la implantación de restricciones que minimicen el riesgo de los fallos de proceso con pérdidas de integridad, las áreas a considerar: El uso en los programas de funciones “añadir” y “borrar” para los datos. Los procedimientos para proporcionar una adecuada secuencia. El uso de programas correctos de recuperación después de fallas. La protección contra ataques utilizando corridas, etc Se deberá tener preparado una lista de verificación adecuada,como: Controles de sesión. Controles para comprobar los cuadrantes de apertura. Como: Controles de pasada en pasada Totales de actualización de archivos Controles de programa a programa Validación de los datos generados por el sistema. Comprobaciones de la integridad, autenticidad u otro aspecto de seguridad de datos. Totales de comprobación de registros y archivos Comprobaciones que aseguren que los programas de las aplicaciones se ejecutan en el momento adecuado. Comprobaciones que aseguren que los programas se ejecutan en el orden correcto. Crear un registro de las actividades envueltas en el procesamiento. 12.2.3 Integridad de mensajes.Control.- Se deberá identificar los requerimientos para asegurar la autentificación y protección de la integridad de los mensajes en aplicaciones y se deberá implementar controles apropiados. Guía de implementación.- se deberá considerar un enfoque de gestión del uso de medidas criptográficas a través de la organización, basados en la evaluación de riesgos el uso del cifrado para la protección de la información, un enfoque de gestión de claves, debido rol de responsabilidades, los estándares aprobados por la organización. Los controles criptográficos pueden ser utilizados para diferentes objetivos de seguridad, como: Confidencialidad, integridad y no repudio. 12.2.3 Integridad de mensajes.Control.- La gestión de claves criptográficas deben apoyar el uso de las técnicas criptográficas en la organización. Guía de implementación.- Se deben proteger todos los tipos de claves, y métodos para conseguir este propósito, el cual deberá tener un conjunto de normas, procedimientos y métodos seguros para de esa forma generar claves para distintos sistemas, se deberá generar y obtener certificados de clave pública y tomar medidas de todo tipo para las claves de los usuarios. 12.4 Seguridad de los archivos del sistema Objetivo.- Asegurar la seguridad de los archivos del sistema. 12.4 Seguridad de los archivos del sistema.Control.- Deberá existir procedimientos para controlar la instalación del software en sistemas operacionales. Guía de implementación.- Se deberá tener en cuenta la actualización de las librerías de programas operativos, los cuales deberán tener un código ejecutable y verificar su eficiencia, también se utilizara un sistema de control de configuración, un punto muy importante son estrategias de restauración. 12.4.2 Protección de los datos de prueba del sistema.Control.- Los datos de prueba deben ser seleccionados cuidadosamente, así como protegidos y controlados. Guía de implementación.- Se utilizara una base de datos en producción que contenga información de personas. 12.4.3 Control de acceso a los códigos de programas fuente.Control.- El acceso a los códigos de programas fuente deben ser restringidos. Guía de implementación.- Se deberá mucho cuidado en esta parte con el fin de prevenir la introducción de funcionalidades no autorizadas para esto las librerías de programas fuente no deberán residir en los sistemas operativos, el personal informático no deberá tener libre acceso, para este fin los estándares ISO 10007 e ISO/IEC 122207 brindan mayor información. 12.5 Seguridad en los procesos de desarrollo y soporte.Objetivos.- Mantener la seguridad del software de aplicación y la información. 12.5.1 Procedimientos de control de cambios.Control.- La implementación de cambios debe ser controlada usando procedimientos formales de cambio. Guía de implementación.- Se deberá mantener estrictos controles sobre la implantación de cambios. 12.5.2 Revisión técnica de los cambios en el sistema operativo.Control.- Se deberá revisar y probar las aplicaciones del sistema cuando se efectúen cambios, para asegurar que no impactan adversamente en el funcionamiento o en la seguridad. Guía de implementación.- Se tomara énfasis en la revisión de los procedimientos, garantías del plan de soporte anual y las modificaciones de los cambios del sistema operativo. 12.5.3 Restricciones en los cambios a los paquetes de software.Control.- No se recomienda modificaciones a los paquetes de software. Se deberá limitar a cambios necesarios y todos estos deben ser estrictamente controlados. 12.5.4 Fuga de Información.Control.- Las oportunidades de fuga de información de ben ser previas. Guía de implementación.- Para limitar el riesgo de fuga de informaciónse deberá realizar el escaneo de medios de salida y comunicaciones, un sistema de modulación haciendo uso de los sistemas y software que se consideran de lata integridad, monitoreo regular de las actividades del personal y monitoreo del uso de recursos en sistemas de cómputo. 12.5.5 Desarrollo externo del software.Control.- El desarrollo externo del software debe ser supervisado y monitoreado por la organización. Guía de implementación.- Cuando se externalice el desarrollo del software se deberá realizar acuerdos bajo licencia y cargo en el caso de fallo de terceros, certificación de la calidad y exactitud del trabajo realizado, y más que todo pruebas antes de la implantación para detectar el código Troyano. 12.6 Gestión de la vulnerabilidad técnica.Objetivo.- Reducir los riesgos resultantes de la explotación de vulnerabilidad técnicas publicadas. 12.6.1 Control de las vulnerabilidades técnicas.Control.- Se debe obtener a tiempo la información sobre las vulnerabilidades técnicas de los sistemas de información utilizadas, se debe evaluar la exposición de la organización a tales vulnerabilidades y las medidas apropiadas para tratar a los riesgos asociados. Guía de implementación.Un inventario actual y completo de activos es un prerrequisito para una efectiva gestión de vulnerabilidades técnicas. Esto incluye al vendedor de software, numero de versiones, el estado actual de despliegue y las personas dentro de la organización responsable del software. Para este fin la organización debe definir los roles y responsabilidades asociados con la gestión de vulnerabilidad técnica, los recursos de información que se utilizaran para identificar las vulnerabilidades técnicas relevantes y para mantener precaución sobre ellos se debe verificar el software y otras tecnologías, también se deberá definir una línea de tiempo para reaccionar ante notificaciones técnicas potenciales y relevantes, una vez identificada las vulnerabilidades técnicas potenciales la organización deberá tomar medidas; la vulnerabilidad se deberá tratar con controles adecuados, y tomar en cuenta toda la ayuda tecnológica que se pueda. Un registro de ingreso debe ser mantenido para todos los procedimientos emprendidos, se deberá monitorear y evaluar la gestión de procesos en la vulnerabilidad técnica, los sistemas en alto riesgo deben ser tratados primero