AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

8
UNIVERSIDAD AUTONOMA DE QUITO – UNAQ 1 AUDITORIA INFORMATICA PROFESOR : Ing. Fernando Andrade ALUMNO : Jesús Cisneros Valle FECHA : Quito, 26 de septiembre del 2012 CURSO : 10ASM RESPONDER LAS CUESTIONES DE REPASO DE LOS CAPITULOS 13 y 14 DEL LIBRO “AUDITORIA INFORMATICA” Un enfoque práctico. CAPITULO 13 AUDITORIA DEL MANTENIMIENTO Cuestiones de Repaso: 1. Exponga las razones que hacen de la auditoría del mantenimiento un área especialmente crítica? La mantenibilidad es un factor crítico en el estudio de Auditoría Informática de Mantenimiento, es el factor de calidad que engloba todas las características del software destinadas a hacer que el producto sea más fácilmente mantenibles y en consecuencia, a conseguir una mayor productividad durante la etapa de mantenimiento. Además el control y la evaluación de la Mantenibilidad pueden ser un factor determinante en el estudio de la Auditoría Informática en la etapa de mantenimiento del software. 2. Desarrolle una lista de comprobación que recoja los aspectos más importantes a la hora de evaluar la gestión de cambios? 1. Se han tenido en cuenta las implicaciones laterales asociadas con el cambio? 2. Se han tenido en cuenta los aspectos documentales en cuanto a evaluar y aprobar la petición de cambios? 3. Se ha documentado el cambio, una vez realizado y procediéndose a dar información a todos los que se ven implicados en el proceso? 4. En cuanto a las recisiones técnicas formales. Se han realizado las adecuadas? 5. Se ha hecho una revisión de aceptación final para asegurar que toda la arquitectura software fue actualizada y aprobada y se procedió a los cambios adecuadamente? 3. Qué ventajas aporta una herramienta de gestión de configuración a la hora de auditar el mantenimiento de sistemas informáticos?

Transcript of AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

Page 1: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

1

AUDITORIA INFORMATICA

PROFESOR : Ing. Fernando Andrade

ALUMNO : Jesús Cisneros Valle

FECHA : Quito, 26 de septiembre del 2012

CURSO : 10ASM

RESPONDER LAS CUESTIONES DE REPASO DE LOS CAPITULOS 13 y 14 DEL

LIBRO “AUDITORIA INFORMATICA” Un enfoque práctico.

CAPITULO 13

AUDITORIA DEL MANTENIMIENTO

Cuestiones de Repaso:

1. Exponga las razones que hacen de la auditoría del mantenimiento un área

especialmente crítica?

La mantenibilidad es un factor crítico en el estudio de Auditoría Informática de Mantenimiento, es el factor de calidad que engloba todas las características del software destinadas a hacer que el producto sea más fácilmente mantenibles y en consecuencia, a conseguir una mayor productividad durante la etapa de mantenimiento. Además el control y la evaluación de la Mantenibilidad pueden ser un factor determinante en el estudio de la Auditoría Informática en la etapa de mantenimiento del software.

2. Desarrolle una lista de comprobación que recoja los aspectos más importantes a

la hora de evaluar la gestión de cambios?

1. Se han tenido en cuenta las implicaciones laterales asociadas con el cambio? 2. Se han tenido en cuenta los aspectos documentales en cuanto a evaluar y aprobar la

petición de cambios? 3. Se ha documentado el cambio, una vez realizado y procediéndose a dar

información a todos los que se ven implicados en el proceso? 4. En cuanto a las recisiones técnicas formales. Se han realizado las adecuadas? 5. Se ha hecho una revisión de aceptación final para asegurar que toda la arquitectura

software fue actualizada y aprobada y se procedió a los cambios adecuadamente?

3. Qué ventajas aporta una herramienta de gestión de configuración a la hora de

auditar el mantenimiento de sistemas informáticos?

Page 2: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

2

4. Aplique las métricas propuestas en este capítulo a algún sistema real,

calibrándolas si fuera necesario a su entorno específico?

METRICAS DE ESFUERZO DE DESARROLLO: Modo orgánico: MMdes = 2.4 KS ˆ1.05 MMdes = 2.4*2000ˆ1.05 MMdes = 2.4 * 2924.7011471139253 MMdes = 7019.2827 ESFUERZO DE MANTENIMIENTO: TCA = (NLN+NLM)/NLI TCA = (100+50)/2000 TCA = 150/2000 TCA = 0.075

5. Qué factores pueden influir en la modificabilidad de los programas?

