Está en la página 1de 31

Diseño de Seguridad Informática

Copyright © Agosto de 2018 por TECSUP


• El contenido de esta unidad es el siguiente:
– Introducción
– Objetivos
– Temas a desarrollar:
• Desarrollo de Aplicaciones y Sistemas
• Metodologías de Desarrollo de Aplicaciones
– Bibliografía
• Según estadísticas el crecimiento de fallas de seguridad en el
software es un riesgo. Como usuarios instalamos
continuamente software pero quien nos asegura que el
software es confiable y estable ante la seguridad. Nadie se
salva, revise la página www.cert.org y observará las
vulnerabilidades del software. Necesitamos tener políticas que
reglamenten el uso y evaluación del software. La programación
debe de considerar el aspecto de la seguridad para garantizar
su estabilidad y confianza. Cambiemos la forma de hacer
programas tome en consideración las normas.

3
• Implementar seguridad en las aplicaciones.
• Examinar la seguridad en el desarrollo del software.
• Descubrir fallas de seguridad en el software.
• Reglamentar el diseño de software con modelamiento.

4
• Los controles de sistema pueden controlar la entrada, el
procesamiento, la comunicación entre los procesos, interfaces
y las salidas. Estos deben ser desarrollados con los riesgos
potenciales en mente, y verificando los diferentes tipos de
amenaza y de análisis del riesgo en las etapas de su desarrollo.
Los controles pueden ser preventivos, detectives o correctivos.

6
• La división entre la seguridad de software y seguridad de
dispositivos es que se ocupan de proporcionar seguridad en las
etapas de desarrollo contra los dispositivos de seguridad que
protegen los perímetros de la red.
• Los dispositivos de perímetro son considerados como
seguridad en el desarrollo de software por los siguientes
motivos:

7
• Antiguamente, no era crucial colocar controles de seguridad en
el desarrollo de un software, por ello muchos programadores
no practican estos procedimientos.
• Muchos de los profesionales de seguridad no son
desarrolladores de software.
• Los vendedores de software intentan lanzarse al mercado
dándole prioridad a las funcionalidades del software, olvidando
la seguridad.
• La sociedad de computación está acostumbrada a recibir
software con errores y “parches”.

8
• Un almacén de productos lácteos no cuenta con los mismos
sistemas de seguridad que una Entidad Bancaria.
– E-Commerce
– Modelo cliente-servidor

9
• La programación es un intercambio de códigos entre sí,
interacción rutinaria, global y las variables locales, entrada
recibida de otros programas, salida para diversos usos,
tentativas de prever el acceso futuro al usuario, los cálculos, y
las restricciones para posibles intrusiones. Para ello es
necesario que los programadores o arquitectos de aplicaciones
encuentren un buen medio entre la funcionalidad, los requisitos
de seguridad y los mecanismos que deben poner en ejecución
para proporcionar seguridad. Esto puede agregar más
complejidad a una tarea ya compleja.

10
• Un desbordamiento de buffer es un error de software que se
produce cuando se copia una cantidad de datos sobre un área
que no es lo suficientemente grande para contenerlos,
sobrescribiendo y utilizando otras zonas de memoria.

11
• Muchas circunstancias son impredecibles y por lo tanto son
difícilmente planeadas. Si una aplicación falla por cualquier razón,
ésta debe reanudarse a un estado seguro. Esto podría requerir
cerrar la aplicación o presentar al usuario una pantalla de estado de
inicialización. Ésta es la razón por la cual aparecen pantalla azules
y/o se reinician algunos sistemas. Cuando ocurre esto, es porque
algo incorregible o inseguro a ocurrido dentro del sistema.
• Si una aplicación falla y está ejecutándose en un estado privilegiado,
estos procesos pueden ser “bajados” apropiadamente para no
comprometer los servicios y no puedan ser explotados por algún
atacante. De lo contrario, el atacante podría tener accesos
administrativos y ocasionar daños a la aplicación.

