Ingeniería inversa

La ingeniería inversa ( ingeniería inversa, ingeniería inversa , ingeniería inversa ; ingeniería inversa en inglés  ) es el estudio de algún dispositivo o programa terminado, así como la documentación del mismo para comprender el principio de su funcionamiento; por ejemplo, para descubrir características no documentadas (incluidos los marcadores de software ), realizar un cambio o reproducir un dispositivo, programa u otro objeto con una funcionalidad similar, pero sin copia directa.

Por lo general, se usa si el creador del objeto original no proporcionó información sobre la estructura y el método de creación (producción) del objeto. Los propietarios de los derechos de autor de dichos objetos pueden alegar que la ingeniería inversa o el uso de sus resultados viola su derecho exclusivo bajo la ley de derechos de autor y patentes [1] [2] .

Ingeniería inversa al servicio de los estados

En 2016, en una reunión de la Comisión Gubernamental sobre Sustitución de Importaciones, el Ministro de Industria y Comercio de la Federación Rusa, D.V. Manturov , anunció planes para crear un centro de ingeniería inversa sobre la base del Fondo de Desarrollo de la Industria [3] .

Aplicaciones de la ingeniería inversa

Ingeniería, automoción, aviación

Copia de varios mecanismos y máquinas sin desarrollo real. Le permite reproducir un diseño exitoso a un costo mínimo, pero hay casos de copiado y máquinas fallidas.

Ejemplos:

Electrónica

La ingeniería inversa de dispositivos electrónicos apareció en los albores de la ingeniería de radio. En las décadas de 1920 y 1930, varias empresas copiaron tubos de radio y soluciones de circuitos para su uso mutuo . Es con ingeniería inversa, y no con producción con licencia, que los tubos de radio del mismo propósito de casi todos los fabricantes resultaron ser unificados e intercambiables. Por ejemplo, la lámpara europea EL95 es un clon de la anterior lámpara americana 6KA5. También hay ejemplos inversos: las americanas 6CA5 y KT88 son clones de la lámpara europea EL34 . Lo mismo se aplica a los tubos de radio soviéticos, muchos de los cuales son clones de tubos estadounidenses obtenidos bajo Lend-Lease (por ejemplo, 6Zh4, 6P9) o tubos alemanes de equipos capturados (6G2, GU50). Junto con las lámparas, también se copiaron esquemas típicos para su inclusión, es decir, de hecho, diagramas de bloques de equipos de radio. Por lo tanto, fue gracias a la ingeniería inversa que la era de las lámparas se caracterizó, de hecho, por la transición al diseño estándar en la electrónica. En particular, todos los receptores superheterodinos domésticos producidos en el mundo en realidad se construyeron de acuerdo con tres esquemas, que fue determinado por la lámpara de la unidad de mezcla heterodina: triodo doble , triodo heptodo o pentagrid . Lo mismo ocurría con los amplificadores de baja frecuencia. No había más de una docena de esquemas típicos para su construcción, dependiendo de la potencia de salida: ciclo simple de baja potencia en una lámpara combinada del tipo 6F3P, ciclo simple de baja potencia con un bloque de timbre en un triodo doble (tipo 6N1P) y un pentodo de salida (6P14P, EL84) o un tetrodo de haz (6P3S, EL34), push-pull con triodo inversor de fase (6N1P + 2x6P14P), push-pull multietapa (6N8P + 2x6P6S + GU50). Los televisores en blanco y negro de las décadas de 1960 y 1970 se construyeron de hecho en dos esquemas: uno para dispositivos muy simples con tamaños de pantalla pequeños sin escaneo horizontal APCG y APCHIF (similar a los televisores soviéticos UNT-35), el segundo esquema estaba destinado a dispositivos en cinescopios con una desviación del haz angular de 110°, APCG, APCHiF (UNT-59 soviético, la mayoría de los televisores europeos) .

Software