Según la métrica de modificabilidad del (Métrica de mantenibilidad del modelo COCOMO) los factores que influyen serie el número de líneas de datos constantes por cada 100 líneas de código. La existencia de un gran número de datos constantes en el código implica un mayor esfuerzo para la modificación.

6. Analice en la literatura existente diversas métricas de complejidad y describa su

influencia en la mantenibilidad?

Son todas las métricas de software que definen de una u otra forma la medición de la complejidad; Tales como volumen, tamaño, anidaciones, costo (estimación), agregación, configuración, y flujo. Estas son los puntos críticos de la concepción, viabilidad, análisis, y diseño de software.

Los 2 tipos de métrica para calcular la complejidad es:

• Complejidad ciclomática de McCabe • Ciencia del Software de Halstead

Complejidad ciclomática de McCabe

La complejidad ciclomática se basa en el recuento del número de caminos lógicos individuales contenidos en un programa. Para calcular la complejidad del software, Thomas McCabe utilizó la teoría y flujo de grafos. Para hallar la complejidad ciclomática, el programa se representa como un grafo, y cada instrucción que contiene, un nodo del grafo. Las posibles vías de ejecución a partir de una instrucción (nodo) se

Page 3: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

3

representan en el grafo como aristas. Por ejemplo, el código que se muestra a continuación con 2 sentencias selectivas anidadas genera el siguiente grafo: 1 if (condicion){ 2 if (condicion){ 3 A; B; } else { 4 C; D; 5 } 6 }

Si se realizase el grafo, se observaría que se encuentran 3 caminos posibles para llegar de la sentencia 1 a la sentencia 6: Camino 1 (si ambos IF’s son verdad): Sentencias 1, 2, 3, 6 Camino 2 (si el primer IF es verdad y el segundo es falso): Sentencias 1, 4,6 Camino 3 (si el primer IF es falso): Sentencias 1, 6 Este programa tiene una complejidad ciclomática de 3. La complejidad ciclomática se puede calcular de otras maneras. Se puede utilizar la fórmula:

• v(G) = e - n + 2 Donde e representa el número de aristas y n el número de nodos. Otra forma de calcular la complejidad ciclomática consiste en aplicar la siguiente fórmula:

• v(G) = número de regiones cerradas en el grafo + 1

Ciencia del Software de Halstead

Durante el final de los años 70 y principios de los 80, Maurice Halstead desarrolla un conjunto de métricas llamadas Halstead Software Science, métricas basadas en el cálculo de palabras clave (reservadas) y variables.

Su teoría está basada en un simple cuenta (muy fácil de automatizar) de operadores y operandos en un programa:

• Los operadores son las palabras reservadas del lenguaje, tales como IF-THEN, READ, FOR,...; los operadores aritméticos +, -, *,..... los de asignación y los operadores lógicos AND, EQUAL TO,....

• Los operandos son las variables, literales y las constantes del programa.

Halstead distingue entre el número de operadores y operandos únicos y el número total de operadores y operando. Por ejemplo, un programa puede tener un READ, siete asignaciones y un WRITE; por lo tanto tiene tres únicos operadores, pero nueve en

Page 4: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

4

total operadores, y de manera idéntica se procede con los operandos. Se utiliza la siguiente notación:

• n1 - número de operadores únicos que aparecen en un programa • N1 - número total de ocurrencias de operadores • n2 - número de operandos únicos que aparecen en un programa

• N2 - número total de ocurrencias de operandos

Las métricas de la Ciencia del Software para cualquier programa escrito en cualquier lenguaje pueden ser derivadas de estas cuatro cuentas. A partir de ellas han sido elaboradas diferentes medidas para diversas propiedades de los programas, tales como longitud, volumen, etc.

Por ejemplo, consideremos el siguiente trozo de programa:

if (N<2){ A=B*N; System.out.println("El resultado es : " + A); }

A partir de aquí se deduce:

N2 = 6 (N, 2, A, B, N, A)

N1 = 6 (if, {}, system.out.println, =, *, <)

n2 = 4 (N, A, B, 2)

n1 = 6 (if, {}, system.out.println, =, *, <)

Halstead permite obtener una medida de la longitud, N, de un programa, que es calculada como:

N = N1 + N2

N es una simple medida del tamaño de un programa. Cuanto más grande sea el tamaño de N, mayor será la dificultad para comprender el programa y mayor el esfuerzo para mantenerlo. N es una medida alternativa al simple conteo de líneas de código. Aunque es casi igual de fácil de calcular, N es más sensible a la complejidad que el contar el número de líneas porque N no asume que todas las instrucciones son igual de fácil o de difícil de entender.

