martes, 21 de mayo de 2019

Armaduras.

He de reconocer que últimamente no me estiro demasiado en el tema bloguero este. Tampoco voy a molestarme en hacer propósito de enmienda sobre todo porque no tengo la menor intención de ello, pero mira, ya que estoy, voy a hacer una entrada hoy. 

Al momento de escribir esto acaba de finalizar la serie Juego de Tronos, una serie épica fantástica ambientada en un entorno más o menos medieval un tanto sui géneris. Salen una serie de guerreros medievales equipados de diversas maneras, desde unos salvajes medio desarrapados armados con unos khopesh egipcios que no tenían mucho sentido a caballero estilo medievales armados con corazas completas, aunque lo más normal eran armaduras de cota de malla más sencillas. Pensaría la gente que los caballeros estaban pesadamente armados (no les falta razón) con armaduras de 20-25 kilos y que las otras armaduras eran más ligeras ¡pues craso error! El paso a armaduras de placas (la armadura que asociamos con el torneo) no solo era por la mejor protección sino que también por la mayor ligereza (quien lo iba a decir) y vamos a demostrarlo. Da la casualidad de que he encontrado una tienda que te venden equipos medievales para reconstrucciones, aficionados a la historia o sencillamente, pues porque te apetece comprártelo para tenerlo. Lo bueno de tener una camisa de cota de malla en el armario es que no se apolilla, aunque sí que se oxida. La página en cuestión es esta: https://www.medievalfactory.com (NOTA: ni les conozco de nada ni me pagan nada)

Bueno, antes hemos hablado de armaduras de 20-25 kilos pero esto no quiere decir que todas pesaran eso. Las destinadas a torneos eran bastante más pesadas, la idea era lanzarse contra el contrario para derribarlo llevando el menor daño posible, lo que implicaba una pérdida de movilidad en la armadura para que fuera esta la que encajara el golpe en lugar del cuerpo del propietario. También me llamó la atención en una reciente visita a la Armería del Palacio Real en Madrid la presencia de una armadura "a prueba de balas" que pesaba más de 45 kilos (te debía de dejar los riñones guapos)
Armadura de torneo. El cuello está fijo y la visera, en
mínimos para evitar riesgos.

También habría que mencionar que había armaduras más ligeras que te hacía un apaño, como de cuero, más asequibles porque no olvidemos que por aquel entonces el soldado (o combatiente aunque fuera un campesino) se pagaba sus propias armas y precisamente no eran baratas, quedando las armaduras en manos de la nobleza de soldados muy expertos que bien las habían tomado de botín o las habían ido comprando poco a poco. 

Pero nada, vamos a buscar a un guerrero de estos medievales, como los que salen en Vikingos o en Juego de Tronos, protegidos con un casco, cota de malla, gorguera, .....

Lo primero, pondremos una camisa de cota de malla, de acero claro (el aluminio dará el pego, pero pesa menos y no estaba disponible en la época) Pues la jodía pesaba nada menos que unos 10-11 kilos y te protege contra cortes y algunos pinchazos.


El cuerpo está más o menos protegido, habrá que echar un ojo a la cabeza. Un verdugo de cota de malla añade nada menos 3,5 kg (vamos por 14) y protege frente a cortes.
Un par de recios recreadores equipados con cascos, cota de malla, etc


No querremos que nos descalabren, habrá que meter un casco normando, sin mucho lío que pesa 2.9 kg. Ya hemos subido al peso a 17 kilos, 6 de ellos en nuestra cabeza así que más nos vale ir entrenando para conseguir un cuello como el de Fernando Alonso.


Iba a añadir un gorjal, pero como no pone el peso, lo voy a omitir pero podemos añadir una grebas y brazaletes que ayudan un poco ... y añaden otros 1.300 gramos a la ecuación. Ya tenemos más de 18 kilos con una protección inferior a la armadura de placas, aunque con un peso muy similar.


Esto no lo ibas a poner sobre la piel, llevaría una vestidura de cuero que debía de ser de lo más fresco en verano ... sobre todo en las cruzadas y que debía ayudar a amortiguar un poco los golpes sobre la cota de malla. No sé lo que pesa ... pero ligero del todo, no parece.


Protegidos estamos ... pero ¿y si nos armamos? Un escudo vikingo ... otros 2,5 kilos.


Espada y lanza ... otros 3-4 kilos adicionales. Total, que nuestro guerrero, prácticamente sin nada más que las armas se va a los 25 kilos de equipamiento sin comerlo ni beberlo (esto quiere decir que no lleva nada para comer, ni beber, ni ropa para cambiarse, ni mantas, ni capa ni leches)

Y viendo los movimientos ... se les nota ágiles y que no pesa nada de nada ....

P.S. Aquí he encontrado otra web interesante, con más datos respeto al peso: https://lacasadelrecreador.com

La loriga (como la camisa de arriba)  es más pesada, unos 16 kg en talla L.

https://lacasadelrecreador.com/armaduras-medievales/214-loriga-larga.html

Un escudo, 4,5 kg.

https://lacasadelrecreador.com/escudos-medievales/810-escudo-medieval-redondo-ii-4250673406067.html

Y el gambesón interior, 1,3 kg.

https://lacasadelrecreador.com/gambesones/528-chaqueta-de-armar-ii.html

Con elementos de este otro site, prácticamente ya nos hemos metido en 20 kg tan solo con la loriga, el gambesón y el escudo. Podemos añadir otros 3 kg con un casco:

https://lacasadelrecreador.com/cascos-medievales/657-yelmo-nasal-vi-4250673423965.html

Y con los 3,3 kg de una lanza estamos en más de 25 kg. Y esto sería un infante medianamente protegido.

https://lacasadelrecreador.com/otro-armamento-medieval/227-lanza-de-armas-0705442011569.html

viernes, 22 de marzo de 2019

Chemtrail (II Parte) Vistos desde la aviación

Esta entrada, al igual que la anterior se ha publicado previamente en Menéame.

