AUDITORIA ESPECIFICA SEGURIDAD LOGICA Y FISICA

Anuncio
AUDITORIA ESPECIFICA
SEGURIDAD LOGICA Y FISICA SISTEMAS ORIENTADOS A OBJETOS
Presentado por:
ANDRÉS RINCÓN MORENO
1700412318
JORGE ARMANDO MEDINA MORALES
1700321660
Profesor:
Carlos Hernán Gómez.
Asignatura:
Auditoría Sistemas.
UNIVERSIDAD DE CALDAS
FACULTAD DE INGENIERÍAS
Programa de Ingeniería en Sistemas y Computación
MANIZALES
2010
INTRODUCCION AL TEMA DE AUDITORIA
1 SEGURIDAD INFORMATICA
Garantizar que los recursos informáticos de una compañía estén disponibles para cumplir sus
propósitos, es decir, que no estén dañados o alterados por circunstancias o factores externos, es
una definición útil para conocer lo que implica el concepto de seguridad informática. En términos
generales, la seguridad puede entenderse como aquellas reglas técnicas y/o actividades
destinadas a prevenir, proteger y resguardar lo que es considerado como susceptible de robo,
pérdida o daño, ya sea de manera personal, grupal o empresarial. En este sentido, es la
información el elemento principal a proteger, resguardar y recuperar dentro de las redes
empresariales.
¿Por qué es tan importante la seguridad?
Por la existencia de personas ajenas a la información, también conocidas como piratas
informáticos o hackers, que buscan tener acceso a la red empresarial para modificar, sustraer o
borrar datos.
Tales personajes pueden, incluso, formar parte del personal administrativo o de sistemas, de
cualquier compañía; de acuerdo con expertos en el área, más de 70 por ciento de las violaciones e
intrusiones a los recursos informáticos se realiza por el personal interno, debido a que éste conoce
los procesos, metodologías y tiene acceso a la información sensible de su empresa, es decir, a
todos aquellos datos cuya pérdida puede afectar el buen funcionamiento de la organización.
Esta situación se presenta gracias a los esquemas ineficientes de seguridad con los que cuentan la
mayoría de las compañías a nivel mundial, y porque no existe conocimiento relacionado con la
planeación de un esquema de seguridad eficiente que proteja los recursos informáticos de las
actuales amenazas combinadas.
El resultado es la violación de los sistemas, provocando la pérdida o modificación de los datos
sensibles de la organización, lo que puede representar un daño con valor de miles o millones de
dólares.
1.1 Seguridad física
Es muy importante ser consciente que por más que la empresa sea la más segura desde el punto
de vista de ataques externos (hackers, virus, ataques de DoS, etc.); la seguridad de la misma será
nula si no se ha previsto como combatir un incendio o cualquier otro tipo de desastre natural y no
tener presente políticas claras de recuperación.
La seguridad física es uno de los aspectos más olvidados a la hora del diseño de un sistema
informático. Si bien algunos de los aspectos de seguridad física básicos se prevén, otros, como la
detección de un atacante interno a la empresa que intenta acceder físicamente a una sala de
cómputo de la misma, no. Esto puede derivar en que para un atacante sea más fácil lograr tomar y
copiar una cinta de backup de la sala de cómputo, que intentar acceder vía lógica a la misma.
Así, la Seguridad Física consiste en la “aplicación de barreras físicas y procedimientos de control,
como medidas de prevención y contramedidas ante amenazas a los recursos e información
confidencial”. Se refiere a los controles y mecanismos de seguridad dentro y alrededor del centro
de cómputo, así como los medios de acceso remoto al y desde el mismo; implementados para
proteger el hardware y medios de almacenamiento de datos. Las principales amenazas que se
prevén en Seguridad Física son:
1. Desastres naturales, incendios accidentales, tormentas e inundaciones
2. Amenazas ocasionadas por el hombre
3. Disturbios, sabotajes internos y externos deliberados.
Evaluar y controlar permanentemente la seguridad física de las instalaciones de cómputo y del
edificio es la base para comenzar a integrar la seguridad como una función primordial dentro de
cualquier organismo.
Tener controlado el ambiente y acceso físico permite:




