viernes, 17 de noviembre de 2017

SEGURIDAD EN SISTEMAS DE INFORMACIÓN


SEGURIDAD EN SISTEMAS DE INFORMACIÓN.



1. Introducción.

Se define al conjunto de normas, procedimientos y herramientas, que tienen como objetivo garantizar la disponibilidad, integridad, confidencialidad y buen uso de la información que reside en un sistema de información.
Cada día más y más personas mal intencionadas intentan tener acceso a los datos de nuestros ordenadores.
El acceso no autorizado a una red informática o a los equipos que en ella se encuentran pueden ocasionar en la gran mayoría de los casos graves problemas.
Uno de las posibles consecuencias de una intrusión es la pérdida de datos. Es un hecho frecuente y ocasiona muchos trastornos, sobre todo si no estamos al día de las copias de seguridad. Y aunque estemos al día, no siempre es posible recuperar la totalidad de los datos.








2. Amenazas.



Se puede definir como amenaza a todo elemento o acción capaz de atentar contra la seguridad de la información.
Las amenazas surgen a partir de la existencia de vulnerabilidades, es decir que una amenaza sólo puede existir si existe una vulnerabilidad que pueda ser aprovechada, e independientemente de que se comprometa o no la seguridad de un sistema de información.

Tipos de amenazas
Las amenazas pueden clasificarse en dos tipos:


Intencionales, en caso de que deliberadamente se intente producir un daño (por ejemplo el robo de información aplicando la técnica de trashing, la propagación de código malicioso y las técnicas de ingeniería social).
No intencionales, en donde se producen acciones u omisiones de acciones que si bien no buscan explotar una vulnerabilidad, ponen en riesgo los activos de información y pueden producir un daño (por ejemplo las amenazas relacionadas con fenómenos naturales).

Cómo actuar
La presencia de una amenaza es una advertencia de que puede ser inminente el daño a algún activo de la información, o bien es un indicador de que el daño se está produciendo o ya se ha producido. Por ello siempre debe ser reportada como un incidente de seguridad de la información.
Si sospecha que existe una amenaza a algún sistema de información de la Universidad, por favor efectúe el reporte del incidente.


3. Elementos a asegurar.

Para determinar el establecimiento de prioridades, el sistema de gestión de incidentes necesita saber el valor de los sistemas de información que pueden ser potencialmente afectados por incidentes de seguridad. Esto puede implicar que alguien dentro de la organización asigne un valor monetario a cada equipo y un archivo en la red o asignar un valor relativo a cada sistema y la información sobre ella. Dentro de los valores para el sistema se pueden distinguir: confidencialidad de la información, la integridad (aplicaciones e información) y finalmente la disponibilidad del sistema. Cada uno de estos valores es un sistema independiente del negocio, supongamos el siguiente ejemplo, un servidor web público pueden poseer la característica de confidencialidad baja (ya que toda la información es pública) pero necesita alta disponibilidad e integridad, para poder ser confiable. En contraste, un sistema de planificación de recursos empresariales (ERP) es, habitualmente, un sistema que posee alto puntaje en las tres variables.



4. Mecanismos que ofrecen los gestores.


La Seguridad: proporciona mecanismos de autenticacion que ayuda a establecer distintos niveles de acceso a los contenidos.


Escabilidad: Es a través de esto que el sistema que se este desarrollando podrá adecuarse a las futuras necesidades.





5. Seguridad en aplicaciones de acceso a datos.

es un tipo de permiso que permite que las aplicaciones puedan tomar el control tanto de otras aplicaciones como de la información que se encuentre en dichas aplicaciones. Generalmente, la utilidad de este tipo de permisos se traduce en que nos permiten realizar actividades automatizadas.


Por ejemplo, podemos tener una aplicación que requiera del acceso de uso para comprobar continuamente cuando tengamos abierta una aplicación, y entonces realizar tareas automáticas como encender el Wi-Fi o subir el brillo de la pantalla.

 

