Un reportero de fallas es generalmente un software de sistema cuya función es identificar detalles de informes de fallas y alertar cuando hay fallas, en producción o en entornos de desarrollo/prueba. Los informes de fallas a menudo incluyen datos como seguimientos de pila , tipo de falla, tendencias y versión del software. Estos informes ayudan a los desarrolladores de software (Web, SAAS, aplicaciones móviles y más) a diagnosticar y solucionar el problema subyacente que causa las fallas. Los informes de fallas pueden contener información confidencial como contraseñas, direcciones de correo electrónico e información de contacto, por lo que se han convertido en objetos de interés para los investigadores en el campo de la seguridad informática. [1]
La implementación de herramientas de informes de fallos como parte del ciclo de desarrollo se ha convertido en un estándar, y las herramientas de informes de fallos se han convertido en un producto básico, muchas de ellas se ofrecen de forma gratuita, como Crashlytics .
Muchos actores gigantes de la industria, que son parte del ecosistema de desarrollo de software, han entrado al juego. Empresas como Twitter, Google y otras están haciendo un gran esfuerzo para alentar a los desarrolladores de software a usar sus API, sabiendo que esto aumentará sus ingresos en el futuro (a través de anuncios y otros mecanismos). Como se dan cuenta de que deben ofrecer soluciones elegantes para la mayor cantidad posible de problemas de desarrollo, de lo contrario sus competidores tomarán medidas, siguen agregando funciones avanzadas. Las herramientas de informes de fallas son una importante funcionalidad de desarrollo que las empresas gigantes incluyen en su cartera de soluciones.
Muchas herramientas de notificación de fallos están especializadas en aplicaciones móviles. Muchas de ellas son SDK .
En macOS hay un reportero de fallas estándar en /System/Library/CoreServices/Crash Reporter.app . Crash Reporter.app envía los registros de fallas de Unix a Apple para que sus ingenieros los revisen. El campo de texto superior de la ventana tiene el registro de fallas, mientras que el campo inferior es para comentarios de los usuarios. Los usuarios también pueden copiar y pegar el registro en su cliente de correo electrónico para enviarlo al proveedor de la aplicación para que lo use. Crash Reporter.app tiene 3 modos principales: no mostrar nada en caso de falla, mostrar el cuadro de diálogo "La aplicación se ha bloqueado" o mostrar la ventana de Informe de fallas.
Microsoft Windows incluye un servicio de informes de fallos denominado Informe de errores de Windows que solicita a los usuarios que envíen informes de fallos a Microsoft para su análisis en línea. [2] La información se envía a una base de datos central administrada por Microsoft. Consiste en información de diagnóstico que ayuda a la empresa o al equipo de desarrollo responsable del fallo a depurar y resolver el problema si así lo deciden. Los informes de fallos de software de terceros están disponibles para los desarrolladores externos a los que Microsoft les ha otorgado acceso.
El sistema tiene en cuenta todas las partes del proceso de depuración y lanzamiento, de modo que las correcciones de errores específicas se puedan aplicar a través de Windows Update . En otras palabras, solo se puede ofrecer la corrección de errores a las personas que experimentan un tipo particular de falla, lo que limita la exposición a un problema.
Según Der Spiegel , la unidad Tailored Access Operations (TAO) de la NSA ha utilizado el sistema de informes de errores de Microsoft para hackear los ordenadores de la Secretaría de Seguridad Pública de México . Según la misma fuente, los informes de errores de Microsoft se recopilan automáticamente en la base de datos XKeyscore de la NSA para facilitar dichas operaciones. [3]
Otra biblioteca de informes de errores para Windows es CrashRpt. La biblioteca CrashRpt es un marco de trabajo de gestión de errores de código abierto y ligero para aplicaciones creadas en Microsoft Visual C++ y que se ejecutan en Windows . La biblioteca se distribuye bajo la licencia New BSD .
CrashRpt intercepta excepciones no controladas , crea un archivo minidump de fallas, construye un descriptor de fallas en formato XML , presenta una interfaz para permitir al usuario revisar el informe de fallas y, finalmente, comprime y envía el informe de fallas al equipo de soporte de software.
CrashRpt también proporciona una herramienta de línea de comandos del lado del servidor para el análisis de informes de fallos denominada crprober. La herramienta puede leer todos los informes de fallos recibidos desde un directorio y generar un archivo de resumen en formato de texto para cada informe de fallos. También agrupa los informes de fallos similares, lo que facilita la determinación de los problemas más populares. La herramienta crprober no proporciona ninguna interfaz gráfica, por lo que es bastante críptica y difícil de usar.
También existe un software de servidor de código abierto llamado CrashFix Server que puede almacenar, organizar y analizar los informes de fallos enviados por la biblioteca CrashRpt. Puede agrupar informes de fallos similares, tiene un rastreador de errores integrado y puede generar informes estadísticos. El servidor CrashFix proporciona una interfaz de usuario basada en la web que permite que varios miembros del proyecto colaboren (cargar símbolos de depuración, examinar informes de fallos y asociar errores con informes de fallos).
ABRT (Automated Bug Reporting Tool) es una herramienta de notificación de errores creada para Fedora y Red Hat Enterprise Linux . Los desarrolladores no tienen planes actualmente de trasladarla a otras distribuciones de Linux. [4] ABRT intercepta volcados de memoria o rastreos de aplicaciones y (después de la confirmación del usuario) envía informes de errores a varios sistemas de seguimiento de errores, como Fedora Bugzilla [1] .
Ubuntu aloja un rastreador de errores público en errors.ubuntu.com que recopila cientos de miles de informes de errores diariamente de millones de máquinas. [5] Si un programa falla en Ubuntu, un controlador de fallas (como Apport) [6] notificará al usuario y le ofrecerá informar la falla. Si el usuario elige informar la falla, los detalles (posiblemente incluido un volcado de memoria) se cargarán a un servidor Ubuntu ( daisy.ubuntu.com ) para su análisis. [7] Un volcado de memoria se procesa automáticamente para crear un seguimiento de pila y una firma de falla. La firma de falla se usa para clasificar los informes de fallas posteriores causados por el mismo error.
Bug Buddy es la herramienta de notificación de fallos que utiliza la plataforma GNOME . Cuando una aplicación que utiliza las bibliotecas de GNOME falla, Bug Buddy genera un seguimiento de la pila mediante gdb e invita al usuario a enviar el informe a GNOME bugzilla . El usuario puede agregar comentarios y ver los detalles del informe de fallos.
La herramienta de notificación de fallos que utiliza KDE se llama Dr. Konqi . Cuando una aplicación que utiliza las bibliotecas de KDE falla, Dr. Konqi genera un seguimiento de errores mediante gdb e invita al usuario a enviar el informe a KDE Bugzilla. El usuario puede agregar comentarios y ver los detalles del informe de fallos.
Talkback (también conocido como Quality Feedback Agent ) fue el reportero de fallas usado por el software de Mozilla hasta la versión 1.8.1 para reportar fallas de sus productos a un servidor centralizado para agregación o análisis caso por caso. [8] Talkback es un software propietario licenciado a Mozilla Corporation por SupportSoft . Si un producto de Mozilla (por ejemplo, Mozilla Firefox , Mozilla Thunderbird ) se bloqueara con Talkback habilitado, el agente Talkback aparecería, solicitando al usuario que proporcione información opcional sobre la falla. Talkback no reemplaza al reportero de fallas nativo del sistema operativo que, si está habilitado, aparecerá junto con el agente Talkback. Talkback ha sido reemplazado por Breakpad en Firefox desde la versión 3 .
Breakpad (anteriormente llamado Airbag ) es un reemplazo de código abierto para Talkback. Desarrollado por Google y Mozilla, se utiliza en productos actuales de Mozilla como Firefox y Thunderbird. [9] [10] Su importancia es ser el primer sistema de notificación de fallos multiplataforma de código abierto.
Desde 2007, Breakpad está incluido en Firefox en Windows, Mac OS X y Linux. [11] Breakpad normalmente se combina con Socorro, que recibe y clasifica los fallos de los usuarios.
Breakpad en sí es solo una parte de un sistema de informes de fallos, ya que no incluye ningún mecanismo de informes.
Crashpad es un reportero de fallos de código abierto utilizado por Google en Chromium . Fue desarrollado como reemplazo de Breakpad debido a una actualización en macOS 10.10 [12] que eliminó las API utilizadas por Breakpad . Crashpad actualmente consta de un cliente de reporte de fallos y algunas herramientas relacionadas para macOS y Windows, y se considera sustancialmente completo para esas plataformas. Crashpad se convirtió en el cliente de reporte de fallos para Chromium en macOS a partir de marzo de 2015, y en Windows a partir de noviembre de 2015. [13]
Los sistemas operativos Android e iOS también tienen incorporada una funcionalidad de informe de fallos. [14] [15]