Disminuir siniestros
Trabajar mejor manteniendo la sensación de seguridad
Descartar falsas hipótesis si se produjeran incidentes
Tener los medios para luchar contra accidentes
1.2 Seguridad lógica
Luego de ver como el sistema puede verse afectado por la falta de seguridad física, es importante
recalcar que la mayoría de los daños que puede sufrir un centro de cómputo no será sobre los
medios físicos sino contra información por él almacenada y procesada. Así, la seguridad física sólo
es una parte del amplio espectro que se debe cubrir para no vivir con una sensación ficticia de
seguridad. Como ya se ha mencionado, el activo más importante que se posee es la información, y
por lo tanto deben existir técnicas, más allá de la seguridad física que la asegure. Estas técnicas las
brinda la Seguridad Lógica.
La Seguridad Lógica consiste en la “aplicación de barreras y procedimientos que resguarden el
acceso a los datos y sólo se permita acceder a ellos a las personas autorizadas para hacerlo”.
Existe un viejo dicho en la seguridad informática que dicta que “todo lo que no está permitido
debe estar prohibido” y esto es lo que debe asegurar la Seguridad Lógica.
Los objetivos que se plantean serán:
1. Restringir el acceso a los programas y archivos
2. Asegurar que los operadores puedan trabajar sin una supervisión minuciosa y no puedan
modificar los programas ni los archivos que no correspondan.
3. Asegurar que se estén utilizando los datos, archivos y programas correctos en y por el
procedimiento correcto.
4. Que la información transmitida sea recibida por el destinatario al cual ha sido enviada y no
a otro.
5. Que la información recibida sea la misma que ha sido transmitida.
6. Que existan sistemas alternativos secundarios de transmisión entre diferentes puntos.
7. Que se disponga de pasos alternativos de emergencia para la transmisión de información.
2 SISTEMAS ORIENTADOS A OBJETOS
El software orientado a objetos apoya ciertos aspectos que mejoran la robustez de los sistemas,
este software requiere de ciertas características mínimas para considerarse orientado a objetos y
finalmente debe integrarse como parte de un lenguaje de programación. Estos temas son
descritos a continuación.
2.1 Aspectos que Mejoran la Robustez de los Sistemas
Existen razones un poco más técnicas que motivan a la orientación a objetos, como son la
abstracción, modularidad, extensibilidad y reutilización.
Abstracción. Una de las consideraciones más importantes para tratar el problema de la
complejidad del software es el concepto de abstracción. La idea básica de la abstracción es reducir
el nivel de primitivas o representaciones básicas necesarias para producir un sistema de software.
De manera sencilla esto se logra mediante el uso de lenguajes de programación que contengan
estructuras de datos de alto nivel. En otras palabras, la pregunta opuesta sería: ¿por qué no
programar en código binario, o sea 0s y 1s? La respuesta es que ninguna persona sería capaz de
comprender una aplicación al verse el código y por otro lado requeriría de programas
extremadamente extensos para representar la aplicación completa dada la simplicidad de la
primitiva básica.
Los sistemas de software construidos con lenguajes de programación de más alto nivel reducen el
número total de líneas de código por lo tanto reducen su complejidad. Con la programación
orientada a objetos se definen dos niveles de abstracción. El nivel más alto, el de los objetos, es
utilizado para describir la aplicación mientras que el nivel más bajo, el de los datos y las funciones,
es utilizado para describir sus detalles.
Modularidad. Otro aspecto importante de una aplicación es su modularidad. La modularidad de
un sistema depende de sus abstracciones básicas, lo cual permite dividir el sistema en
componentes separados. Al tener abstracciones de mayor nivel la modularidad de los
componentes también es de mayor nivel reduciendo el número final de componentes lo cual a su
vez simplifica su manipulación y mantenimiento. Con la orientación a objetos, la modularidad del
sistema se da en base a objetos, un nivel más alto que los datos y funciones tradicionales. El
número final de módulos, o sea objetos, es menor que el número original de datos y funciones.
Esto reduce la complejidad de la aplicación ya que el programador piensa en menos componentes
a la vez descartando detalles innecesarios.
Extensibilidad. En general, los sistemas de software tienden a ser modificados y ampliados
durante el transcurso de su vida. Si un programa no se modifica es porque nadie lo quiere usar,
por lo cual uno se pregunta: ¿Qué tan larga es la vida de un sistema? En otras palabras, ¿cuándo se
vuelve más costoso mantener un sistema de software que desarrollar uno nuevo? La
extensibilidad tiene como objetivo permitir cambios en el sistema de manera modular afectando
lo mínimo posible el resto del sistema. Con la orientación a objetos, los cambios se dan a dos
niveles: modificación externa e interna de los objetos. Los cambios internos a los objetos afectan
principalmente al propio objeto, mientras que los cambios externos a los objetos afectarán de
mayor forma al resto del sistema
Reutilización. Una de las maneras de reducir la complejidad del software es mediante la
reutilización o re uso de partes existentes. La pregunta que uno se hace es: ¿cuánto puedo
reutilizar del código y sistemas ya existentes? El re uso de código reduce el tiempo del diseño, la
codificación, y el costo del sistema al amortizar el esfuerzo sobre varios diseños. El reducir el
tamaño del código también simplifica su entendimiento, aumentando la probabilidad de que el
código sea correcto. Mediante el re uso de código se puede aprovechar componentes genéricos
para estructurar bibliotecas reutilizables, y así lograr una estandarización y simplificación de
aplicaciones por medio de componentes genéricos prefabricados. Tradicionalmente, los
componentes o librerías de software han existido por muchos años como procedimientos y
funciones, particularmente para aplicaciones numéricas y estadísticas. Y aunque el re uso es
posible en lenguajes convencionales, los lenguajes orientados a objetos aumentan
substancialmente las posibilidades de tal re uso, gracias a la modularidad de los sistemas.
2.2 Características Mínimas de los Lenguajes Orientados a Objetos
A continuación se describirá los conceptos básicos que hacen que un lenguaje sea considerado
efectivamente orientado a objetos. En general, cuatro aspectos deben existir en tal lenguaje:
encapsulamiento, clasificación, generalización y polimorfismo.
Encapsulación. Encapsulación o encapsulamiento es la separación de las propiedades externas de
un objeto, o sea su interface, correspondiente a la interface de sus funciones, de los detalles de
implementación internos del objeto, o sea sus datos y la implementación de sus funciones, como
se muestra en la figura. Esta separación es muy importante. Todo el detalle, al estar encapsulado,
es desconocido por el resto de la aplicación, limitando el impacto de cualquier cambio en la
implementación del objeto, ya que los cambios a las propiedades internas del objeto no afectan su
interacción externa. Obviamente cualquier cambio en la propia interface del objeto afectaría
potencialmente a todo el resto de la aplicación. Sin embargo el porcentaje de código dedicado a
las interfaces es por lo general “muchísimo” menor que el porcentaje total de líneas de código
utilizados para datos e implementación de funciones. De tal manera se reduce la complejidad del
sistema protegiendo los objetos contra posibles errores, y permitiendo lograr de mejor manera
extensiones futuras en la implementación de los objetos.
Clasificación. En todo programación orientada a objetos la clasificaciones un aspecto
fundamental, donde objetos que contienen estructuras similares, correspondiente a tipos de
datos y funciones similares, se clasifican como pertenecientes a la misma clase de objeto. Nótese
de que hablamos de tipos de datos similares, dado que los valores de los datos aún pueden
cambiar en objetos de clase similar. ¡Si todos los valores de los datos tuvieran que ser también
iguales entonces todos los objetos de una misma clase serían idénticos, algo que limitaría el
alcance de la clasificación además de ser muy aburrido.
Generalización. Si tomamos como base la clasificación, y consideramos que no sólo los objetos
similares pueden clasificarse, sino también las propias clases de los objetos, entonces se define la
generalización o especialización de clases. Mediante la generalización, clases de objetos con
estructura y comportamiento similar se reutilizan en la definición de las nuevas clases. Estas
nuevas clases se consideran clases más especializadas o subclases mientras que las originales se
consideran clases más generales o superclases. El mecanismo para describir jerarquías de
generalización de clases se conoce como herencia, un término muy utilizado en la orientación a
objetos, se dice que una subclase hereda de una superclase. La herencia puede ser sencilla, donde
una subclase hereda de una sola superclase directa, o múltiple, donde una subclase hereda de
múltiples superclases directas. La herencia es también una forma de reutilización de código, ya
que se aprovechan descripciones de clases de objetos para luego definir clases de objetos
parecidos.
Polimorfismo. Quizás el concepto más complicado de explicar y en cierta manera el más poderoso
es el polimorfismo. De manera simplificada, mediante el polimorfismo se definen funciones con el
mismo nombre e interfaz en distintas clases de objetos, pero bajo implementaciones distintas.
¿Para qué sirve entonces el polimorfismo? El polimorfismo es útil para extender la funcionalidad
existente en los objetos del sistema, a nuevos objetos aún desconocidos en ese momento. Es
como definir un estándar de interfaces para los objetos la cual debe ser seguida por todos los
existentes y nuevos. Haciendo una analogía, todo el tiempo aparecen nuevas aplicaciones de
software que pueden ejecutarse en sistemas ya existentes.
GUIA DE AUDITORIA
REF
SFL12
SIOO2
CH Auditoria Empresa: Auditextiles S.A.S Fecha:2010/11/25
ACTIVIDAD A SER PROCEDMIENTO HERRAMIENTA A OBSERVACIONES
AEVALUADA
DE AUDITORIA
UTILIZAR
Evaluar
la Solicitar y revisar Lista
de
Seguridad Física y los planes y Verificación
Lógica
lineamientos
establecidos para
garantizar
la
seguridad física y
lógica
en
la
empresa
Evaluar
los Evaluar la solidez Lista
de
Sistemas
de los Sistemas Verificación
Orientados
a Orientados
a
Objetos
Objetos de uso
en la empresa
SFL12: EVALUAR LA SEGURIDAD FISICA Y LOGICA
OBJETIVO: Solicitar y revisar los planes y lineamientos establecidos para garantizar la seguridad
física y lógica en la empresa
LISTA DE VERIFICACION
ITEM A EVALUAR
¿La información de la empresa se
encuentra siempre disponible para
cumplir sus propósitos?
¿La información susceptible de robo,
pérdida o daño se encuentra protegida y
resguardada?
¿La
empresa
tiene
conocimiento
relacionado con la planeación de un
esquema de seguridad eficiente que
proteja los recursos informáticos de las
actuales amenazas combinadas?
¿Se
aplican
barreras
físicas
y
procedimientos de control, como medidas
de prevención y contramedidas ante
amenazas a los recursos e información
confidencial?
¿En la empresa se han contemplado las
amenazas ocasionadas por el hombre?
¿Se
evalúan
y
controlan
permanentemente la seguridad física de
las instalaciones de cómputo y del edificio
donde funciona la empresa?
¿Existen procedimientos y barreras que
resguarden el acceso a los datos y sólo se
permita acceder a ellos a las personas
autorizadas para hacerlo?
¿Se asegura que se estén utilizando los
datos, archivos y programas correctos en
y por el procedimiento correcto?
¿Existen
sistemas
alternativos
secundarios
de
transmisión
de
información entre diferentes puntos?
¿Los operadores pueden trabajar sin una
supervisión minuciosa y no pueden
modificar los programas ni los archivos
que no correspondan?
¿La información transmitida es recibida
por el destinatario al cual ha sido enviada
Cumple
No Cumple
Observaciones
y no a otro?
SIOO2: EVALUAR LOS SISTEMAS ORIENTADOS A OBJETOS
OBJETIVO: Evaluar la solidez de los Sistemas Orientados a Objetos de uso en la empresa
LISTA DE VERIFICACION
ITEM A EVALUAR
¿El software orientado a objetos aporta
aspectos que mejoran la robustez de sus
sistemas?
¿Consideran importante tratar el
problema de la complejidad del
software con el concepto de
abstracción?
¿Sus sistemas orientados a objetos se
encuentran divididos por componentes
separados?
¿Se permiten cambios en el sistema de
manera modular afectando lo mínimo
posible el resto del sistema?
¿Sus sistemas se organizan como una
colección de objetos discretos que
contienen tanto estructuras de datos
como un comportamiento?
¿Los
sistemas
reutilizan
partes
existentes de código?
¿El diseño de los sistemas se
fundamenta en framework?
¿Sus sistemas tienen bajo acoplamiento
y alta cohesión?
¿En los sistemas existe la separación de
las propiedades externas de un objeto
(interface), de los detalles de
implementación internos del objeto?
¿Los sistemas constan de objetos que
contienen
estructuras
similares,
correspondiente a tipos de datos y
funciones similares?
Cumple
No Cumple
Observaciones
Descargar