MIDDLEWARE


MIDDLEWARE





1. Introducción y clasificación es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de programas, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones y sincronizaciones que son necesarias en los sistemas distribuidos. De esta forma, se provee una solución que mejora la calidad de servicio, así como la seguridad, el envío de mensajes, la actualización del directorio de servicio, etc.




















2. Lógicas de Mediación de Datos


La presentación y la lógica de negocio se encuentran en la maquina cliente.


• Los datos y el acceso a los mismos, se resuelve en el servidor.


• El servidor suele ser mucho más poderoso que las maquinas cliente.


• Este tipo de arquitecturas es buena cuando el volumen de los usuarios es alto.


• Ahora la lógica de negocio puede colocarse también dentro de la base de datos (nuevas herramientas).






Lenguajes de programación en el DBMS (Java, C).


• Procedimientos almacenados.


• Triggers.


• Todos estos enfoques limitan la portabilidad del sistema construido.


• Sin embargo aumentan la eficiencia de los mismos, ya que el procesamiento:


• Se hace más cerca de los datos.


• Se hace en un entorno más poderoso (servidor).


• Arquitectura en 3 capas


• También conocidas como arquitecturas multicapa (no están limitadas a 3)


• Una capa intermedia se añade entre el ambiente del cliente y el servidor de base de datos.


• Esta capa puede implementarse de múltiples formas:


• Servidores de aplicación.


• Monitores transaccionales.


• Sistemas de mensajería.








3. Lógicas de Mediación de Comunicación






Comunicación asíncrona entre aplicaciones para compartir información. No obstante, también hay soluciones que trabajan con conexiones síncronas o pseudo-síncronas.


Los mensajes son almacenados en colas hasta que el receptor está listo para recoger el mensaje.


Garantía de que los mensajes llegarán siempre a su destino.


Rapidez en la entrega de los mensajes.


Las aplicaciones están aisladas de la complejidad de las redes y del hardware gracias al MOM. Por ello, no sufrirán ninguna modificación aunque cambie parte de la red o del hardware utilizado.


La comunicación entre aplicaciones es no bloqueante, es decir, que las aplicaciones que realizan una petición no detienen su ejecución mientras esperan el mensaje de respuesta.


Las colas utilizadas pueden ser permanentes o dinámicas. Las primeras almacenan la información en disco, mientras que las segundas guardan los datos de forma temporal en la memoria volátil.


Las colas de mensajes pueden ser leídas como en una pila FIFO o teniendo en cuenta propioridades.


Las aplicaciones que se comunican entre sí, no están conectadas directamente y eso facilita la programación y permite crear nuevas funcionalidades.


El emisor no necesita conocer la ubicación física del receptor y viceversa.


Muchas soluciones comerciales MOM proporcionan también encriptación de datos extremo a extremo para incrementar la seguridad.







ARQUITECTURA DE APLICACIONES WEB



ARQUITECTURA DE APLICACIONES WEB.


1. Estilos de Arquitectura


Indican:

Tipos de componentes y conectores involucrados.
Patrones y restricciones de interconexión o composición entre ellos: Invariantes del estilo.


Hay una serie de propiedades que lo caracterizan, determinando sus ventajas e inconvenientes, Condicionando la elección de uno a otro estilo.















2. Arquitectura N-capas.


modelo de desarrollo software y su objetivo es la separación de las partes que componen un sistema software o también arquitectura cliente-servidor:Capa de negocios, Capa de presentación y Capa de datos.


se lleva a cabo en varios niveles y ademas permite distribuye el trabajo de aplicación, de este modo, cada grupo es abstraído del resto de niveles.








Capas de presentación


comunica y captura la información del usuario en un mínimo proceso, también se conoce como interfaz gráfica y debe ser fácil y entendible para el usuario.
















Capa de aplicación




