Enumeración de Amenazas

Body

La enumeración de amenazas, en su forma más básica, es el proceso de entender las amenazas hacia los sistemas o redes. Una vez se presentada la arquitectura en una manera soporte el análisis de ciberseguridad, el siguiente paso es la enumeración y examen de todas las amenazas relevantes.

Listar Todos los Posibles Agentes de Amenaza

La pregunta general es; “¿Quiénes son los agentes de amenaza y quienes estarían más interesados en atacar la red?”. Como ya se conoce, cualquier sistema abierto hacia el tráfico de Internet podría ser atacado continuamente, siendo la mayoría de estos ataques no dirigidos o sin objetivos. Los cibercriminales en general tienen una tolerancia de bajo riesgo; así muchas veces estos barridos utilizan scripts no sofisticados y automáticos, intentando ciberataques bien conocidos contra sistemas potencialmente sin parchar. Aparte de estos agentes básicos de amenaza, existen aquellos interesados en robar información financiera o en varias formas de ciberfraudes, tales como un ciberataque para negación de servicio (DoS), como una manera de chantajear a las organizaciones.

Métodos de Ataque

El objetivo general de un cibercriminal es maximizar el beneficio con mínimo esfuerzo; en otras palabras; hacer tanto dinero como sea posible. Debido a este hecho un cibercriminal quien tiene como propósito atacar los sistemas o redes de una organización, intentará utilizar tanta tecnología previamente existente y probada como sea posible. Existe un gran mercado negro para herramientas de ataque, similar a las herramientas de ataque y pruebas de penetración, como Metasploit.

Objetivos a Nivel del Sistema

Los ciberatacantes tienen muchos objetivos a nivel del sistema. Si su meta es ejecutar comandos involuntario o acceder hacia datos sin la autorización apropiada, es probable intenten una inyección SQL o LDAP. Si requieren ejecutar scripts en una navegador, secuestrar la sesión de un usuario, alterar o desfigurar un sitio web, o redireccionar a los usuarios hacia otro sitio, utilizarán Cross-Site Scripting (XSS). Los cibercriminales utilizarán un Cross-Site Request Forgery (CSRF) para generar aquello pareciendo ser peticiones legítimas desde la máquina victima, o forzar al navegador de la victima a enviar una petición HTTP falsificada. Otros objetivos a nivel del sistema involucran redirección y reenvío, donde el ciberatacante reenviará usuarios hacia otros sitios web, redireccionar victimas hacia sitios de malware, o utilizar reenvíos para accede hacia páginas no autorizadas.

Fuentes:

https://emb3d.mitre.org/threats/
https://ebrary.net/84346/computer_science/threat_enumeration

Redes Bajo Ataque

Body

Muchas organizaciones cuando piensan sobre ciberseguridad, frecuentemente se enfocan en fortalecer los servidores. Parchar, actualizar, asegurar, y adecuadamente gestionar ciberseguridad, son todas áreas claves a enfocarse para la mayoría de equipos en ciberseguridad. Si se comprometiese la infraestructura de la red, los mecanismos de seguridad puede ser evadidos, la autenticación puede ser interceptada, y se pueden capturar datos críticos. Tan importante como una red es para una organización, resulta sorprendente cuantas veces esto es ignorado desde la perspectiva de ciberseguridad.

Es frecuente encontrar encaminadores y conmutadores sin parches, y ejecutando versiones antiguas de un Sistema Operativo. Aunque la infraestructura de una red es importante, frecuentemente el enfoque se centra únicamente en la disponibilidad. Si la red está activa y funcionando todo debe estar bien. La lógica fallida de esta perspectiva es la funcionalidad podría estar bien, pero si la ciberseguridad es débil y se han comprometido los dispositivos de la red, el juego finaliza rápidamente.

Los encaminadores conectan diferentes redes. No únicamente conectan una organización hacia Internet, sino también conectan hacia redes internas. Si un encaminador es comprometido, proporciona al ciberatacante visibilidad en todo el trágico fluyendo sobre la red. Debido a encaminadores externos son de manera frecuente directamente accedibles desde Internet con una dirección IP pública, se convierten en un objetivo principal de ataque. Si un encaminador externo es comprometido, el ciberatacante puede vigilar todo el tráfico saliendo y entrando hacia la red.

Los conmutadores conectan computadoras para formar redes o redes virtuales conocidas como VLANs. Debido las VLANs se tornan en una manera común de aislar o segmentar redes, si un conmutador es comprometido, un ciberatacante puede realizar lo denominado como “VLAN hopping”, potencialmente evadiendo los controles de seguridad implementados.

Fuentes:

https://en.wikipedia.org/wiki/VLAN_hopping

Conocer Donde Están los Datos Valiosos

Body