La medida de longitud, N, es usada en otra estimación de tamaño de Halstead llamada volumen. Mientras que la longitud es una simple cuenta (o estimación) del total de operadores y operandos, el volumen da un peso extra al número de operadores y

Page 5: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

5

operandos únicos. Por ejemplo, si dos programas tienen la misma longitud N pero uno tiene mayor número de operadores y operandos únicos, que naturalmente lo hacen más difícil de entender y mantener, este tendrá un mayor volumen. La fórmula es la siguiente:

Volumen V = N x log2(n)

Donde n = n1 + n2 El esfuerzo es otra medida estudiada por Halstead que ofrece una medida del trabajo requerido para desarrollar un programa. Desde el punto de vista del mantenimiento, el esfuerzo se puede interpretar como una medida del trabajo requerido para comprender un software ya desarrollado. La fórmula es la siguiente: Esfuerzo:

E=V L Donde el volumen V es dividido por el nivel del lenguaje L. Éste indica si se está utilizando un lenguaje de alto o bajo nivel. Por ejemplo, una simple llamada a un procedimiento podría tener un valor L de 1; el COBOL podría tener 0,1 y el ensamblador podría tener un L de 0,01. Así pues el esfuerzo aumenta proporcionalmente con el volumen, pero decrece con la utilización de lenguajes de alto nivel.

Atendiendo a varios estudios empíricos, el esfuerzo, E, es incluso una medida mejor de la entendibilidad (comprensión) que N.

Son influyentes la métricas e influyen en la mantenibilidad ya que las métricas permiten determinar la claridad y la facilidad de dar mantenimiento a un software una vez que este ha sido terminado y está en producción.

7. Existen herramientas específicas para la gestión de pruebas de software?

Existen herramientas que soportan las pruebas del software en todas las etapas de un proyecto. Algunos proveedores ofrecen una serie integrada que soporta las pruebas y el desarrollo a lo largo de la vida de un proyecto, desde la reunión de los requisitos hasta el soporte del funcionamiento en vivo del sistema. Algunos proveedores se enfocan en una sola parte del ciclo de vida. La base de conocimientos de las herramientas de prueba de software proporciona los criterios funcionales que se esperan de una herramienta de pruebas, la infraestructura que la soporta y una idea de la posición que ocupa el proveedor en el mercado. Selenium. Compuesto por dos herramientas: Selenium IDE y SeleniumWebDriver. La primera, un plugin de Firefox que te genera un entorno de desarrollo y que permite crear casos de prueba para aplicaciones web. La segunda, Selenium WebDriver, ejecuta las pruebas. Este entorno de automatización de pruebas automáticas opera en los principales navegadores (IE, Mozilla, Chrome y Opera). Además, permite pruebas para dispositivos móviles, para iPhone y Android. Utiliza los siguientes lenguajes: Python, Ruby, Java y C#. La licencia es “Apache 2.0 License”.

Page 6: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

6

JMeter. Aplicación de escritorio en Java y dentro del proyecto Jakarta. Esta herramienta permite realizar pruebas funcionales (y de rendimiento) para aplicaciones web. Trabaja con los siguientes protocolos: HTTP, HTTPS, SOAP, JDBC, LDAP, JMS, Mail – POP3(S) and IMAP(S). La licencia es “Apache 2.0 License”.

Testlink. Permite crear y gestionar casos de prueba, organizarlos en planes de pruebas, realizar un seguimiento de los resultados, establecer trazabilidad con los requisitos, generar informes etc. Se integra con otros sistemas de seguimiento de “bugs” y “ticketing” como Bugzilla, Mantis, etc. Licencia: GPL.

8. Cómo debería organizarse la gestión de incidencias de mantenimiento en un

departamento de informática desde el puno de vista de la auditoría?

9. La influencia de la documentación en el mantenimiento de los sistemas parece

obvia, pero. Cómo mediría la documentación existente sobre un sistema?

10. Compare otros modelos de estimación que conozca con el propuesto en este

capítulo.

CAPITULO 14

AUDITORIA DE BASES DE DATOS Cuestiones de Repaso:

1. Establezca objetivos de control relativos al diseño de una base de datos?

• El SGBD deberá preservar la confidencialidad de la base de datos

2. Defina un procedimiento para la adquisición de un SGBD.

1. De finir si la base de datos elegida satisfacerá los requerimientos de datos de la empresa (objetivos)