La investigación y la ingeniería inversa de programas generalmente se llevan a cabo con el objetivo de modificarlos, copiarlos o, por ejemplo, escribir generadores de claves , cuyo algoritmo se obtiene a partir del análisis del algoritmo para verificarlos. Además, la investigación del programa se utiliza para obtener información confidencial sobre la estructura interna del programa, sobre el protocolo de intercambio de red con el servidor, el hardware, la clave de seguridad o la interacción con otro programa. Otra área de aplicación es la obtención de información sobre formas de exportar datos desde numerosos formatos de archivo propietarios [5] .

Con el desarrollo de Internet , los sistemas operativos y programas populares se están investigando cada vez más para encontrar vulnerabilidades en ellos , o las llamadas. "agujeros". En el futuro, los agujeros encontrados pueden usarse para obtener acceso no autorizado a una computadora o red informática remota. Por otro lado, la ingeniería inversa se utiliza cuando las empresas de antivirus investigan malware para agregar sus firmas a las bases de datos de sus productos.

Un ejemplo bien conocido de ingeniería inversa es la investigación del BIOS de la computadora personal de IBM , que fue un paso importante hacia el desarrollo de la producción de terceros de computadoras compatibles con IBM. [6] [7] La ​​creación del servidor Samba [8] [9] (incluido con el sistema operativo GNU/Linux y trabajando con servidores basados ​​en Windows ) también requirió la ingeniería inversa del protocolo SMB de Microsoft . La creación de muchos clientes ICQ también requirió ingeniería inversa del protocolo ICQ .

El desarrollo de software inverso se realiza utilizando las siguientes técnicas.

  1. Análisis de comunicación, más común en la ingeniería inversa de protocolos de comunicación, que se realiza utilizando un analizador de bus y un rastreador de paquetes para escuchar en el bus de la computadora y la red de la computadora, respectivamente.
  2. Desensamblado del código máquina del programa para obtener su listado en lenguaje ensamblador . Este método funciona en cualquier programa de computadora , pero lleva mucho tiempo, especialmente para un profano.
  3. Descompilar la máquina o el código de bytes de un programa para producir código fuente en algún lenguaje de programación de alto nivel .

Actualmente, las palabras "ingeniería inversa" se entienden con mayor frecuencia como las llamadas. ingeniería inversa de sala limpia , es decir, un proceso en el que un grupo de desarrolladores analiza el código de máquina de un programa , compila un algoritmo para un programa dado en pseudocódigo o, si el programa es un controlador de dispositivo , compila especificaciones exhaustivas para el dispositivo de interés. Después de recibir las especificaciones, otro grupo de desarrolladores escribe su propio controlador en función de las especificaciones o algoritmos recibidos . Este enfoque le permite evitar acusaciones de infracción de derechos de autor sobre el programa fuente, ya que según las leyes, por ejemplo en los EE . UU ., cae bajo el concepto de " uso justo ", es decir, el uso justo del programa original. El resultado de la ingeniería inversa rara vez es idéntico al original, lo que evita la responsabilidad legal, especialmente si el primer equipo de desarrolladores controla la ausencia de esta identidad y la ausencia de infracción de marca y patente.

Bases de datos

Se puede utilizar al crear un modelo de base de datos relacional .

Industria

Ingeniería inversa del producto de un competidor para descubrir su dispositivo, principio de funcionamiento y evaluar las posibilidades de crear un análogo.

Por ejemplo, varios fabricantes de equipos fotográficos, como Sigma , Tamron , Tokina y Carl Zeiss , producen lentes con montura tipo EF de Canon . Tienen ingeniería inversa y sus fabricantes no tienen acceso a las especificaciones de Canon. .

Industria militar

