2023/12/03

Para leer Emerging Topics in Hardware Security - General

Esta nota es el resultado de la lectura atenta del libro Emerging Topics in Hardware Security, registro mis opiniones, inquietudes y hallazgos, apuntando a que sea útil para mí como memoria y para tí como disparador.

Desde hace meses sino años, tengo una pila de libros para leer, pero todos tienen alguna parte que es mejor practicar, incompatible con vacaciones, transporte público. Al ser este libro muy teórico, me basta con la lectura atenta y tomar notas... estas son las notas.

 

Empecemos con que no es un libro, es un compendio de papers.

En general, los artículos son, tal como insinúa el título, temas en la cresta de la ola y además de un nivel técnico muy alto y de temas muy específicos. Eso hace que el lector, Charly, por momentos quede un poco afuera. No es que no haya ocurrido con otros libros, pero en los otros no tuve la siguiente sensación:

Parecen escritos por personas que no dominan el idioma inglés, no lo digo porque los nombres de todos los autores parezcan ser de la India, sino porque efectivamente hay expresiones, formas de armar la frase y algunas cosas que me parecen que son errores gramaticales. También hay errores de sintaxis.

No señalaría esta superficialidad, pero como no conozco algunos de los temas, me produce una cierta desconfianza. No mucha, conozco gente del grupo de embebidos que me consta que saben un montón pero no escribir.

No sé cual es la tasa de entradas bibliográficas normal para un paper, pero con respecto a algunos libros conocidos, es mayor y en algunos capítulos muy mayor:




páginasnotasn / p
1Blockchain-Enabled Electronics Supply Chain Assurance25481.9
2Digital Twin with a Perspective from Manufacturing Industry351454.1
3Trillion Sensors Security341514.4
4Security of AI Hardware Systems16372.3
5Machine Learning in Hardware Security36852.4
6Security Assessment of High-Level Synthesis24401.7
7CAD for Side-Channel Leakage Assessment28451.6
8Post-Quantum Hardware Security301013.4
9Post-Quantum Cryptographic Hardware and Embedded Systems28531.9
10Neuromorphic Security24612.5
11Homomorphic Encryption28642.3
12Software Security with Hardware in Mind26612.3
13Firmware Protection22211.0
14Security of Emerging Memory Chips34762.2
15Security of Analog, Mixed-Signal, and RF Devices28632.3
16Analog IP Protection and Evaluation52671.3
17Application of Optical Techniques to Hardware Assurance22602.7
18Computer Vision for Hardware Security34752.2
19Asynchronous Circuits and Their Applications in Hardware Security28682.4
20Microfluidic Device Security24682.8

Total57813892.4

 


páginasnotasn / p
Artificial Intelligence - Russel/Norvig10009000.9
Object Oriented Software Construction - Meyer12003600.3
Security Engineering - Anderson89013801.6
Computer Architecture - Hennessy/Patterson6306401.0
Hardware Security - Tehranipoor/Bhunia4507481.7

 

El último es especialmente interesante pues Tehranipoor es el editor del libro en cuestión.

Las cuentas no están del todo bien hechas pues no estoy considerando al cantidad de palabras por página, OOSC en particular tiene la letra grande. No estoy seguro que estos números sean indicadores de calidad o de su falta.

¿Por qué me molesta esto de la bibliografía? Se debe a que estoy más acostumbrado a leer textos donde la mayor parte es explicación, no "tal xxx hizo tal prueba" sin dar ningún otro detalle.

Dejando de lado este aspecto superficial, pasemos a lo importante.


El contexto general de la seguridad de hardware, que es el hilo conductor de algunos artículos de modo explícito y afecta de modo implícto a todos es la protección durante la cadena de suministro del hardware (esto sale del capítulo 1):

  • IP Owner y la fábrica
  • Ensamblado del PCB
  • Integración del sistema
  • Usuario final
  • Disposición final o reciclado

Existiendo estos ataques más comunes:

  • Sobreproducción, para venta no declarada
  • Ingeniería reversa, para falsificación, copia o ahorrarse parte del diseño
  • Reutilización en lugar de disposición final
  • Falsificación, es hacer algo copiado y ponerle una marca ajena
  • Reclasificación, tipo remarcar un componente común como industrial