En cualquier organización, ya sea grande o pequeña, todos los datos no se crean igual. Algunos datos son rutinarios e incidentales, mientras otra información pueden ser muy sensibles, consecuentemente la perdida de estos podría causar un daño irreparable para una organización. Otra parte importante sobre la arquitectura de ciberseguridad es entender donde residen los datos, una vez pasan sobre la red hacia su destino. Este entendimiento nuevamente inicia con la arquitectura lógica. La mejor perspectiva a tomar es mirar en la propiedad intelectual. Identificar aquella propiedad intelectual crítica en la organización, además de como y donde es almacenada en la red. Cuales mecanismo de seguridad están implementados para asegurar la confidencialidad, integridad, y disponibilidad. ¿Dónde están físicamente ubicados los dispositivos de almacenamiento?. ¿Estos están seguros de un ciberataque físico y electrónico?. Adicionalmente se necesita conocer quien tiene acceso hacia esta información, e igualmente importante, quien “debería” tener acceso a esta.

En muchas organizaciones los datos críticos no están contabilizados, siendo almacenados en diversas ubicaciones a través de la red, con varios niveles de seguridad. Recordar un ciberatacante únicamente debe encontrar una ubicación para comprometer los datos críticos. Recordar se es únicamente tan fuerte como el enlace más débil. Inadvertidamente almacenar datos sobre sistemas vulnerables es un enlace débil en varios entornos. Por lo tanto un componente clave de una arquitectura efectiva es reducir el alcance del problema. Reducir el número de áreas en las cuales se almacenan los datos críticos, además de implementar mecanismos para defensa efectiva contra estos repositorios de datos.

Fuentes:

https://www.zdnet.com/paid-content/article/have-you-asked-yourself-five…

Entender el Flujo de Comunicación para la Arquitectura de un Sistema

Body

Así como se necesita entender cuales componentes existen en la red, además de como todos estos se comportan y relacionan, es igual de importantemente crítico tener un entendimiento completo e integral sobre como las comunicaciones fluyen sobre la red. Sin esta comprensión los datos sensibles podrían ser transmitidos y almacenados incorrectamente, o incluso peor, abandonar completamente la red. Utilizando el diagrama de arquitectura lógica se puede tener un claro entendimiento sobre como y donde los datos fluyen de entrada y salida en la red, además de determinar la postura adecuada en ciberseguridad. Este mapa para el flujo de comunicación ayuda a entender la exposición y visibilidad de componentes clave de la red hacia los ciberatacantes o internos maliciosos. Este entendimiento constituye las bases para crear un mapa sobre amenazas, para consecuentemente implementar controles y medidas correctivas en ciberseguridad.

Entender cual información puede fluir de salida y entrada entre los diferentes segmentos de la red, es importante no solo para entender el punto de compromiso, sino la cantidad de daño el cual puede ser causado por un ciberatacante. En muchos incidentes una de las razones por las cuales un ciberacatante tuvo la capacidad de causar mucho daño, es porque la organización no entendía como los datos fluían dentro de la red. Frecuentemente existen conexiones configuradas sobre las cuales las personas desconocían. Por tal razón siempre recordar; si la ofensiva conoce más comparado con la defensa, la defensa está destinada a perder. El flujo de comunicación ayuda a la defensa a tener un mejor entendimiento sobre la exposición, para así arreglarlo de manera proactiva.

Fuentes:

https://dl.acm.org/doi/10.5555/2829118

Diseño Físico para la Arquitectura de un Sistema

Body

Un diseño físico incluye todos los principales sistemas y factores dentro de áreas de servicio previamente definidos, como también servicios, objetos, o soluciones de software específicos. Este es el nivel de diseño representando como las redes y todos sus componentes ser comportarán mientras están “sobre el papel”. El diseño físico es el último creado antes de se implemente el diseño de la red. Este diseño usualmente precede la implementación final, o es incluida y mejorada por el diseño final de implementación.

El diseño físico muestra todos los detalles tales como el sistema operativo, parches, e incluso versiones. Es particularmente importante para adelantarse pues las actualizaciones de software realizan una diversidad de tareas. Las actualizaciones están regularmente disponibles para sistemas operativos, dispositivos de red, y programas de software individuales. Realizar estas actualizaciones entregará una multitud de revisiones hacia la computadora. Esto frecuentemente incluye adicionar alguna nueva funcionalidad la cual ha sido desarrollada, eliminar funcionalidades desactualizadas las cuales pueden contener vulnerabilidades, actualizar controladores los cuales podrían también tener exploits, entregar arreglos para fallas, y lo más importante, arreglar cualquier agujero en seguridad el cual haya sido descubierto.

Cualquier defecto físico puede ser identificado dentro de todos los sistemas y transmisiones. Limitaciones físicas también afectan el costo de despliegue y mantenimiento, como también crear (o eliminar) algunos retos de ciberseguridad, dependiendo sobre como se despliega la red física.