12
• El sistema de administración de base de datos es un conjunto
de programas usados para administrar los grandes sistemas
de datos estructurados.
• Existen 3 modelos de base de datos:
– Modelo de datos Relacionales
– Modelo de datos Jerárquicos
– Modelo de datos Distribuidos

13
• Componentes de base de datos relacional
– Como todos los software, las bases de datos han sido desarrolladas
con lenguajes de programación. Las bases de datos contienen los
siguientes funciones Básicas:
• DDL (Lenguaje de Definición de Data)
• DML (Lenguaje de Manipulación de Data)
• QL (Lenguaje de Consultas)
• Generador de Reportes

14
• Diccionario de la Data
– Éste almacena información crítica acerca de la data usada, relaciones,
orígenes de la misma y sus formatos. Esta herramienta es usada para
administrar de forma centralizada.
– El software de administración de base de datos lee el diccionario para
cerciorarse que esquemas de objetos existen y verificar que los
usuarios tengan derechos de acceso a los mismos.

15
• Integridad
– Si los controles en una base de datos no están debidamente
implantados, dos usuarios pueden acceder y modificar la misma data
al mismo tiempo, lo cual puede ser perjudicial en un entorno
dinámico.
– Las páginas, tablas, filas, y campos pueden ser cerrados para asegura
que la actualización de la data sea uno a la vez, lo cual permite que
cada proceso y usuario trabaje con una correcta y exacta información.

16
• Artificios de Seguridad de Base de Datos
• Existen dos principales:
– Agregación
– Inferencia

17
• Data warehousing
– Gestiona el gran volumen de información interna de una organización
con el propósito de contar con un grado más completo del análisis de
datos.

18
• Gerencia de Desarrollo
– Es la encargada de analizar y diseñar un sistema.
– Utiliza procedimientos manuales y electrónicos.
– Vela por la integridad y disponibilidad de la información que
administra el sistema desarrollado.

19
• La concepción
• La elaboración
• La construcción
• La transición

20
• Durante el desarrollo de un software es indispensable contar
con un sistema que permita controlar de manera formal los
requerimientos de cambios que se van dando.

21
• Conceptos de programación orientada a objetos.
– Como lo indica el nombre, esta programación está basada en términos
de objetos, propiedades y métodos.
• Objeto
• Clase
• Mensaje
• Método
• Encapsulamiento
• Herencia
• Polimorfismo

23
• Modelamiento de datos
– “Permite realizar abstracciones del mundo, permitiendo centrarse en
los aspectos macros, sin preocuparse de las particularidades; así
nuestra preocupación se centra en generar un esquema de
representación, y no en los valores de los datos”.

– http://carmuz.tripod.com/modelamiento/cap01a.htm

24
• Arquitectura de Software
– Es la organización fundamental de un sistema representado en sus
componentes, las relaciones entre sí y el entorno que orientan su
diseño y evolución.
– La arquitectura se compone de las siguientes vistas:
• Vista Conceptual
• Vista Lógica
• Vista Física
• Vista Implementación

25
• CORBA (Common Object Request Broker Architecture).
• Herramientas CASE.
• Prototyping.
• DCOM (Distributed Component Object Model.
• COM (Component Object Model).

26
• Open Database Connectivity (ODBC).
• Object Linking and Embedding (OLE).
• Dynamic Data Exchange.
• Java.
• Active X.

27
• Llámese códigos maliciosos a cualquier programa, sistema o
mensaje que puede perjudicar el rendimiento de un entorno
usuario o red.
• Existen muchos códigos maliciosos de los cuales los más
conocidos son :
– Virus
– Gusanos o Worn
– Trojanos
– Bomba lógica

28
• Denegación de servicio (DoS)
• Smurf
• Teardrop
• DNS DoS
• Secure DNS

29
• No hay libros disponibles en biblioteca.

• CISSP
– https://www.isc2.org/cissp-training.aspx

También podría gustarte