2. Valorar el coste/beneficio de adquirir la base de datos 3. Tipo de aplicación 4. Sistema operativo a usar con la BD 5. Integridad de datos 6. Robustez de la BD 7. Facilidad de mantenimiento y aplicación de aplicativos 8. Fácil manejo con el SGBD 9. Confidencialidad de datos 10. Niveles de seguridad

3. Cuáles son las diferencias más importantes entre las funciones de un

administrador de datos y las de un administrador de base de datos?

Page 7: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

7

Administrador de Datos: Deben asignarse responsabilidades para la planificación, organización, dotación de plantillas y control de los activos de datos de la organización. 1. Realiza el diseño conceptual y lógico de la base 2. Apoya al personal de sistemas durante el desarrollo de la aplicación 3. Forma al personal 4. Establece estándares de diseño de BD, desarrollo y contenido del Diccionario de

Datos 5. Diseñar documentación incluida en el diccionario 6. Desarrolla políticas de gestión de datos 7. Desarrollar planes estratégicos y tácticos para la manipulación de los datos 8. Desarrollar los requisitos de los elementos del 9. Desarrollar normas para la denominación 10. Controlar la integridad y seguridad de los datos 11. Planificar la evolución de la BD de la empresa 12. Identificar oportunidades de compartición de datos 13. Trabajar con los auditores en la auditoria de la base 14. Proporcionar controles de seguridad Administrador de la Base de Datos: Debe asignarse la responsabilidad de la administración del entorno de la base de datos. 1. Realizar el diseño físico de la base de datos. 2. Asesorar en la Adquisición de Hardware/software 3. Soportar el SGBD 4. Resolver problemas del SGBD y del software asociado 5. Monitorizar el rendimiento del SGBD 6. Ayudar en el desarrollo de planes que aseguren la capacidad del hardware 7. Asegurar la integridad de los datos. Comprobando que se implantan los controles

adecuados 8. Asegurar la seguridad y confidencialidad 9. Proporcionar facilidades de prueba 10. Integrar paquetes, procedimientos, utilidades, etc. De soporte al SGBD. 11. Desarrollar estándares, procedimientos y documentos.

4. Porque resulta tan crítico un diccionario de datos?

Resulta crítico porque el diccionario de Datos está vinculado a sectores sensibles del diseño de la BD como: el diseño de la documentación, los elementos del diccionario y el establecimiento de los estándares de diseño de la BD. Además juega un papel muy importante en el entorno de SGBD en cuanto a la integración de componentes y al cumplimiento de la seguridad de los datos. Si se da un fallo en el diccionario, se suele acarrear una pérdida de integridad de los procesos, siendo así más peligrosos los fallos en los diccionarios puesto que pueden introducir

Page 8: AUDITORIA INFORMATICA Tarea Cuestiones de Repaso Capitulos 13 y 14

UNIVERSIDAD AUTONOMA DE QUITO – UNAQ

8

errores de forma repetitiva a lo largo del tiempo y estos errores son más difíciles de detectar.

5. Que controles establecería sobre la distribución de listados extraídos a partir de la

base de datos?

6. Objetivos de control sobre la formación del personal relacionado con el SGBD

(Usuarios finales, administradores, diseñadores, etc.?

A lo largo del ciclo de vida de la base de datos se deberá controlar la formación que precisa tantos usuarios informáticos, como no informáticos ya que la formación es una de la claves para minimizar el riesgo de la implantación de una base de datos. Esta formación no debe basarse meramente en cursos sobre el producto que se está instalando, sino que debe ser una formación de base que resulta imprescindible en especial cuando se pasa a trabajar a un entorno de base de datos.

7. Analice el grado de ajuste existente entre los paquetes de seguridad del mercado

(TOP SECRET, RACF, etc.) y los SGBD?

8. Que riesgos adicionales implica el hecho de distribuir la base de datos?

Implica graves riesgos de seguridad, además el posible riesgo de violación de la confidencialidad e integridad de los datos.

9. Que controles establecería para desarrollos que empleen lenguajes visuales que

acceden a bases de datos?

• Deben ser capaz de operar en el entorno de procesos de datos con controles adecuados

• Las aplicaciones desarrolladas deben seguir los mismos procedimientos de autorización y petición que los proyectos de desarrollo convencionales

• Las aplicaciones desarrolladas deben sacar ventaja de las características incluidas en los mismos.

10. Analice el soporte que ofrecen las herramientas de minería al auditor informático.

Las herramientas de minería de datos (datamining) ofrecen un soporte a la toma de decisiones sobre los datos de calidad almacenados en una base de datos.