por la mayoría hechos conocidos de ingeniería inversa fueron:

  • Botes de gas alemanes : las tropas británicas y estadounidenses notaron que los alemanes tenían botes muy útiles . Copiaron estas latas y las llamaron bidones (de la palabra "gerrys" - de "alemanes") [10] .
  • Tupolev Tu-4  : varios bombarderos B-29 estadounidenses, mientras realizaban salidas a Japón , realizaron un aterrizaje de emergencia en la URSS . El ejército soviético, que no tenía tales bombarderos estratégicos, decidió copiar el B-29. Unos años más tarde desarrollaron el Tu-4, una copia casi completa del mismo [11] . Al mismo tiempo, los motores, armas y equipos electrónicos Tu-4 no eran copias de los sistemas V-29 correspondientes.
  • Locomotora diesel TE1  : en 1945, la locomotora diesel RSD-1 (Da ) ( suministrada a la URSS bajo Lend-Lease ) llevó el tren de cartas de Stalin a la Conferencia de Potsdam . Stalin apreciaba mucho esta locomotora, por lo que en 1947 comenzó la producción de la copia soviética de la locomotora diesel estadounidense, TE1. A pesar de algunas diferencias en tamaño y equipo separado, TE1 resultó ser casi idéntico a Da [ 12] . Todas las locomotoras diésel de maniobras rusas actuales son descendientes de la locomotora diésel estadounidense.
  • Morteros  : durante los años de la guerra, los alemanes copiaron con éxito los morteros de 120 mm capturados por los soviéticos , que adoptaron con el nombre de Granatwerfer 42 .
  • El rifle de asalto Kalashnikov  : recientemente, la gerencia de Izhmash OJSC declaró que aproximadamente la mitad de todos los AK en el mundo son "falsificados" (es decir, producidos sin licencia y transferencia de tecnología), razón por la cual Rusia pierde alrededor de mil millones de dólares al año. Al mismo tiempo, las restricciones de patentes (si las hubiera) sobre tecnologías y soluciones técnicas han perdido su fuerza [13] .
  • El lanzagranadas estadounidense PSRL-1 es una copia modernizada sin licencia del RPG-7 soviético .

Véase también

  • lenguaje ensamblador
  • piratería informática
  • AIF
  • Radare2
  • Código Civil de la Federación Rusa / Parte 4 / Sección VII. Derechos sobre los resultados de la actividad intelectual y medios de individualización / Capítulo 70. Derechos de autor / Artículo 1280. Reproducción libre de programas de computadora y bases de datos. Descompilación de programas informáticos .

Literatura

Notas

  1. Demanda de SAS contra World Programming . Fecha de acceso: 16 de diciembre de 2014. Archivado desde el original el 16 de diciembre de 2014.
  2. s: Código Civil de la Federación Rusa / Capítulo 70 # Artículo 1280. El derecho del usuario del programa informático y la base de datos
  3. Reunión de la Comisión Gubernamental sobre Sustitución de Importaciones Copia de archivo fechada el 15 de junio de 2017 en Wayback Machine // Gobierno de Rusia
  4. Nomenclatura y análogos de microcircuitos domésticos . Consultado el 17 de abril de 2010. Archivado desde el original el 27 de mayo de 2010.
  5. A menudo se usa, por ejemplo, en relación con los formatos admitidos por Microsoft Office .
  6. 502 Bad Gateway (enlace descendente) . Consultado el 12 de enero de 2016. Archivado desde el original el 29 de marzo de 2016. 
  7. Computadora portátil Compaq I. Consultado el 12 de enero de 2016. Archivado desde el original el 9 de noviembre de 2020.
  8. Mitos sobre la samba . Consultado el 12 de enero de 2016. Archivado desde el original el 20 de octubre de 2017.
  9. Definición de red informática . Fecha de acceso: 14 de enero de 2016. Archivado desde el original el 27 de noviembre de 2015.
  10. AmericanHeritage.com/The Little Can That Could Archivado el 24 de mayo de 2007.
  11. JSC "Tupolev" - 68 (Tu-4) (enlace inaccesible) . Fecha de acceso: 29 de marzo de 2010. Archivado desde el original el 24 de octubre de 2007. 
  12. Rakov V. A. Locomotoras de ferrocarriles domésticos 1845-1955 . — 2º, revisado y complementado. - M .: Transporte , 1995. - S. 374. - ISBN 5-277-00821-7 . Copia archivada (enlace no disponible) . Consultado el 3 de agosto de 2012. Archivado desde el original el 24 de mayo de 2014. 
  13. El plazo de una patente para una invención es de 20 años, para un modelo de utilidad - 10 años, para un diseño industrial - no más de 25 años (enlace inaccesible) . Consultado el 26 de mayo de 2016. Archivado desde el original el 15 de mayo de 2016. 

Enlaces