Hace poco hice un artículo sobre meteorología y lo que eran los contrails para rebatir la tontería de los chemtrails y ahora toca la parte que explica la misma tontería desde la perspectiva de la aviación.
En el momento de escribir esto (domingo, 10 de abril de 2019, sobre las 1500Z) hay volando sobre la Península Ibérica unos 355 aviones, mientras que en todo el mundo hay en vuelo más de 14.000 (sin contar aviación ligera, ULM, etc) Al norte de mi casa veo reflejado el EasyJet U27637 /EZY7637 Lisboa-Burdeos, un Airbus 320, me asomo a la ventana , miro hacia el norte … y allí están, en el rumbo indicado. La web parece estar correcta. Mientras escribo esto, veo que aparece otro, un Boing 737 que viaja de Stuttgart a Funchal con matrícula D-AUTZ. Es el vuelo TUI74K que va por la misma aerovía en sentido contrario. El viento ha hecho desplazarse ligeramente la estela dejada por el vuelo anterior. La web flightradar parece que funciona razonablemente bien.
Ahora vamos a ver como funciona un avión. A grandes rasgos un avión es un sistema que tiene un motor que empuja el aparato hacia adelante, dispone de unas superficies de sustanciación que “empujan” el avión hacia arriba y lo hacen avanzar. Si el avión no avanza, cae como una piedra, si el empuje es mayor que el peso el avión sube, si es menor baja. No es muy complicado, al final, son las gallinas que entran por las que salen. Si quieres más datos, aquí te lo explico mejor:
El avión es un sistema dinámico, quema combustible con lo que reduce su peso y precisa ir ajustándose cada poco para mantener el nivel de vuelo, pero eso ahora ya lo hace el piloto automático, así que los aviones van por donde deben ir. El asunto es que un avión no puede ir por donde le salga de las narices, o al menos, no lo puede hacer al mismo precio que por la zona por la que se ha diseñado. Es decir, si cogemos un Airbus A320 y lo hacemos volar a 10.000 pies de altura a 300 nudos de velocidad la cantidad de combustible que quema es brutal, sobre todo en comparación con lo que consumiría si volara en sus parámetros, es decir, estos aviones tienen la aerodinámica, motores y todo lo demás para volar entre 10 y 11.000 metros de altitud y a una velocidad determinada (suele ir de MACH 0,8 a 0,95) fuera de ahí el rendimiento cae en picado. Por eso los aviones suben a todo trapo para alcanzar su altitud de crucero, para llegar en seguida al punto donde el consumo es mínimo. Puedo parece pesado con el tema del combustible, pero un Airbus 320 lleva hasta 27.000 litros de combustible (7.190 galones) que al bonito precio de 1,57 € por galón (www.indexmundi.com/es/precios-de-mercado/?mercancia=gasolina-de-aviaci) hacen nada menos que 11.288,3 € para llenar el depósito. Eso daría en teoría para hasta 7.800 km, con lo que andamos por los 1,44 €/Km solo en combustible. El avión para ser rentable debe volar lo más posible, al parecer anda por los 8,600 km al día, con lo que el consumo diario en combustible son 12,500 € por avión (es la media de un A320) Como dijimos antes, hoy estaban volando 14.000 aviones, hablamos de un gasto de aproximadamente 175 millones de euros diarios, casi 65.000 millones de € al año.
Si nos ahorrásemos un 2% estaríamos hablando de casi 1.300 millones de euros sólo en combustible. Supongo que entra dentro de lo lógico el pensar que el tema del consumo preocupa y mucho a las compañías aéreas, con l suyo es buscar optimizar el consumo y aquí se cae el primer argumento magufo:
-         Nos fumigan. Hemos que en un solo día solo los 355 aviones que sobrevuelan la Península gastan en combustible 4,4 millones de euros. Si esta “fumigación” la extendemos por ejemplo … 100 días nos vamos a 440 millones solo en combustible, luego mete amortización del avión, tripulación, derechos de aeropuerto, etc …. Sin contar el “sofisticado” agente fumigador la cosa debe ser 10 millones al día, solo para España. Si pillamos EEUU que es una 20 veces España la cosa se va de madre.
Hemos visto el tema del combustible, que es caro, pero luego los magufos dicen que para que no lo sepan los pilotos “mezclan las mierdas esas con el combustible” Pues es el segundo argumento que se cae. Los motores están pensados para funcionar con una relación de aire/combustible determinadas. El alterar estos parámetros produce dos problemas:
  • Falta de potencia.
  • Comportamiento distinto en la temperatura. Esto canta más en los motores de explosión. A medida que se sube el aire tiene menos densidad con lo que aporta menos oxígeno (a 11.000 metros la presión del aire es la cuarta parte que a nivel del mar, simplemente, llega la cuarta parte de la masa de aire) con lo que hay que empobrecer la mezcla. Si se baja por debajo del punto estequiométrico (una relación aproximada de 14:1 entre aire y combustible) el motor se calienta. Por encima de esa relación el motor se enfría y pierde rendimiento.

Entonces pasan dos cosas:
  • O siempre hay mierdas magufas con lo que los pilotos no notan el efecto de las mismas, cosa que los mismos magufos dicen que no porque no siempre las hay.
  • Unas veces el motor va mejor y otras, peor, cosa que no pasa.

