jueves, 25 de abril de 2013

Reporte Escolar: Primera Jornada Académica de la carrera de Ingeniería en Software


Conferencia: Análisis Forense
Ponente: Mtro. Jorge Agustín Zárate Pérez

El profesor Jorge nos explicó acerca de lo que es el proceso de análisis forense informático. Este proceso es uno de los más cuidadosos en el campo de la seguridad ya que el trabajo realizado puede tener consecuencias civiles o penales para otras personas. Una negligencia en la realización del análisis forense puede tener graves consecuencias.

Para que el analista forense puede realizar la investigación es necesario que siga unos pasos bien definidos, una metodología sistemática, para obtener la máxima información sin dañar los datos originales. La metodología empleada habitualmente se basa a grandes rasgos en los siguientes puntos:

Identificación del evento que desea investigarse.
Examen de las evidencias. Búsqueda de datos, filtrado y recuperación de datos ocultos, cifrados o borrados.
Análisis de las evidencias con el objetivo de alcanzar conclusiones.
Elaboración del informe que incluye el dictamen de la pericia. Asistencia como perito experto al juicio.
¿Qué es el “análisis forense informático”?

Es la conservación, identificación, extracción, análisis e interpretación de información digital con la expectativa de que los hallazgos se utilicen en la corte.

Habilidades

Revela evidencia directa en la máquina.

Asocia a una maquina con la información. Proporciona pistas para la investigación.

Muestra evidencia que corrobora o refuta alegatos o coartadas. Deja al descubierto evidencia conductual.

Donde encontrar evidencia informática.

Confiscar artículos que se detallan en la orden de cateo.

Computadoras, laptops, equipo de red (conectores e interruptores).

Periféricos: CDR, DVD-R, cámara digitales, PDA. Medios externos: CD, diskettes, memorias USB.

Notas en papel, documentos y manuales, notas auto adheribles. Antes de moverlo, documente el equipo y los periféricos. Fotografías digitales, diagramas.

¿Qué puede encontrar el analista o que le es de utilidad?

Archivos borrados.

Fragmentos de texto.

Meta archivos mejorados (archivos que se imprimieron). Meta datos mejorados (información insertada). Información en el registro de hora y fecha Mensajes de correo electrónico e historiales de conversación. Información sobre el uso del Internet (historial).

Ficheros archivados y archivos comprimidos (Zip).

