GCHQ/NSA: El programa HACIENDA

Wissen | Hintergrund

Desde los primeros días de TCP, los criminales han usado herramientas de escaneo de puertos para encontrar sistemas vulnerables. En una nueva colección de documentos a la que Heise ha tenido acceso se revela que, ya en 2009, la agencia británica de espionaje GCHQ incorporó el escaneo de puertos al conjunto de “herramientas estándar” a utilizar contra países enteros

Britischer Geheimdienst GCHQ
Headquarter of the GCHQ

Translation: Bart Polot

Translations of this article are available in German, Englisch, French and Italian.

Desde los primeros días de TCP, los criminales han usado herramientas de
escaneo de puertos para encontrar sistemas vulnerables. En una nueva colección
de documentos a la que Heise ha tenido acceso se revela que, ya en 2009, la
agencia británica de espionaje GCHQ incorporó el escaneo de puertos al conjunto
de “herramientas estándar” a utilizar contra países enteros (Figure 1, see "Hacienda, Mugshot, Olympia, ORB - Slides and Graphics"). Una
presentación sobre el programa HACIENDA (nombre original en inglés,
sin relación la agencia tributaria) lista
veintisiete países como objetivos (Figure 2). La presentación incluye además una
oferta especial: si los lectores desean añadir algún otro país a la lista, sólo es
necesario mandar un email. (Figure 3). Los documentos no especifican ningún
proceso de revisión ni la necesidad de justificar tal acción. Cabe destacar que la
posibilidad de escanear países enteros no es ninguna fantasía. En 2013 se creó un
programa llamado Zmap que podía escanear todo el rango de direcciones
IPv4 en apenas una hora usando un solo PC. El uso masivo de esta tecnología
posibilita que cualquier servidor, en cualquier parte del mundo, grande o pequeño,
sea objetivo de actividades criminales de sabotaje informático estatal.

En la lista de objetivos figuran servicios públicos como HTTP y FTP, así como
protocolos de administración habituales, como SSH (Secure SHell protocol –
usado para acceso remoto a servidores) y SNMP (Simple Network Management
Protocol – usado para administración de redes). Teniendo en cuenta que desde
entonces han aparecido programas como Zmap, que permiten a cualquiera llevar
a cabo extensos escaneos, lo que sorprende no es la tecnología empleada, sino lo
generalizados que eran estos escaneos y la colosal escala de estas operaciones.
La siguiente sección explicará cómo funcionan estas herramientas de escaneo
de puertos, haciendo hincapié en lo que es posible cuando es un Estado el que las
utiliza a gran escala.

El protocolo más usado en Internet es TCP, siglas de su nombre en inglés:
Transmission Control Protocol. Cada vez que alguien manda un email o visita una
web, el encargado de mover datos entre el servidor y el cliente de manera confiable
es precisamente TCP. Las herramientas de escaneo de puertos se aprovechan de
un problema estructural de TCP para averiguar qué servicios ofrece un servidor.
Estas herramientas llevan siendo usadas desde que se inventó TCP para descubrir
sistemas vulnerables. Cada vez que un cliente TCP quiere comunicarse con un
servidor TCP, las dos partes ejecutan lo que se conoce como una negociación o
saludo en tres pasos (three-way handshake en inglés). Este saludo de tres pasos
tiene un fallo de diseño, que es en lo que se basan los escaneadores de puertos
para funcionar: durante la negociación, el servidor filtra información sobre los
servicios que hay disponibles sin antes comprobar las credenciales del cliente.

La Figura 5 muestra la secuencia de paquetes que se envían para establecer
una conexión. Primero, el sistema que desea establecer la conexión envía un
paquete de “sincronización”, llamado TCP SYN. Si el destinatario acepta la
conexión, contesta con un paquete de “sincronización/confirmación”, llamado
SYN/ACK. Al recibir esta confirmación el sistema que inició la negociación envía
un paquete ACK (“confirmación”), lo que finaliza el proceso. Este intercambio
de paquetes permite a un adversario determinar muy fácilmente si un servicio
TCP está disponible en un servidor conectado a Internet: si el puerto está cerrado,
el servidor reacciona de manera distinta al TCP SYN inicial, contestando con
un RST (“reseteo”), en lugar del SYN/ACK que usaría si el servicio estuviera
disponible (Figure 6). De esta manera, es muy fácil mapear servicios en Internet
comparando la respuestas obtenidas en la Figure 5 y en la Figure 6.