Con lo que el segundo argumento magufo se va al garete.
Luego tenemos que ver lo que miden la estelas. Con un poco de trigonometría podemos saberlo, de hecho, ya lo descubrió un tal Pitágoras hace unos cuantos años. Supongamos para regocijo magufo que la Tierra es plana. Si vemos un avión podemos trazas un triángulo rectángulo imaginario (vale, la Tierra no es plana, pero para estas distancias sirve la suposición
Sabemos que el avión vuela de 10 a 11 km de altura, sabemos el ángulo (o podemos medirlo) de visión desde el horizonte y queremos medir la separación horizontal al mismo. Pues la trigonometría nos dice que el cateto adyacente (distancia) partido por el cateto opuesto (altura) son da la Cotangente del ángulo que tenemos sobre el horizonte. Pero como la calculadora no suele dar la Cotangente podemos usar el inverso y la distancia la obtenemos al dividir la altura por la tangente de alfa.
¿Qué resultado obtenemos? Pues cuando vemos un avión con un ángulo de unos 20 grados sobre el horizonte lo tenemos a unos 37 km aproximadamente con los que una estela que vaya de lado a lado pasando sobre nosotros medirá unos 74 km, cosa que no está nada mal (sobre cuando los magufos te sacan 15-20 estelas que se forman a la vez)
Seguimos. Los aviones no forman una estela, forman dos, una en cada punta del ala y esas estelas suelen medir bastante más que la envergadura de los propios aviones que suele andar entre los 40 (Boeing 707) y los 60 metros (Airbus 330) cada una de ellas puede tener tranquilamente 80 metros de radio o más …. Lo que arroja un área de 20.106 metros cuadrado (PI * Radio^2 para los magufos) lo que multiplicado por esos 74 km da un volumen de 1.500 millones de m^3, o lo que es lo mismo 1,5 km^3 (ojo, cada estela) Como referencia, la capacidad actual de agua embalsada en España ahora mismo (marzo 2019) es de 32,5 Km^3.
Bueno, según esta santa gente esta estela es producida por mierdas químicas, vamos a ver lo que hace falta para ello.
Si echo 1 gramo (una proporcion en masa de 1:000 aprox) cada metro cúbico de estela necesito nada más y nada menos 1.500 toneladas por cada avión y cada estela de 74 km (recordemos que el Airbus de antes vuela 100 veces esa distancia) El mayor avión del mundo que vuela (no la mierda esa americana que voló una vez) pesa 285 TM …. Parece que no encaja la cosa. Si lo bajamos a 1 centigramo por metro cúbico (una proporción en masa de 1:100.000) siguen siendo 15 toneladas para 74 km …. Un A320 tiene un peso al despegue máximo de 78 TM, en vacío pesa 42 y lleva 27.000 litros de combustible (a 0,6 Kh/litro son 16 toneladas) …. Vamos que da para una estela (de 74 km) sin nada más, ni carga, ni pasajeros ni ná. Yo diría que esto no se sostiene.
Luego he mirado una serie de enlaces que amablemente un pardillo magufo puso en los comentarios buscando argumentos para contrarrestar … pero es que no hay por donde agarrarlos, mucha conspiración, mucha maldad … pero no da ningún dato de nada. Se limita poner fotos de equipos contra incendios como un 747 modificado para extinción como se ve en este vídeo:
Una de las fotos magufas que ponen son los tanques de agentes de extinción que se ven en el vídeo.
También sacan fotos de las toberas de expulsión de combustible, que se utilizan por temas de seguridad, cuando el avión pesa más que el peso máximo en el aterrizaje se expulsa el combustible para asegurar el aterrizaje y evitar problemas mayores (mejor que se queme menos combustible que más) pero vamos, que el botón de expulsar combustible está a la vista en la cabina, no es ningún secreto. El keroseno es volátil, se puede echar en la atmósfera que se evapora sin problema.

uando de verdad se quiere fumigar, se hace a baja cota o media cota, como hacen los aviones de fumigación o los de extinción de incendios o lo que en su día hizo EEUU con el agente naranja en Vietnam (esto no es una conspiración, esto está reconocido y documentado)
La conspiración de los chemtrails no se sostiene ni físicamente (imaginemos que un día todos los aviones se dediquen a la fumigación, sin embarcar ni pasajeros ni carga) ni económicamente (solo el coste en combustible es bestial, metamos ahora el coste del avión, el lucro cesante por no poder operar, el coste del producto, …) y lo más importante: estamos en un país de cotillas, intenta hacer que se callen los pilotos, personal de vuelo, de tierra, seguridad, transportistas, …. Joder, que mi número de licencia de piloto es la 41.XXX y tiene 11 años …. ¡anda que no hay gente implicada ni nada!
Como ya va siendo tarde, lo dejo ya, pero seguro que salen más argumentos de peso a poco más que se conozca un poco el mundo aéreo, pero esto era una cosilla pa un rato.

martes, 19 de marzo de 2019

Acerca de los chemtrails (Un poco de meteorología)

Esta entrada ya fue publicada por mí mismo en Menéame previamente como artículo, pero mira, como tengo el blog un tanto descuidado y como ya tengo el trabajo hecho, pues la pongo en mi blog también.

Como últimamente están de nuevo muy pesados con el tema de los chemtrails voy a intentar explicar el por qué es una tontería. Lo cierto es que no es muy complicado teniendo unos conocimientos básicos de meteorología.
Supongo que todo el mundo tiene más o menos clara la composición del aire:
  • - 78% nitrógeno 
  • - 21% oxígeno
  • - menos del 1% argón
  • - 0,035 % de CO2
  • - Otros gases ....

Por mucho que os digan "vamos a la sierra a por oxígeno" la proporción es la misma que en el medio de la ciudad, lo que cambia son las mierdas que acompañan al oxígeno y al nitrógeno.
La cuestión es que aparte de eso el aire es capaz de absorber vapor de agua y eso lo hace hasta cierto límite ¿te suena el concepto "humedad relativa"? Pues eso no es ni más de menos que la capacidad del aire de absorber vapor de agua y depende de la temperatura principalmente. El aire caliente absorbe más agua que el frío.
Cuando el aire se enfría "suelta" esas gotitas de agua en forma de nubes, niebla, hielo .... (aunque lo cierto es que también hay estados "especiales" que veremos después)
Un ejemplo de la capacidad del aire de absorber agua lo tenemos en las tormentas y huracanes caribeños. El aire recalentado de África llega al Atlántico donde se carga de agua y el viento les va "dando cuerda" y cuando llegan al Caribe sueltan toda esa energía y agua con efectos devastadores.
Bueno, volvamos a lo que nos interesa. Resulta que en superficie tenemos el aire que tiene su poquito de cada cosa y su % de agua (unos días más, otros menos) y le va dando el sol que lo calienta. Cómo debemos saber, el aire caliente pesa menos que el frío y sube y sube .... y nos encontramos con una cosa llamada proceso adiabático o lo que es lo mismo, no intercambia calor con entorno (léase otras columnas de aire) El aire al subir pierde presión (tiene menos aire encima que pese) y aumenta su volumen, lo que implica una bajada de temperatura de aproximadamente dos grados centígrados por cada 1.000 pies (unos 6 grados aproximadamente cada 1.000 metros) Esto se puede comprobar muy fácil en una bajada o en una subida prolongada (por ejemplo, en la autopista del Huerna, en su punto más alto son unos 1.500 metros y en Lena hay 311 metros, esos 1.200 metros producen un calentamiento si no hay cosas raras de unos 7-8 grados desde arriba abajo)
Tenemos el aire subiendo y enfriándose con lo que la capacidad de mantener una humedad relativa baja, baja, baja ... hasta que el aire se enfría y no puede retener las gotitas de agua y las suelta .... acabamos de formar una nube. Esto se puede apreciar muy bien un día de buen tiempo con nubes dispersas (cumulus humilis) cuya base se ve relativamente plana y todas a la misma altura (esto desde una avioneta, ULM, parapente, etc se ve de vicio) NOTA: no te molestes en mirar cuando está todo nublado, no tienes referencias y menos desde el suelo.
Cumulus humilis.

También es posible ver en días de tormentas dispersas unos cúmulos mucho mayores creciendo altura a lo bestia (cumulonimbos) que suelen traer las tormentas. Si te fijas las puedes ver crecer hacia arriba (lo mejor es tomar una cámara y hacer un timelapse)
Pues resulta que las nubes se llevan el exceso del agua que el aire no puede retener a cierta temperatura (cada vez menor) pero no toda ... que baje la humedad relativa no quiere decir que sea cero, sigue habiendo humedad en el aire, aunque mucha menos.
Y el aire sigue subiendo y a medida que sube, la atmósfera está más tranquila, está mas lejos de la tierra con sus irregularidades y la cosa está más tranquila ....tanto que puede pasar sin miedo el punto donde debería condensarse ... nos encontramos con un curioso fenómeno llamado superenfriamineto (en la wiki: sobrefusión) es decir, que debería ser hielo y sigue siendo vapor, está en un estado de equilibrio muy delicado. Algo parecido puede pasar en la superficie, una cantidad de agua superior al punto de condensación (punto de rocío) y con una pequeña perturbación con un viento ligero se forma la niebla. Para llegar a ese punto que sobrepasa el punto de rocío hace falta bastante agua como un mar, río, lago, .... y temperatura acorde. Por ejemplo, en verano hace falta mucha más humedad que en invierno para formar niebla. Yo he visto nieblas bestiales en el Cantábrico en verano o en Valladolid en invierno.
Bueno, volvamos al lío. Tenemos un aire con humedad, a baja temperatura (a quien haya viajado en avión le habrán dicho que la temperatura exterior rondaba los -40ºC) y puede que haya agua superenfriada a la espera de que "algo" la precipite. En este vídeo puedes ver lo efectos curiosos del agua superenfriada.

A veces lo hace de manera natural y forma cirros, nubes muy altas, formadas de cristales de hielo y que tienen el aspecto de grandes sábanas muy tenues. Pero puede pasar otra cosa, que pase un avión que genera una estela turbulenta en las puntas de las alas (además ahora se han puesto de moda los winglet para minimizar la resistencia inducida) lo que perturba la atmósfera. Esa estela puede durar varios minutos tranquilamente y no existe solo en altura, existe siempre que el avión está en vuelo, de hecho, en los aeropuertos cada vez que despega una nave "pesada" se debe esperar de dos a tres minutos antes de dejar despegar un avión ligero (a un Airbus Beluga se la suda lo que haya despegado antes) ya que podría incluso derribarlo (la velocidad de giro de la turbulencia supera la capacidad de alabeo del avión ligero)
Pues esa estela turbulenta es la que perturba el aire en ciertas condiciones y genera los contrails (lo que algunos llaman chemtrails) y su duración va a depender de la humedad del aire y de su temperatura (arriba, no en la superficie, claro) Además tengamos que en cuenta que los motores de los aviones queman keroseno cuya combustión produce CO2 + Agua (más vapor) y algunos restos de combustible no quemado, carbonilla, etc. Pues antes hablamos de aire superenfriado ... pues ese aire no está esperando más que una "semilla" a la que pegarse para condensarse y formar gotitas. Si conoces el principio de una cámara de niebla, es el mismo, pero con partículas mayores.
Ahora que sabemos cómo se forma la estela, pasemos a un segundo punto, en cómo se forman esas figuras en el cielo en forma de líneas paralelas o incluso dameros. Esto es de lo más sencillo: los aviones no pueden ir por cualquier lado, deben seguir unas rutas llamadas aerovías. Si esa aerovía tiene un poco de viento lateral la estela se va desplazando hasta que pasa otro avión que "la pinta" de nuevo que a su vez se va desplazando de nuevo formando las líneas paralelas unas veces, escaleras otras o si se cruzan dos aerovías, el damero. Date cuenta que todo esto está a entre 10-11.000 metros de altura, visibles desde 40-50 kms fácilmente (eso se calcula por simple trigonometría) 

Para finalizar, no todos los aviones dejan la misma estela. Los comerciales suelen dejar una estela bastante espectacular, otros más pequeños como los cazas la dejas mucho más pequeña (a lo mejor el tener la tercera parte de envergadura ayuda) y la altura influye mucho, podemos ver a un avión arriba formando una estela y otro mucho más bajo que no y para un ojo no avezado a la aviación como los maguferos chemtraliacos y sobre todo sus seguidores es muy complicado estimar medianamente bien la altitud de un avión. Hay que conocer algunos datos como la longitud y envergadura del avión, altitud de vuelo, elevación del terreno, ...
Un último detalle: esto es un resumen muy básico de meteorología, hay muchas cosas que no he descrito que pueden hacer que cambien el comportamiento de la atmósfera como puede ser una inversión térmica (antes dije que el aire caliente sube y el frío baja ... pues hay veces que la capa de aire frío se queda sobre la caliente y no baja) y sin saber todos los datos pues a veces se pueden ver cosas que no encajan (por ejemplo, dos días meteorológicamente similares en superficie y en altura el comportamiento es distinto)
Espero haber arrojado un poco de claridad. Si esto ha parecido interesante haré otro desde la perspectiva de la aviación para ver lo absurdo de esta teoría.

domingo, 11 de febrero de 2018

Volando un dron (nivel novato)

Seguimos con los drones. Ya en la entrada anterior comentamos el tema legislación que aunque tiene cosas bastante lógicas (no se te ocurra volar en las inmediaciones de aeropuertos) hay otras que se pasa cuatro pueblos, como el no poder volar un dron en una CTR bastante por debajo de por donde vuelan los aviones. Por otro lado, se ven operaciones comerciales de drones que a la legua cantan que se han saltado todas las normas de seguridad (solo hay que buscar fotos de drones sobre concentraciones de gente, ciudades, etc) o directamente, animales que ponen en riesgo a otros, como el animal del aeropuerto McCarran el Las Vegas.

Por el momento, voy a dejar de lado el tema legislación y vamos a ver un poco como vuela un chisme de estos, para evitar problemas con gente que no tiene mucha experiencia. Hay un detalle a tener en cuenta, yo vengo del mundo aeronáutico, así que si buscas algo más en detalle referido más bien al mundo de aeromodelos, igual esto no es lo que buscas, pero si te quieres pillar un dron porque te molan los vídeos y las fotos que hacer y no tienes mucha idea, pues esto puede ser para tí, con independencia de que busques en más sitios (muy recomendable)

Como siempre, recordarte que aquí hablo de los cuadricópteros dedicados a tomar imágenes en plan aficionado, esto no está dedicado a operadores del DJI Inspire (ojalá me diera el presupuesto) o a drones de carreras o aeromodelos. Esto va más bien a gente que se quiere pillar un DJI estilo Phantom, Mavic, Spark, Xiaomi Mi Drone o similares y no tiene mucha idea o piensan que estas cosas son marcianos.



Lo habitual en este tipo de entrada es empezar hablando de aerodinámica (si estás intrigado pasa por aquí) mecánica de vuelo y demás ... y lo cierto es que estos chismes, aerodinámicos, lo que se dice aerodinámicos ... como que no son. En realidad son un ladrillo (la batería) a la que se le pegan cuatro motores, dos pares de hélices contrarrotantes (para eliminar el efecto del par de la hélice) un GPS lo que unido a una electrónica que hace 10 años pensaríamos que era magia y que permite hacer maravillas sin mucha experiencia. Encima, estéticamente, recuerda a una araña que hace ruido (aunque los hay que han mejorado mucho estéticamente últimamente) Así que no te agobies. El chisme, si quieres, despega solo (no es que sea muy complicado hacerlo) y puede aterrizar solo (tampoco es que sea muy sofisticado) y lo mejor que tienen es una función de Return To Home que te lo deja a escasos dos metros del punto de despegue ¿que no te lo crees? Pues mira:


La cuestión es que estos chismes son una gozada pero hay que tener cuidado. Suelen pesar de 700 gramos a kilo y pico y pueden ser bastante rápidos, bastante más de 50 kms/h lo que se traduce en una energía cinética de alrededor de 200 Newtons, que es algo así como el 40% de la energía que tiene en boca una bala de 9mm. Eso sin contar con que lleva unas hélices dando vueltas que pueden hacer pupa. El andar haciendo gracietas con la gente y un trasto de estos no mola nada.

Entiendo que más o menos queda claro que no es un juguete ¿verdad? Pues tras haber revisado la Primera Ley de la Dronetica vamos a ir con la Tercera y el FPV.

El FPV significa First Person View y es una de las cosas más sorprendentes que tienen estos chismes. Al final, por un lado, desde el mando envías las órdenes al dron (voy a dejar de escribirlo acabado en -e, porque creo que en español ya se ha generalizado la palabra dron) y por otro canal (WiFi o similar) la señal de vídeo. Para un vuelo tranquilito y con visión directa no suele haber problemas, pero cuando complicamos un poco la cosa .... a lo mejor el FPV no funciona como queremos. Por un lado, hay que tener en cuenta que puedes tener LAG (un retardo entre cuándo lo emite el dron y lo recibes tú) que en algunas ocasiones puede llegar a segundos ... y que en situaciones un poco delicadas (ramas, árboles, obstáculos en general) pueden hacer que tu caro juguete acabe en el suelo o cause daños a alguien. También puedes tener interferencias. Yo he volado a la máxima altura y distancia legal son ningún problema, pero sin tener nada en el medio. Si ahora lo alejas y lo pones bajo, ten en cuenta que puede haber obstáculos que además de afectar a tu línea de visión (te recuerdo que es obligatorio tenerlo a la vista siempre) pueden afectar al FPV dejándote ciego por partida doble. Lo mejor que te puede pasar en este caso es que el chisme ejecute un RTH y vuelva al punto de partida.

Otro problema de la adicción al FPV es que pierdas el control del dron y este aterrice (por ejemplo, por batería baja) en un punto alejado (ya no hablo de kms) y tengas que ir a buscarlo son saber dónde. Vamos a hacer un cálculo rápido. Suponte que has perdido el dron y sabes que estaba a unos ... 400 metros. Sabes la dirección aproximada, pero no con precisión, vamos a darle un ángulo de 15º a cada lado (30º en total) Pues si le damos un margen de 30 metros más adelante y atrás de esos  400 metros resulta que tienes un área de búsqueda de 60x200 metros de lado ... 12.000 metros "tan solo" para buscar tu aparato. Si es un área despejada, pues bien, pero si es una zona con monte bajo, matorral, helechos, etc ...la cosa no es tan sencilla ¿crees que exagero? Pues mira lo bien que lo encuentra éste piloto y mira que sabía con bastante precisión dónde podía estar su aeronave (sobre el minuto 7)


Voy a terminar con otro elemento de considerar a la hora de ciudad tu dron: las baterías. Vale que vivimos en un mundo repleto de baterías (móviles, aspiradores, ordenadores, cámaras, ...) y los drones no son una excepción (antes usaban motores de gasolina, pero los eléctricos son más baratos y versátiles) pero ojo que estas baterías no son de iones de litio (LiIon), sino de polímeros de litio (LiPo) y son bastante más delicadas. Lo primero, es que como dejes que se agote por debajo de cierto porcentaje (10-15%) te habrás cargado la batería y lo mejor es desecharla (no querrás que se caiga tu dron desde 50 metros por falta de batería) por lo que cuando llegas en torno al 30% te recomiendan volver a casa (depende de lo lejos que estés a lo mejor es antes) y con el 15% aterrizan solos (donde estén) Y por cierto, no son baratas (en torno a los 70 pavos las del Xiaomi, 120-130 las de DJI) y al parecer son delicaditas (no les gusta ni el frío, ni mucho calor, pueden arder ...) Si no tienes muy claro cómo tratar tus baterías busca un foro de modelismo que te darán mucha información.


martes, 6 de febrero de 2018

Las tres leyes de la drone-tica.

Hay que reconocer que este año me he propuesto escribir más y procrastinar menos a pesar de lo que dice ese refrán tan español: no hagas hoy lo que puedas dejar para mañana; así que aunque no tengo nada pensado, pues me siento al teclado y a escribir -- ¿seguro que no tienes nada pensado? -- Pues no, de hecho, todavía no he puesto ni el título, estoy escribiendo este párrafo para ver si se me ocurre algo.

Vamos en serio, de verdad que no tenía ni idea acerca de lo que podía escribir, así que mira, aprovechando que sus Majestades de Oriente (bueno, no estoy muy seguro de que sea cosa de sus Majestades, pero de Oriente, viene fijo) me han traído un aparatito que a mucha gente le mola y estoy seguro que ha comprado: un drone.

Por si alguien duda si viene o no de Oriente.

La idea de este artículo y de unos cuantos más que saldrán es ayudar a los principiantes en este tipo de chismes, en concreto en estos drones orientados a la fotografía (drones domésticos, drones de carreras y similares, olvidaos de ello) principalmente es temas de vuelo (como ya he dicho anteriormente, yo tengo experiencia de vuelo como piloto de aviones (-- ¿esas chatarras que volabas son aviones -- Sí, lo son. Vale que no son caza a reacción, pero se les considera aviones y a efectos de legislación y operación lo son)

En este blog no me voy a dedicar a hacer un unboxing del dron (los hay a patadas y mucho mejores que los que yo pudiera hacer) ni enseñarte los procedimientos de arranque y configuración (por lo mismo) pero sí te voy a enseñar a no hacer el indio y quedarte sin el juguete y sobre todo, a que no te metan un multazo y/o hacer daño a nadie ¿estás listo? (-- No ¿puedo irme a dormir? -- No hablo contigo) Pues empezamos con algunos conceptos que debería conocer antes de nada.

Drone. Básicamente un drone es un chisme pilotado a distancia, sea una cosa vuele, ruede o navegue, aunque últimamente se ha quedado asociado a una tipo de aparato con hélices, por lo general un cuadricóptero (aunque podría tener más hélices) aunque también los hay de ala fija. Antes se les llamaba "aviones de radio control" o aeromodelos; los primeros que yo vi iban "sujetos" al piloto por un par de cables que controlaban el timón de profundidad y sólo podían volar en círculos. Por lo general llevaban motorcillos de gasolina y eran bastante caros y fácilmente hostiables de manera catastrófica; vamos que he oído hablar de más de uno que no pasó del vuelo inaugural. Luego empezaron a meter motorcillos eléctricos en algunos. Pero para lo que nos interesa, esto es un RPA o lo que es lo mismo, un Remotely Piloted Aircraft (en esto de las cosas que vuelan el inglés en la lengua franca) El problema viene por lo que viene a continuación.

AESA. Esto es la Agencia Española de Seguridad Aérea y es la encargada de regular las cosas que vuelan, incluidos los RPAs, tanto de uso profesional como de uso recreativo (que es mi caso) y, por variar, la legislación suele ir un tanto por detrás de la realidad. La AESA no es una agencia que se caracterice por facilitar las cosas a la gente de la aviación y con el tema de los drones, pues tampoco va a hacer una excepción (supongo que tampoco le deben sobrar ni recursos ni presupuesto para hacer cosas) y se ha puesto a regular como si fueran aviones, sin tener en cuenta la naturaleza de estos cacharros. Teoricamente, se basan en la seguridad, pero hay muchas lagunas y cosas con poca coherencia en lo que dicen, aunque en su descargo, hay cosas heredadas de otras épocas. También hay que decir que tampoco hay legislación en otros países para basarse en ella (al parecer la ley canadiense es tan restrictiva que casi no permite volar) A finales de 2017 ha actualizado la legislación.

CTR. Si no vienes del mundo de la aviación en algún sentido seguramente esto no se suene pero querida o querido piloto dronero ... esto te afecta y mucho más de lo que te crees ya que resulta que según el BOE los drones:

a) Sólo podrán operar en zonas fuera de aglomeraciones de edificios en ciudades, pueblos o lugares habitados o de reuniones de personas al aire libre, en espacio aéreo no controlado, más allá del alcance visual del piloto, dentro del alcance de la emisión por radio de la estación de control y a una altura máxima sobre el terreno no mayor de 400 pies (120 m.)

En principio lo de fuera de aglomeraciones de edificios tiene su lógica, si hay algún problema y el drone se cae podría provocar daños, lo de reuniones de personas, también. Un trasto de estos que puede pesar kilo y medio fácilmente cayendo desde varias decenas de metros sobre por ejemplo, un campo de fútbol (y si no te lo crees, mira este vídeo) lo del alcance visual, también tiene su lógica, aparte de los daños, si se vae, vete a buscarlo a medio kilómetro si no sabes donde cayó pero el problema es lo de "espacio aéreo no controlado"


Mientras que en otros países, el tráfico aéreo es relativamente libre, aquí está muy restringido con unas CTR bestiales. Por ejemplo, en Valladolid, hay un área restringida de 25 millas. Salamanca y León, han bajado un poco, que eran similares. En Madrid, casi todo es CTR. Se puede apreciar en esta captura obtenida de IcarusRPA.

En  las partes amarillas teóricamente no puedes volar un drone.
Es completamente lógico restringir el tráfico de drones en las inmediaciones del aeropuerto (no hay que hacer lo de este vídeo) y hay que tener en cuenta las rutas de aproximación, salida, circuitos, etc ... vamos, que no se puede volar a menos de 7 kms del aeropuerto, lo que no es normal es que no puedas volar un chisme que no pase de 10 metros de altura (los drones baratitos que se controlan desde el móvil) en Medina de Rioseco o en Palencia (que están dentro de la CTR)



Si quieres volarlos legalmente, deberías comunicarte con AESA, pedir permiso, entiendo que coordinarte con torre (dudo mucho que desde el suelo puedas comunicarte por radio con Villanubla) .. un despropósito. Algo similar ocurre en León, Avilés, Salamanca, .... 

Por otro lado, un dron no puede pasar de 400 pies (120 metros sobre el terreno) y curiosamente, los aviones, no deben bajar de 500 pies sobre el punto más alto de la cuadrícula (sale en el mapa) o 1.000 sobre el terreno, con los que salvo en las inmediaciones de los aeropuertos hay un margen de seguridad que está bien pensado.

En sucesivas entradas ya iré contando más cosas que para no tener claro de lo que iba a hablar, ya se está haciendo largo. De hecho, mi intención era definir las tres Leyes de Dron-ética (-- Eso me suena a plagio de Asimov --- Que no, que es cosa mía) 


Primera Ley de la Dron-etica. Un drone no hará daño a un ser humano, ni a sus propiedades (ni a las públicas) ni a su intimidad (nada de espiar piscinas ajenas o a gente en bolas tomando el sol) ni tocará las narices a los bichos y/o animales (vamos, que no se dedicará a tocar las narices a los rebaños de vacas para provocar estampidas, asustar a perros, aves, ...)
Segunda Ley de la Dron-etica. Un drone debe cumplir las órdenes dadas por los seres humanos, a excepción de aquellas que entrasen en conflicto con la primera ley (y si no lo implementan todavía, deberían)
Tercera Ley de la Dron-etica. Un robot debe proteger su propia existencia (ya sea mediante funciones como RTH, GPS, sensores de proximidad, ...) siempre que no entren en conflicto con la primera (si te lo tumban por hacer el indio e incordiar, te jodes) o la segunda ley (si le metes en sitios raros y lo fostias, pues se aplica el artículo anterior)


Como creo que esto ya se está haciendo largo, como dijo MacArthur ... volveré con el tema.

--- ¿No hay primera ley para los bloggers pesados? 


jueves, 18 de enero de 2018

Posibles consecuencias de Meltdown y Spectre

Tras el revuelo que se montó con las dos vulnerabilidades que se detectaron estas navidades (bueno, unos meses antes) que ya analicé en las dos entradas anteriores, quisiera hacer una reflexión acerca de lo que en realidad son los sistemas modernos de vulnerables o no.

Lo primero que hay que decir es que sí, que todos los sistemas de los últimos 10 años son vulnerables y lo van a ser hasta que se solucione el problema y se cambien las CPUs por otras nuevas. Esto incluye a Intel, AMD, ARM, Power y todas las CPUs con ejecución especulativa (o como leñe se traduzca al español y que no suene tan mal) Si quieres uno seguro, los SPARC con encriptación de la memoria por HW.

Ahora la cuestión ¿cómo de complicado es explotar estos fallos? Pues ahí tengo una buena noticia: es muy complicado, lo que no quiere decir que te quedes tranquilo del todo, pero por lo menos, no vamos a morir todos esta semana (y la que viene, seguramente tampoco) pero tampoco que extrañaría que en un tiempo, alguien sea capaz de sacarle jugo.

Hay gente que saca provecho de todo .. hasta de los cuadro de Kandinsky

Meltdown, aparte de afecta únicamente a Intel (los AMD lovers están de enhorabuena) se puede parchear con el parche KPTI o KAISER que lo que es separar los datos de kernel y de usuario en dos espacios de direccionamiento diferente con lo que un intento de acceder a la parte protegida es infructuoso. Lo malo es que obliga a cambios de direccionamiento y el impacto en el rendimiento es negativo, no tanto como se decía inicialmente y mucho mayor en CPUs y sistemas operativos antiguos como Windows Server. No hay mal que por bien no venga ... se puede forzar la renovación tecnológica (cada vez que veo, en 2018 peticiones de nuevas máquinas con Windows 2008 se me revuelven las tripas) Respecto a SPECTRE, no hay paliación, pero le pasa lo mismo, si no le ofreces los datos en el mismo espacio de direcciones no puede acceder a ellos.



Por otro lado, ninguno de estos agujeros puede escribir en ninguna parte, sólo pueden leer, así que no debemos temer que nos inyecten código malicioso, pero si podrían pillar claves privadas, usuarios y otros datos delicados y confidenciales que deberían estar protegidos. Aquí tenemos que tener en cuenta dos cosas:
  • Aleatorización del espacio de direcciones. En el pasado los sistemas operativos tenían un mapa de memoria más o menos fijo y yendo directamente a posiciones de memoria se podían obtener resultados en concreto (la memoria de vídeo, el stack, variables del sistema, etc) De hecho, muchas veces se programaba directamente pensando en estas direcciones con el fin de mejorar las prestaciones. Eso ya no es así, pero una parte la memoria está "virtualizada" (los programas tienen mapas de memoria propia que se copia en memoria real) y se ha incorporado un elemento "aleatorio" a la hora de distribuir la memoria del kernel, de manera que no está siempre en las mismas posiciones, lo que dificulta el acceso a determinados áreas del sistema. No es lo mismo crear un virus que saque datos de unas posiciones determinadas que no uno que tenga que buscar primero.
  • Mapa de memoria de MS-DOS
  • La velocidad de acceso a los datos de estas vulnerabilidades es relativamente escasa. Según he leido, 500 KB/s en el caso de Meltdown y 10 KB/s en el caso de SPECTRE. Eso significa que si tenemos que extraer y analizar 1 MB de datos tardaremos 100 segundos en el segundo caso en el mejor de los casos y haciendo un impacto en el sistema que nos estaría gritando "¡eh! ¡que estoy aquí putenandote el ordenador!" y la cosa no es así ¿verdad? queremos ser discretos. Si para un 1 Mb necesitamos 100 segundos, para 1 GB que son 1024 veces más como que la cosa no parece eficaz (el PC desde el que escribo tiene 16 GB, son 455 horas de análisis si no me he equivocado)

Como ya hemos dicho que no se permite escribir, hay que utilizar otras maneras de entrar en los sistemas, bien vía troyanos, vulnerabilidades de otros componentes ... o desplegando una VM con código malicioso que afecta a las nubes públicas (por eso se han dado tanta prisa en desplegar los parches) 

Pero por no estar en una cloud pública o tener KPTI instalado no vas a estar seguro. Quizás no te puedan acceder a claves privadas en el kernel pero por ejemplo, si te pueden meter un keylogger y capturarte passwords como muestra el vídeo.




Para resumir: El riesgo existe aunque la manera de protegerse también y es relativamente sencilla:
  • Mantén el sistema operativo actualiza. Evita los sistemas operativos antiguos que no tienen parche de seguridad.
  • No te instales software de orígenes dudosos.
  • Ojo al spam, phising, troyanos, etc
  • Mantén el antivirus actualizado.
  • No sería mala idea encriptar el HD (perjudica a las prestaciones)
  • Tomate el ordenador en serio, sobre todo si lo tienes conectado a Internet (cosa que haces ya que si no, no estarías leyendo esto)
  • Ojo con los android que las apps las carga el diablo (IOS creo que es un poco más seguro, pero hay que tener cuidado también)

lunes, 8 de enero de 2018

SPECTRE. Recuperación del dato. Entre lo sutil y lo diabólico.

En mi entrada anterior hablé de cómo MELTDOWN y SPECTRE burlaban los mecanismos de protección de las CPU para llegar áreas protegidas pero la cuestión era ¿cómo podía recuperar el dato? -- como si a alguien le importara -- (le voy a dar a la voz en off) 

Si analizamos el comportamiento predictivo de la  CPU resulta que por un lado, puede ejecutar comandos de forma desordenada ... vale, pero si por un casual atacamos una posición de memoria protegida no la podemos dejar en ningún sitio  -- claro zoquete, por eso está protegida -- ni en un registro ni en una posición de memoria pero resulta que sí podemos averiguar su valor por medio ... sutil, como diría el maestro ... con indirectas.



Pues antes de contar cuál es ese medio, voy a explicar un poco en detalle cómo funciona una caché -- si ya sabía yo que éste si no soltaba el rollo no se quedaba a gusto --- Las CPUs son rápidas, muy rápidas pero las memorias, aunque lo parezcan, no lo son tanto y por ello metemos en medio unas memorias mas rápidas llamadas cachés que aunque no son tan rápidas como los registros son mucho más rápidas que la memoria. Con el fin de optimizar el acceso a esa memoria, cada vez que hay que ir a buscar un dato a la memoria no se copia ese dato solo a la memoria, sino que se copia una cosa llamada línea que dependiendo de la arquitectura, es un número de de bytes determinados. En el caso de las CPUs de Intel que uso ahora son 64 bytes como se puede apreciar. Es decir, yo pido un byte y si hay un fallo de caché, va a la memoria y trae 64. Como la probabilidad de que pida bytes adyacentes es muy alta, seguramente la próxima vez que pida otro dato distinto éste se encuentre en la caché.


¿Qué diferencia tenemos de que un dato esté o no en caché? Pues que tarde 400-500 ciclos de CPU en tenerlo o que tarde 200, un ahorro considerable.

Pues la idea de estas vulnerabilidades es aprovecharse de esto. Como ya he dicho previamente, la  CPU accede a datos protegidos pero no los puede dejar en ninguna parte entonces ¿cómo poder saber el valor de este dato? Pues de manera indirecta con dos cosas:
- Profundo conocimiento del funcionamiento de la CPU y cómo se maneja el manejo de páginas de memoria.
- Un array "gordo" que no quepa en una línea y que ocupe 256 páginas de memoria ¿por qué 256 páginas y no 128 bloques o cualquier otra cosas ....? Ahora lo verás. El ejemplo está sacados del whitepaper del meltdown attack.

Lo que voy a describir leerá un sólo byte de la memoria. si quieres leer por ejemplo, una clave de 2048 bits (256 bytes) pues primero tienes que averiguar dónde está y repetir el proceso de 256 veces. No es rápido pero acaba funcionando y si eres sútil, no te pillaran. Si entras a saco vas a joder todo el rendimiento del servidor y te van a pillar a la primera.

El código es el siguiente (como dije, está en el white paper de meltdown)

Previamente a hacer nada vaciaremos toda la cache mediante la instrucción CLFLUSH y cargamos en el registro RCX la dirección que queremos atacar (la protegida) y en RBX la dirección de memoria donde esté nuestro array de prueba. Como ya hemos dicho antes, tenemos que conocer el tamaño de página que se intercambia, en este ejemplo, 4096 bytes (la típica página de 4K de toda la vida)

¿Lo tenemos todo listo? -- pero ¿te crees que alguien ha llegado aquí? -- pues vamos a hacer magia. Cargamos en el byte más bajo del acumulador (recordemos que nuestros registros son de 64 bits) el byte que apunta RCX (línea 4) y multiplicamos ese valor que hemos cargado por 4096 (línea 5) -- ¿lo cualo que dices que has hecho? -- multiplicar por 4096 o lo que es lo mismo, desplazo hacia la izquierda 12 posiciones (el número hexadecimal 0x0C es el decimal 12) lo que equivale a multiplicar por 2 un total de 12 veces y como 2 elevado a 12 es 4096, ya tenemos ese valor. Y con ese valor que hemos obtenido, sumado al puntero del array que queremos acceder cargamos el dato (línea 7) Un avezado espectador diría, pero si, estás machacando el puntero original -- Oye, que estás machacando el puntero original -- (eso no vale, lo he dicho yo primero) Pues en efecto, pero el valor que tenga RBX ya no me importa porque ya he hecho la magia ¿ha quedado claro?

-- Pues no, no ha quedado nada claro -- pues te lo explico, voz en off. En este caso, estoy forzando una excepción (violación de acceso a la memoria protegida) pero me aprovecho de que esto se ejecuta de manera desordenada ... es decir, que antes de que salte la excepción, la CPU ha accedido al dato, ha ejecut a la línea 7 ... y ha deshecho todo lo que hizo porque no es válido ... no hay forma de acceder al valor RBX, ni al de RCX, ni a la posición de memoria ... o quizás sí -- ¿me estás vacilando -- Pues sí, te estoy vacilando un poco porque en realidad si ha quedado un rastro. Antes hemos dicho que tenemos un array del tamaño de 256 páginas (en este caso 4K cada una, un array en memoria de un Mbyte) y que previamente, hemos vaciado la caché. Utilizando como índice el valor protegido hemos accedido a una posición de memoria de nuestro array cuyo valor es irrelevante, la cuestión es que ha cargado en memoria una página de memoria y sólo una ¿cómo sé cual? Pues de una manera muy sencilla, voy consultando página por página (desde 0 hasta 256 leo un byte en la posición multiplicada por el tamaño de la página) y miro cuanto tiempo tarda la CPU en dármela. Dado que todas están en la memoria principal, tendrá que ir a por ellas y tardará un tiempo muy similar para todas la páginas menos para una ... aquella página cuya posición coincida con el valor leído previamente en la memoria protegida -- no me queda claro-- Pues seguro que si ves este gráfico te queda más claro.


Todos los accesos pasan de los 400 ciclos de CPU menos uno que se queda por los 200, ese el que hemos pillado antes y ¡voilá! hemos hecho magia, averiguando un valor sin poder acceder a él. si quiero más datos, pues nada, repito el proceso las veces que haga falta, que con paciencia y saliva el elefante ...

El mecanismo que uses para llegar a forzar este proceso puede ser como MELTDOWN (fuerza una excepción pero antes ya ha accedido) o jugando con la predicción (SPECTRE) o algún invento nuevo, pero lo interesante del caso es que no le veo una solución sencilla al menos sin perjudicar el rendimiento del ordenador. No sirve el separar en cachés los datos e instrucciones del anillo 0 y del 3 porque estás accediendo a los datos del anillo 3 y vas a dejar el rastro en la caché. El forzar flushes de la caché cuando se produzcan violaciones puede perjudicar a otros procesos (no olvidemos que la LLC está compartida por todos los cores y procesos) Seguramente habrá que reforzar de alguna manera el acceso a la parte protegida por HW, primando el bit de protección que al parecer ahora  no es lo suficientemente estricto.

-- ¿De qué anillos hablamos? -- De estos, que te lo hay que contar todo.




Pues ... eso es esto, amigos.

-- Anonadado me hallo ¿latita Whiskas pa celebrarlo? ---

viernes, 5 de enero de 2018

Meltdown, Spectre y la caché de la muerte.

Estos días se ha hecho pública una vulnerabilidad que se aprovecha de la arquitectura de caché de todos los ordenadores. Posiblemente lo que hayas oído es que todos los ordenadores son vulnerables y que no hay protección posible que eso canta mucho en las noticias y es sensacionalista a tope. Lo malo es que por una vez tienen bastante razón.

Vamos a ver lo que pasa y para ello toca un poco de - ¿rollo patatero? - pues en efecto (macaguenlavozenoff).

Vamos a ir por partes, que la cosa tiene tela (avisados estáis ... ¡huid insensatos!) Por un lado, hay que tener en cuenta una cosa llamada "anillos de ejecución" que se definen en los sistemas operativos, el nivel 0 es el del sistema operativo y es el más privilegiado. Luego van los drives y por último, las aplicaciones, con menos privilegios.


¿Por qué se hace esto? Pues para evitar que se monte el pifostio padre y que una aplicación pueda modificar cosas del sistema operativo o de otras aplicaciones como ocurría en sistemas operativos más antiguos o simplones como el MS-DOS donde todo era accesible por todo y un programa mal hecho (no hay programa infalible) te podía colgar el ordenador o hacer algo peor, meterte un virus. Éstos inicialmente eran para tocar las narices pero ahora, con todos los ordenadores conectados te pueden robar tus datos o utilizar tu ordenador para cosas raras desde minar criptomonedas o cosas peores.

La cuestión es que los UNIX/Linux, el IOS de Apple que está basado en UNIX, Android (basado en Linux) y por fin Windows no permiten el acceso de las aplicaciones a estos niveles, haciéndolos más seguros (Claro que si sigues usando 1234 como password importa tres narices) Últimamente los virus intentan entrar por dos vías:
- Engañando al usuario para que les "eleve" la prioridad y hacer de las suyas,.
- Aprovechando bugs del sistema operativo o de las aplicaciones.

Al final todo esto, con un poco de cabeza, un antivirus y no andando haciendo el indio, más o menos se palía.

Ahora viene la segunda parte (de este rollo, que siempre se te olvida) que va un poco de arquitectura. Resulta que los vendedores de CPUs hablan mucho de cores, GHz pero suelen omitir un pequeño detalle: el acceso a la memoria. Echemos un ojo a esta captura:


La velocidad de la CPU es molona, casi 4 GHZ ... parece un pepinaco de cuidado y lo es. Lo que llama la atención es cuando aparece un campo llamado multiplicador .... ¿qué es eso? A lo mejor debemos retarnos a la era de los 486, cuando había uno con los número 33/66 (yo tuve un 33/100) y eso significaba que mientras que el procesador funcionaba internamente a 66 MHz (si, tres órdenes de magnitud por debajo) el acceso a la memoria funcionaba a la mitad (33 Mhz) Pues con el tiempo, la distancia en velocidad entre las CPUs y la memoria se ha ido incrementando. En este caso te encuentras que la memoria funciona a unos pobres 103 MHz y el multiplicador es nada menos que hasta un x44. No obstante, la memoria también ha evolucionado. Por ejemplo, utiliza ambos flancos en la señal de reloj, lo que convierte la frecuencia en el doble, transfiere varios bits en cada flanco, tiene bastantes bits de ancho de banda, .... En concreto en este caso, la velocidad teórica es de 3605 Mhz (DDR4) pero esa velocidad es sólo cuando transmite ... el problema es cuando hay que ir a buscar el dato que nos encontramos con una cosa llamada latencia que significa que el procesador está parado a la espera de un dato ... y eso pasa mucho más de lo que te piensas.


¿Cómo podemos paliar esto? -- pero ¿acaso te piensas que nos importa? -- Pues de varias maneras (incluso todas a la vez):
- Aumentando el número de cores, lo que permite hacer cosas en paralelo.La potencia del procesador equivale al número de GHz por el número de cores.
- Aumentando el número de threads por core, lo que hace que si un thread está en espera, el otro pueda que haga algo. En este caso, mi CPU no tiene Hyperthreading, pero en otras el aumento aparente es aproximadamente un 30-40% del rendimiento de la CPU. En procesadores con más threads como los SPARC, es mayor.
- Metiendo entre la memoria principal y los registros de la CPU diversas capas de memorias, cada vez más lentas pero cada vez mayores. En este caso, cada core dispone de dos cachés muy rápidas y pequeñas, de 32 KBytes cada una, una para datos y otra para código (una especie de arquitectura tipo Harvard que contrasta con el resto de la máquina, que en Von Newman) luego una segunda caché (por core) de 256 KB que mezcla datos y código y por último, una caché de L3 compartida por todos los cores de 6 MBytes que es la mayor y más lenta, pero aún así, más rápida que la memoria principal. Al último nivel de caché (en este caso la L3) se la conoce como Last Level Caché (LLC) y es el tamaño de caché que se publicita.


¿Hasta aquí todo claro? (pues seguro que lo complica) Con el fin de optimizar el rendimiento de la CPU las cachés no sólo van cargando datos a medida que se piden exclusivamente, se carga un bloque adyacente de manera que si el dato que se pide a continuación está en ese bloque (suele pasar) ya lo tienes en la caché. Es decir, la CPU va como a tirones: procesa lo que hay en la caché hasta que se queda sin datos y los vuelve a buscar a la memoria, cuando los tiene, los procesa de nuevo.

Pues resulta que las instrucciones no se ejecutan sin más, sino que primero se decodifican, se cargan los datos y luego se operan. Al final, una sola instrucción implica varios ciclos de CPU pero resulta que en realidad, las CPUs son capaces de de ejecutar una o más instrucciones por ciclo ¿cómo? Pues por medio de pipelines que ejecutan estas fases en paralelo: una decodifica instrucciones, otra carga parámetros, otras operan, ..... Pues para rizar el rizo y con la ayuda del compilador, no solo hacen eso sino que son capaces de predecir el comportamiento del programa en hilos ... es decir, pueden ejecutar el IF y el ELSE a la vez y en función del resultado, aprovechar la rama de ejecución ya calculada y descartar la mala ¡la leche! ¿no?  De hecho es capaz de ejecutar las instrucciones de manera desordenada (o lo que es lo mismo, de una manera distinta a la que fueron escritas) para optimizar los recursos y luego ordenar los resultados. Por supuesto, para ello cada procesador precisa un compilador especialmente diseñado para él

Pues toda esta parafernalia que ha costado más de una década desarrollar al nivel actual es la causante de los problemas que han aparecido recientemente. Al parecer incluso el CEO de Intel ha vendido todas las acciones que ha podido de su compañía, quedándose tan solo con las mínimas exigidas para el puesto cosa que le puede costar las cárcel por uso de información privilegiada. En España le meterían de CEO en una empresa del IBEX 35.

Lo que ha aparecido son básicamente dos vulnerabilidades:


Intenta hacer un acceso a un área de memoria restringida. El nivel de protección del Sistema Operativo y del HW se lo impide, pero consigue aprovechar una debilidad de las CPUs Intel y acceder a cualquier posición de memoria protegida. Este problema se mitiga con un parche que si no ha salido saldrá ya conocido como KPTI (Kernel Table Page Isolation) o KAISER que mueve las tablas de memoria del Kernel. Lo malo es que al parecer puede ralentizar bastante los ordenadores, en especial los que se hacen uso intensivo de los cambios de contexto (cambios de nivel en los anillos) que son las nubes, equipos virtualizados, etc. Pero mejor que permitir que desde una VM se acceda a otra ¿no? Yo no descartaría que en futuro aparezcan variantes de Meltdown que busquen otros datos aparte de las tablas de memoria. De momento, sólo afecta a CPUs Intel.


Esta es una vulnerabilidad peor porque afecta as todos los procesadores y arquitecturas (Apple, Android, Windows, Linux, ...) y es debida a que las cachés son compartidas por todos los procesos que corren en un ordenador y en los ordenadores modernos, procesos, lo que se dicen procesos, corren un montón (en la imagen de abajo puedes ver una captura de lo que hay en mi PC ahora mismo y no tengo precisamente muchas cosas abiertas pero procesos, dice que hay 205 corriendo) El tema es que Spectre juega con el sistema de predicción, forzando la ejecución de código privilegiado en entornos no privilegiados. Es la más complicada porque no tiene prevención (al menos ahora) y con un simple javascript pueden acceder a datos que se encuentren en el mismo servidor (aunque pensándolo bien, en entornos multiprocesador sólo se podrían acceder a VMs que corrieran en el mismo procesador e incluso, en los mismo cores, eso va a depender si está en L3 o en L2/L1) La cuestión es que la cosa tiene mala solución. Lo bueno de Spectre es que es muy complicado el sacarle partido de manera maliciosa ahora mismo ... pero todo llegará.


Y para terminar ¿qué afectación vamos a tener? Pues lo grandes servidores de nubes, públicas o privadas van a tener un problema serio de vulnerabilidad y de hecho, ya se están intentando proteger, aunque sea a costa de perder un porcentaje importante de sus prestaciones (se habla de hasta un 30%) El cambio de arquitectura y CPUs a corto plazo es irrealizable, a medio ... pues ya veremos. Se irán paliando poco a poco estos problemas, se incorporarán mecanismos de seguridad en la caché y poco a poco se irán sustituyendo los ordenadores vulnerables (hoy, 5 de enero de 2018 son todos) pero dudo que antes de una década haya desaparecido esta amenaza completamente. el tema no es tanto producir chips como el desarrollar, probar y reemplazar una arquitectura que ha estado evolucionando por más de una década.

Teóricamente los ordenadores domésticos son menos "interesantes" a la hora de infectarlos porque ya está el malware habitual, pero yo no me confiaría demasiado.

A saber de quién será la voz en off.
Felices fiestas que me voy de celebración.


Armaduras.

He de reconocer que últimamente no me estiro demasiado en el tema bloguero este. Tampoco voy a molestarme en hacer propósito de enmienda so...