Archivos codificados adjuntos a mensajes de correo electrónico. Imágenes (activas y borradas.

¿Quiénes son los intrusos? Outsiders and insiders en la actualidad hay un amplio rango de intrusos script kiddies delincuentes de cuello blanco y crimen organizado falso estereotipo del cracker intruso.

Principios forenses: Minimizar los pérdida de datos Registrar todo Verificación Descripción del sistema Recolección de evidencia Creación y análisis de una línea del tiempo

Taller: Modelado en 3D
Ponente: Mtro. Lázaro Hernández Camaño

El profesor Lázaro nos enseñó a realizar modelado de funciones en tres dimensiones. Explico que de manera general, algunos lenguajes de programación y sus compiladores ya tienen bibliotecas predefinidas para realizar esto, pero nos enseñaría el principio básico de esta programación.

Primero nos dio una explicación matemática de lo que haríamos en computadora, ya que matemáticamente se puede modelar una función en tres dimensiones (x, y, z), pero la computadora solo tiene dos ejes ya hay que transformar los tres ejes a dos solamente.

Entonces lo primero que hicimos fue crear una malla, que simulara ser tridimensional dentro de la computadora, así, de cierta forma al pasarle una función, ésta podría ser modelada en tres dimensiones. Hay que entender que cada vector en cada dimensión (xy, yz, zx) se mueve de diferente manera, pero z, como dije antes, no existe en la computadora porque esta solo tiene dos ejes, se debe simular, por lo tanto es necesario saber cuáles son sus funciones en el modelado, para simularlas en la computadora.

Después de crear la malla “tridimensional” por medio de fórmulas matemáticas (algo complejas para explicarlas), solo se le pasa una función matemática, sea la que sea y que este en función de “x” e “y”, entonces esta se puede graficar en tres dimensiones.

Diagramas (Resumen)

Resumen del capítulo 7 del libro Lenguaje Unificado de Modelado (UML)


Un diagrama es una representación gráfica de elementos que se dibujan con un grafo convexo de nodos (elementos) y arcos (relaciones).Con UML se construyen bloques de construcción como son clases, interfaces, nodos, generalizaciones, especificaciones, asociaciones, etc.

Los diagramas son estos medios para ver a estos bloques y a la vez nos ayudan a visualizar un sistema desde diferentes perspectivas.

En el contexto de software hay cinco vistas complementarias que son las más importantes para visualizar, especificar, construir y documentar una arquitectura en software.

  • ·         La vista de caso de usos
  • ·         La vista de diseño
  • ·         La vista de procesos
  • ·         La vista de implementación
  • ·         La vista de despliegue


Cada una de estas vistas involucra modelado estructural, así como un modelo de comportamiento. Cada una de estas vistas permite centrar la atención en una perspectiva del sistema para poder razonar con claridad sobre las decisiones.

Un modelo es una abstracción semánticamente cerrada en un sistema, representa una simplificación completa y auto consistente de la realidad.

Un diagrama es sólo una proyección gráfica de los elementos que configuran un sistema.

Las partes estéticas de un sistema se representaran mediante uno de los cuatro diagramas siguientes:

  • ·         Diagrama de clases
  • ·         Diagrama de objeto
  • ·         Diagrama de componentes
  • ·         Diagramas de despliegue


Y para las partes estáticas se emplearán cinco diagramas adicionales

  • ·         Diagramas de caso de uso
  • ·         Diagramas de secuencia
  • ·         Diagramas de colaboración
  • ·         Diagramas de estados
  • ·         Diagramas de actividades


Cada diagrama debe tener un nombre único en su contexto, que puede referirse a un diagrama específico y distinguir uno de otros.

En un mismo diagrama pueden representarse cualquier combinación de elementos de UML.

Diagramas estructurales

Los cuatro diagramas estructurales en UML existen para visualizar, especificar, construir y documentar los aspectos estáticos del sistema.

Los diagramas estructurales en UML se organizan en líneas generales alrededor de los principales grupos de elementos que aparecen al modelar un sistema.1.

  • 1.    Diagrama de clases <- clases, interfaces y colaboraciones
  • 2.    Diagrama de objetos <- objetos
  • 3.    Diagrama de componentes <- componentes
  • 4.    Diagramas de despliegue <- Nodos


Diagrama de clases. Un diagrama de clases presenta un conjunto de clases, interfaces, y colaboraciones y relaciones entre ellas. Los diagramas de clases se utilizan para describir la vista de diseño estático de un sistema.
Incluyen clases activas se utilizan para cubrir la vista de procesos estática de un sistema.

Diagrama de objetos. Un diagrama de objetos representa un conjunto de objetos y sus relaciones. Se utilizan para describir estructuras de datos, instantáneas de los elementos encontrados en los diagramas de clases. Cubren la vista de diseño estática o la vista de procesos estática de un sistema al igual que los diagramas de clases desde la perspectiva de casos reales o prototípicos.

Diagramas de componentes. Un diagrama de componentes muestra un conjunto de componentes y sus relaciones.

Se utilizan para describir a vista de implementación estática de un sistema.

Se relacionan con los diagramas de clases en que un componente se corresponde con una o más clases, interfaces o colaboraciones.

Diagramas de despliegue. Un diagrama de despliegue muestra un conjunto de nodos y sus relaciones.

Se utilizan para describir la vista de despliegue estática de una arquitectura. Se relacionan con los diagramas de los componentes en que un nodo normalmente incluye uno o más componentes.

Diagramas de comportamiento


Los diagramas de comportamiento de UML se organizan en líneas generales alrededor delas formas principales en las que se puede modelar la dinámica de un sistema.

  • 1.    Diagramas de caso de uso <- organiza los comportamientos del sistema
  • 2.    Diagramas de secuencia <- centrados en la ordenación temporal de los mensajes
  • 3.    Diagramas de colaboración <- centrados en la organización estructural delos objetos que enviar y recibir mensajes
  • 4.    Diagramas de estados <- centrados en el estado cambiante de un sistema dirigido por eventos
  • 5.    Diagramas de actividades <- centrados en el flujo de control de actividades


Diagramas de caso de uso: Representa un conjunto de casos de uso y sus actores y sus relaciones.
Se utilizan para describir la vista de casos de uso estática de un sistema.
Son especialmente importantes para organizar y modelar el comportamiento del sistema.

El nombre colectivo que se da a los diagramas de secuencia y os diagramas de colaboración es el diagrama de iteración.

Diagramas de secuencia. Un diagrama de secuencia es un diagrama de interacción que resalta la ordenación temporal de los mensajes.
Presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos.

Los objetos suelen ser instancias con nombre o anónimas de clases pero también pueden representar instancias de otros elementos tales como colaboraciones, componentes y nodos.
Se utilizan para describir un sistema.

Diagramas de colaboración. Un diagrama de colaboración es un diagrama de interacción que resalta la organización estructural de los objetos que envían y reciben mensajes.
Muestra un conjunto de objetos, enlaces entre esos objetos.

Diagrama de estados.

Representa una máquina de estados, transiciones eventos y actividades.
Se utilizan para describir la vista dinámica de un sistema. Son especialmente importantes para modelar el comportamiento de una interfaz, una clase o una colaboración.

Diagramas de actividades. Muestra el flujo de actividades de un sistema. Una actividad muestra un conjunto de actividades y los objetos que actúan.

Se utilizan para ilustrar la vista dinámica de un sistema.

Son importantes para modelar la función de un sistema así como para resaltar el flujo de control entre objetos.

Técnicas de comunes de modelado

Modelado de diferentes vistas de un sistema.

Para modelar un sistema de desde diferentes vistas es necesario:
  • ·         Decidir que vistas se necesitan para expresar mejor la arquitectura de sistema.
  • ·         Definir qué artefactos se necesitan crear para capturar los detalles esenciales.
  • ·         Decidir cuáles son los diagramas se pondrá bajo un tipo de control.


Modelado de diferentes niveles de abstracción

Hay que considerar las necesidades de las personas que utilizaran el diagrama y comenzar con un determinado modelo.
Se debe crear un diagrama de nivel de abstracción que tendrá que revelar muchos detalles, tomando en cuenta las cuatro categorías siguientes de los elementos del modelo.
  • ·         Bloques de construcción y relaciones.
  • ·         Adornos
  • ·         Flujo
  • ·         Estereotipos

Ejemplos de Diagramado UML


Se desea diseñar un diagrama de clases sobre la información de las reservas de una empresa dedicada al alquiler de automóviles, teniendo en cuenta que:
  • Un determinado cliente puede tener en un momento dado hechas varias reservas.
  • De cada cliente se desean almacenar su DNI, nombre, dirección y teléfono. Además dos clientes se diferencian por un código único.
  • Cada cliente puede ser avalado por otro cliente de la empresa.
  • Una reserva la realiza un único cliente pero puede involucrar varios coches.
  • Es importante registrar la fecha de inicio y final de la reserva, el precio del alquiler de cada uno de los coches, los litros de gasolina en el depósito en el momento de realizar la reserva, el precio total de la reserva y un indicador de si el coche o los coches han sido entregados.
  • Todo coche tiene siempre asignado un determinado garaje que no puede cambiar. De cada coche se requiere la matricula, el modelo el color y la marca.
  • Cada reserva se realiza en una determinada agencia.



      El Ministerio de Defensa desea diseñar una Base de Datos para llevar un cierto control de los soldados que realizan el servicio militar. Los datos significativos a tener en cuenta son:
  •  Un soldado se define por su código de soldado (único), su nombre y apellidos, y su graduación.
  •  Existen varios cuarteles, cada uno se define por su código de cuartel, nombre y ubicación.
  • Hay que tener en cuenta que existen diferentes Cuerpos del Ejército (Infantería, Artillería, Armada, ....), y cada uno se define por un código de Cuerpo y denominación.
  • Los soldados están agrupados en compañías, siendo significativa para cada una de éstas, el número de compañía y la actividad principal que realiza.
  • Se desea controlar los servicios que realizan los soldados (guardias, imaginarias, cuarteleros, ...), y se definen por el código de servicio y descripción
Consideraciones de diseño:
  • Un soldado pertenece a un único cuerpo y a una única compañía, durante todo el servicio militar. A una compañía pueden pertenecer soldados de diferentes cuerpos, no habiendo relación directa entre compañías y cuerpos.
  • Los soldados de una misma compañía pueden estar destinados en diferentes cuarteles, es decir, una compañía puede estar ubicada en varios cuarteles, y en un cuartel puede haber varias compañías. Eso si, un soldado sólo esta en un cuartel.        
  • Un soldado realiza varios servicios a lo largo de la milicia. Un mismo servicio puede ser realizado por más de un soldado (con independencia de la compañía), siendo significativa la fecha de realización.


La Policía quiere crear una base de datos sobre la seguridad en algunas entidades bancarias. Para ello tiene en cuenta:
  •         Que cada entidad bancaria se caracteriza por un código y por el domicilio de su Central.
  •       Que cada entidad bancaria tiene más de una sucursal que también se caracteriza por un código y por el domicilio, así como por el número de empleados de dicha sucursal.
  •        Que cada sucursal contrata, según el día, algunos vigilantes jurados, que se caracterizan por un código y su edad. Un vigilante puede ser contratado por diferentes sucursales (incluso de diferentes entidades), en distintas fechas y es un dato de interés dicha fecha, así como si se ha contratado con arma o n
  •      Por otra parte, se quiere controlar a las personas que han sido detenidas por atracar las sucursales de dichas entidades. Estas personas se definen por una clave (código) y su nombre completo.
  •        Alguna de estas personas están integradas en algunas bandas organizadas y por ello se desea saber a qué banda pertenecen, sin ser de interés si la banda ha participado en el delito o no Dichas bandas se definen por un número de banda y por el número de miembros.
  •       Así mismo, es interesante saber en qué fecha ha atracado cada persona una sucursal. Evidentemente, una persona puede atracar varias sucursales en diferentes fechas, así como que una sucursal puede ser atracada por varias personas.
  •      Igualmente, se quiere saber qué Juez ha estado encargado del caso, sabiendo que un individuo, por diferentes delitos, puede ser juzgado por diferentes jueces. Es de interés saber, en cada delito, si la persona detenida ha sido condenada o no y de haberlo sido, cuánto tiempo pasará en la cárcel. Un Juez se caracteriza por una clave interna del juzgado, su nombre y los años de servicio.

NOTA: En ningún caso interesa saber si un vigilante ha participado en la detención de un atracador.

Un club náutico desea tener informatizados los datos correspondientes a sus instalaciones, empleados, socios y embarcaciones que se encuentran en dicho club. El club está organizado de la siguiente forma:
·         Los socios pertenecientes al club vienen definidos por su nombre, dirección, DNI, teléfono y fecha de ingreso en el club.
·         Las embarcaciones vienen definidas por: matricula, nombre, tipo y dimensiones.
·         Los amarres tienen como datos de interés el número de amarre, la lectura del contador de agua y luz, y si tienen o no servicios de mantenimiento contratados.
·         Por otro lado, hay que tener en cuenta que una embarcación pertenece a un socio aunque un socio puede tener varias embarcaciones. Una embarcación ocupará un amarre y un amarre está ocupado por una sola embarcación. Es importante la fecha en la que una embarcación en asignada a un amarre.
·         Los socios pueden ser propietarios de amarres, siendo importante la fecha de compra del amarre. Hay que tener en cuenta que un amarre pertenece a un solo socio y que NO HAY ninguna relación directa entre la fecha en la que se compra un amarre y en la que una embarcación se asigna a un amarre.
·         El club náutico está dividido en varias zonas definidas por una letra, el tipo de barcos que tiene, el número de barcos que contiene, la profundidad y el ancho de los amarres. Una zona tendrá varios amarres y un amarre pertenece a una sola zona.
·         En cuanto a los empleados, estos vienen definidos por su código, nombre, dirección, teléfono y especialidad. Un empleado está asignado a varias zonas y en una zona puede haber más de un empleado, siendo de interés el número de barcos de los que se encarga en cada zona. Hay que tener en cuenta que un empleado puede no encargarse de todos los barcos de una zona.


Una biblioteca tiene copias de libros. Estos últimos se caracterizan por su nombre, año y autor.
·         Un libro está relacionado con una categoría (novela, teatro, poesía, ensayo) así como también con una editorial.
·         Los autores se caracterizan por su nombre y fecha de nacimiento. Se considera que el autor sólo tiene una nacionalidad.
·         Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en reparación.
·         Los lectores pueden tener un máximo de 3 libros en préstamo.
·         Cada libro se presta un máximo de 30 días, por cada día de retraso, se impone una “multa” de dos días sin posibilidad de coger un nuevo libro.
·         Realiza un diagrama de clases para realizar el préstamo y devolución de libros.