Número 3
16 de marzo de 2022
|
Cando ides a un restaurante e pedides unha costeleta de tenreira galega, a orixe desa costeleta está trazada: podedes saber de que cucha veu a costeleta, onde naceu, onde se criou, que comeu, onde se sacrificou, quen a despezou, etc. En cambio, a orixe do xogo que instalades no móbil mentres agardades a que vos traian esa deliciosa e trazable costeleta non está controlada nin a milésima parte. Moitas veces, xa é ben complicado saber quen o fixo!
“Avoíña, avoíña, o teu certificado de orixe non é válido!”
Este é un problema no que hai moita xente traballando desde hai uns anos; por iso algunhas plataformas esixen que os programas vaian asinados dixitalmente para podelos instalar. Porén, a maioría das empresas aínda non exercen moito control sobra orixe do seu software, e iso está a preocupar moito aos gobernos de todo o mundo, porque xa causou problemas moi graves.
Por exemplo, en 2017 houbo un ciberataque ao fabricante do paquete de contabilidade máis usado en Ucraína, e os atacantes introduciron código “extra” nunha actualización do seu software. No día seguinte, o país enteiro estaba paralizado por un ataque de ransomware.
Algo semellante ocorreu en 2020, cando houbo ataques a Solarwinds, entre outras empresas. Igual que en 2017, os atacantes introduciron cambios nalgúns produtos que son utilizados por todo tipo de clientes, incluíndo gobernos. Cando os clientes instalaron as versións modificadas deses produtos, os atacantes gañaron acceso e puideron espiar todo o que querían.
Os ciberataques non son o único problema. En decembro de 2021 descubriuse unha vulnerabilidade grave en Log4j e a industria toleou, porque Log4j úsase en case todos os programas “serios” feitos en Java e para solucionar o problema cada empresa tiña que buscar, verificar e actualizar todos os programas en todos os ordenadores que posuía, un a un.
Despois destes incidentes, o goberno dos EEUU decidiu que isto non podía seguir así e comezou a falar cos fabricantes de software máis importantes para desenvolver sistemas para asegurar a cadea de subministro do software.
Non se trata de evitar que un barco cheo de bits encalle no canal de Suez ou asegurarse de que os camioneiros transporten paquetes TCP/IP; a idea é poder trazar a orixe e composición do software igual que se traza a dunha costeleta: saber quen escribiu cada liña de código, que bibliotecas se usan nel, como se compilou o programa, etc.
Coa cantidade de cartos que dependen de contentar aos gobernos, nos próximos anos podemos esperar que haxa unha morea de propostas e sistemas e frameworks para cubrir esta necesidade. O máis seguro é que acabemos cun sistema semellante a SLSA, no que todo o proceso de compilación e empaquetado dos programas está automatizado e produce unha “lista de ingredientes” asinada dixitalmente que serve coma un certificado do contido do software, e que se pode usar para gardar un inventario do software que se usa en cada ordenador.
O máis importante para que este sistema funcione é que un humano non teña acceso ás claves necesarias para producir certificados válidos. Desta maneira, os atacantes dos incidentes de 2017 e 2020 non poderían introducir código malicioso nas actualizacións sen que se notara, xa que os certificados desas actualizacións quedarían invalidados e os atacantes non poderían producir certificados novos.
Adicionalmente, grazas a os inventarios que se poden facer con eses certificados, se algunha vez temos un problema semellante ao de Log4j, as organizacións afectadas poderán consultar a base de datos para saber onde usan as versións vulnerables e ir directamente aos ordenadores afectados para limpalos.
Se vendedes software, eu recoméndovos que vos vaiades preparando para o día no que teñades que entregar información de trazabilidade: usade control de versións, controlade as vosas dependencias, e automatizade os vosos procesos de publicación. Facendo iso hoxe, estaredes listos o día de mañá.
A ilustración desta Folla procede de “Hansel & Grethel & Other Tales”.
Anterior: “Razoables por defecto” | Índice | Seguinte: “Maquinaria de obra” |
Coding Sheet has an English version of this article: “The software supply chain”. |
1 comentario