The Authors

  • Julian Kirsch is finishing his Master's degree at the Technische Universität München, where he will soon join Prof. Eckert's chair for computer security to pursue a doctorate degree. His research interests include reverse engineering and counter-espionage.
  • Christian Grothoff is funded by the Deutsche Forschungsgemeinschaft (DFG) under ENP GR 3688/1-1 until the end of August 2014. He is now moving from the Technische Universität at München to Inria Rennes, where he will start a research team in the area of secure decentralized networks. His research interests include compilers, programming languages, software engineering, networking and security.
  • Monika Ermert is a freelancer for heise online and has written on DNS, DNS security and more issues for a many years.
  • Jacob Appelbaum is an investigative journalist.
  • Laura Poitras is a documentary film maker and journalist living in Berlin.
  • Henrik Moltke is an investigative journalist.

GCHQ no se limita a hacer simples escaneos de puertos, sino que además
analiza banners y otra información disponible. (Figure 4). Un banner es un
mensaje de texto que algunas aplicaciones envían justo después de recibir una
conexión. Este mensaje contiene información sobre el sistema y el servicio, incluidas
versiones y otros datos que pueden ser útiles para alguien que esté buscando
sistemas vulnerables. Hacer reconocimiento a una escala tan grande como la que revelan
los documentos, demuestra que el propósito es recoger información activamente
y descubrir servicios vulnerables dondequiera que estén, no investigar objetivos
concretos.

Al preparar ataques contra servicios vía SSH o SNMP, la agencia de espionaje
apunta a infraestructuras críticas, como sistemas usados para operar redes.
Como se comprobó en el pasado con los ataques a la teleco belga Belgacom
y al operador de redes por satélite alemán Stellar, cuando el ordenador o
las credenciales de un empleado son útiles, estas personas y estos sistemas se
convierten en blanco y son atacados.

La base de datos con los resultados de los escaneos se comparte con las agencias
de espionaje de la red “Five Eyes” (Cinco Ojos), que incluye a los Estados Unidos,
Canadá, Reino Unido, Australia y Nueva Zelanda. MAILORDER se describe en
los documentos como un protocolo de transporte seguro usado internamente
entre las agencias de espionaje de los Five Eyes para compartir los datos reunidos.

Aún no se sabe si los Five Eyes han concedido acceso a sus “socios” a los datos
del programa HACIENDA.

El escaneo de países enteros en busca de infraestructura de red vulnerable de la
que aprovecharse es consistente con el meta-objetivo de “Dominar Internet”, que
es también el nombre de uno de los programas de intercepción de información del
GCHQ (nombre en inglés: “Mastering the Internet”). Estas agencias de espionaje
intentan atacar cualquier sistema a su alcance, supuestamente porque podría
dar acceso a otros sistemas (podrían crear una cadena que
finalice en un objetivo digno de espiar), aunque no haya ninguna indicación de
que en algún momento se vaya a dar este caso. Siguiendo esta lógica, cualquier
dispositivo es un objetivo a colonizar, dado que cada sistema atacado con éxito,
en teoría es útil para infiltración, vigilancia o un futuro uso como salto intermedio
hacia otro posible objetivo.

Escanear puertos y descargar banners para identificar el software del sistema
objetivo no es más que el primer paso del ataque (Figure 8). Los documentos “Top
Secret” de la NSA, CSEC y GCHQ a los que Heise ha tenido acceso demuestran
que las agencias de espionaje participantes siguen la metodología típica del
crimen organizado online (Figure 9): reconocimiento (Figure 10), seguido de
infección (Figure 11), control (Figure 12) y robo de datos (Figure 13). La
presentación de la NSA deja claro que esta agencia adopta la mentalidad de los
criminales, explicando primero diferentes técnicas para luego enseñar capturas de
pantalla de sus herramientas para dar soporte a este proceso delictivo. (Figure 14,
15 y 16).

Se sabe que la NSA está interesada en ataques “0-day”, que son ataques que
se aprovechan de vulnerabilidades desconocidas por el público y por tanto para
las que lo existe ningún parche. Si un adversario que dispone de ataques 0-day
descubre que un sistema ofrece servicios que son vulnerables, es prácticamente
imposible defenderse. Los firewalls o cortafuegos tienen muy pocas posibilidades de
funcionar, bien porque los administradores del sistema necesitan acceso remoto
o bien porque las agencias de espionaje han conseguido infiltrarse en la red
local. Es más, añadir nuevos dispositivos como firewalls administrados vía
SNMP a una red local puede exponer nuevas vulnerabilidades.

