Capítulo 17. El proyecto Annobin
El proyecto Annobin es una implementación del proyecto de especificación Watermark. El proyecto de especificación Watermark pretende añadir marcadores a los objetos de formato ejecutable y enlazable (ELF) para determinar sus propiedades. El proyecto Annobin consiste en el plugin annobin y el programa annockeck.
El plugin annobin analiza la línea de comandos de la Colección de Compiladores de GNU (GCC), el estado de compilación y el proceso de compilación, y genera las notas ELF. Las notas ELF registran cómo se construyó el binario y proporcionan información para que el programa annocheck realice comprobaciones de seguridad.
El comprobador de seguridad forma parte del programa annocheck y está activado por defecto. Comprueba los archivos binarios para determinar si el programa se construyó con las opciones de endurecimiento de seguridad necesarias y se compiló correctamente. annocheck es capaz de escanear recursivamente directorios, archivos y paquetes RPM en busca de archivos objeto ELF.
Los archivos deben estar en formato ELF. annocheck no maneja ningún otro tipo de archivo binario.
La siguiente sección describe cómo:
-
Utilice el plugin
annobin -
Utilice el programa
annocheck -
Eliminar las notas redundantes de
annobin
17.1. Uso del plugin annobin Copiar enlaceEnlace copiado en el portapapeles!
La siguiente sección describe cómo:
-
Activar el plugin
annobin -
Pasar opciones al plugin
annobin
17.1.1. Activación del plugin annobin Copiar enlaceEnlace copiado en el portapapeles!
La siguiente sección describe cómo activar el plugin annobin a través de gcc y a través de clang.
Procedimiento
Para activar el plugin
annobincongcc, utilice:$ gcc -fplugin=annobinSi
gccno encuentra el pluginannobin, utilice:$ gcc -iplugindir=/path/to/directory/containing/annobin/Sustituya /path/to/directory/containing/annobin/ por la ruta absoluta del directorio que contiene
annobin.Para encontrar el directorio que contiene el plugin
annobin, utilice:$ gcc --print-file-name=plugin
Para activar el plugin
annobinconclang, utilice:$ clang -fplugin=/path/to/directory/containing/annobin/Sustituya /path/to/directory/containing/annobin/ por la ruta absoluta del directorio que contiene
annobin.
17.1.2. Pasar opciones al plugin annobin Copiar enlaceEnlace copiado en el portapapeles!
La siguiente sección describe cómo pasar opciones al plugin annobin a través de gcc y a través de clang.
Procedimiento
Para pasar opciones al plugin
annobincongcc, utilice:$ gcc -fplugin=annobin -fplugin-arg-annobin-option file-nameSustituya option por los argumentos de la línea de comandos
annobiny sustituya file-name por el nombre del archivo.Ejemplo
Para mostrar detalles adicionales sobre lo que
annobinestá haciendo, utilice:$ gcc -fplugin=annobin -fplugin-arg-annobin-verbose file-nameSustituya file-name por el nombre del archivo.
Para pasar opciones al plugin
annobinconclang, utilice:$ clang -fplugin=/path/to/directory/containing/annobin/ -Xclang -plugin-arg-annobin -Xclang option file-nameSustituya option por los argumentos de la línea de comandos
annobiny sustituya /path/to/directory/containing/annobin/ por la ruta absoluta del directorio que contieneannobin.Ejemplo
Para mostrar detalles adicionales sobre lo que
annobinestá haciendo, utilice:$ clang -fplugin=/usr/lib64/clang/10/lib/annobin.so -Xclang -plugin-arg-annobin -Xclang verbose file-nameSustituya file-name por el nombre del archivo.