{"id":34118,"date":"2025-09-26T13:57:55","date_gmt":"2025-09-26T11:57:55","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=34118"},"modified":"2025-09-26T13:57:57","modified_gmt":"2025-09-26T11:57:57","slug":"diferenciar-entre-ioc-ioa-e-indicadores-de-fraude","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/","title":{"rendered":"Diferenciar entre IoC, IoA e indicadores de fraude"},"content":{"rendered":"\n<p>Han pasado dos a\u00f1os desde que me sumerg\u00ed de lleno en el mundo de la caza de ciber amenazas (Threat Hunting), \u00a1y menuda experiencia!  Ese aprendizaje y mejora constantes son lo que me mantiene entusiasmado con la seguridad. Sinceramente, es por eso que no creo que nadie pueda considerarse realmente un \u00abexperto\u00bb en la nube: \u00a1las cosas cambian demasiado r\u00e1pido! \ud83d\ude04Una cosa que me llam\u00f3 la atenci\u00f3n desde el principio (y he visto a otros luchar con ello tambi\u00e9n) es c\u00f3mo etiquetamos los indicadores usados para buscar posibles amenazas dentro de nuestros tenants o sistemas. No todo es un IoC, \u00a1y es hora de que dejemos de tratarlos como si lo fueran!<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/media.licdn.com\/dms\/image\/v2\/D4E12AQHSRZuGIxOHLQ\/article-inline_image-shrink_1500_2232\/B4EZdaRrNnH0AU-\/0\/1749566277060?e=1761782400&amp;v=beta&amp;t=KProM2iOci3uEvXrybgNWt63zX15nD7Nf3G_UanMhiI\" alt=\"\" style=\"object-fit:cover;width:250px;height:400px\" \/><\/figure><\/div>\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-7c720f8e\"><h5 class=\"uagb-heading-text\"><strong>L<\/strong>os t\u00e9rminos IoA, IoC e indicadores de fraude pueden resultar confusos, y no siempre est\u00e1 claro en qu\u00e9 se diferencian o cu\u00e1ndo utilizarlos. Por lo tanto, analicemos cada uno de ellos y veamos qu\u00e9 significa, c\u00f3mo funciona y cu\u00e1les son los m\u00e1s importantes para mantener la seguridad de una organizaci\u00f3n<\/h5><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-eb8f455f\"><h2 class=\"uagb-heading-text\"><br>IoA &#8211; Indicators of Attack<\/h2><\/div>\n\n\n\n<p>Los indicadores de ataque (IoA) son se\u00f1ales de alerta temprana, como picos de tr\u00e1fico de red inesperados, inicios de sesi\u00f3n sospechosos o comportamientos inusuales de los usuarios, los cuales  pueden revelar amenazas activas antes de que se intensifiquen. A diferencia de los indicadores de compromiso (IoC), que se centran en las pruebas forenses posteriores a la infracci\u00f3n, los IoA revelan el \u00abporqu\u00e9\u00bb de los ataques al detectar intenciones maliciosas en tiempo real, como la escalada de privilegios o transferencias de datos inusuales. Este enfoque proactivo cambia la seguridad de reaccionar ante el da\u00f1o a interrumpir las amenazas en medio de la acci\u00f3n. Mediante el an\u00e1lisis continuo de los registros del sistema, las t\u00e1cticas de los atacantes (TTP) y las anomal\u00edas de comportamiento, los equipos pueden neutralizar los riesgos antes de que causen da\u00f1os. Por ejemplo, algunas detecciones de IoA basadas en consultas KQL pueden ser:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1087\">1. PowerShell.exe renombrados<\/h4>\n\n\n\n<p id=\"ember1088\">PowerShell es una herramienta fiable de Microsoft que los atacantes pueden utilizar indebidamente renombrando su archivo ejecutable para ocultar sus acciones y propagar amenazas. La siguiente consulta detecta comandos comunes de la CLI para identificar las ejecuciones mencionadas por un Powershell renombrado.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-19bc1875725ca164235b6d60dc059ac5\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DeviceProcessEvents\n| where   ProcessCommandLine !contains <span class=\"hljs-string\">\"powershell\"<\/span>  \n| where  ProcessCommandLine !contains <span class=\"hljs-string\">\"pwsh\"<\/span>\n| where  ProcessCommandLine contains <span class=\"hljs-string\">\"-NoProfile\"<\/span> or ProcessCommandLine contains <span class=\"hljs-string\">\"-ExecutionPolicy\"<\/span> or  ProcessCommandLine contains <span class=\"hljs-string\">\"Invoke-Expression\"<\/span> \n| project DeviceName, FileName,ActionType, ProcessVersionInfoOriginalFileName, ProcessCommandLine, ProcessRemoteSessionIP<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1089\">2. Trafico SMTP inusual<\/h4>\n\n\n\n<p id=\"ember1090\">Un atacante podr\u00eda intentar propagar malware, robar informaci\u00f3n confidencial mediante un ataque de tipo \u00abman-in-the-middle\u00bb (MitM), lanzar un ataque DDoS o hacer un uso indebido del servidor de una empresa para enviar spam y llevar a cabo estafas de phishing. La siguiente consulta ejecuta un an\u00e1lisis general sobre el alto volumen de tr\u00e1fico SMTP e incluye la opci\u00f3n de incluir una la lista blanca los dominios de confianza.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-9b99c75ee1698cea76b7e684c7f3bd1c\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">let<\/span> timeRange = <span class=\"hljs-number\">3<\/span>d;  <span class=\"hljs-comment\">\/\/ Adjust time window<\/span>\n<span class=\"hljs-keyword\">let<\/span> volumeThreshold = <span class=\"hljs-number\">500<\/span>;  <span class=\"hljs-comment\">\/\/ Alert threshold for email count<\/span>\n<span class=\"hljs-keyword\">let<\/span> recipientThreshold = <span class=\"hljs-number\">200<\/span>;  <span class=\"hljs-comment\">\/\/ Alert threshold for unique recipients<\/span>\nEmailEvents\n<span class=\"hljs-comment\">\/\/| where Timestamp &gt;= ago(timeRange)<\/span>\n| where EmailDirection == <span class=\"hljs-string\">\"Outbound\"<\/span> and SenderFromDomain !<span class=\"hljs-keyword\">in<\/span> (<span class=\"hljs-string\">\"domain1\"<\/span>,<span class=\"hljs-string\">\"domain2\"<\/span>)\n| summarize \n    TotalEmails = count(),\n    UniqueRecipients = dcount(RecipientEmailAddress),\n    UniqueDomains = dcount(tostring(split(RecipientEmailAddress, <span class=\"hljs-string\">\"@\"<\/span>)&#91;<span class=\"hljs-number\">1<\/span>])),\n    TimeSpan = max(Timestamp) - min(Timestamp),\n    FirstActivity = min(Timestamp),\n    LastActivity = max(Timestamp),\n    SampleSubjects = makeset(Subject, <span class=\"hljs-number\">5<\/span>),\n    SampleRecipients = makeset(RecipientEmailAddress, <span class=\"hljs-number\">5<\/span>)\n    by SenderFromAddress, SenderMailFromAddress, SenderIPv4\n    | where TotalEmails &gt; volumeThreshold\n    or UniqueRecipients &gt; recipientThreshold\n| project\n    Timestamp = LastActivity,\n    SenderEmail = SenderFromAddress,\n    SenderIPv4,\n    TotalEmails,\n    UniqueRecipients,\n    UniqueDomains,\n    TimeSpan,\n    SampleSubjects,\n    SampleRecipients,\n    AlertReason = <span class=\"hljs-keyword\">case<\/span>(\n        TotalEmails &gt; volumeThreshold and UniqueRecipients &gt; recipientThreshold, <span class=\"hljs-string\">\"High volume to many recipients\"<\/span>,\n        TotalEmails &gt; volumeThreshold, <span class=\"hljs-string\">\"High email volume\"<\/span>,\n        UniqueRecipients &gt; recipientThreshold, <span class=\"hljs-string\">\"High recipient count\"<\/span>,\n        <span class=\"hljs-string\">\"Threshold exceeded\"<\/span>\n    )\n| sort by TotalEmails desc<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1091\">3. Ejecuci\u00f3n de procesos inusual<\/h4>\n\n\n\n<p id=\"ember1092\">Esta t\u00e9cnica se conoce como LOLBAS<em> (Living Off the Land Binaries and Scripts)<\/em>. Estas herramientas est\u00e1n integradas en el sistema operativo y cuentan con la confianza de los controles de seguridad, lo que las hace ideales para eludir las defensas.  Comportamientos clave:<br> <br>&#8211;   Ejecuci\u00f3n de cargas \u00fatiles codificadas en base64  (com\u00fan en PowerShell)<br> &#8211;  Comandos ofuscados o sospechosos en l\u00edneas de proceso<em> (por ejemplo, mshta, rundll32, regsvr32) <\/em><br>&#8211; Uso de herramientas de confianza para descargar o ejecutar scripts remotos. <br><br>Esta consulta detecta actividades sospechosas en la l\u00ednea de comandos mediante la decodificaci\u00f3n de argumentos codificados en base64, que se utilizan a menudo en los ataques. Identifica el uso de mshta.exe, una t\u00e9cnica com\u00fan en las infecciones de Lumma Stealer y otros programas maliciosos sin archivos, revelando intentos de ejecuci\u00f3n ocultos incluso cuando los comandos est\u00e1n ofuscados.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-1f60a6e23ab60ab575bd165f95535d03\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DeviceFileEvents\n| extend CommandWords = split(InitiatingProcessCommandLine, <span class=\"hljs-string\">\" \"<\/span>) <span class=\"hljs-comment\">\/\/ Split the command into words<\/span>\n| extend Word1 = CommandWords&#91;<span class=\"hljs-number\">0<\/span>],                     <span class=\"hljs-comment\">\/\/ First word<\/span>\n         Word2 = CommandWords&#91;<span class=\"hljs-number\">1<\/span>],                     <span class=\"hljs-comment\">\/\/ Second word<\/span>\n         Word3 = CommandWords&#91;<span class=\"hljs-number\">2<\/span>],                     <span class=\"hljs-comment\">\/\/ Third word<\/span>\n         Word4 = CommandWords&#91;<span class=\"hljs-number\">3<\/span>],                     <span class=\"hljs-comment\">\/\/ Fourth word<\/span>\n         Word5 = CommandWords&#91;<span class=\"hljs-number\">4<\/span>]  \n| extend LongestWord = <span class=\"hljs-keyword\">case<\/span>(\n    strlen(Word1) &gt;= strlen(Word2) and strlen(Word1) &gt;= strlen(Word3) and strlen(Word1) &gt;= strlen(Word4) and strlen(Word1) &gt;= strlen(Word5), Word1,\n    strlen(Word2) &gt;= strlen(Word1) and strlen(Word2) &gt;= strlen(Word3) and strlen(Word2) &gt;= strlen(Word4) and strlen(Word2) &gt;= strlen(Word5), Word2,\n    strlen(Word3) &gt;= strlen(Word1) and strlen(Word3) &gt;= strlen(Word2) and strlen(Word3) &gt;= strlen(Word4) and strlen(Word3) &gt;= strlen(Word5), Word3,\n    strlen(Word4) &gt;= strlen(Word1) and strlen(Word4) &gt;= strlen(Word2) and strlen(Word4) &gt;= strlen(Word3) and strlen(Word4) &gt;= strlen(Word5), Word4,\n    Word5 <span class=\"hljs-comment\">\/\/ Default case if Column5 is the longest<\/span>\n)\n| extend tostring(LongestWord)\n| extend DecodedBytes = base64_decode_tostring(LongestWord)\n| extend DecodedString = tostring(DecodedBytes)\n| where DecodedString contains <span class=\"hljs-string\">\"mshta\"<\/span> or InitiatingProcessCommandLine contains  <span class=\"hljs-string\">\"mshta\"<\/span>\n| distinct  DeviceName,InitiatingProcessCommandLine,LongestWord,DecodedString\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1440\">4.Comunicaci\u00f3n Command and Control (C2)<\/h4>\n\n\n\n<p id=\"ember1441\">Malware que se comunica con servidores externos controlados por atacantes. Puede utilizar puertos poco comunes, tr\u00e1fico cifrado o b\u00fasquedas DNS fallidas frecuentes.<\/p>\n\n\n\n<p id=\"ember1442\">Esta consulta identifica los dispositivos de la tabla DeviceEvents que est\u00e1n iniciando conexiones RDP y proporciona la ubicaci\u00f3n de las direcciones IP remotas. La tabla DeviceEvents tiene una columna llamada \u00abLocalIP\u00bb que puede resultar confusa, pero tambi\u00e9n incluye RemoteIPs, lo que significa intentos de conexiones remotas desde el propio dispositivo. He excluido las entradas sin informaci\u00f3n sobre la ubicaci\u00f3n de la IP (lo que significa que son potencialmente IP locales). Como opci\u00f3n, puede a\u00f1adir una l\u00ednea para excluir ubicaciones \u00abincluidas en la lista blanca\u00bb, como:<em> &#8216; | where location !contain \u00abSpain\u00bb &#8216;<\/em><\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-c5b94d991151a0fb0754447f54415ebb\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DeviceEvents\n| where ActionType contains <span class=\"hljs-string\">\"RemoteDesktopConnection\"<\/span>\n| extend location = geo_info_from_ip_address(LocalIP)\n| where location contains <span class=\"hljs-string\">\"Country\"<\/span>\n| project Timestamp, DeviceName, ActionType, LocalIP, LocalPort, location,ReportId, DeviceId<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"ember1443\">IoC &#8211; Indicadores de compromiso<\/h2>\n\n\n\n<p id=\"ember1444\"><strong>Un indicador de compromiso (IOC)<\/strong> es un artefacto de datos u observaci\u00f3n que sugiere que se ha producido una violaci\u00f3n de la seguridad de un sistema o red, o que se ha producido una actividad maliciosa.<\/p>\n\n\n\n<p id=\"ember1445\">Los IOC pueden incluir hash de archivos, direcciones IP, nombres de dominio, cambios en el registro, anomal\u00edas en los procesos o firmas de comportamiento que se correlacionan con amenazas conocidas. Se suelen utilizar en an\u00e1lisis forenses, b\u00fasqueda de amenazas y flujos de trabajo de detecci\u00f3n automatizada para identificar, rastrear y responder a incidentes de seguridad tras un compromiso ya sea en el propio entorno o comunicado por un segundo.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1446\">1. File Hashes<\/h4>\n\n\n\n<p id=\"ember1447\">Los FileHashes son huellas digitales \u00fanicas de los archivos (por ejemplo, MD5, SHA256) que pueden utilizarse para identificar ficheros relacionados con malware o acciones sospechosas.<\/p>\n\n\n\n<p id=\"ember1448\">Estos hashes sirven como indicadores de compromiso (IOC) que pueden cruzarse con fuentes de inteligencia sobre amenazas para identificar amenazas basadas en archivos en distintos entornos. La siguiente consulta KQL une eventos de archivos locales con indicadores MD5 externos del conocido repositorio TI MalwareBazaar con el objetivo de detectar ficheros maliciosos conocidos.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-f8c364b9d0bccca1fa33a7e0ea182b15\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">let<\/span> MalwareBazaar = externaldata(MD5: string) &#91;<span class=\"hljs-string\">\"https:\/\/bazaar.abuse.ch\/export\/txt\/md5\/recent\"<\/span>] <span class=\"hljs-keyword\">with<\/span> (format=<span class=\"hljs-string\">\"txt\"<\/span>, ignoreFirstRecord=True);\n<span class=\"hljs-keyword\">let<\/span> MaliciousMD5 = MalwareBazaar | where MD5 !startswith <span class=\"hljs-string\">\"#\"<\/span>;\nDeviceFileEvents\n| join kind=inner ( MaliciousMD5) on $left.MD5 == $right.MD5<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1450\">2. Direcciones IP maliciosas<\/h4>\n\n\n\n<p id=\"ember1451\">Las direcciones IP maliciosas son indicadores de compromiso (IOC) que pueden estar vinculados al phishing, la distribuci\u00f3n de malware o la infraestructura de comando y control. La comunicaci\u00f3n con estas direcciones IP puede indicar que un usuario o un sistema puede haber sido comprometido.<\/p>\n\n\n\n<p id=\"ember1452\">Esta consulta KQL importa la fuente de amenazas <strong>IPsum<\/strong> y la analiza para extraer direcciones IP con una puntuaci\u00f3n de lista negra. A continuaci\u00f3n, combina los registros relacionados con la identidad de AADSignInEventsBeta, CloudAppEvents e IdentityLogonEvents, y los une con la lista de IP analizadas. Cualquier coincidencia revela actividad relacionada con IP de alto riesgo, lo que ayuda a identificar cuentas que interact\u00faan con infraestructura maliciosa conocida.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-9a70225c9c5e6950e350702149641eed\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">let<\/span> ipsumrawData = externaldata(ip_string: string)&#91;h@<span class=\"hljs-string\">\"https:\/\/raw.githubusercontent.com\/stamparm\/ipsum\/master\/ipsum.txt\"<\/span>] <span class=\"hljs-keyword\">with<\/span> (format=<span class=\"hljs-string\">\"txt\"<\/span>);\n<span class=\"hljs-keyword\">let<\/span> parsedData = ipsumrawData\n| where ip_string matches regex @<span class=\"hljs-string\">\"^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\s+\\d+$\"<\/span>\n| extend IP = extract(@<span class=\"hljs-string\">\"^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\"<\/span>, <span class=\"hljs-number\">1<\/span>, ip_string), IPPubliclyBlacklist = toint(extract(@<span class=\"hljs-string\">\"\\s+(\\d+)$\"<\/span>, <span class=\"hljs-number\">1<\/span>, ip_string));\n<span class=\"hljs-keyword\">let<\/span> badIPList = parsedData\n| project IP, IPPubliclyBlacklist\n| order by IPPubliclyBlacklist desc;\n<span class=\"hljs-keyword\">let<\/span> aadSignInEventsBeta = AADSignInEventsBeta\n| project Timestamp, AccountUpn, DeviceName, LogonType, IPAddress, Application, ApplicationId, ClientAppUsed, DeviceTrustType, LastPasswordChangeTimestamp, ResourceDisplayName, ResourceId, ResourceTenantId;\n<span class=\"hljs-keyword\">let<\/span> cloudAppEvents = CloudAppEvents\n| project Timestamp, AccountDisplayName, AccountObjectId, IPAddress, Application, ApplicationId, ActionType, ActivityType, IsAdminOperation, IsImpersonated, DeviceType, AuditSource, RawEventData, AdditionalFields, ReportId; \n<span class=\"hljs-keyword\">let<\/span> identityLoginEvents = IdentityLogonEvents\n| project Timestamp, AccountUpn, AccountObjectId, AccountSid, DeviceName, DeviceType, FailureReason, IPAddress, Protocol, DestinationIPAddress, DestinationPort, LogonType, AdditionalFields, ReportId;\n<span class=\"hljs-keyword\">let<\/span> combinedEvents = aadSignInEventsBeta\n| union cloudAppEvents\n| union identityLoginEvents\n| project Timestamp, AccountUpn, AccountObjectId, AccountSid, DeviceName, DeviceType, LogonType, IPAddress, Application, ActionType, ActivityType, IsAdminOperation, IsImpersonated, DeviceTrustType, LastPasswordChangeTimestamp, ResourceDisplayName, ResourceId, ResourceTenantId, FailureReason, Protocol, DestinationIPAddress, DestinationPort, AdditionalFields, ReportId;\ncombinedEvents\n| join kind=inner (badIPList) on $left.IPAddress == $right.IP\n| project Timestamp, AccountUpn, AccountObjectId, IPAddress, IPPubliclyBlacklist, LogonType, LastPasswordChangeTimestamp, Application, DeviceName, DeviceType, DeviceTrustType, ResourceDisplayName, ResourceTenantId, AdditionalFields, ResourceId, ReportId\n| order by Timestamp desc;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1454\">3. Dominios y URLS <\/h4>\n\n\n\n<p id=\"ember1455\">Los dominios y las URL se encuentran entre los IOC m\u00e1s comunes utilizados para detectar e investigar lugares maliciosos en internet. Representan nombres de host (como malicious-site.com) o direcciones web completas (como http:\/\/malicious-site.com\/payload.exe) que pueden est\u00e1n involucrados en:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Campa\u00f1as de phishing<\/li>\n\n\n\n<li> Distribuci\u00f3n de malware <\/li>\n\n\n\n<li>Comunicaciones de comando y control (C2)<\/li>\n\n\n\n<li> Intermediarios de acceso inicial<\/li>\n<\/ul>\n\n\n\n<p id=\"ember1457\">Esta KQL extrae las URL maliciosas activas del repositorio TI URLHaus y extrae sus nombres de dominio. A continuaci\u00f3n, inspecciona DeviceNetworkEvents para averiguar si alguna de las respuestas DNS observadas coincide con las URL maliciosas conocidas. Si hay alguna coincidencia, enriquece el resultado con informaci\u00f3n de geolocalizaci\u00f3n y contexto de TI.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-4475c67e711a5a4eb92075c20d99e510\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">let<\/span> URLHausOnlineRAW = externaldata (UHFeed:string) &#91;<span class=\"hljs-string\">\"https:\/\/urlhaus.abuse.ch\/downloads\/csv_online\/\"<\/span>] <span class=\"hljs-keyword\">with<\/span>(format=<span class=\"hljs-string\">\"txt\"<\/span>)\n| where UHFeed !startswith <span class=\"hljs-string\">\"#\"<\/span>\n| extend UHRAW=replace_string(UHFeed, <span class=\"hljs-string\">'\"'<\/span>, <span class=\"hljs-string\">''<\/span>)\n| project splitted=split(UHRAW, <span class=\"hljs-string\">','<\/span>)\n| mv-expand id=splitted&#91;<span class=\"hljs-number\">0<\/span>], dateadded=splitted&#91;<span class=\"hljs-number\">1<\/span>], UHUrl=splitted&#91;<span class=\"hljs-number\">2<\/span>], UHurl_status=splitted&#91;<span class=\"hljs-number\">3<\/span>], UHlast_onlin=splitted&#91;<span class=\"hljs-number\">4<\/span>], UHthreat=splitted&#91;<span class=\"hljs-number\">5<\/span>], UHtags=splitted&#91;<span class=\"hljs-number\">6<\/span>], UHLink=splitted&#91;<span class=\"hljs-number\">7<\/span>], UHReporter=splitted&#91;<span class=\"hljs-number\">8<\/span>]\n| extend UHUrl = tostring(UHUrl)\n| extend UHUrlDomain = tostring(parse_url(UHUrl).Host)\n| project-away splitted;\nDeviceNetworkEvents\n| extend answers = todynamic(tostring(parse_json(AdditionalFields).answers))\n| extend answersext = todynamic(tostring(parse_json(AdditionalFields).answers))\n| mv-expand answers\n<span class=\"hljs-comment\">\/\/| extend geo_Remote_answers = todynamic(tostring(geo_info_from_ip_address(answers).country))<\/span>\n| extend Type =\n    <span class=\"hljs-keyword\">case<\/span>(\n        answers matches regex @<span class=\"hljs-string\">\"^(\\d{1,3}\\.){3}\\d{1,3}$\"<\/span>, <span class=\"hljs-string\">\"IPv4\"<\/span>,   <span class=\"hljs-comment\">\/\/ Matches IPv4 format<\/span>\n        answers matches regex @<span class=\"hljs-string\">\"^(&#91;a-fA-F0-9:]+)$\"<\/span>, <span class=\"hljs-string\">\"IPv6\"<\/span>,         <span class=\"hljs-comment\">\/\/ Matches IPv6 format<\/span>\n        answers contains <span class=\"hljs-string\">\".\"<\/span>, <span class=\"hljs-string\">\"URL\"<\/span>,                                <span class=\"hljs-comment\">\/\/ Checks if it contains a dot (common in URLs)<\/span>\n        <span class=\"hljs-string\">\"Unknown\"<\/span>                                                      <span class=\"hljs-comment\">\/\/ Default case<\/span>\n    )\n| where Type has <span class=\"hljs-string\">\"URL\"<\/span>\n| extend tostring(answers)\n| join kind=inner (URLHausOnlineRAW) on $left.answers == $right.UHUrl\n| extend geo_Remote_ip = tostring(geo_info_from_ip_address(RemoteIP).country)\n| project Timestamp,DeviceName,LocalIP,RemoteIP,geo_Remote_ip,MaliciousAnswers = UHUrl,answersext,UHUrlDomain, ActionType<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1459\">4. Registry Keys<\/h4>\n\n\n\n<p id=\"ember1460\">Las claves del Registro de Windows son configuraciones cr\u00edticas del sistema almacenadas en una base de datos jer\u00e1rquica utilizada por el sistema operativo Windows y las aplicaciones. Los actores maliciosos suelen atacar o manipular claves espec\u00edficas del Registro para:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lograr persistencia<\/strong> (por ejemplo, ejecutar malware al iniciar el sistema).<\/li>\n\n\n\n<li><strong>Desactivar las funciones de seguridad<\/strong> (por ejemplo, la protecci\u00f3n en tiempo real o MAPS).<\/li>\n\n\n\n<li><strong>Modificar el comportamiento del sistema<\/strong> para el sigilo o la escalada de privilegios.<\/li>\n<\/ul>\n\n\n\n<p id=\"ember1462\">Esta consulta inspecciona DeviceRegistryEvents en busca de rutas de registro espec\u00edficas vinculadas a la configuraci\u00f3n de pol\u00edticas de Windows Defender. Se\u00f1ala los casos en los que se han desactivado determinadas funciones de seguridad (por ejemplo, MAPS, Protecci\u00f3n en tiempo real) (RegistryValueData == 1), lo que puede indicar una manipulaci\u00f3n por parte de un atacante o malware que intenta reducir las defensas del sistema.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-3a70cccf63faf66d4ca6e192cca619b3\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DeviceRegistryEvents\n<span class=\"hljs-comment\">\/\/If you enable these policy settings (RegistryValueData == 1), Windows Defender will not take actions or report possible threats.<\/span>\n<span class=\"hljs-comment\">\/\/Windows Defender - Defender service itself.<\/span>\n<span class=\"hljs-comment\">\/\/Spynet = Microsoft Active Protection Service is an online community that helps you choose how to respond to potential threats. This feature ensures the device checks in real time with the Microsoft Active Protection Service (MAPS) before allowing certain content to be run or accessed. If this feature is disabled, the check will not occur, which will lower the protection state of the device.<\/span>\n<span class=\"hljs-comment\">\/\/Real-Time Protection = protection to scan for malware and other unwanted software. Once this has been disabled, it won\u2019t scan anything of it.<\/span>\n| where RegistryKey == <span class=\"hljs-string\">\"HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\"<\/span> or RegistryKey == <span class=\"hljs-string\">\"HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\spynet\"<\/span> or RegistryKey == <span class=\"hljs-string\">\"HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Microsoft Antimalware\\\\Real-Time Protection\"<\/span>\n| where RegistryValueData == <span class=\"hljs-number\">1<\/span>\n| distinct Timestamp, DeviceName, RegistryKey, RegistryValueName, PreviousRegistryValueData, RegistryValueData, IsInitiatingProcessRemoteSession\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"ember1464\">Indicadores de Fraude<\/h2>\n\n\n\n<p id=\"ember1465\">Los indicadores de fraude son se\u00f1ales de alerta que indican que alguien podr\u00eda estar enga\u00f1ando a un sistema para obtener beneficios econ\u00f3micos. Aunque pueden solaparse con problemas de ciberseguridad como el malware, los indicadores de fraude suelen centrarse en acciones que parecen deshonestas o inusuales, especialmente las relacionadas con estafas econ\u00f3micas.<\/p>\n\n\n\n<p id=\"ember1466\">Por ejemplo, imagina que una tarjeta de cr\u00e9dito se utiliza para pedir comida en Londres y, solo 15 minutos despu\u00e9s, se vuelve a utilizar para reservar una habitaci\u00f3n de hotel en Tokio. Dado que nadie puede estar f\u00edsicamente en dos lugares a la vez, esta actividad inusual podr\u00eda alertar al sistema de que alguien podr\u00eda estar utilizando la tarjeta de forma fraudulenta.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1467\">1. Registros y alertas del sistema: irregularidades en los registros de auditor\u00eda, modificaciones no autorizadas, etc.<\/h4>\n\n\n\n<p id=\"ember1468\">Detecta manipulaciones del registro de auditor\u00eda, intentos de acceso no autorizados o cambios sospechosos en la configuraci\u00f3n.<\/p>\n\n\n\n<p id=\"ember1469\">La siguiente consulta KQL esta enfocada a detectar los casos en los que los registros de eventos de seguridad de Windows se han eliminado directamente mediante el Visor de eventos. Entre las amenazas asociadas, tenemos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>P\u00e9rdida de pruebas no relacionadas con la reputaci\u00f3n. <\/li>\n\n\n\n<li>Falta de visibilidad sobre actividades maliciosas. <\/li>\n\n\n\n<li>Incumplimiento normativo.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-54a32dba768c7d5b0cca06eb2d223b55\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DeviceEvents\n| where ActionType has <span class=\"hljs-string\">\"SecurityLogCleared\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1471\">2. Intentos de phishing<\/h4>\n\n\n\n<p id=\"ember1472\">Si recibe enlaces inesperados, archivos adjuntos de correo electr\u00f3nico o mensajes OTP sospechosos de fuentes desconocidas, no interact\u00fae con ellos. Pueden contener malware dise\u00f1ado para robar su informaci\u00f3n personal o financiera.<\/p>\n\n\n\n<p id=\"ember1473\">La siguiente consulta KQL se basa en correos electr\u00f3nicos detectados como amenazas clasificadas por el ISP. Si recibe correos electr\u00f3nicos de un ASN con varias direcciones IP distintas y todos los mensajes est\u00e1n etiquetados como amenazas, es el momento de tomar medidas, como eliminar o mover el correo electr\u00f3nico a la carpeta de correo no deseado.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-ca06c30c7e40c26625acc4ab6f599eb5\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-comment\">\/\/Sergio Albea<\/span>\n<span class=\"hljs-keyword\">let<\/span> CIDRASN = (externaldata (CIDR:string, <span class=\"hljs-attr\">CIDRASN<\/span>:int, <span class=\"hljs-attr\">CIDRASNName<\/span>:string)\n&#91;<span class=\"hljs-string\">'https:\/\/firewalliplists.gypthecat.com\/lists\/kusto\/kusto-cidr-asn.csv.zip'<\/span>]\n<span class=\"hljs-keyword\">with<\/span> (ignoreFirstRecord=<span class=\"hljs-literal\">true<\/span>));\nEmailEvents\n| evaluate ipv4_lookup(CIDRASN, SenderIPv4, CIDR, return_unmatched=<span class=\"hljs-literal\">true<\/span>)\n| extend GeoIPData = tostring(geo_info_from_ip_address(SenderIPv4).country)\n| summarize Different_IPs=make_set(SenderIPv4), Countries= make_set(GeoIPData), make_set(CIDR), make_set(SenderFromDomain), Total_different_IPs=dcount(SenderIPv4) ,Total_emails = count(),make_set(ThreatTypes),Delivered_on_Inbox= countif(DeliveryLocation has <span class=\"hljs-string\">\"Inbox\/folder\"<\/span>), Email_Threat= count(isnotempty(ThreatTypes)),\nEmail_Valid = count( isempty(ThreatTypes)) by GeoIPData, CIDR, CIDRASNName\n| extend SuspiciousRatio = Email_Threat * <span class=\"hljs-number\">1.0<\/span> \/ Total_emails, ValidRatio = Email_Valid * <span class=\"hljs-number\">1.0<\/span> \/ Total_emails\n| extend SuspiciousPercentage = SuspiciousRatio * <span class=\"hljs-number\">100<\/span>, ValidPercentage = ValidRatio * <span class=\"hljs-number\">100<\/span>\n| where SuspiciousPercentage &gt; <span class=\"hljs-number\">95<\/span> and Total_different_IPs &gt; <span class=\"hljs-number\">10<\/span>\n| order by Email_Threat\n| project CIDRASNName,set_SenderFromDomain, set_CIDR, Different_IPs, Countries,Total_different_IPs, set_ThreatTypes,Total_emails, Delivered_on_Inbox, Email_Threat, Email_Valid, SuspiciousPercentage, ValidPercentage<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"ember1474\">3. Comportamiento de usuario sospechoso<\/h4>\n\n\n\n<p id=\"ember1475\">El fraude puede detectarse a trav\u00e9s de acciones inusuales, como cambios repentinos en los n\u00fameros de tel\u00e9fono o direcciones de correo electr\u00f3nico, solicitudes de transacciones inesperadas o m\u00faltiples inicios de sesi\u00f3n exitosos desde pa\u00edses lejanos en el mismo d\u00eda, actividades que a menudo apuntan a un compromiso de la cuenta o al robo de identidad.<\/p>\n\n\n\n<p id=\"ember1476\">La siguiente consulta KQL busca casos en los que los inicios de sesi\u00f3n exitosos del usuario durante el mismo d\u00eda provienen de pa\u00edses que est\u00e1n muy distantes entre s\u00ed. La consulta comprueba la diferencia de longitud y latitud de los primeros cuatro pa\u00edses; si hay m\u00e1s de cuatro pa\u00edses, tambi\u00e9n se me notificar\u00e1.<\/p>\n\n\n<pre class=\"wp-block-code has-text-color has-background has-link-color has-small-font-size wp-elements-8cf3c4fb2d2d783fee6248f152bd8d5d\" style=\"color:#ffffff;background-color:#000000\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">let<\/span> substring = <span class=\"hljs-string\">\",\"<\/span>;\nAADSignInEventsBeta\n| where Timestamp &gt; ago(<span class=\"hljs-number\">1<\/span>d)\n| where ErrorCode == <span class=\"hljs-number\">0<\/span>\n| where isnotempty(Country)\n| project AccountUpn, Timestamp, ClientAppUsed, Country, Latitude, Longitude, ReportId, DeviceTrustType\n| summarize &#91;<span class=\"hljs-string\">'Count of countries'<\/span>]=dcount(Country), &#91;<span class=\"hljs-string\">'List of countries'<\/span>]=make_set(Country), &#91;<span class=\"hljs-string\">'ListofLatitudes'<\/span>]=make_set(Latitude),\n &#91;<span class=\"hljs-string\">'ListofLongitudes'<\/span>]=make_set(Longitude) by AccountUpn, DeviceTrustType\n | where &#91;<span class=\"hljs-string\">'Count of countries'<\/span>] &gt;= <span class=\"hljs-number\">3<\/span>\n <span class=\"hljs-comment\">\/\/ | where DeviceTrustType !contains \"Azure AD registered\"<\/span>\n| project splitted=split(ListofLatitudes, <span class=\"hljs-string\">'\"'<\/span>),splitted1=split(ListofLongitudes, <span class=\"hljs-string\">'\"'<\/span>), &#91;<span class=\"hljs-string\">'List of countries'<\/span>], AccountUpn, &#91;<span class=\"hljs-string\">'Count of countries'<\/span>]\n<span class=\"hljs-comment\">\/\/split Latitude and transform it output (if you want to add more countries, add Lat(+1)= splitted&#91;+2] From the last, example --&gt; Lat5 = splitted&#91;9] )<\/span>\n| mv-expand Lat1=splitted&#91;<span class=\"hljs-number\">1<\/span>], Lat2=splitted&#91;<span class=\"hljs-number\">3<\/span>], Lat3=splitted&#91;<span class=\"hljs-number\">5<\/span>], Lat4= splitted&#91;<span class=\"hljs-number\">7<\/span>]\n| extend Lat1 =todouble(Lat1), Lat2 = todouble(Lat2), Lat3 = todouble(Lat3), Lat4 = todouble(Lat4)\n| extend Lat1 = round(Lat1), Lat2 = round(Lat2), Lat3 = round(Lat3), Lat4 = round(Lat4)\n<span class=\"hljs-comment\">\/\/split Longitude and transform it output (if you want to add more countries, add Long(+1)= splitted&#91;+2] From the last, example --&gt; Long = splitted&#91;9])<\/span>\n| mv-expand Long1=splitted1&#91;<span class=\"hljs-number\">1<\/span>], Long2=splitted1&#91;<span class=\"hljs-number\">3<\/span>], Long3=splitted1&#91;<span class=\"hljs-number\">5<\/span>], Long4= splitted1&#91;<span class=\"hljs-number\">7<\/span>]\n| extend Long1 =todouble(Long1), Long2 = todouble(Long2), Long3= todouble(Long3), Long4 = todouble(Long4)\n| extend Long1 = round(Long1), Long2 = round(Long2), Long3 = round(Long3), Long4 = round(Long4)\n<span class=\"hljs-comment\">\/\/ susbstract operations<\/span>\n| serialize resta = Lat1 - Lat2, resta2 = Lat1 - Lat2, resta3 = Lat2 - Lat3, resta4 = Lat1 - Lat4\n| serialize restal = Long1 - Long2, restal2 = Long1 - Long3, restal3 = Long2 - Long3\n<span class=\"hljs-comment\">\/\/ Calculate the distance, add more than 15 or 20 to see more distant countries<\/span>\n| where (resta &gt; <span class=\"hljs-number\">15<\/span> and resta2 &gt; <span class=\"hljs-number\">15<\/span> and resta3&gt; <span class=\"hljs-number\">20<\/span> and Lat1 != Lat2 and Lat1!= Lat2 and Lat2!= Lat3) or (resta &lt; <span class=\"hljs-number\">-20<\/span> and resta2 &lt; <span class=\"hljs-number\">-15<\/span> and resta3 &lt; <span class=\"hljs-number\">-15<\/span>) or (restal &gt; <span class=\"hljs-number\">20<\/span> and restal2 &gt; <span class=\"hljs-number\">20<\/span> and restal3&gt; <span class=\"hljs-number\">20<\/span> and Long1 != Long2 and Long1!= Long2 and Long2!= Long3) or (restal &lt; <span class=\"hljs-number\">-20<\/span> and restal2 &lt; <span class=\"hljs-number\">-20<\/span> and restal3 &lt; <span class=\"hljs-number\">-20<\/span>) or (&#91;<span class=\"hljs-string\">'Count of countries'<\/span>] &gt;<span class=\"hljs-number\">4<\/span>)\n| project AccountUpn,&#91;<span class=\"hljs-string\">'List of countries'<\/span>]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"ember1477\">Resumen<\/h2>\n\n\n\n<p id=\"ember1478\">El art\u00edculo aclara las diferencias entre los IoC (indicadores de ataque, pruebas de ataques pasados), los IoA (indicadores de ataque, se\u00f1ales de que se est\u00e1 produciendo o es inminente un ataque) y los indicadores de fraude (comportamientos sospechosos destinados a la manipulaci\u00f3n financiera o de la identidad). Se proporcionan ejemplos y consultas KQL reales para ilustrar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>IoAs:<\/strong> Como el uso indebido de PowerShell, el tr\u00e1fico SMTP excesivo o los comandos codificados en base64.<\/li>\n\n\n\n<li><strong>IoCs:<\/strong> Incluyen hash de archivos, IP maliciosas, dominios\/URL y cambios en el registro.<\/li>\n\n\n\n<li><strong>Fraud Indicators:<\/strong> Cambios repentinos en el comportamiento del usuario, estafas OTP o inicios de sesi\u00f3n desde ubicaciones geogr\u00e1ficas muy separadas en per\u00edodos cortos. <\/li>\n<\/ul>\n\n\n\n<p id=\"ember1481\">Con cada tipo de indicador, el art\u00edculo comparte estrategias de detecci\u00f3n pr\u00e1cticas utilizando Microsoft Defender XDR (consultas KQL) y explica su relevancia en la vida real. El objetivo es observer m\u00e1s all\u00e1 de las detecciones est\u00e1ticas (IoC) y detectar de forma proactiva los comportamientos de los atacantes y posibles fraudes antes de que se produzcan da\u00f1os.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Han pasado dos a\u00f1os desde que me sumerg\u00ed de lleno en el mundo de la caza de ciber amenazas (Threat Hunting), \u00a1y menuda experiencia! Ese aprendizaje y mejora constantes son lo que me mantiene entusiasmado con la seguridad. Sinceramente, es por eso que no creo que nadie pueda considerarse realmente un \u00abexperto\u00bb en la nube:&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\">Read more<\/a><\/p>\n","protected":false},"author":324,"featured_media":34129,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10614],"tags":[],"collections":[],"class_list":{"0":"post-34118","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ciberseguridad","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Diferenciar entre IoC, IoA e indicadores de fraude - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Descubre c\u00f3mo diferenciar entre IoA, IoC e indicadores de fraude y aprende a detectar amenazas antes de que causen da\u00f1os.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Diferenciar entre IoC, IoA e indicadores de fraude\" \/>\n<meta property=\"og:description\" content=\"Descubre c\u00f3mo diferenciar entre IoA, IoC e indicadores de fraude y aprende a detectar amenazas antes de que causen da\u00f1os.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-26T11:57:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-26T11:57:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"sergioalbea\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"sergioalbea\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\"},\"author\":{\"name\":\"sergioalbea\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11947033df738331f85692dda4109629\"},\"headline\":\"Diferenciar entre IoC, IoA e indicadores de fraude\",\"datePublished\":\"2025-09-26T11:57:55+00:00\",\"dateModified\":\"2025-09-26T11:57:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\"},\"wordCount\":1947,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg\",\"articleSection\":[\"Ciberseguridad\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\",\"name\":\"Diferenciar entre IoC, IoA e indicadores de fraude - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg\",\"datePublished\":\"2025-09-26T11:57:55+00:00\",\"dateModified\":\"2025-09-26T11:57:57+00:00\",\"description\":\"Descubre c\u00f3mo diferenciar entre IoA, IoC e indicadores de fraude y aprende a detectar amenazas antes de que causen da\u00f1os.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ciberseguridad\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Diferenciar entre IoC, IoA e indicadores de fraude\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11947033df738331f85692dda4109629\",\"name\":\"sergioalbea\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/07\/SGA_foto-100x100.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/07\/SGA_foto-100x100.jpg\",\"caption\":\"sergioalbea\"},\"sameAs\":[\"https:\/\/sergioalbea.com\",\"https:\/\/www.linkedin.com\/in\/sergioalbea\/\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/sergioalbea\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Diferenciar entre IoC, IoA e indicadores de fraude - Codemotion Magazine","description":"Descubre c\u00f3mo diferenciar entre IoA, IoC e indicadores de fraude y aprende a detectar amenazas antes de que causen da\u00f1os.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/","og_locale":"en_US","og_type":"article","og_title":"Diferenciar entre IoC, IoA e indicadores de fraude","og_description":"Descubre c\u00f3mo diferenciar entre IoA, IoC e indicadores de fraude y aprende a detectar amenazas antes de que causen da\u00f1os.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-09-26T11:57:55+00:00","article_modified_time":"2025-09-26T11:57:57+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg","type":"image\/jpeg"}],"author":"sergioalbea","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"sergioalbea","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/"},"author":{"name":"sergioalbea","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11947033df738331f85692dda4109629"},"headline":"Diferenciar entre IoC, IoA e indicadores de fraude","datePublished":"2025-09-26T11:57:55+00:00","dateModified":"2025-09-26T11:57:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/"},"wordCount":1947,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg","articleSection":["Ciberseguridad"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/","name":"Diferenciar entre IoC, IoA e indicadores de fraude - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg","datePublished":"2025-09-26T11:57:55+00:00","dateModified":"2025-09-26T11:57:57+00:00","description":"Descubre c\u00f3mo diferenciar entre IoA, IoC e indicadores de fraude y aprende a detectar amenazas antes de que causen da\u00f1os.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/diferenciar-entre-ioc-ioa-e-indicadores-de-fraude\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Ciberseguridad","item":"https:\/\/www.codemotion.com\/magazine\/es\/ciberseguridad\/"},{"@type":"ListItem","position":3,"name":"Diferenciar entre IoC, IoA e indicadores de fraude"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11947033df738331f85692dda4109629","name":"sergioalbea","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/07\/SGA_foto-100x100.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/07\/SGA_foto-100x100.jpg","caption":"sergioalbea"},"sameAs":["https:\/\/sergioalbea.com","https:\/\/www.linkedin.com\/in\/sergioalbea\/"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/sergioalbea\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-600x600.jpg","author_info":{"display_name":"sergioalbea","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/sergioalbea\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-scaled.jpg",2560,1707,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-1024x683.jpg",1024,683,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-1536x1024.jpg",1536,1024,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-2048x1365.jpg",2048,1365,true],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-100x100.jpg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/09\/10178411-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"sergioalbea","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/sergioalbea\/"},"uagb_comment_info":0,"uagb_excerpt":"Han pasado dos a\u00f1os desde que me sumerg\u00ed de lleno en el mundo de la caza de ciber amenazas (Threat Hunting), \u00a1y menuda experiencia! Ese aprendizaje y mejora constantes son lo que me mantiene entusiasmado con la seguridad. Sinceramente, es por eso que no creo que nadie pueda considerarse realmente un \u00abexperto\u00bb en la nube:&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/324"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=34118"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34118\/revisions"}],"predecessor-version":[{"id":34123,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34118\/revisions\/34123"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/34129"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=34118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=34118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=34118"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=34118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}