La Figure 8 apunta a una función particular que HACIENDA desempeña
en la infraestructura de la red de espías: expandir su infraestructura secreta.
Los documentos “Top Secret” a los que ha tenido acceso Heise describen el
programa LANDMARK de la agencia de espionaje Canadiense CSEC, que sirve
para expandir la infraestructura secreta (Figure 17).
La infraestructura secreta incluye los llamados ORBs (Operational Relay
Boxes, Sistemas de Retransmisión Operacional), que sirven para ocultar la
verdadera localización de un atacante cuando los Five Eyes intentar hacerse con
el control de otros sistemas o robar información (Figure 18). Varias veces al
año, la red de espionaje intenta apoderarse de tantas máquinas como sea posible,
siempre que estén en el extranjero. Por ejemplo, en Febrero de 2010 veinticuatro
espías encontraron 3.000 potenciales ORBs en una sola jornada de trabajo.
(Figure 19) Ya que analizar los resultados de los escaneos de HACIENDA era
considerado demasiado laborioso, usaron el sistema OLYMPIA para automatizar
el proceso (Figure 21). El resultado final del que presumen los espías es que
ahora pueden descubrir los dispositivos vulnerables de una subred en menos de
cinco minutos (Figure 22).

Por supuesto, los canadienses no son los únicos que usan HACIENDA para
descubrir máquinas de las que apoderarse y convertir en ORBs. En el GCHQ
la caza de ORBs es parte del programa MUGSHOT (Figure 23). El GCHQ
también ha automatizado el proceso y afirma que gracias a ello consiguen mejoras
significativas en la precisión. (Figure 24). De nuevo, la información obtenida de
HACIENDA juega un papel protagonista (Figure 25). Un punto clave es que
con MUGSHOT, el GCHQ integra resultados de escaneos activos (HACIENDA)
con observaciones pasivas (Figure 26), para “entender todo lo importante sobre
todas las máquinas de Internet”.

De este modo, los administradores de sistemas y redes ahora tienen que enfrentarse
a la amenaza del espionaje industrial, sabotaje y violaciones de los derechos
humanos creados por Estados que atacan indiscriminadamente infraestructuras
y servicios de red. Estos adversarios además no necesitan más razón para atacar
que la posibilidad de obtener acceso y disponen de presupuestos de miles de
millones de dólares, inmunidad legal y colaboración forzada de compañías de los
países de los Five Eyes. El resultado es que cualquier administrador tiene que
preocuparse de proteger sus sistemas de amenazas de un nivel hasta ahora sin
precedentes. A consecuencia de estos programas, los ciudadanos, especialmente
de países que no forman parte del club de los Five Eyes pueden ver su seguridad,
privacidad e integridad peligrosamente reducidos.

Las agencias de espionaje están usando sus privilegios para tomar el control
de Internet el busca de proyección de poder. Sus acciones siguen el patrón
estándar del ciber-crimen, usando reconocimiento a través de escaneos de puertos
activos y pasivos para identificar objetivos potenciales. Teniendo en cuenta esta
amenaza tan seria, los administradores de sistemas deben mejorar sus defensas
y, en concreto, reducir la visibilidad de sistemas que no sean de acceso público.
Parchear y actualizar servicios no protege de ataques 0-day y los firewalls pueden
ser insuficientes o no aplicables.

En la segunda parte del artículo vamos a presentar
una nueva opción para que los administradores de sistemas puedan ocultar sus
servicios privados de operaciones de escaneo y reconocimiento. Estandarizando
estas técnicas, la comunidad de Internet puede reducir la habilidad de las agencias
de espionaje de “apoderarse de Internet”.

En este artículo vamos a describir una nueva variante de “Port Knocking”
que usa como modelo de adversario el escaneo activo por parte de Estados, y por
tanto ofrece protección de programas como HACIENDA, posiblemente parando
a las agencias de espionaje en la fase de reconocimiento.