Es la ultima capa del modelo OSI y proporciona servicios a los usuarios, alguna de las funciones de estos son:




- Establece acuerdos para recuperación de errores.

- Establece la disponibilidad de los socios de comunicación deseados.

- Soporta aplicaciones de red directas e indirectas.













Capa de modelo del dominio/Negocio




También llamada capa de servicio, aquí se implementan los objetivos de la aplicación.Es el corazón de la aplicación y aporta un valor a la compañía.

son usados por diferentes implementaciones de capas de presentación como pueden ser paginas web, lineas de comandos o servicios web.
















Capa de infraestructura de persistencia de datos.


Proporciona una capa de abstracción para el acceso a datos que es independiente del esquema físico

proporciona un interfaz coherente para acceder a los datos, independiente de la infraestructura de objetos relacionales, a su vez se utiliza para transformar los datos recuperados de la base de datos en una colección de objetivos java.







2.1 Introducción.


Con la introducción de Internet y del Web en concreto, se han abierto infinidad de posibilidades en cuanto al acceso a la información desde casi cualquier sitio. Esto representa un desafío a los desarrolladores de aplicaciones, ya que los avances en tecnología demandan cada vez aplicaciones más rápidas, ligeras y robustas que permitan utilizar el Web.


Afortunadamente, tenemos herramientas potentes para realizar esto, ya que han surgido nuevas tecnologías que permiten que el acceso a una base de datos desde el Web, por ejemplo, sea un mero trámite. El único problema es decidir entre el conjunto de posibilidades la correcta para cada situación.




El viejo CGI ha cumplido con el propósito de añadir interactividad a las páginas Web pero sus deficiencias en el desarrollo de aplicaciones y en la escalabilidad de las mismas ha conducido al desarrollo de APIs específicos de servidor como Active Server Pages, ASP, y PHP, que son más eficientes que su predecesor CGI.




Para aprovechar el potencial de estas tecnologías y ofertar una solución de servidor más extensible y portable, Sun ha desarrollado la tecnología llamada servlet. Los servlets Java son muy eficientes, debido al esquema de threads en el que se basan y al uso de una arquitectura estándar como la JVM, Java Virtual Machine.




Otra nueva tecnología viene a sumarse a las que extienden la funcionalidad de los servidores Web, llamada Java Server Pages, JSP. Los JSP permiten juntar HTML, aplicaciones Java, y componentes como las Java Beans creando una página Web especial que el servidor Web compila dinámicamente en un server la primera vez que es llamada.














2.2 Revisión histórica.





Las tecnologías que se emplean para la construcción de aplicaciones Web no son las mejores para hacer aplicación "dinámicas" (aplicaciones con un razonable nivel de interactividad y responsividad de la GUI), porque no fueron diseñadas para tal fin.


La Web, en su concepción original, era un servicio concebido para compartir contenido estático (textos académicos, por ejemplo) entre usuarios de computadoras personales con capacidad de procesamiento muy limitada: alguna organización (como una universidad) publicaba estos contenidos, y los usuarios se limitaban a consultarlos. Es decir, estas aplicaciones de la primera Web (a veces renombrada luego como Web 1.0) eran fundamentalmente:

no interactivas

operaban sobre contenido poco mutable

de sólo texto

de comunicación unidireccional (la información siempre viaja desde el servidor al cliente, a pedido de un cliente)


Por esto, HTTP. el protocolo de comunicación empleado en la Web es:

Pedido-Respuesta (se abre una conexión por cada pedido, que surge del cliente, y el servidor la cierra cuando ha enviado la respuesta)

Stateless (el protocolo per-sé no maneja ninguna noción de memoria de pedidos anteriores)

Textual (se intercambian mensajes de sólo texto)

Basado en códigos de respuesta (incluso para los flujos de error; no hay memoria compartida, continuaciones, excepciones ni eventos)

