En informática , el firmware [a] es una clase específica de software de computadora que proporciona el control de bajo nivel para el hardware específico de un dispositivo . El firmware, como el BIOS de una computadora personal, puede contener solo funciones básicas elementales de un dispositivo y solo puede brindar servicios a software de nivel superior. Para dispositivos menos complejos, el firmware actúa como el sistema operativo completo del dispositivo , realizando todas las funciones de control, monitoreo y manipulación de datos. Los ejemplos típicos de dispositivos que contienen firmware son sistemas integrados , dispositivos de consumo, computadoras y periféricos de computadora .
El firmware se mantiene en dispositivos de memoria no volátil como ROM , EPROM , EEPROM y memoria Flash . La actualización del firmware requiere la sustitución física de los circuitos integrados ROM o la reprogramación de la EPROM o la memoria flash mediante un procedimiento especial. [2] Algunos dispositivos de memoria de firmware están instalados de forma permanente y no se pueden cambiar después de la fabricación. Las razones comunes para actualizar el firmware incluyen corregir errores o agregar funciones al dispositivo.
Historia
Ascher Opler acuñó el término "firmware" en un artículo de Datamation de 1967 . [3] Originalmente, significaba el contenido de un almacén de control escribible (una pequeña memoria especializada de alta velocidad), que contenía un microcódigo que definía e implementaba el conjunto de instrucciones de la computadora , y que podía recargarse para especializar o modificar las instrucciones que el procesamiento central unidad (CPU) podría ejecutarse. Como se usaba originalmente, el firmware contrastaba con el hardware (la propia CPU) y el software (instrucciones normales que se ejecutan en una CPU). No estaba compuesto por instrucciones de máquina de CPU, sino de microcódigo de nivel inferior involucrado en la implementación de instrucciones de máquina. Existía en la frontera entre hardware y software; de ahí el nombre "firmware". Con el tiempo, el uso popular extendió la palabra "firmware" para indicar cualquier programa de computadora que esté estrechamente vinculado al hardware, incluidas las instrucciones de la máquina del procesador para BIOS , cargadores de arranque o los sistemas de control para dispositivos electrónicos simples como un horno de microondas , control remoto , o periférico de computadora .
Aplicaciones
Computadoras personales
En algunos aspectos, los diversos componentes del firmware son tan importantes como el sistema operativo en una computadora en funcionamiento. Sin embargo, a diferencia de la mayoría de los sistemas operativos modernos, el firmware rara vez tiene un mecanismo automático bien desarrollado para actualizarse para solucionar cualquier problema de funcionalidad detectado después del envío de la unidad.
El BIOS puede ser actualizado "manualmente" por un usuario a través de un pequeño programa de utilidad. Por el contrario, el firmware de los dispositivos de almacenamiento masivo (unidades de disco duro, unidades de disco óptico, almacenamiento de memoria flash, por ejemplo, unidad de estado sólido) rara vez se actualiza, incluso cuando se utiliza almacenamiento de memoria flash (en lugar de ROM, EEPROM) para el firmware.
La mayoría de los periféricos de computadora son en sí mismos computadoras para propósitos especiales. Los dispositivos como impresoras, escáneres, cámaras y unidades flash USB tienen firmware almacenado internamente; algunos dispositivos también pueden permitir la actualización en campo de su firmware.
Algunos periféricos de bajo costo ya no contienen memoria no volátil para firmware y, en cambio, dependen del sistema host para transferir el programa de control del dispositivo desde un archivo de disco o CD. [4]
Productos de consumo
A partir de 2010[actualizar], la mayoría de los reproductores de música portátiles admiten actualizaciones de firmware. Algunas empresas utilizan actualizaciones de firmware para agregar nuevos formatos de archivo reproducibles ( códecs ). Otras características que pueden cambiar con las actualizaciones de firmware incluyen la GUI o incluso la duración de la batería. La mayoría de los teléfonos móviles tienen una capacidad de actualización de firmware Firmware Over The Air por las mismas razones; algunos incluso pueden actualizarse para mejorar la recepción o la calidad del sonido.
Automóviles
Desde 1996, la mayoría de los automóviles han empleado una computadora a bordo y varios sensores para detectar problemas mecánicos. A partir de 2010[actualizar], los vehículos modernos también emplean sistemas de frenos antibloqueo (ABS) controlados por computadora y unidades de control de transmisión operadas por computadora (TCU). El conductor también puede obtener información en el tablero mientras conduce de esta manera, como la economía de combustible en tiempo real y las lecturas de presión de los neumáticos. Los distribuidores locales pueden actualizar la mayoría del firmware de los vehículos.
Ejemplos de
Los ejemplos de firmware incluyen:
- En productos de consumo:
- Sistemas de temporización y control para lavadoras.
- Controlar los atributos de sonido y video, así como la lista de canales, en televisores modernos
- En computadoras:
- El BIOS que se encuentra en PC más antiguas compatibles con IBM
- El firmware compatible con (U) EFI utilizado en sistemas Itanium , Mac con procesador Intel y muchas PC más nuevas
- Firmware de la unidad de disco duro o de la unidad de estado sólido
- BIOS de video de una tarjeta gráfica
- Open Firmware , utilizado en computadoras basadas en SPARC de Sun Microsystems y Oracle Corporation , computadoras basadas en PowerPC de Apple y computadoras de Genesi
- ARCS , utilizado en computadoras de Silicon Graphics
- Kickstart , utilizado en la línea de ordenadores Amiga ( POST , hardware init + autoconfiguración Plug and Play de periféricos, kernel , etc.)
- RTAS (servicios de abstracción en tiempo de ejecución), utilizado en computadoras de IBM
- El entorno de firmware común (CFE)
- En enrutadores , conmutadores y cortafuegos :
- LibreCMC : una distribución de enrutadores de software 100% gratuita basada en el kernel Linux-libre
- IPFire : una distribución de firewall / enrutador de código abierto basada en el kernel de Linux
- fli4l : una distribución de firewall / enrutador de código abierto basada en el kernel de Linux
- OpenWrt : una distribución de firewall / enrutador de código abierto basada en el kernel de Linux
- m0n0wall : una distribución de firewall integrada de FreeBSD
- Firmware propietario
- En sistemas NAS :
- NAS4Free : un sistema operativo NAS de código abierto basado en FreeBSD
- Openfiler : un sistema operativo NAS de código abierto basado en el kernel de Linux
- Firmware propietario
Brillante
El flasheo [5] implica la sobrescritura de firmware o datos existentes, contenidos en EEPROM o módulo de memoria flash presente en un dispositivo electrónico, con nuevos datos. [5] Esto se puede hacer para actualizar un dispositivo [6] o para cambiar el proveedor de un servicio asociado con la función del dispositivo, como cambiar de un proveedor de servicios de telefonía móvil a otro o instalar un nuevo sistema operativo. Si el firmware se puede actualizar, a menudo se realiza a través de un programa del proveedor y, a menudo, permitirá que se guarde el firmware anterior antes de actualizarlo para que se pueda volver a usar si el proceso falla o si la versión más nueva funciona peor. Como alternativa a las herramientas de los proveedores, se han desarrollado alternativas de código abierto como flashrom .
Piratería de firmware
A veces, terceros crean una versión no oficial nueva o modificada ("mercado secundario") de firmware para proporcionar nuevas funciones o desbloquear funciones ocultas; esto se conoce como firmware personalizado . Un ejemplo es Rockbox como reemplazo de firmware para reproductores multimedia portátiles . Hay muchos proyectos caseros para varios dispositivos, que a menudo desbloquean la funcionalidad informática de propósito general en dispositivos previamente limitados (por ejemplo, ejecutar Doom en iPods ).
Los hacks de firmware suelen aprovechar la función de actualización de firmware en muchos dispositivos para instalarlos o ejecutarlos por sí mismos. Algunos, sin embargo, deben recurrir a exploits para ejecutarse, porque el fabricante ha intentado bloquear el hardware para evitar que ejecute código sin licencia .
La mayoría de los hacks de firmware son software gratuito .
Hacks de firmware de HDD
Kaspersky Lab, con sede en Moscú, descubrió que un grupo de desarrolladores al que se refiere como el " Grupo de ecuaciones " ha desarrollado modificaciones del firmware de la unidad de disco duro para varios modelos de unidad, que contienen un caballo de Troya que permite que los datos se almacenen en la unidad en ubicaciones que no se borrará incluso si se formatea o borra la unidad. [7] Aunque el informe de Kaspersky Lab no afirmó explícitamente que este grupo es parte de la Agencia de Seguridad Nacional de los Estados Unidos (NSA), la evidencia obtenida del código de varios programas de Equation Group sugiere que son parte de la NSA. [8] [9]
Investigadores de Kaspersky Lab categorizaron las empresas de Equation Group como la operación de piratería más avanzada jamás descubierta, y también documentaron alrededor de 500 infecciones causadas por Equation Group en al menos 42 países.
Riesgos de seguridad
Mark Shuttleworth , fundador de la empresa Canonical , que mantiene la distribución de Ubuntu Linux , ha descrito el firmware propietario como un riesgo de seguridad, diciendo que "el firmware en su dispositivo es el mejor amigo de la NSA " y llamando al firmware "un caballo de Troya monumental". dimensiones". Ha afirmado que el firmware de fuente cerrada de baja calidad es una gran amenaza para la seguridad del sistema: [10] "Su mayor error es asumir que la NSA es la única institución que abusa de esta posición de confianza; de hecho, es razonable suponer que todo firmware es un pozo negro de inseguridad, cortesía de la incompetencia del más alto grado de los fabricantes y la competencia del más alto grado de una amplia gama de tales agencias ". Como posible solución a este problema, ha pedido firmware declarativo, que describiría "vínculos y dependencias de hardware" y "no debería incluir código ejecutable ". [11] El firmware debe ser de código abierto para que se pueda comprobar y verificar el código.
Los hacks de firmware personalizados también se han centrado en inyectar malware en dispositivos como teléfonos inteligentes o dispositivos USB . Una de estas inyecciones de teléfonos inteligentes se demostró en el sistema operativo Symbian en MalCon , [12] [13] una convención de piratas informáticos . En la conferencia Black Hat USA 2014 se presentó un truco de firmware de dispositivo USB llamado BadUSB , [14] que demuestra cómo se puede reprogramar un microcontrolador de unidad flash USB para falsificar otros tipos de dispositivos para tomar el control de una computadora, exfiltrar datos o espiar el usuario. [15] [16] Otros investigadores de seguridad han trabajado más en cómo explotar los principios detrás de BadUSB, [17] liberando al mismo tiempo el código fuente de herramientas de piratería que se pueden usar para modificar el comportamiento de diferentes dispositivos USB. [18]
Ver también
- Cargador de arranque
- Hardware de la computadora
- Coreboot
- Firmware personalizado
- Microcódigo
- Controlador de dispositivo propietario
- Imagen ROM
Notas
- ^ A veces se abrevia como "FW", que se construye después de que "HW" y "SW" significan "hardware" y "software", respectivamente. [1]
Referencias
- ^ "Ciena - Guía de acrónimos" . ciena.com . Archivado desde el original el 10 de enero de 2016 . Consultado el 6 de febrero de 2016 .
- ^ "¿Qué es el firmware?" . 23 de enero de 2013.
- ^ Opler, Ascher (enero de 1967). "Software de cuarta generación". Datamación . 13 (1): 22-24.
- ^ Corbet, Jonathan; Rubini, Alessandro; Kroah-Hartman, Greg (2005). Controladores de dispositivos Linux . O'Reilly Media . pag. 405. ISBN 0596005903.
- ^ a b "Firmware intermitente" . Tech-Faq.com. Archivado desde el original el 27 de septiembre de 2011 . Consultado el 8 de julio de 2011 .
- ^ "Centro de desarrolladores de HTC" . HTC . Archivado desde el original el 26 de abril de 2011 . Consultado el 8 de julio de 2011 .
- ^ "Grupo de ecuaciones: el creador de la corona del ciberespionaje" . Kaspersky Lab . 16 de febrero de 2015. Archivado desde el original el 2 de diciembre de 2015.
- ^ Dan Goodin (febrero de 2015). "Cómo los piratas informáticos" omnipotentes "vinculados a la NSA se escondieron durante 14 años y finalmente fueron encontrados" . Ars Technica . Archivado desde el original el 24 de abril de 2016.
- ^ "Rompiendo: Kaspersky expone el hackeo de puerta trasera en todo el mundo de la NSA de prácticamente todo el firmware del disco duro" . Kos diario . 17 de febrero de 2015. Archivado desde el original el 25 de febrero de 2015.
- ^ "Shuttleworth pide firmware declarativo". Revista Linux . No. 162. Mayo de 2014. p. 9.
- ^ Shuttleworth, Mark (17 de marzo de 2014). "ACPI, firmware y tu seguridad" . Archivado desde el original el 15 de marzo de 2015.
- ^ "Sesiones informativas técnicas MalCon 2010" . Malcon.org . Archivado desde el original el 4 de julio de 2011.
- ^ "Hacker planta la puerta trasera en el firmware de Symbian" . H-online.com . 2010-12-08. Archivado desde el original el 21 de mayo de 2013 . Consultado el 14 de junio de 2013 .
- ^ "Por qué la seguridad de USB está fundamentalmente rota" . Wired.com . 2014-07-31. Archivado desde el original el 3 de agosto de 2014 . Consultado el 4 de agosto de 2014 .
- ^ "BadUSB - En los accesorios que se vuelven malvados" . BlackHat.com . Archivado desde el original el 8 de agosto de 2014 . Consultado el 6 de agosto de 2014 .
- ^ Karsten Nohl; Sascha Krißler; Jakob Lell (7 de agosto de 2014). "BadUSB - Sobre accesorios que se vuelven malvados" (PDF) . srlabs.de . Archivado (PDF) desde el original el 19 de octubre de 2016 . Consultado el 23 de agosto de 2014 .
- ^ "Lanzamiento de malware BadUSB: infecta millones de unidades USB" . The Hacking Post . Archivado desde el original el 6 de octubre de 2014 . Consultado el 7 de octubre de 2014 .CS1 maint: URL no apta ( enlace )
- ^ "El malware no parcheable que infecta los USB ahora está suelto" . CON CABLE . Archivado desde el original el 7 de octubre de 2014 . Consultado el 7 de octubre de 2014 .