Si bien es notablemente difícil defenderse de vulnerabilidades desconocidas
en servicios públicos, sí que es posible minimizar la exposición de servicios de
administración de sistemas. El “Port Knocking” es un método conocido para
ocultar servidores TCP en Internet. La idea básica es evitar que un servidor
TCP responda positivamente a un paquete TCP SYN si no ha recibido antes un
paquete “knock”, como una llamada secreta que abre una puerta. Esto es muy
útil en términos de seguridad, ya que si un atacante no puede conectarse a un
servidor TCP, no podrá atacarlo de ninguna manera. Los métodos tradicionales
de “Port Knocking” no han tenido en cuenta a un adversario del nivel de
un Estado. En concreto, estos métodos ignoran que los escaneos de puertos no
son la única manera de descubrir un servicio. Si alguien accede a un servicio
desde una red monitorizada, el adversario puede observar la conexión y por tanto
deducir la existencia del servicio. Un adversario Estatal puede incluso observar
todo el tráfico de un cliente TCP y llevar a cabo ataques “man-in-the-middle”,
interceptando y retransmitiendo todo el tráfico del cliente. Usando routers de
infraestructura controlados por un atacante, es posible ejecutar un ataque man-
in-the-middle para tomar control de una conexión TCP justo después de la
negociación inicial. Un atacante sofisticado que controle los routers también
puede intentar identificar el uso de “port knocks” que no sean lo suficientemente
sigilosos si detecta patrones inusuales de tráfico en la red. Sin embargo, puede
ser seguro asumir que el adversario no va a sospechar de una negociación TCP
normal, dado que son demasiado comunes.

TCP Stealth (“TCP furtivo”) es un borrador del IETF que describe una
variante sigilosa de port knocking fácilmente desplegable (Julian Kirsch, Christian Grothoff, Jacob Appelbaum, and Holger Kenn: Tcp stealth, August 2014. IETF draft). TCP Stealth incluye un
token de autorización en el campo ISN (número de secuencia) del paquete SYN
y permite a las aplicaciones añadir protecciones sobre sus datos. Como resultado,
TCP Stealth es difícil de detectar en la red ya que el tráfico es indistinguible
de una negociación de 3 pasos normal y los ataque man-in-the-middle y de
repetición pueden mitigarse con las protecciones de datos. TCP Stealth funciona
con IPv4 e IPv6.

TCP Stealth es útil para cualquier servicio con un grupo de usuarios que sea
lo suficientemente pequeño como para que sea práctico distribuir una contraseña
entre todos los miembros. Los ejemplos incluyen acceso administrativo por SSH
o FTP a servidores, puentes de Tor, servidores POP3/IMAP(S) personales o
redes Peer-to-Peer funcionando en modo “sólo conocidos”. La manera más fácil
de usar TCP Stealth es si el sistema operativo ofrece soporte.
TCP Stealth está disponible para el kernel Linux usando los parches Knock.
Si un sistema dispone de un kernel parcheado, es posible añadir soporte de TCP
Stealth a una aplicación simplemente añadiendo una llamada setsockopt()
al código. Una manera alternativa que no requiere recompilar es pre-cargar
libnockify usando LD PRELOAD y estableciendo las variables de entorno
adecuadas.

Dado que la versión normal de Linux aún no ofrece soporte para Knock, el
kernel de la máquina que lo utilice tiene que ser parcheado. Aplicar este parche
no es muy complicado:

1. Primero descarga las fuentes de la versión del kernel deseada desde
https://www.kernel.org si quieres utilizar una versión original del kernel. Ten
en cuenta que muchas distribuciones utilizan ligeramente adaptadas del
kernel, así que tienes que instalar las fuentes desde el repositorio de tu
distribución.

2. Con las fuentes del kernel disponibles , descarga la versión apropiada
del parche Knock desde https://gnunet.org/knock. Si quieres usar una
versión que no está explícitamente listada en la web de Knock, lo mejor es
probar con parches para la versión numéricamente más cercana.
3. Entra en el directorio donde estén las fuentes del kernel (sustituye la parte
de <your-version> por la versión de kernel que hayas escogido y aplica
los parches (para más información sobre cómo aplicar o retirar parches,
consulta los archivos de kernel.org):

~ $ cd l i n u x - <your-v e r s i o n >/

~/ l i n u x $ p a t c h -p1 < / path / t o / knock / p a t c h / t c pv e r s i o n >. d i f f
s t e a l t h<your-version>

4. Consigue la configuración de tu kernel actual. Hay dos maneras de obtener
la configuración, ambas válidas:

a) Los Debianitas mantienen una copia de la configuración del kernel en
el directorio /boot. Puedes copiar la configuración a tu directorio de
fuentes con el siguiente comando:

~/ l i n u x $ cp / b o o t / c o n f i g -$ ( uname -r ) . c o n f i g

b)Muchas otras distribuciones compilan el kernel de manera que es
posible leer la configuración del sistema de archivos /proc/:

~/ l i n u x $ z c a t / p r o c / c o n f i g . gz > . c o n f i g

c) Si ninguna opción de las anteriores funciona, prueba a usar la configuración
por defecto ejecutando:

~/ l i n u x $ make d e f c o n f i g

En caso de que uses esto, el kernel puede que no esté optimizado y el
rendimiento y la funcionalidad obtenidas pueden verse comprometidas.

5. Para cualquier opción que no esté incluida en tu configuración actual,
escoge la opción por defecto. Versiones del kernel dispares incluyen opciones
ligeramente distintas:

~/ l i n u x $ y e s ” ” | make o l d c o n f i g

6. Activa Knock en tu configuración seleccionando Networking Support >
Networking Options > TCP/IP networking > TCP: Stealth TCP socket
support en el menú interactivo:

~/ l i n u x $ make m e n u c o n f i g

7. El kernel está listo para ser compilado:

~/ l i n u x $ make bzImage && make modules

Esto compilará el kernel y todos los módulos adicionales. Ten en cuenta que
este proceso dura desde unos minutos en sistemas modernos hasta horas en
los muy antiguos. Si tu procesador tiene más de un núcleo (“cores”), añade
la opción -j seguida del número de núcleos a ambos comandos make.
8. Si la compilación tiene éxito, instala el nuevo kernel junto con todos los
módulos y a continuación general un nuevo initramdisk para tu nuevo
kernel. Si tienes sudo instalado, puedes usar:

~/ l i n u x $ sudo make m o d u l e s i n s t a l l && sudo make i n s t a l l

en caso contrario ejecuta los comandos (omitiendo la palabra sudo) en una
consola como root.

9. Reinicia la máquina y selecciona tu nuevo kernel en tu gestor de arranque.
Ya tienes tu máquina con soporte de Knock.

Knock se puede usar sin tener que modificar el código fuente de ningún
programa. Esto puede ser útil si el código no está disponible o en casos donde
insertar las llamadas a libc necesarias no sea posible (por ejemplo, por restricciones
impuestas por la lógica del programa).
Para usar Knock en aplicaciones existentes ofrecemos la biblioteca dinámica
libknockify. Para usar libknockify y activar Knock en el programa de ejemplo
example program hay que hacer lo siguiente:

KNOCK SECRET=” s h a r e d s e c r e t ”

KNOCK INTLEN=42

LD PRELOAD=./ l i b k n o c k i f y . s o

. / example program

Siendo “shared secret” la contraseña conocida por cliente y servidor. Tras
esto, si el programa example program intenta establecer una comunicación TCP,
libknockify se ocupará de activar las opciones necesarias para el uso de Knock
en el kernel, como por ejemplo derivar una clave de cifrado del texto “shared
secret” y limitar la comprobación de integridad a los primeros 42 bytes de
contenido en el flujo TCP. En caso de que la variable KNOCK_INTLEN no se
especifique, no se hará ninguna comprobación de integridad.

Los desarrolladores de aplicaciones pueden integrar el soporte de TCP Stealth
directamente en su código. Esto ofrece la ventaja de controlar qué conexiones
TCP tienen TCP Stealth, lo cual puede beneficiar a la usabilidad del programa.
Teniendo un kernel con soporte de Knock, se puede activar la funcionalidad para
un socket determinado, sólo es necesario hacer una llamada a setsockopt()
después de crear el socket:

char s e c r e t [ 6 4 ] = ” T h i s i s my magic ID . ” ;

s e t s o c k o p t ( s o c k , TCP STEALTH, secret , sizeof( secret ) ) ;

Para beneficiarse de la comprobación de integridad, el cliente necesita hacer
una llamada adicional a setsockopt() antes de llamar a connect(), especifi-
cando los primeros bytes de contenido que se vayan a transmitir:

char p a y l o a d [ 4 ] = ” 1234 ” ;

