Control de Accesos - I

Control de Accesos - I

El control de accesos es uno de los puntos principales cuando se implementan controles de seguridad.

Establece las reglas de cómo un sujeto puede interactuar con un objeto.

Básicamente un acceso es la transferencia de información o datos de un objeto hacia un sujeto.

Los sujetos son entidades activas, que a través de un acceso tratan obtener información o datos de una entidad pasiva llamada objeto.

Un objeto puede ser un archivo, base de datos, computadora. Un sujeto puede ser un usuario, programa, proceso.

Se deben considerar al menos los siguientes “pasos” para asegurar un adecuado control de accesos:

  • Identificación
  • Autenticación
  • Autorización
  • Auditoría
  • No repudio

enter image description here

Identificación

El proceso de identificación consiste en asignar una identidad a los usuarios que acceden a un sistema de información, de esta manera dichos usuarios pueden ser identificados de manera única, por lo que las acciones que realicen dichos usuarios en el sistema de información son asociadas a los mismos, comúnmente la asignación de esta identidad se da por una cuenta de usuario.

Autenticación

El proceso de autenticación consiste en que dichos usuarios demuestran su identidad. Un usuario puede demostrar su identidad de tres formas: algo que es usuario es (ejemplo: accesos biométricos), algo que el usuario tiene (ejemplo: tokens de acceso, tarjetas de identidad) o algo que el usuario conoce (ejemplo: password de acceso).

La forma más común de demostrar la identidad de un usuario es por medio de passwords de acceso (algo que el usuario conoce). Se pueden combinar varias formas para demostrar la identidad de un usuario, lo cual se conoce como doble factor de autenticación. Existen al menos 2 métodos más que generalmente se incluyen en los métodos mencionados anteriormente, algo que hace el usuario, y el lugar donde se encuentra el usuario.

Los requerimientos mínimos a considerar para el uso de password es: longitud mínima 8 caracteres, alfanumerico, uso de caracteres especiales, evitar uso de palabras comunes y que el password sea igual al nombre de usuario.

Adicionalmente se pueden considerar los siguientes controles para mitigar ataques exitosos, bloqueo por intentos fallidos, One-way encryption, uso de canales cifrados.

Los ataques mas comunes que se pueden realizar contra un proceso de autenticación basado en password son, análisis de tráfico, acceso no autorizado al archivo/tabla de passwords, ataques de fuerza bruta, ataques de diccionario, ataques de ingeniería social.

Autorización

Asegura que el usuario tiene los privilegios y derechos requeridos para acceder a algún objeto dentro del sistema. Dependiendo de las capacidades del sistema, esta validación se puede dar de varias formas, como por ejemplo, con matrices de control de accesos. El proceso de autorización, básicamente define las acciones que puede hacer un usuario en el sistema.

Auditoría y No Repudio

Las actividades realizadas por los usuarios en el sistema son registradas, monitoreadas y trazadas. Permiten reconstruir eventos y detectar acciones no autorizadas. Asigna responsabilidades a los usuarios por las acciones realizadas en el sistema. Se requiere de un proceso adecuado de identificación, autenticación y autorización para implementar adecuadamente procesos de auditoría, trazabilidad y no repudio.

Seguridad Aplicaciones y Servicios Web (Introducción)

Introducción

El creciente uso de aplicaciones y servicios Web para soportar negocios, redes sociales, servicios financieros, hacen que las vulnerabilidades en esta capa impacten de manera significativa a los usuarios, negocios y sociedad.

Adicionalmente el uso de nuevas tecnologías (IoT, microservicios, cloud, etc) y de metodologías ágiles, hace que la mitigación de riesgos sea más compleja.

Por lo anterior es importante considerar controles de seguridad en todo el ciclo del desarrollo del software para minimizar los riesgos. La validación e implementación de controles de seguridad desde las fases iniciales del ciclo de desarrollo del software hace más eficiente y menos costosa la corrección de errores y vulnerabilidades.

La capa de aplicación regularmente es la más expuesta, ya que por naturaleza está abierta a diferentes usuarios y aplicaciones que acceden para obtener recursos, es por ello que esta capa representa un vector de ataque importante.

75% de los ataques ocurren en la capa de aplicación.

Por otro lado regularmente los programadores están más enfocados al desarrollo de las funcionalidades del sistema y que este cumpla con los requerimientos establecidos, por lo que no se consideran mejores prácticas de seguridad en el ciclo de desarrollo, lo que al final provoca que la aplicación exponga vulnerabilidades o huecos de seguridad en producción que pueden ser explotados por atacantes, impactando los procesos que soporta la aplicación, y la información que se almacena, procesa o transmite. Adicionalmente las aplicaciones están en constante actualización para poder soportar los objetivos del negocio, y utilizando metodologías ágiles o DevOp, por lo que la validación de controles y seguridad también se debe ajustar a estas necesidades.

Por lo anterior es importante considerar al menos los siguientes factores, para mitigar los riesgos de seguridad en el desarrollo de aplicaciones y servicios Web:

  • Tecnología.
  • Personas.
  • Procesos.