Esto es esquemático y en su forma más básica, el protocolo es complejo y presenta muchos aspectos como tipos de contenido, métodos, cachés y conexiones persistentes, etc, que modifican sustancialmente la visión anterior.














2.3 Características, Importancia





Algunas aplicaciones basadas en la web utilizan una arquitectura de dos niveles y otras utilizan una arquitectura de n niveles formada por tres o más niveles.

Arquitectura de dos niveles

En una arquitectura de dos niveles, el cliente está en el primer nivel. El servidor de bases de datos y el servidor de aplicaciones web residen en la misma máquina servidor, que es el segundo nivel. El segundo nivel proporciona los datos y ejecuta la lógica empresarial para la aplicación web.


Arquitectura de n niveles

En una arquitectura de n niveles, los objetos de aplicaciones están distribuidos entre varios niveles lógicos, generalmente tres o cuatro.




En una arquitectura de tres niveles, el servidor de bases de datos no comparte una máquina servidor con el servidor de aplicaciones web. El cliente está en el primer nivel, igual que en una arquitectura de dos niveles. En el tercer nivel, el servidor de bases de datos proporciona los datos.


En una arquitectura de cuatro niveles, puede existir más de un nivel lógico dentro del nivel medio o dentro del nivel del sistema de información empresarial. Por ejemplo:

El nivel medio está formado por más de un servidor web. Como alternativa, un cortafuegos intermedio puede separar el servidor web del servidor de aplicaciones en el nivel medio.




Un servidor de bases de datos del tercer nivel puede ser la fuente de los datos para un servidor web del nivel medio y otro servidor de bases de datos del cuarto nivel es la fuente de datos para un servidor de bases de datos del tercer nivel.










3. Arquitecturas distribuidas


Un sistema distribuido se puede demostrar por la arquitectura cliente-servidor, que forma la base para las arquitecturas de múltiples niveles; las alternativas son la arquitectura de intermediario como CORBA, y la arquitectura orientada a servicios (SOA). En esta arquitectura, el procesamiento de información no se limita a una sola máquina sino que se distribuye en varios ordenadores independientes.


Se encuentra en el medio del sistema y gestiona o apoya los diferentes componentes de un sistema distribuido. Ejemplos son monitores de transacción de procesamiento, convertidores de datos y los controladores de comunicación, etc.














3.1 El modelo Cliente / Servidor





Un servidor es una aplicación que ofrece un servicio a usuarios de Internet; un cliente es el que pide ese servicio. Una aplicación consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas.


Los usuarios invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la aplicación que usa TCP/IP como transporte.










- Arquitectura Cliente/Servidor de 2 niveles






La arquitectura en 2 niveles se utiliza para describir los sistemas cliente/servidor en donde el cliente solicita recursos y el servidor responde directamente a la solicitud, con sus propios recursos. Esto significa que el servidor no requiere otra aplicación para proporcionar parte del servicio.










- Arquitectura Cliente/Servidor de 3 niveles





Los servicios del tercer nivel están protegidos del acceso directo de los componentes de cliente que residen en una red segura. La interacción debe producirse a través de los procesos del segundo nivel.

Comunicación entre niveles. Los tres niveles deben comunicarse entre ellos. Los protocolos abiertos estándar y las API expuestas simplifican esta comunicación. Puede escribir componentes de cliente en cualquier lenguaje de programación, como Java o C++. Estos clientes se ejecutan en cualquier sistema operativo, comunicándose con la capa de la lógica de la aplicación. Las bases de datos del tercer nivel pueden tener cualquier diseño, si la capa de la aplicación pueda consultarlas y manipularlas. La clave de esta arquitectura es la capa de la lógica de aplicación.












- Arquitectura Cliente/Servidor multinivel