Mi opinión


Dejando de lado lo superficial y la calidad despareja, es un libro muy rellenador de detalles de los temas que ya conocía de antes y más aún disparador de los que ni estaba al tanto de la existencia, como:


  • Neuromorphic y sus memristores
  • Microfluidic devices
  • El nicho de los circuitos asincrónicos.


Si prestaste atención al título, "General", da a entender que puede haber otra nota. No te prometo, me llevó cuatro meses leerlo, como estoy un poco traumatizado y con más ganas de pasar al siguiente libro que de revisar este para dejar registradas mis notas.



2023/10/08

Un poco de history

En esta ocasión, algunas ideas y tips relativas al comando history.

Provee la funcionalidad de registrar los comandos ingresados para consulta o reejecución.

Repecto a la concurrencia, tiene la particularidad de que a medida que se van cerrando las sesiones se van guardando, cada una con su estado y sobreescribiendo las otras. En otras palabras, gana la última que escriba y eso vale para las abiertas que no tenés a la vista como accesos vía ssh o terminales en otras workspaces.

El registro está en ~/.bash_history, se puede editar.

Con el comando 

history -d N

eliminar la línea N.

Si no querés que se salve

unset HISTFILE && exit

y este que es más lindo, pero no cierra la ventana si estás en un entorno gráfico

kill -9 $$ 

y la verdad que no sé que hace en un entorno no gráfico.

Un truquito que se me ocurrió hace muchos años, incluso me lo pagaron en la revista Linux Journal, lo llamé "disposable alias", me había matado con el texto y lo redujeron a casi nada:

 

tech tip
tech tip

 

Consiste en agregar un comentario al final de los comandos que querés ejecutar varias veces pero no vale la pena hacer un script o un alias y querés recuperar con control-R:

comando ; # tag

Por ejemplo:

find . -iname "*borrar* -exec ls -l {} \;" ; # listar_a_borrar

Si pensás que con control-R borrar podés lograr el mismo efecto, considerá que cerca va a estar lleno de cosas como:

view borrar.txt

rm borrar2.txt

mkdir TRASH

mv borrar3.txt TRASH

y así...

 

La joya


Todo esto que escribí es solo para entrar en tema, ¿qué pasa si ejecutaste algo como esto?

export HTTP_PROXY=http://user:password@server:port
 
Te ha quedado en history la clave del proxy, para que la vea cualquiera que pueda acceder a tu history.
 
Tenés que hacer history | less para encontrar el número y luego history -d N.
 
Según ví en man history, hay toda una serie interminable de opciones para hacer... ni entendí bien qué, tomar un comando, reemplazarle una parte y ejecutarlo, me parece un poco bloatware.

 
Hay una manera mucho más sencilla 
 

Escondida en la documentación, hay una joyita que Mar Fer comentó en una conversación cyberciruja. Si tocás una cierta variable de la configuración, podés evitar que queden registrados los comandos de las líneas que inicies con espacios.

 

 
HISTCONTROL

A colon-separated list of values controlling how commands are saved on the history list. If the list of values includes ‘ignorespace’, lines which begin with a space character are not saved in the history list.

 

Cuando Mar Fer contó, me fijé en man history y nada dice, casi que parecía un bug, pero no, it is a feature.


Perspectiva de seguridad

 

Debido a la destrucción producto de la concurrencia, la facilidad de eliminar, editar o incluso suprimir todo, history sirve de modo muy incompleto para análisis forense. Si realmente necesitás trazabilidad, andá por el lado de auditd.

Respecto a comentar que existe lo de HISTCONTROL, un atacante que lo conozca podría en el medio de una serie de comandos normales que no llamarían la atención, ejecutar sin que quede registrado alguno malicioso en particular.

Mantener oculto lo de HISTCONTROL sólo contribuiría a una falsa sensación de seguridad mientras que el hacerlo conocido ayuda a que hayan menos datos sensibles en history, gana comentarlo.