{"id":1571,"date":"2025-01-13T20:32:00","date_gmt":"2025-01-14T02:32:00","guid":{"rendered":"https:\/\/hacking.onesec.mx\/?p=1571"},"modified":"2025-11-13T20:42:27","modified_gmt":"2025-11-14T02:42:27","slug":"el-talon-de-aquiles-de-la-computacion-moderna-por-que-la-arquitectura-von-neumann-es-inherentemente-vulnerable","status":"publish","type":"post","link":"https:\/\/hacking.onesec.mx\/index.php\/2025\/01\/el-talon-de-aquiles-de-la-computacion-moderna-por-que-la-arquitectura-von-neumann-es-inherentemente-vulnerable\/","title":{"rendered":"El tal\u00f3n de Aquiles de la computaci\u00f3n moderna: por qu\u00e9 la arquitectura von Neumann es inherentemente vulnerable"},"content":{"rendered":"\n<p>Cuando pensamos en vulnerabilidades de seguridad, solemos imaginar bugs en c\u00f3digo, configuraciones err\u00f3neas o exploits sofisticados. Pero \u00bfqu\u00e9 pasar\u00eda si te dijera que la vulnerabilidad m\u00e1s fundamental de todos los sistemas inform\u00e1ticos modernos est\u00e1 en su dise\u00f1o arquitect\u00f3nico b\u00e1sico, implementado hace m\u00e1s de 75 a\u00f1os?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La arquitectura von Neumann: un dise\u00f1o brillante con una falla fatal<\/h2>\n\n\n\n<p>La arquitectura von Neumann, propuesta por John von Neumann en 1945, revolucion\u00f3 la computaci\u00f3n al introducir el concepto de programa almacenado: tanto los datos como las instrucciones residen en la misma memoria. Esta elegante simplicidad permiti\u00f3 la flexibilidad computacional que conocemos hoy, pero tambi\u00e9n introdujo una vulnerabilidad fundamental que persiste en cada procesador moderno.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"659\" src=\"https:\/\/hacking.onesec.mx\/wp-content\/uploads\/2025\/11\/VonNeumannArq-1024x659.png\" alt=\"Diagrama de arquitectura Von Neumann\" class=\"wp-image-1579\" style=\"width:639px;height:auto\" srcset=\"https:\/\/hacking.onesec.mx\/wp-content\/uploads\/2025\/11\/VonNeumannArq-1024x659.png 1024w, https:\/\/hacking.onesec.mx\/wp-content\/uploads\/2025\/11\/VonNeumannArq-300x193.png 300w, https:\/\/hacking.onesec.mx\/wp-content\/uploads\/2025\/11\/VonNeumannArq-768x495.png 768w, https:\/\/hacking.onesec.mx\/wp-content\/uploads\/2025\/11\/VonNeumannArq-1536x989.png 1536w, https:\/\/hacking.onesec.mx\/wp-content\/uploads\/2025\/11\/VonNeumannArq-2048x1319.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">El problema: datos ejecutables y c\u00f3digo modificable<\/h2>\n\n\n\n<p>En la arquitectura von Neumann, la CPU no distingue inherentemente entre datos y c\u00f3digo. Ambos son simplemente secuencias de bits en memoria. Esta indistinci\u00f3n es la ra\u00edz de innumerables clases de vulnerabilidades:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Buffer overflows<\/strong>: sobrescribir datos hasta alcanzar direcciones de retorno<\/li>\n\n\n\n<li><strong>Code injection<\/strong>: inyectar c\u00f3digo malicioso en regiones de datos<\/li>\n\n\n\n<li><strong>ROP (Return-Oriented Programming)<\/strong>: encadenar fragmentos de c\u00f3digo leg\u00edtimo<\/li>\n\n\n\n<li><strong>Use-after-free<\/strong>: explotar memoria liberada que contiene punteros<\/li>\n<\/ul>\n\n\n\n<p>Todas estas t\u00e9cnicas de explotaci\u00f3n se aprovechan del mismo principio: la memoria que deber\u00eda contener solo datos puede ser interpretada como c\u00f3digo ejecutable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CVE-2021-32471: una vulnerabilidad te\u00f3rica que lo ejemplifica<\/h2>\n\n\n\n<p>Aunque suene extra\u00f1o, existe un CVE que documenta una vulnerabilidad en la <strong>implementaci\u00f3n de la m\u00e1quina de Turing<\/strong>: CVE-2021-32471. Este CVE te\u00f3rico es fascinante porque se\u00f1ala un punto cr\u00edtico: si incluso el modelo computacional m\u00e1s abstracto puede tener vulnerabilidades documentadas cuando se implementa, \u00bfqu\u00e9 dice esto sobre las arquitecturas reales?<\/p>\n\n\n\n<p>El CVE-2021-32471 ilustra que el problema no es solo de implementaci\u00f3n, sino conceptual. La capacidad de una m\u00e1quina de Turing para modificar su propia cinta (esencialmente, su memoria) es an\u00e1loga a c\u00f3mo la arquitectura von Neumann permite que los programas modifiquen el espacio de memoria compartido entre datos y c\u00f3digo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mitigaciones modernas: parches sobre el dise\u00f1o fundamental<\/h2>\n\n\n\n<p>La industria ha desarrollado numerosas defensas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DEP\/NX (Data Execution Prevention)<\/strong>: marca regiones de memoria como no ejecutables<\/li>\n\n\n\n<li><strong>ASLR (Address Space Layout Randomization)<\/strong>: aleatoriza direcciones de memoria<\/li>\n\n\n\n<li><strong>Stack canaries<\/strong>: detecta corrupci\u00f3n de pila<\/li>\n\n\n\n<li><strong>Control-Flow Integrity (CFI)<\/strong>: valida transiciones de flujo de control<\/li>\n<\/ul>\n\n\n\n<p>Pero todas estas son <strong>mitigaciones<\/strong>, no soluciones. Son intentos de a\u00f1adir separaci\u00f3n artificial entre c\u00f3digo y datos en una arquitectura que fue dise\u00f1ada espec\u00edficamente para no tenerla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arquitecturas alternativas: \u00bfel futuro de la seguridad?<\/h2>\n\n\n\n<p>La arquitectura Harvard, que separa f\u00edsicamente la memoria de instrucciones y datos, evita muchos de estos problemas pero sacrifica flexibilidad. Algunos sistemas embebidos cr\u00edticos la utilizan precisamente por sus propiedades de seguridad.<\/p>\n\n\n\n<p>Investigaciones m\u00e1s recientes exploran:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Arquitecturas con capacidades (CHERI)<\/strong>: hardware que rastrea y restringe el uso de punteros<\/li>\n\n\n\n<li><strong>Ejecuci\u00f3n segura basada en hardware<\/strong>: Intel SGX, ARM TrustZone<\/li>\n\n\n\n<li><strong>Computaci\u00f3n morfol\u00f3gica<\/strong>: procesadores que pueden reconfigurar su arquitectura<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n: viviendo con el pecado original<\/h2>\n\n\n\n<p>La arquitectura von Neumann es el &#8220;pecado original&#8221; de la seguridad inform\u00e1tica. No es un bug que pueda ser parcheado, es una caracter\u00edstica fundamental del dise\u00f1o. Cada exploit exitoso, cada RCE (Remote Code Execution), cada escalaci\u00f3n de privilegios basada en corrupci\u00f3n de memoria, es un recordatorio de esta verdad inc\u00f3moda.<\/p>\n\n\n\n<p>El CVE-2021-32471, aunque te\u00f3rico, nos recuerda que las vulnerabilidades pueden existir en los niveles m\u00e1s abstractos de la computaci\u00f3n. Mientras sigamos usando arquitecturas donde c\u00f3digo y datos comparten el mismo espacio sin distinci\u00f3n fundamental, seguiremos construyendo castillos sobre arena.<\/p>\n\n\n\n<p>La pr\u00f3xima vez que veas un CVE de buffer overflow, recuerda: no es solo un error de programaci\u00f3n. Es una consecuencia inevitable de una decisi\u00f3n de dise\u00f1o tomada en 1945, cuando la seguridad inform\u00e1tica ni siquiera era un concepto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Referencias<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First Draft of a Report on the EDVAC. MIT. &#8211; <a href=\"https:\/\/web.mit.edu\/STS.035\/www\/PDFs\/edvac.pdf\">https:\/\/web.mit.edu\/STS.035\/www\/PDFs\/edvac.pdf<\/a> (Recuperado el 13 de noviembre de 2025)<\/li>\n\n\n\n<li>CVE-2021-32471 &#8211; <a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2021-32471\">https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2021-32471<\/a> (Recuperado el 13 de noviembre de 2025)<\/li>\n\n\n\n<li>Intrinsic Propensity for Vulnerability in Computers? Arbitrary Code Execution in the Universal Turing Machine. Cornell University. &#8211; <a href=\"https:\/\/arxiv.org\/abs\/2105.02124\">https:\/\/arxiv.org\/abs\/2105.02124<\/a> (Recuperado el 13 de noviembre de 2025)<\/li>\n\n\n\n<li>Software Memory Safety. NSA. &#8211;  <a href=\"https:\/\/media.defense.gov\/2022\/Nov\/10\/2003112742\/-1\/-1\/0\/CSI_SOFTWARE_MEMORY_SAFETY.PDF\">https:\/\/media.defense.gov\/2022\/Nov\/10\/2003112742\/-1\/-1\/0\/CSI_SOFTWARE_MEMORY_SAFETY.PDF<\/a> (Recuperado el 13 de noviembre de 2025)<\/li>\n\n\n\n<li>Trends, challenges, and strategic shifts in the software vulnerability mitigation landscape. Microsoft. &#8211; <a href=\"https:\/\/github.com\/microsoft\/MSRC-Security-Research\/blob\/master\/presentations\/2019_02_BlueHatIL\/2019_01%20-%20BlueHatIL%20-%20Trends%2C%20challenge%2C%20and%20shifts%20in%20software%20vulnerability%20mitigation.pdf\">https:\/\/github.com\/microsoft\/MSRC-Security-Research\/blob\/master\/presentations\/2019_02_BlueHatIL\/2019_01%20-%20BlueHatIL%20-%20Trends%2C%20challenge%2C%20and%20shifts%20in%20software%20vulnerability%20mitigation.pdf<\/a> (Recuperado el 13 de noviembre de 2025)<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando pensamos en vulnerabilidades de seguridad, solemos imaginar bugs en c\u00f3digo, configuraciones err\u00f3neas o exploits sofisticados. Pero \u00bfqu\u00e9 pasar\u00eda si te dijera que la vulnerabilidad m\u00e1s fundamental de todos los sistemas inform\u00e1ticos modernos est\u00e1 en su dise\u00f1o arquitect\u00f3nico b\u00e1sico, implementado hace m\u00e1s de 75 a\u00f1os? La arquitectura von Neumann: un dise\u00f1o brillante con una falla [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":1592,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,4,5],"tags":[],"class_list":["post-1571","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pentest-2","category-pentest","category-seguridad-de-la-informacion"],"_links":{"self":[{"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/posts\/1571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/comments?post=1571"}],"version-history":[{"count":6,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/posts\/1571\/revisions"}],"predecessor-version":[{"id":1584,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/posts\/1571\/revisions\/1584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/media\/1592"}],"wp:attachment":[{"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/media?parent=1571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/categories?post=1571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hacking.onesec.mx\/index.php\/wp-json\/wp\/v2\/tags?post=1571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}