Al hablar del desarrollo de aplicaciones Web resulta adecuado presentarlas dentro de las aplicaciones multinivel. Los sistemas típicos cliente/servidor pertenecen a la categoría de las aplicaciones de dos niveles. La aplicación reside en el cliente mientras que la base de datos se encuentra en el servidor. En este tipo de aplicaciones el peso del calculo recae en el cliente, mientras que el servidor hace la parte menos pesada, y eso que los clientes suelen ser maquinas menos potentes que los servidores. Ademas, esta el problema de la actualización y el mantenimiento de las aplicaciones, ya que las modificaciones a la misma han de ser trasladada a todos los clientes.














- Arquitectura Peer to peer





es una red de ordenadores en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red.

sirven para compartir e intercambiar información de forma directa entre dos o más usuarios ha propiciado que parte de los usuarios lo utilicen para intercambiar archivos cuyo contenido está sujeto a las leyes de copyright.










4 Arquitectura Orientada a Servicios






es el nexo que une las metas de negocio con el sistema de software. Su papel es el de aportar flexibilidad, desde la automatización de las infraestructura y herramientas necesarias consiguiendo, al mismo tiempo, reducir los costes de integración. SOA se ocupa del diseño y desarrollo de sistemas distribuidos y es un potente aliado a la hora de llevar a cabo la gestión de grandes volúmenes de datos, datos en la nube y jerarquías de datos.


proviene de la década de los 90. Hoy presenta su mejor cara, altamente eficiente, más abierta e interoperable. SOA sirve de apoyo a las organizaciones:


Ayudándolas a agilizar los procesos para que puedan hacer negocios de manera más eficiente.


Facilitando su adaptación al cambio.


Habilitando la posibilidad de implementar nuevas estrategias, acordes con el dinamismo de mercado.














5 Arquitecturas para cloud computing





Los modelos de la nube se suelen clasificar según el lugar donde se implementa el entorno de nube (la base de la distinción entre nube pública, nube privada, nube comunitaria y nube híbrida) y según la parte del servicio de TI y de la pila de aplicaciones que proporciona la nube (la distinción entre nubes de IaaS, PaaS y SaaS). Independientemente del modelo de nube que elija una empresa, las nubes tienden a tener ciertos elementos de arquitectura de cloud computing en común. Estos componentes de la arquitectura de cloud computing son los que constituyen la "nube".


suele incluir estos elementos comunes:


Nivel de virtualización. La virtualización de los servidores y la virtualización del almacenamiento juegan un papel clave en la arquitectura de cloud computing, puesto que ofrecen una de las principales ventajas de la nube: la agilidad. Un nivel de virtualización permite a los proveedores aprovisionar o desaprovisionar rápidamente servidores en la nube para satisfacer las necesidades de los usuarios del servicio.


Almacenamiento escalable horizontalmente. La escalabilidad es otro rasgo distintivo de la arquitectura de cloud computing y desde el punto de vista del almacenamiento, se suele derivar de tecnologías que aprovechan grandes grupos de componentes de hardware de consumo que se pueden ampliar de manera sencilla y económica según crece la demanda de infraestructura y recursos de almacenamiento.










6 Arquitecturas para dispositivos móviles








A diferencia de las computadoras “tradicionales”, los dispositivos móviles tienen características particulares que incluyen:




Duración limitada de la batería.

Posible tamaño pequeño de la pantalla.

Conectividad intermitente.

Posibilidad de que el dispositivo se pierda fácilmente.

Posibilidad de realizar cálculos demandantes.

Variedad de sensores que permiten recolectar información.

Acceso a infraestructura que facilita la instalación y actualización de aplicaciones (mercados de apps).

Los puntos descritos previamente aunados al hecho de que los dispositivos móviles están siempre a la mano, ha dado lugar a distintos tipos de aplicaciones con drivers particulares. Recordemos que en el contexto de arquitectura de software, los drivers, se refieren a los requerimientos que influyen en el diseño de la arquitectura. Estos drivers generalmente incluyen requerimientos funcionales primarios, atributos de calidad y restricciones.