Fuentes:

https://dl.acm.org/doi/10.5555/2829118

Diseño Lógico para la Arquitectura de un Sistema

Body

Un diseño lógico de red, desde el punto de vista de un arquitecto y usuario, representa como los datos pasan entre dispositivos sobre una red. Es de lejos más detallado comparado con el diseño conceptual, e inicia dividiendo como actualmente opera la red en el mundo real. El diseño lógico difiere de un diseño físico, en lo referente a no refleja las conexiones entre los cables físicos, las computadoras, y otros sistemas de red. Un ejemplo de este punto podría ser; el diseño físico podría especificar la forma de la topología de red, mientras un diseño lógico no.

Típicamente un diseño de red lógico es mostrado como un diagrama de red detallado, el cual utiliza iconos y otras representaciones para mostrar, estaciones de trabajo, servidores, impresoras, escáneres, encaminadores, conmuntadores, concentradores, cortafuegos, y otros dispositivos de red. Este diseño puede mostrar como los cables se conectan para constituir la red, y usualmente especificarán el tipo de estaciones de trabajo según el sistema operativo.

Incluir servicios de la empresa, nombres de aplicación, y otra información funcional; como relevantes también es clave en el diseño lógico. Al final las redes son diseñadas y construidas para servir a una función mayor, lo cual es permitir la empresa u organización funcione de manera más efectiva y eficiente. Observar aquello ejecutándose sobre la red y porque, proporcionará una visión única sobre como mejorar la ciberseguridad, lo cual puede ser diferente de la misma arquitectura de red ejecutando servicios y aplicaciones de la empresa completamente diferentes.

Fuentes:

https://dl.acm.org/doi/10.5555/2829118

Diseño Conceptual para la Arquitectura de un Sistema

Body

El propósito clave de un diseño a alto nivel con una arquitectura de seguridad, es proporcionar una visión general del sistema completo, con el propósito de identificar los componentes principales a desplegarse. Esta tipo de visión general es críticamente importante, especialmente con algo tan completo como una red moderna. La puesta en funcionamiento de los componentes fundamentales de una red, requiere soporte y contribuciones desde muchas distintas disciplinas profesionales, cada una con un conjunto crítico de habilidades. Es aquí donde un diseño conceptual fuerte será compatible con cualquier subdiseño y con la gran imagen.

El diseño conceptual debe brevemente describir todas las plataformas, sistemas, productos, servicios, y procesos, los cuales dependen e incluyen cualquier cambio importante el cual podría ser necesario realizar sobre ellos. Un diseño conceptual puede incluso incorporar consideraciones para todo lo significativo; comercial, legal, entorno, seguridad, salvaguarda y riesgo técnico, inconvenientes, y suposiciones. El diseño conceptual también ayudará en identificar cada tipo de usuario final, lo cual permitirá a los arquitectos tengan la debida consideración a la experiencia buscada por el cliente.

Utilizar diagramación de caja negra es un método el cual muestra un dispositivo, sistema, u objeto, únicamente en términos de sus entradas y salidas, sin requerir algún conocimiento sobre su funcionamiento interno. Esto simplifica las características de la red durante la fase de diseño.

Fuentes:

https://dl.acm.org/doi/10.5555/2829118

Entender la Arquitectura de un Sistema

Body

Diseño Conceptual

Es un diseño de alto nivel, el cual incluye los componentes fundamentales para una arquitectura de red. Esta vista abstraída proporciona al profesional en ciberseguridad, una imagen comprensible sobre el propósito global de la red, y porque la solución fue diseñada de esta manera. El diseño conceptual incluirá los principales sistemas tecnológicos, cualquier sistema externo requerido para integración o funcionalidad general, flujo de datos, y comportamiento del sistema a alto nivel. Este método de diseño utiliza una perspectiva de diagramación “caja negra” para simplificar sistemas complejos en componente únicos con un rol o propósito general.

Diseño Lógico

Representa cada función lógica en el sistema. Es mucho más detallado y debe incluir todos los componentes principales en la red, además de sus relaciones. Los flujos de datos detallados y conexiones son también mapeados en el diseño lógico. Este diseño es creado principalmente para los desarrolladores y arquitectos en ciberseguridad. Los diseños lógicos incluyen servicios, nombres de aplicación, e información relevante de desarrollo, pero típicamente no incluye nombres de servidor o direcciones.

Diseño Físico

Incluye todos los principales sistemas y factores dentro de áreas previamente definidas de servidor. Este diseño físico es usualmente el último diseño creado antes de la implementación final, y puede ser utilizado como un recurso por el equipo de implementación final. Este nivel de diseño incluye el conocimiento sobre todos los detalles del sistema operativo, parches, y versiones. Cualquier restricción o limitación también son identificados dentro de componentes servidor, flujos de datos, o conexiones.