s e t s o c k o p t ( s o c k , IPPROTO TCP, TCP STEALTH INTEGRITY ,si zeo f ( payload ) ) ;

connect ( sock , . . . ) ;

w r i t e ( s o c k , payload , s i z e o f ( p a y l o a d ) ) ; payload ,

En caso de servidores que quieran usar la comprobación de integridad de
TCP Stealth, sólo necesitan proporcionar a setsockopt() el número de bytes
que han de ser protegidos contra cambios:

int payload len = 4 ;

s e t s o c k o p t ( s o c k , IPPROTO TCP, TCP STEALTH INTEGRITY LEN , payload len , sizeof ( payload len ) ) ;

Hoy en día la mayoría de dispositivos acceden a Internet desde detrás de un
router que ofrece un servicio del NAT (network address translation, traducción
de direcciones de red). Aunque TCP Stealth se ha diseñado para evitar usar
información que los routers con NAT suelen alterar, algunos routers alteran
los campos de tiempo y número de secuencia TCP (timestamp e ISN), por lo
que puede interferir con el mecanismo de port knocking. La Tabla 1 muestra
los resultados de experimentos de Honda et. al. que prueban las modificaciones
hechas por dispositivos NAT reales.

Cuadro 1: Cambios al ISN hechos por sistemas intermedios en función del puerto<br />
de destino, medido por Honda et al. (Michio Honda, Yoshifumi Nishida, Costin Raiciu, Adam Greenhalgh, Mark Handley, and Hideyuki Tokuda. Is it still possible to extend tcpß In Procee- dings of the 2011 ACM SIGCOMM Conference on Internet Measurement Conference, IMC '11, pages 181{194, New York, NY, USA, 2011. ACM.)
Cuadro 1: Cambios al ISN hechos por sistemas intermedios en función del puerto de destino, medido por Honda et al. (Michio Honda, Yoshifumi Nishida, Costin Raiciu, Adam Greenhalgh, Mark Handley, and Hideyuki Tokuda. Is it still possible to extend tcpß In Procee- dings of the 2011 ACM SIGCOMM Conference on Internet Measurement Conference, IMC '11, pages 181{194, New York, NY, USA, 2011. ACM.)


En términos de seguridad, TCP Stealth está limitado por los 32 bits del campo
ISN, por tanto un adversario insistente puede conseguir una conexión por fuerza
bruta o por pura suerte. Sin embargo, consideramos que TCP Stealth ofrece
una protección adecuada contra ataques indiscriminados (como HACIENDA).
Desplazar servicios de administración a puertos no-estándar puede reducir aún
más las posibilidades de ser descubierto por escáneres de puertos activos.
Aunque el uso de protección de integridad con TCP Stealth técnicamente
es opcional, el uso de port knocking sin proteger la integridad de los datos
ofrece muy poca protección contra un adversario que analiza el tráfico de la red
secuestra conexiones justo tras su establecimiento inicial.
Por ello, futuros protocolos de red deberían diseñarse de manera que incluyan
el intercambio de claves en los primeros bytes del flujo TCP. Por desgracia, esto
no es el caso de SSH, que expone al atacante un banner con información de
versión mucho antes te iniciar el intercambio de claves. Debido a este fallo de
diseño en el protocolo SSH, se necesita un parche adicional de ofuscación
para que las protecciones que proporciona TCP Stealth sean efectivas para SSH.

Soluciones técnicas como TCP Stealth son sólo una manera que los admi-
nistradores de sistemas tienen para proteger sus servicios internos TCP contra
ataques de criminales, ya sean privados, motivados comercialmente o efectuados
por Estados. Sin embargo, como dijo Linus Neumann recientemente en una
Op-Ed para Heise, puede que no sea posible ganar la carrera a largo plazo
usando únicamente la tecnología. Sin la voluntad política necesaria para proteger
legalmente, fomentar y financiar sistemas de comunicación seguros, esta batalla
desigual va a continuar — y los usuarios van a perder. Neumann subrayó que los
sistemas de comunicación seguros son posible, pero que los gobiernos están mucho
más preocupados de perder el control que de tener redes más robustas (y menos
controlables). Queda mucho trabajo político por delante, pero los creadores de
sistemas operativos y administradores de redes pueden mejorar la situación hoy
mismo, implementando soluciones de seguridad modernas que ya existen.

Anzeige