Diseño de Seguridad de Software

download Diseño de Seguridad de Software

of 9

Transcript of Diseño de Seguridad de Software

  • 8/16/2019 Diseño de Seguridad de Software

    1/9

    3.2 Seguridad en el diseño de software. 

    o  Criterios Básicos de Seguridad:

      Principio del menor privilegio.

    El principio de privilegios mínimos es ampliamente reconocido como una importante

    consideración de diseño en la mejora de la protección de los datos y la funcionalidad de las

    fallas y el comportamiento malicioso.

    Los beneficios de este principio incluyen:

    Mejor estabilidad del sistema. Cuando el código se limita en el alcance de los cambios que

    puede realizar en un sistema, es más fácil para poner a prueba sus posibles acciones e

    interacciones con otras aplicaciones. En la práctica, por ejemplo, las aplicaciones que se

    ejecutan con derechos restringidos no tendrán acceso para realizar operaciones que podrían

    colgar una máquina o afectar negativamente a otras aplicaciones que se ejecutan en el mismo

    sistema.

    Mejor seguridad del sistema. Cuando el código se limita en las acciones de todo el sistema

    se puede realizar, vulnerabilidades en una aplicación no se pueden utilizar para explotar el

    resto de la máquina. Por ejemplo, Microsoft afirma que "se ejecuta en modo de usuario

    estándar ofrece a los clientes una mayor protección contra el daño accidental a nivel del

    sistema causado por" ataques destructores "y malware, como rootkits, spyware y virus

    indetectables".

      Criterio de defensa en profundidad.

    La defensa en profundidad consiste, por lo tanto, en oponer a las amenazas líneas de defensa

    coordinadas e independientes. Desde el punto de vista de las tecnologías, esto puede

    significar, por ejemplo, que el hecho de que un servicio de red se vea comprometido no debe

    permitir el acceso a los derechos más elevados sobre todo el sistema. En este contexto,

    otorgar derechos de administrador a todos los usuarios de un sistema es contrario a la

    defensa en profundidad. En materia de protección de la información, esto podría también

    significar que el cifrado a nivel de las aplicaciones no es, por sí solo, suficiente, y que podría

    ser necesario proteger también la capa IP.

    Como consecuencia de la defensa en profundidad, la seguridad no se basa en un solo

    elemento sino en un conjunto coherente de elementos. Esto significa, por lo tanto, que no

    debe existir, en teoría, un punto único sobre el cual se apoye todo el edificio. De este modo,

    la defensa no debe basarse en una tecnología o en un producto de seguridad, cualquiera sea

    la calidad del mismo.

    En su calidad de barrera, todo producto de seguridad debe ser controlado, protegido y dotado

    de un plan de reacción en caso de incidente. Es necesario intentar reducir la exposición del

    sistema a las diferentes amenazas. Esto significa, por ejemplo, crear zonas despejadas

  • 8/16/2019 Diseño de Seguridad de Software

    2/9

    utilizando cortafuegos y sistemas de detección de intrusión. En ese marco de menor

    exposición, es necesario limitar sistemáticamente los servicios ofrecidos a lo estrictamente

    necesario. Poner profundidad en las tecnologías es también defender incluso los puestos de

    usuarios, instalando cortafuegos en dichos puestos así como un antivirus regularmente

    actualizado y de diferente tipo del instalado en la pasarela de correo electrónico. A estas

    herramientas debe sumarse una formación de los usuarios destinada a hacerles tomar

    conciencia de que la tecnología no basta y es necesario mantenerse atentos, cualesquiera

    sean las herramientas empleadas.

    Esta estrategia de seguridad usa distintas técnicas para limitar los daños en el caso de

    intrusión en la primera línea de defensa, es útil contra un ataque de día cero, ya que pone

    las máximas trabas posibles al atacante.

    Incluye el uso de elementos de seguridad como:

      firewalls

      antivirus

      IDS

      VPNs

    o  Manejo seguro de errores:

    El manejo seguro de errores ayuda al programador a trasladar el código para manejo de errores

    de la línea principal de ejecución, además se puede elegir entre manejar todas las excepciones,

    las de cierto tipo o de las de grupos relacionados, esto hace que la probabilidad de pasar por alto

    los errores se reduzca y a la vez hace los programas más robustos.

    Pero es importante utilizar un lenguaje de programación que soporte este manejo, de lo contrario

    el procesamiento de errores no estará incluido y hará el programa más vulnerable.

    Este manejo está diseñado para procesar errores que ocurren cuando se ejecuta una instrucción,

    algunos ejemplos son: desbordamiento aritmético, división entre cero, parámetros inválidos de

    método y asignación fallida en la memoria. Sin embargo, no está diseñado para procesar

    problemas con eventos independientes al programa como son pulsar una tecla o clic al mouse.

      Criterio del “Fallo Seguro”. 

    Le permite a un sistema seguir funcionando correctamente en caso de fallo de una o varias

    de sus componentes. Si disminuye su calidad de funcionamiento, la disminución es

    proporcional a la gravedad de la avería, en comparación con un sistema diseñado

    ingenuamente de forma que hasta un pequeño fallo puede causar el colapso total del sistema.

    Tolerancia a fallos es particularmente buscado en sistemas de alta disponibilidad.

    https://es.wikipedia.org/wiki/Ataque_de_d%C3%ADa_cerohttps://es.wikipedia.org/wiki/Firewallhttps://es.wikipedia.org/wiki/Antivirushttps://es.wikipedia.org/wiki/IDShttps://es.wikipedia.org/wiki/VPNhttps://es.wikipedia.org/wiki/VPNhttps://es.wikipedia.org/wiki/IDShttps://es.wikipedia.org/wiki/Antivirushttps://es.wikipedia.org/wiki/Firewallhttps://es.wikipedia.org/wiki/Ataque_de_d%C3%ADa_cero

  • 8/16/2019 Diseño de Seguridad de Software

    3/9

      Definición de mensajes de error.

    Se consideran como la mínima unidad de comunicación completa entre el usuario y el

    ordenador.

    Los mensajes de error en el sistema son muchas veces una preocupación para el usuario

    puesto que nos anuncian alguna deficiencia o falla en nuestro ordenador.

    Error de Software

    Un error de software es un incidente que ocurre mientras trabajamos en un equipo para

    indicar un problema en un aparato o sistema y si no hacemos lo correcto con este, traerá

    interferencias y mal funcionamiento.

    o  Manejo de información sensible:

      Información Confidencial:

    o  Es toda aquella información que por su naturaleza no puede ser revelada a terceros y

    que por lo tanto no es publica, por ello se entiende que este tipo de información es de

    nivel crítico y que por ello debe ser tratada y protegida con mayor atención.

      Información Pública:

    o  Es toda aquella información que ha sido declarada de conocimiento público y que se

    puede publicar sin restricción alguna pues este tipo de información debe ser de

    conocimiento general. Por lo anterior podemos deducir que este tipo de información no

    genera daño ni amenaza alguna a los entes que la generan ni en los procesos ni mucho

    menos en los sistemas de información que ellos manejen.

  • 8/16/2019 Diseño de Seguridad de Software

    4/9

    o  Es importante tener en claro que no hay un Estándar que nos indique el método de

    clasificar la información de pública a confidencial pues esto depende de la naturaleza de

    cada organización y de cómo se maneje en su contexto interno los procesos y sistemas

    de la información. Es decir cada uno es autónomo de darle su valor.

    Clasificación de la información Confidencial

    Información Con Grado de confidencialidad Mínimo

    •  Información que no puede ser conocida por terceros que pertenezcan a la organización, la

    responsabilidad del manejo y de la seguridad de esta debe estar a cargo de quien está encargado

    de salvaguardarla.

    •  Características y recomendaciones de manejo

     –   El acceso debe ser permitido a empleados, Contratistas o de personas externas cuyas

    actividades requieran de esta Información.

    •  Método de Distribución

     –   Correo interno de la Institución, Correo electrónico y por cualquier medio informático

    siempre y cuando se exija clave para el acceso a ella.

     –   Para los casos externos se debe realizar por los mismo medios y con las mismas

    condiciones sin embargo es importante que quede un registro do cuando, como, por quien

    y a quien le fue suministrada.

    •  Restricciones de distribución:

     –   No existe ninguna restricción exceptuando que sea enviado al receptor correcto y se

    recomienda que tenga un mensaje en el que se distinga claramente el tipo de información.

    •  Almacenamiento

     –   Debe hacerse fuera de la vista de personas no autorizadas, si se trata de información

    registrada en una equipo esta debe ser salvaguardad guardando todas las advertencias

    en cuan a la seguridad.

  • 8/16/2019 Diseño de Seguridad de Software

    5/9

    •  Disposición / Destrucción.

     –   Se deben guardar todas las condiciones para que se garantice su efectiva destrucción es

    importante que si se trata de papel este sea rasgado de tal manera que no exista el riesgo

    de que sea recuperable.

    Información Con Grado de confidencialidad Media•  Información que no puede ser conocida por terceros que pertenezcan a la organización, la

    responsabilidad del manejo y de la seguridad de esta debe estar a cargo de quien está encargado

    de salvaguardarla.

    •  Características y recomendaciones de manejo

     –   El acceso debe ser permitido a empleados, Contratistas o de personas externas cuyas

    actividades requieran de esta Información.

    •  Método de Distribución

     –   Correo interno de la Institución, Correo electrónico y por cualquier medio informático

    siempre y cuando se exija clave para el acceso a ella.

     –   Para los casos externos se debe realizar por los mismo medios y con las mismas

    condiciones sin embargo es importante que quede un registro de cuando, como, por quien

    y a quien le fue suministrada y que adicionalmente sea enviada de forma encriptada o

    por medio de canales de comunicación de carácter privado.

    •  Restricciones de distribución:

     –   No existe ninguna restricción exceptuando que sea enviado al receptor correcto y se

    recomienda que tenga un mensaje en el que se distinga claramente el tipo de información.

    •  Almacenamiento

     –   Debe hacerse fuera de la vista de personas no autorizadas, si se trata de información

    registrada en una equipo esta debe ser salvaguardad guardando todas las advertencias

    en cuan a la seguridad.

    •  Disposición / Destrucción.

     –   Se deben guardar todas las condiciones para que se garantice su efectiva destrucción es

    importante que si se trata de papel este sea rasgado de tal manera que no exista el riesgo

    de que sea recuperable.

    Información Con Grado de confidencialidad Máxima

    •  Información que no puede ser conocida por terceros que pertenezcan a la organización, la

    responsabilidad del manejo y de la seguridad de esta debe estar a cargo de quien está encargado

    de salvaguardarla.

    •  Características y recomendaciones de manejo

     –   El acceso debe ser exclusivamente permitido a empleados o no empleados con la firma

    de compromiso de no revelarla y debe ser vista con autorización por escrito.

    •  Método de Distribución

     –   Solo se permite con entrega directa, debido a que a quien recibe debe firmar la cláusula

    de privacidad y de confidencialidad y adicionalmente las consecuencias por su

    divulgación.

     –  

  • 8/16/2019 Diseño de Seguridad de Software

    6/9

    •  Restricciones de distribución:

     –   Solamente se deben realizar por medios que garanticen en un 100% su naturaleza, se

    debe hacer preferiblemente de manera encriptada y por canales seguros.

    •  Almacenamiento

     –   Su almacenamiento debe hacerse de tal manera que el acceso a ella sea prácticamente

    imposible para quienes no trabajan directamente con ella. Por ello debe estar en un

    equipo donde las condiciones de seguridad sean altas y este a la vista de quien está

    encargado de su protección.

    •  Disposición / Destrucción.

     –   Se deben guardar todas las condiciones para que se garantice su efectiva destrucción es

    importante que si se trata de papel este sea rasgado de tal manera que no exista el riesgo

    de que sea recuperable. Aunque recomiende la incineración esta está fuera de los

    procedimientos por atentar contra el medio ambiente, por lo anterior es mejor que sea

    picada caso de papel o destruida en caso de medio magnéticos.

    o  Auditoría y Logging.

    ¿Qué es logging?

    •  Cualquier procedimiento por el que un sistema operativo o aplicación graba eventos mientras

    ocurren y los guarda para un examen posterior.

    •  En cuanto a seguridad nos permite mantener un registro de las acciones dañinas de un

    atacante, son la evidencia de que nos han atacado.

    o  Diseño de Autenticación y Autorización:o  Autenticación y autorización

    Este capítulo contiene instrucciones para ayudarle a desarrollar una estrategia de

    autorización adecuada a su escenario de aplicaciones específico. Le ayudará a

    seleccionar la técnica de autenticación y autorización más apropiada y a aplicarla en los

    puntos adecuados de la aplicación. El diseño de una estrategia de autenticación y

    autorización para aplicaciones Web distribuidas constituye un verdadero desafío.

     Afortunadamente, el disponer de un diseño adecuado de la autenticación y la autorización

    durante las primeras fases del desarrollo de la aplicación ayuda a mitigar muchos de los

    peores riesgos de seguridad. Este capítulo le ayudará a diseñar una estrategia de

    autorización adecuada para la aplicacion

    Cuando considere la autorización, deberá también considerar la autenticación. Deben

    considerarse simultáneamente los dos procesos por dos razones:

    En primer lugar, cualquier directiva de autorización coherente requiere la existencia de

    usuarios autenticados.

    En segundo lugar, el modo de autenticación de los usuarios (y sobre todo el modo de

    representación de la identidad de usuarios autenticados en la aplicación) determina los

    guardianes de los que podrá disponer.

  • 8/16/2019 Diseño de Seguridad de Software

    7/9

    Diseñar una estrategia de autenticación y autorización

    Los siguientes pasos definen un proceso que le ayudará a desarrollar una estrategia de

    autenticación y autorización para la aplicación.

    o  Identificar los recursos

    Identifique los recursos que la aplicación necesita exponer a los clientes. Entre los

    recursos, suelen figurar:

    Recursos de servidores Web, como las páginas Web, los servicios Web y los

    recursos estáticos (páginas HTML e imágenes)

    Recursos de bases de datos, como los datos por usuario o los datos generales de

    la aplicación

    Recursos de red, como los recursos de sistemas de archivos remotos y los datos de

    almacenes de directorios como Active Directory.

    También deberá identificar los recursos del sistema a los que necesita tener acceso

    la aplicación. Estos recursos se contraponen a los recursos que se exponen a los

    clientes. Entre los recursos del sistema, figuran el registro, los registros de sucesos

    y los archivos de configuración.

    o  Seleccionar una estrategia de autorización

    Las dos estrategias básicas de autorización son:

    Basada en funciones. El acceso a las operaciones (normalmente métodos) se

    protege en función de la pertenencia a funciones del llamador. Las funciones sirven

    para dividir la base de usuarios de la aplicación en conjuntos de usuarios que

    comparten los mismos privilegios de seguridad en la aplicación, como por ejemplo,

    Directivos superiores, Directores y Empleados. Los usuarios se asignan a funciones

    y, si el usuario está autorizado a realizar la operación solicitada, la aplicación utiliza

    identidades fijas para obtener acceso a los recursos. Estas identidades tienen la

    confianza de los administradores de recursos respectivos (por ejemplo, las bases de

    datos, el sistema de archivos, etc.).

    Basada en recursos. Los recursos individuales se protegen mediante listas de

    control de acceso (ACL) de Windows. La aplicación suplanta al llamador antes de

    obtener acceso a los recursos, lo que permite al sistema operativo realizar controles

    estándar de seguridad del llamador original.

    Este enfoque de suplantación tiene un fuerte impacto en la escalabilidad de la

    aplicación, puesto que no permite utilizar la agrupación de conexiones de forma

    eficaz en el nivel medio de la aplicación.

  • 8/16/2019 Diseño de Seguridad de Software

    8/9

    En la gran mayoría de las aplicaciones Web .NET para las que es primordial la

    escalabilidad, el enfoque basado en funciones de la autorización suele ser la mejor

    opción. Para determinadas aplicaciones de intranet de menor escala en las que el

    contenido para usuarios se distribuye a partir de recursos (como archivos) que se

    pueden proteger del acceso de usuarios individuales mediante ACL de Windows,

    podría resultar más adecuado utilizar un enfoque basado en recursos. El patrón

    recomendado y más habitual para la autorización basada en funciones es:

       Autenticar los usuarios en la aplicación Web cliente

       Asignar los usuarios a funciones

       Autorizar el acceso a operaciones (no directamente a los recursos) en

    función de la pertenencia a funciones

      Obtener acceso a los recursos de servidor necesarios (para admitir las

    operaciones solicitadas y autorizadas) mediante identidades fijas de

    servicio. Los administradores de recursos de servidor (como las bases

    de datos) confían en la aplicación para que autorice llamadores y están

    dispuestos a conceder permisos a la identidad o identidades de servicio

    de confianza.

    Por ejemplo, un administrador de bases de datos podría conceder permisos de

    acceso exclusivamente a una aplicación de RR.HH. específica (y no a usuarios

    individuales).

    El diseño de enfoques de autenticación y autorización de aplicaciones distribuidas

    constituye un verdadero reto. El disponer de un diseño adecuado de la autenticacióny la autorización durante las primeras fases del desarrollo de la aplicación ayuda a

    mitigar muchos de los peores riesgos de seguridad.

    AUTENTICACIÓN.- Se refiere a la tarea de verificar la identidad de una persona o

    software que se conecte a una BD; es decir consiste en una contraseña secreta que

    se debe presentar cuando se abra una conexión a la BD. USO La autenticación

    basada en palabras clave es ampliamente usado por los sistemas operativos y

    bases de datos.

    AUTORIZACIÓN.- Proceso de permitir al acceso de una persona a un sistema. Los

    usuarios pueden tener varios tipos de autorización para diferentes partes de la base

    de datos: Autorización de lectura: permite la lectura de los datos, pero no su

    modificación. Autorización de inserción: permite la inserción de nuevos datos, pero

    no la modificación de los ya existentes.

     Autorización de actualización: permite la modificación de los datos, pero no su

    borrado.

     Autorización de borrado: permite el borrado de los datos.

  • 8/16/2019 Diseño de Seguridad de Software

    9/9

    Rol Y Privilegios Usuarios

    Un rol es un papel desempeñado por un individuo dentro de un conjunto de

    personas. En la base de datos, siempre existen un conjunto de personas que harán

    uso de ella, las acciones que pueden hacer son: visualización, modificación,

    agregación, eliminación de registros entre algunas otras, y la regla que permite esto

    es conocida como privilegio. Un ejemplo de un sistema punto de venta en donde

    existen usuarios tales como: encargado de caja, supervisor de caja y gerente

    general, todos estos son usuarios de un sistema de base de datos, la forma en que

    se comportaran dentro de la BD es muy diferente.

    o  Diseño de protección contra Denial of Service (D.O.S).

    Las autoridades no tienen recursos y conocimientos para detener este ataque, son los

    administradores, auditores y profesionales los que deben tomar las medidas

    preventivas y detectivas así como correctivas.

    Los administradores de sistemas e ISP’s (proveedores de acceso a Internet), deben

    protegerse contra ataques DoS así como tomar las medidas adecuadas para que su

    sistema no sea utilizado en un ataque Ddos como base, de no ser así pueden sufrir

    repercusiones legales ante las responsabilidad civil que conlleva.

    Las medidas de prevención deben instalarse en sistemas de los ISP y en los nuestros,

    estas medidas son:

    o  Filtrado de IP en ISP’s a paquetes provenientes de IP’s autorizadas

    o  Limitación de numero de paquetes/sg TCP SYN

    o

      Búsqueda reversa de IP para evitar el spoofing, utiliza DNS.o  Monitorización del tráfico de red, análisis del tráfico para detección de ataques.

    o  Arquitectura de seguridad basada en Políticas de seguridad relativas a firewalls,

    routers de filtrado, IDS’s(Sistema de detección de intrusos) y planes de

    contingencia y recuperación de desastres.

    IDS (Sistema de detección de Intrusos)

    Utiles para prevenir y detectar ataques DoS. Pueden detectar intrusiones y evitar

    así que se produzca el ataque.

    Pueden identificar troyanos para DoS.

    Técnicas de control utilizadas para:

    - Detectar cambios en ficheros del sistema Tripwire

    - Encontrar huellas.

    - Detectar sniffers.

    - Ver usuarios activos y procesos

    - Monitor de rendimiento para detectar ataques en tiempo real