CAPITULO 7 SEGURIDAD Y CONTROL DE LOS SISTEMAS DE INFORMACION 1. Vulnerabilidad y abuso del sistema Antes de la automatización por computadora, los datos sobre individuos y organizaciones se conservaban y aseguraban como registros en papel, dispersos en unidades de negocios u organizaciones independientes. Los sistemas de información concentran los datos en archivos de computadora a los que puede tener acceso gran cantidad de personas y grupos ajenos a la organización. En consecuencia, los datos automatizados son más susceptibles a destrucción, fraude, error y mal uso. Cuando los sistemas de computación no corren o funcionan con se requiere, las empresas que dependen en gran medida de las computadoras experimentan una grave pérdida en sus funciones empresariales. Cuanto más tiempo fallan los sistemas de cómputo, más graves son las consecuencias para la empresa. Por qué son vulnerables los sistemas Cuando se guardan grandes cantidades de datos en formato electrónico son vulnerables a muchos más tipos de amenazas que cuando están en formato manual. Las fallas pueden provenir de factores técnicos, organizacionales y del entorno, combinados con decisiones administrativas deficientes. Los adelantos en las telecomunicaciones y el software de cómputo han magnificado estas vulnerabilidades. Los sistemas de información de diferentes lugares se pueden interconectar a través de las redes de telecomunicaciones. El potencial para acceso no autorizado, abuso o fraude no s limita a un lugar único sino que puede ocurrir en cualquier punto de acceso en la red. Adicionalmente, para establecer las redes de telecomunicaciones se requieren combinaciones más complejas y diversas de hardware, software, organizacionales y de personal, lo cual genera nuevas áreas y oportunidades de penetración y manipulación. Las redes inalámbricas que usan tecnología basada en radio son incluso más vulnerables a la penetración porque las bandas de radiofrecuencia son fáciles de rastrear. Las LANs que utilizan el estándar 802.11b (Wi Fi) pueden ser fáciles de penetrar por externos mediante computadoras portátiles, tarjetas inalámbricas, antenas externas y software de piratería informática. Los hackers (piratas informáticos) pueden usar estas herramientas para detectar redes Wi Fi corporativas. Aunque el alcance de la redes Wi Fi es de sólo algunas decenas de metros, puede extenderse alrededor de 400 metros usando antenas exteriores. Internet plantea problemas especiales porque se diseñó explícitamente para que las personas tuvieran fácil acceso a ella mediante diversos sistemas de cómputo. En la figura se ilustran las vulnerabilidades de las redes de telecomunicaciones. Lic. Shirley Solange Salazar Montoya Página 51
Figura. Vulnerabilidades de las redes de telecomunicaciones Hackers y virus de computadora El crecimiento explosivo del uso de Internet por las empresas y los individuos ha sido acompañado por informes crecientes de violaciones a la seguridad de Internet. La principal preocupación viene de los intrusos no deseados, o hackers, que usan la tecnología más reciente y sus habilidades para irrumpir en computadoras supuestamente seguras o para dañarlas. Un hacker es una persona que obtiene acceso no autorizado a una red de computación para obtener provecho, realizar actos delictivos o por placer personal. Hay muchas maneras en que las irrupciones del hacker pueden dañar a las empresas. Algunos intrusos malévolos han plantado bombas lógicas, caballos de Troya y otros tipos de software que pueden esconder en un sistema o red hasta que se ejecutan en un momento especificado. En los ataques de denegación de servicios, los hackers inundan un servidor de red o de la web con muchos miles de mensajes o solicitudes de servicios falsos para saturar la red. Ésta recibe tantas solicitudes que no puede mantener el ritmo y es incapaz de atender las solicitudes legítimas. El costo de estos ataques para las empresas está subiendo a una velocidad alarmante. La ventana a las organizaciones describe el daño creado por el robo en línea de número de tarjetas de crédito. Los virus de computadora que propagan los hackers han causado graves daños a los sistemas. Son programas de software destructor que se extienden sin control de sistema en sistema, obstruyendo la memoria de la computadora o destruyendo programas o datos. Actualmente muchos virus se propagan a través de Internet, a partir de archivos de software descargado o de archivos adjuntos a transmisiones de correo electrónico. Los virus también pueden invadir sistemas computarizados de información desde otras redes de computadora así como de disquetes infectados de una fuente externa o computadoras infectadas. La amenaza de daño masivo y pérdidas a partir de futuros virus de computadora permanece latente. Hoy en día, los virus se están extendiendo a los dispositivos de cómputo inalámbricos. Los virus de dispositivos móviles podrían plantear una grave amenaza para la computación empresarial porque hay demasiados dispositivos inalámbricos enlazados a los sistemas corporativos de información. Lic. Shirley Solange Salazar Montoya Página 52
Preocupaciones de constructores y usuarios de sistemas La elevada vulnerabilidad de los datos automatizados ha creado preocupaciones especiales entre los constructores y los usuarios de sistemas de información. Entre estas preocupaciones están los desastres, la seguridad, los errores administrativos y otros. Desastres El hardware, programas, archivos de datos y otro equipo de computación pueden ser destruidos por incendios, fallas en el suministro de energía u otros desastres. Puede tomar muchos años y millones de dólares reconstruir archivos de datos y programas de computadoras destruidos y algunos tal vez no se puedan reemplazar. Seguridad La seguridad se refiere a las políticas, los procedimientos y las medidas técnicas que se emplean para prevenir acceso no autorizado, alteración, robo o daño físico a los sistemas de información. La seguridad puede fomentarse con una serie de técnicas y herramientas para salvaguardar hardware, software, redes de comunicaciones y datos de computadora. Errores Las computadoras también pueden funcionar como instrumentos de error, que pueden desestabilizar o destruir gravemente los registros y operaciones de una organización. Un gran problema de software es la presencia de errores de programación ocultos o defectos en el código de los programas. La fuente principal de errores de programación es la complejidad del código de toma de decisiones. Incluso un programa relativamente pequeño de varios cientos de líneas contendrá decenas de decisiones que conducen a cientos o incluso miles de rutas diferentes. Por lo común, los programas importantes dentro de la mayoría de las corporaciones son mucho más grandes y contienen decenas de miles o incluso millones de líneas de código, cada una con muchas más opciones y rutas que las de los programas más pequeños. La meta de cero defectos perseguida por la calidad total no se puede lograr en programas muy grandes. Simplemente no es posible realizar pruebas exhaustivas. Eliminar los errores de programación del software es un ejercicio que ve en detrimento de las utilidades, porque eso tomaría proporcionalmente mucho más tiempo de pruebas para detectar y eliminar los errores de programación que permanecen ocultos. La pesadilla del mantenimiento Otra razón de que los sistemas sean inestables es que tradicionalmente el mantenimiento del software sido una pesadilla. El mantenimiento, el proceso de modificar un sistema que ya está en uso, es la fase más costosa del proceso de desarrollo de sistemas. En la mayoría de las organizaciones casi la mitad del tiempo del personal de sistemas de información se consume en el mantenimiento de sistemas existentes. Problemas de la calidad de datos La fuente más común de fallas en los sistemas de información es la deficiente calidad de los datos. Datos inexactos, inoportunos o inconsistentes con otras fuentes de información pueden crear graves problemas funcionales y financieros para los negocios. Cuando los datos defectuosos pasan inadvertidos, pueden conducir a decisiones incorrectas, retiro de productos e incluso pérdidas financieras. Lic. Shirley Solange Salazar Montoya Página 53
2. Creación de un entorno de control Para minimizar errores, desastres, interrupciones de servicio, delitos informáticos y violaciones a la seguridad, se deben incorporar políticas y procedimientos especiales en el diseño e implementación de sistemas de información. La combinación de medidas manuales y automatizadas que salvaguardan los sistemas de información y aseguran que se desempeñe según los estándares de administración se conoce como controles. Los controles consisten en todos los métodos, políticas y procedimientos organizacionales que garantizan la seguridad de los activos de la organización, la exactitud y confiabilidad de sus registros contables y el apego de sus operaciones a los estándares que defina la administración. Los controle s generales gobiernan el diseño, la seguridad y el uso de programas de computación y la seguridad de archivos de datos en general a lo largo de la infraestructura de tecnología de la información de la organización. Los controles generales se utilizan en todas las aplicaciones computarizadas y consisten en una combinación de hardware, software y procedimientos manuales que crean un entorno de control global. Los controle s de aplicaciones son controles específicos únicos para cada aplicación computarizada, como procedimiento de pedidos. Consta de controles aplicados desde el área funcional de negocios de un sistema particular y de procedimientos programados. Controles generales y seguridad de datos Los controles generales incluyen controles de software, controles de hardware físico, controles de operaciones de cómputo, controles de seguridad de datos, controles sobre el proceso de implementación de sistemas y controles administrativos. Tipo de control Controles de software Descripción Monitorean el uso del software del sistema y previenen el acceso no autorizado a programas de software, software del sistema y programas de computadora. El software del sistema es un área de control importante porque desempeña funciones de control global para los programas que procesan directamente datos y archivos de datos. Controles hardware Controles operaciones cómputo de de de Aseguran que el hardware de cómputo sea físicamente seguro y verifican el funcionamiento defectuoso del equipo. Los equipos de cómputo se deben proteger especialmente contra incendios y temperatura y humedad extremas. Las organizaciones que dependen en gran medida de sus computadoras también deben tomar provisiones de respaldo o el funcionamiento continuo pa ra mantener el servicio constante. Vigilan el trabajo del departamento de computación para garantizar que los procedimientos programados se apliquen de manera consistente y correcta al almacenamiento y procesamiento de datos. Incluyen controles sobre la instalación de los trabajos de procesamiento de cómputo y las operaciones de cómputo, y sobre el procedimiento de respaldo y recuperación para el procesamiento que termina de manera deficiente. Controles de seguridad de datos Aseguran que los archivos de datos de negocios en disco o cinta no sean objeto de acceso no autorizado, cambio o destrucción mientras están en uso o almacenados. Lic. Shirley Solange Salazar Montoya Página 54
Controles implementación Controles administrativos de Auditan el proceso de desarrollo de sistemas en varios puntos para garantizar que el proceso se controle y administre adecuadamente. La auditoria del desarrollo de sistemas busca la presencia de revisiones formales por parte de los usuarios y la administración en las diversas etapas del desarrollo; el nivel de implicación del usuario en cada etapa de la implementación, y el uso de una metodología formal de costo/beneficio para establecer la factibilidad del sistema. La auditoria debe buscar el uso de controles y técnicas de garantía de calidad para el desarrollo, conversión y prueba de los programas y para la documentación completa y minuciosa del sistema, el usuario y las operaciones. Estándares, reglas, procedimientos y disciplinas de control formalizados para garantizar que se ejecuten y apliquen adecuadamente los controles generales y de aplicación de las organización. Aunque la mayoría de estos controles generales los diseñan y mantienen especialistas de sistemas de información, los controles de seguridad de los datos y los controles administrativos requieren la participación y vigilancia de los usuarios finales y gerentes de negocios. Controles de aplicaciones Los controles de aplicaciones incluyen los procedimientos automatizados y manuales que garantizan que una aplicación complete y procese con precisión solamente los datos autorizados. Los controles de aplicaciones se pueden clasificar: Controles de entrada Verifican la exactitud e integridad de los datos cuando entran en el sistema. Hay controles de entrada específicos para autorización de entrada, conversión de datos, edición de datos y manejo de errores. Controles de proce samiento Establecen que los datos estén completos y exactos durante la actualización. La ejecución de totales de control, la comparación de computadoras y las verificaciones de ediciones programadas se usan con este propósito. Controles de salida Aseguran que los resultados del procesamiento de cómputo sean exactos, estén completos y se distribuyan adecuadamente. No todos los controles de aplicaciones expuestos se usan en todos los sistemas de información. Algunos sistemas requieren más de estos controles que otros, dependiendo de la importancia de los datos y de la naturaleza de la aplicación. 3. Garantía de la seguridad de sistemas Las organizaciones pueden mejorar la calidad del sistema usando técnicas para garantizar la calidad del software y mejorando la calidad de sus datos. Lic. Shirley Solange Salazar Montoya Página 55
Metodologías y herramientas para garantizar la calidad del software Entre las soluciones para os problemas de calidad del software se incluyen el uso de una metodología adecuada de desarrollo de sistemas. La asignación adecuada de recursos durante el desarrollo de los sistemas, el uso de métricas y poner atención en las pruebas. Metodologías e structurada s Se han empleado varias herramientas y metodologías de desarrollo para ayudar a los constructores de sistemas a documentar, analizar, diseñar e implementar sistemas de información. Una metodología de desarrollo es un conjunto de métodos, uno o más para cada actividad dentro de cada fase de un proyecto de desarrollo de sistemas. Análisis e structurado El análisis estructurado se usa mucho para definir estradas, procesos y salidas del sistema. Ofrece un modelo gráfico lógico de flujo de información, particionando un sistema en módulos que muestran niveles manejables de detalle. Especifica rigurosamente los procesos o transformaciones que ocurren dentro de cada módulo y las interfaces que existen entre ellos. Su herramienta primaria es el diagrama de flujo de datos (DFD), una representación gráfica de los procesos de componentes de un sistema y las interfaces (flujo de datos) entre ellos. Diseño estructurado El diseño estructurado comprende un conjunto de reglas y técnicas de diseño que promueven la claridad y sencillez del programa, reduciendo así el tiempo y el esfuerzo requeridos para codificación, depuración y mantenimiento. El principio básico del diseño estructurado es que un sistema debe diseñarse en forma jerárquica y refinarse a niveles mayores de detalle. El diseño debe considerar primero la función principal de un programa o sistema, luego debe dividir esta función en subfunciones y descomponer cada subfunción hasta el nivel más bajo de detalle que se haya alcanzado. Los módulos de nivel más bajo describen el procesamiento real que ocurrirá. De esta manera se desarrollan toda la lógica de alto nivel y el modelo de diseño antes de que se escriba el código del programa detallado. Programación estructurada La programación estructurada extiende los pri ncipios que gobierna el diseño estructurado a la escritura de programas para hacer que los programas de software sean fáciles de entender y modificar. Se basa en el principio de la modularización que se sigue del análisis y diseño jerárquico. Cada uno de l os cuadros de la gráfica de estructura representa un módulo componente que por lo común se relaciona directamente con un módulo de diseño de nivel inferior. Constituye una unidad lógica que desempeña una o varias funciones. Idealmente, los módulos deber ser independientes entre sí y deben tener sólo un punto de entrada y de salida. Deben compartir los datos con los menos módulos posibles. Cada módulo se debe conservar a un tamaño manejable. Un individuo debe ser capaz de leer y entender el código del programa del módulo y hacer fácilmente el seguimiento de sus funciones. Limitaciones de los métodos tradicionales Aunque los métodos tradicionales son valiosos, pueden ser inflexibles y consumidores de tiempo. Se requiere la terminación del análisis estructura do antes de que se pueda empezar el diseño la programación debe esperar los productos terminados del diseño. Un cambio en las especificaciones requiere que antes se modifiquen los documentos Lic. Shirley Solange Salazar Montoya Página 56
del análisis y luego los documentos del diseño antes de que se puedan cambiar los programas para que reflejen el nuevo requerimiento. Las metodologías estructuradas están orientadas a la función, enfocándose en los procesos que transforman los datos. Herramientas y metodologías para el desarrollo orientado a objetos Se han desarrollado varias técnicas para el análisis y diseño de sistemas basados en objetos pero el lenguaje de modelado unificado (UML) se ha convertido en el estándar de la industria. El UML permite que los constructores del sistema representen varias vistas de un sistema basado en objetos usando varios tipos de diagramas gráficos y el modelo subyacente integra estas vistas para fomentar la consistencia durante el análisis, plan e implementación. Ingeniería de software asistida por computadora La ingeniería de software asistida por computadora (CASE) a veces llamada ingeniería de software asistida por computadora es la automatización de metodologías paso a paso para el desarrollo de software y de sistemas para reducir la cantidad de trabajo repetitivo que el diseñador necesita saber. Su adopción puede dejar libre al diseñador para tareas más creativas de solución de problemas. Las herramientas CASE también facilitan la creación de documentación estructurada y la coordinación de los esfuerzos de desarrollo del equipo. Los miembros del equipo pueden compartir fácilmente su trabajo accediendo a los archivos de cada uno para revisar o modificar lo que se ha hecho. Algunos estudios han encontrado que los sistemas desarrollados con CASE y las más nuevas tecnologías son más confiables y requieren mantenimiento con menor frecuencia. También se pueden lograr beneficios modestos de productividad si se usan adecuadamente las herramientas. Asignación de recursos durante el desarrollo de sistemas Con el paso del tiempo, los enfoques para la asignación de recursos durante el tiempo de sistemas han cambiado de manera significativa. La asignación de recursos determina la manera en que se asignan costos, tiempo y personal a las diversas fases del proyecto. Se debe dedicar más tiempo al análisis de especificaciones y sistemas, disminuyendo la proporción del tiempo de programación y reduciendo la necesidad de tanto tiempote mantenimiento. Documentar los requerimientos para que se puedan entender desde su origen a través del desarrollo, especificación y uso continuo también puede reducir errores así como tiempo y costos. Métrica del software La métrica del software puede jugar un papel vital en el incremento de la calidad del sistema. La métrica del software es la evaluación objetiva del sistema en forma de medidas cuantificadas. El uso constante de la métrica permite al departamento de sistema de información y al usuario medir juntamente el desempeño del sistema e identificar los problemas conforme ocurren. Ejemplos de métrica del software incluyen la cantidad de transacciones que se pueden procesar en una unidad especificada de tiempo, tiempo de respuesta en línea, cantidad de cheques impresos por hora y el número de errores de programación conocidos por cada cien líneas de código. Para que la métrica funcione con éxito se debe diseñar cuidadosamente de manera formal y objetiva. Debe medir aspectos significativos del sistema. Además, la métrica Lic. Shirley Solange Salazar Montoya Página 57
no tiene ningún valor a menos que se use de forma constante y que los usuarios acepten de antemano las mediciones. Prueba En general, la prueba de software con frecuencia se entiende mal. Muchos ven la prueba como una manera de demostrar la exactitud del trabajo que han efectuado. De hecho, se sabe que todo software de tamaño regular está acribillado de errores y que para descubrir estos errores se debe hacer la prueba. La prueba empieza en la fase de diseño. Como aún no existe codificación alguna, la prueba que normalmente se aplica es una versión superficial, la revisión de una especificación o del documento de diseño hecha por un pequeño grupo de personas cuidadosamente seleccionadas con base en las habilidades necesarios para los objetivos particulares que se han de probar. Una vez que se empieza a codificar, las revisiones superficiales del código también se pueden usar para repasar el código del programa. Sin embargo, el código debe probarse al instalarlo y correrlo en la computadora. Cuando se descubren los errores, se encuentra y se elimina la fuente a través de un proceso llamado depuración. Lic. Shirley Solange Salazar Montoya Página 58