Entender el Flujo de Comunicación

Inicia con la arquitectura lógica. Cada flujo de comunicación, ya sea para intercambio de datos o mensajes para control, debe ser diagramado sin importar su propósito.

Conocer el valor de los Datos

También inicia con la arquitectura lógica. Y así como se necesita para conocer cada flujo de comunicación, también se necesita conocer donde reside cada archivo y datos valiosos.

Fuentes:

https://dl.acm.org/doi/10.5555/2829118

Formatos para Mostrar el Tiempo en Wireshark

Body

Mientras se realiza captura paquete utilizando Wireshark, a cada paquete se le define una marca de tiempo. Estas marcas de tiempo se guardarán en el archivo de captura, por lo cual estarán disponibles para su posterior análisis.

El formato para la presentación de la marca de tiempo y su precisión en la lista de paquetes se pueden elegir usando la opción “View → Time Display Format”.

Las marcas de tiempo, sus precisiones, y todo lo relacionado podría resultar algo confuso al inicio.

Cuando se capturan paquetes, a cada paquete se le marca un tiempo conforme es registrado por Wireshark. Estas marcas de tiempo también se guardan en un archivo de captura, consecuentemente estarán disponibles para ser utilizados en un análisis posterior.

¿De dónde vienen estas marcas de tiempo? Durante la captura Wireshark obtiene las marcas de tiempo desde la biblioteca libpcap (Npcap), la cual a su vez las obtiene del kernel del sistema operativo. Si los datos de captura se cargan desde un archivo de captura, Wireshark obviamente obtiene los datos desde ese archivo.

Fuentes:

https://www.wireshark.org/docs/wsug_html_chunked/ChWorkTimeFormatsSecti…
https://www.wireshark.org/docs/wsug_html_chunked/ChAdvTimestamps.html

Resolución de Nombres en Wireshark

Body

Una característica importante se relaciona con OPSEC (Seguridad Operacional). Por defecto Wireshark no realiza consultas DNS para cada dirección IP visualizada. Las razones para esto son probablemente minimizar el tráfico de red y carga sobre el sistema, pero desde la perspectiva forense se incluye la postura de seguridad sobre la actividad de análisis por si misma. Por esta razón es importante verificar este ajuste antes de iniciar la consulta de lo cual podría ser tráfico hostil. Es cada vez más común para un ciberatacante ejecutar sus propios servidores DNS y vigilar las consultas hechas contra estas. Al hacer esto un ciberatacante disciplinado y bien financiado podría incorporar una función en el malware el cual causaría consultas de DNS de un patrón determinado cuando se observe tráfico en Wireshark. Si sus servidores DNS ven este patrón de consulta, el ciberatacante podría conocer dos aspectos críticos sobre la actividad de análisis. Primero, se conocería alguien está consultando el tráfico. Segundo, se sabría la dirección IP desde donde provienen las consultas DNS, lo cual significa se tendría una idea bastante clara de dónde se encuentra.

Aunque esto puede parecer descabellado o incluso un poco paranoico, se conoce los ciberatacantes mejoran sus capacidades con bastante rapidez. Debido a la mejor práctica es minimizar el tráfico de red innecesario y al mismo tiempo maximizar razonablemente la posición OPSEC, esta opción casi nunca debe habilitarse.

Las versiones recientes de Wireshark han añadido una funcionalidad muy útil para solucionar este riesgo (Desempeño o OPSEC), incorporando una característica pasiva de DNS en la herramienta. Si la captura de paquetes en Wireshark incluye tráfico DNS para las direcciones IP, utilizará esta información para poblar la interfaz de usuario. Esto proporciona al profesional con los datos DNS mientras evita el riesgo OPSEC, pero también permite resolución DNS en un momento dado, permitiendo ver cuales fueron los resultados del DNS cuando la evidencia fue recolectada, no lo cual podría (o no) ser en el momento del análisis.

Es usualmente una preferencia personal si un profesional habilita la resolución de nombres MAC y transporte, y tampoco causa Wireshark genere su propio tráfico de red o cualquier preocupación OPSEC. Ambos consultan sus datos desde archivos sobre el sistema local. La resolución de nombres MAC significa Wireshark consultará los primeros tres bytes de una dirección MAC contra una tabla de proveedores. Estos datos son obtenidos desde el archivo “/usr/share/wireshark/manuf”.

De manera similar la resolución de nombres de transporte utilizará el archivo “/usr/share/wireshark/services”. Para consultar nombres de servicios de red comprensibles para los seres humanos, en lugar de los números de puertos. Esta es una característica conveniente en la Interfaz Gráfica de Usuario, y se busca independientemente de si el protocolo en uso realmente coincide con el puerto.

Fuentes:

https://www.wireshark.org/docs/wsug_html_chunked/ChAdvNameResolutionSec…