CEFIROS

Procesadores y sus vulnerabilidades

08.01.18 10:23 Por Marcos Caballero

Llevo varios días leyendo sobre estas vulnerabilidades hardware, y todos hemos visto con estupefacción como los principales fabricantes de Procesadores del mercado, Intel, AMD, Qualcomm, Apple, ARM, (es decir, casi todos los procesadores basados en CISC (https://es.wikipedia.org/wiki/Complex_instruction_set_computing), indican que todos sus procesadores tienen un fallo de diseño, con el cual cualquier atacante sería capaz de obtener información de las apps en ejecución, con el problema que ello conlleva.

Los principales fabricantes de S.O, indican que parchear el S.O puede suponer hasta un 40% de pérdida de rendimiento con el impacto económico y funcional que ello puede suponer. De momento todos los equipos basados en procesadores RISC o MIPS, están "libres" de estas vulnerabilidades hardware.

 

Los principales fabricantes de seguridad, Fortinet, Checkpoint, StoneSoft (Forcepoint) y todos aquellos que usen procesadores basados en x86 (o del tipo CISC), están afectados por estas vulnerabilidades, y aunque se puedan parchear los diferentes kernels de las diferentes plataformas, si ese parcheado supone una pérdida de rendimiento en los equipos tendremos un importante problema con difícil solución además del coste económico asociado.

¿Qué hacen estas vulnerabilidades?

Os dejo una tabla con las diferencias entre ellas y el enlace a Google Project Zero donde lo explican mucho mejor, pro básicamente es la escalación de privilegios desde un usuario que no tenga privilegios para nada, a recuperar información de la memoria que esté usando otro usuario o proceso (ojo con los VDI y sesiones de Citrix) (Fuente: http://bit.ly/2AFnyka)

Desde Cefiros, empresa en la que apostamos por tecnologías novedosas y diferentes, 2 de nuestro fabricantes pueden proteger a los sistemas del impacto de estas vulnerabilidades, HillStone al estar basado en procesadores MIPS/RISC (Nota del fabricante: http://www.hillstonenet.com/blog/statement-on-vulnerability-hillstone-networks-does-not-use-intel-processors-in-its-ngfw/), y ENSILO con la capacidad de evitar la ejecución de cualquier programa que quiera explotar la vulnerabilidad del equipo, sin necesidad de parchear el propio sistema (Nota del fabricante: http://bit.ly/2CBsGHS)

 

Con esto, los sistemas no pierden en rendimiento, y están totalmente protegidos de estas amenazas y cualquier otra que pueda existir, teniendo una funcionalidad de protección POST -Infección, que es capaz de proteger al equipo, aunque este esté infectado.

 

Mucho se dice sobre que los equipos del fabricante tal o cual, están afectados pero mitigados desde las diferentes compilaciones de su kernel, pero leyendo varios artículos sobre el tema, vemos que muchos de nosotros damos por sentado que todos los niveles de kernel, sean en el sistema que sean, son independientes, y que los sistemas de seguridad son mas robustos, pero cuando alguien plantea el mismo esquema pero con un punto de vista diferente, y demuestra como las diferentes capas o anillos del kernel son totalmente conectables unas con otras, o permeables desde la capa de usuario hasta la capa 0 (https://en.wikipedia.org/wiki/Protection_ring) y por lo tanto dejándonos desprotegidos ante cualquier fallo, sea software o hardware como es el caso que nos ocupa.

Comparación entre sistemas RISC/MISP y CISC (x86, motorola 68000….)

 

  RISC

CISC

Acronym

It stands for ‘Reduced Instruction Set Computer’.

It stands for ‘Complex Instruction Set Computer’.

Definition

The RISC processors have a smaller set of instructions with few addressing nodes. 

The CISC processors have a larger set of instructions with many addressing nodes.

Memory unit

It has no memory unit and uses a separate hardware to implement instructions.

It has a memory unit to implement complex instructions. 

Program

It has a hard-wired unit of programming.

It has a micro-programming unit.

Design

It is a complex complier design.

It is an easy complier design.

Calculations

The calculations are faster and precise.

The calculations are slow and precise.

Decoding

Decoding of instructions is simple.

Decoding of instructions is complex.

Time

Execution time is very less.

Execution time is very high.

External memory

It does not require external memory for calculations.

It requires external memory for calculations.

Pipelining

Pipelining does function correctly.

Pipelining does not function correctly.

Stalling

Stalling is mostly reduced in processors.

The processors often stall.

Code expansion

Code expansion can be a problem.

Code expansion is not a problem.

Disc space

The space is saved.

The space is wasted.

Applications

Used in high end applications such as video processing, telecommunications and image processing.

Used in low end applications such as security systems, home automations, etc.

BASIS FOR COMPARISON

RISC 

CISC

Emphasis on

Software

Hardware

Includes

Single clock

Multi-clock

Instruction-set size

Small

Large

Instruction formats

fixed (32-bit) format

Variable formats (16-64 bits per instruction).

Addressing modes used

Limited to 3-5

12-24

General purpose registers used

32-192

8-24

Memory inferences

Register to register

Memory to memory

Cache design

Split data cache and instruction cache.

Unified cache for instructions and data.

Clock rate

50-150 MHz 

33-50 MHz

Cycles Per Instruction 

One cycle for almost all instructions and an average CPI < 1.5.

CPI between 2 and 15.

CPU Control

Hardwired without control memory.

Microcoded using control memory (ROM).

Créditos

Google project Zero

Gracias a Alister Whitehat

HillStone Networks

Ensilo

Intel

ARM

AMD

Wikipedia

Marcos Caballero