quinta-feira, 19 de abril de 2018

Plataforma de análisis binario


<h1> Plataforma de análisis binario < h1> La herramienta de análisis binario (Binary Analysis Tool, Binary Analysis Tool) hace que sea más fácil y más barato buscar dentro del código binario, encontrar problemas de cumplimiento normativo y reducir la incertidumbre al implementar software libre y de código abierto. Es un marco modular que ayuda a las actividades de cumplimiento y diligencia debida utilizando el mismo tipo de enfoque aplicado por los titulares de derechos de autor para descubrir problemas en los productos electrónicos de consumo. BAT es y siempre ha estado disponible de forma gratuita bajo la licencia de Apache para que todos puedan usarlo, estudiarlo, compartirlo y mejorarlo. BAT puede abrir más de 30 tipos de archivos comprimidos, sistemas de archivos y archivos multimedia, buscar kernel de Linux y problemas de BusyBox, identificar bibliotecas vinculadas dinámicamente y escanear archivos arbitrarios de clase ELF, Android Dalvik y Java usando una base de datos con información extraída del código fuente para averigua qué software está adentro. La investigación científica detrás de BAT se presentó en MSR 2011. Lea el documento y las diapositivas. La versión 37 de la herramienta se lanzó el 26 de julio de 2017. Esta es la versión final de BAT. No habrá más lanzamientos nuevos. La herramienta de análisis binario fue creada originalmente por Tjaldur Software Governance Solutions y Opendawn. El desarrollo inicial fue patrocinado por la Fundación NLnet, y el desarrollo adicional ha sido patrocinado por la Fundación Linux. El desarrollo de las funciones de análisis de seguridad ha sido posible gracias a una subvención conjunta de la fundación NLnet y el programa "veilig door innovatie" de NCTV.


BAP: una plataforma de análisis binario. David Brumley Ivan Jager Thanassis Avgerinos Edward J. Schwartz. BAP es una infraestructura disponible públicamente para realizar tareas de verificación y análisis de programas en código binario (es decir, ejecutable). En este artículo, describimos BAP así como las lecciones aprendidas de encarnaciones previas de plataformas de análisis binarias. BAP representa explícitamente todos los efectos secundarios de las instrucciones en un lenguaje intermedio (IL), haciendo posible el análisis sintaxis. Hemos usado BAP para generar y resolver rutinariamente condiciones de verificación que tienen cientos de megabytes de tamaño y abarcan 100.000 de instrucciones de ensamblaje. Referencias Informacion registrada. Autores y Afiliaciones. David Brumley 1 Ivan Jager 1 Thanassis Avgerinos 1 Edward J. Schwartz 1 1. Carnegie Mellon University Pittsburgh EE. UU. Recomendaciones personalizadas .RIS Papers Reference Manager RefWorks Zotero. .BIB BibTeX JabRef Mendeley.


Comportamiento. Descarga instantánea Legible en todos los dispositivos. Pruébelo para siempre. Impuesto local sobre las ventas incluido, si corresponde. .RIS Papers Reference Manager RefWorks Zotero. .BIB BibTeX JabRef Mendeley. Galletas. Más de 10 millones de documentos científicos a su alcance. &dupdo; 2017 Springer International Publishing AG. Parte de Springer Nature.


BitBlaze: análisis binario para seguridad informática. Informe de investigación y descripción general. El análisis binario es imprescindible para proteger los programas COTS (comunes desde el primer momento) y analizar y defenderse frente a la miríada de códigos maliciosos, donde el código fuente no está disponible y el binario puede incluso ofuscarse. Además, el análisis binario proporciona la verdad fundamental sobre el comportamiento del programa ya que las computadoras ejecutan binarios (ejecutables), no el código fuente. Sin embargo, el análisis binario es desafiante debido a la falta de semántica de alto nivel. Muchas técnicas de alto nivel a menudo son inadecuadas para analizar binarios benignos, y menos binarios potencialmente maliciosos. Por lo tanto, necesitamos desarrollar herramientas y técnicas que funcionen a nivel binario, que se puedan usar para analizar el software COTS, así como binarios maliciosos. El proyecto BitBlaze tiene como objetivo diseñar y desarrollar una poderosa plataforma de análisis binario y emplear la plataforma para (1) analizar y desarrollar nuevos mecanismos de protección y diagnóstico COTS y (2) analizar, comprender y desarrollar defensas contra códigos maliciosos. El proyecto BitBlaze también se esfuerza por abrir nuevas áreas de aplicación de análisis binario, que proporciona soluciones sólidas y efectivas para aplicaciones más allá de la seguridad del software y la defensa de códigos maliciosos, como ingeniería inversa de protocolo y generación de huellas dactilares. El proyecto BitBlaze consta de dos direcciones centrales de investigación: (1) el diseño y desarrollo de la plataforma de análisis binario BitBlaze subyacente y (2) la aplicación de la plataforma de análisis binario BitBlaze a problemas reales de seguridad. Los dos enfoques de investigación se impulsan entre sí: a medida que surgen nuevos problemas de seguridad, desarrollamos nuevas técnicas de análisis. Del mismo modo, desarrollamos nuevas técnicas de análisis para resolver mejor o más eficientemente los problemas conocidos. A continuación, ofrecemos una descripción general de las dos direcciones de investigación.


Aquí hay un resumen del proyecto BitBlaze. Algunas de nuestras herramientas también están disponibles bajo una licencia de código abierto. La plataforma de análisis binario BitBlaze. Vine, el componente de análisis estático. Lanzamiento de código abierto disponible ahora. Vine proporciona un lenguaje intermedio para ensamblaje (ILA) y una infraestructura para analizar programas escritos en este lenguaje. ILA es un lenguaje completo en el que los programas se pueden escribir, verificar a máquina y luego compilar hasta el ensamblaje. También ofrecemos análisis sobre ILA, como la interpretación abstracta, el análisis de dependencia y el análisis lógico a través de interfaces con demostradores de teoremas. TEMU, el componente de análisis dinámico. Lanzamiento de código abierto disponible ahora.


TEMU proporciona un entorno de análisis dinámico a través de la emulación de todo el sistema y la instrumentación binaria dinámica. TEMU es consciente del sistema operativo (es decir, entiende la semántica del nivel de sistema operativo) y permite el desarrollo de varios análisis dinámicos de grano fino, como el análisis dinámico de la contaminación y el análisis detallado del comportamiento. Rudder, el componente para la ejecución simbólica dinámica en línea. Rudder es un motor para la ejecución dinámica en línea en binarios. En un nivel alto, con un conjunto específico de fuentes de entrada de interés, Timbre puede explorar automáticamente diferentes rutas de ejecución en un programa determinado por las fuentes de entrada. Automáticamente construirá fórmulas lógicas que representan las restricciones en la entrada elegida para tomar las rutas seguidas. Información de publicación: ahora estamos haciendo que algunas partes clave de la Plataforma de análisis binario BitBlaze estén disponibles bajo licencias de código abierto. Vea una página separada para más información. Junto con nuestra presentación de BlackHat 2010, también hemos realizado una versión binaria de demostración de algunas herramientas para el análisis de bloqueos basado en trazas. BitBlaze en acción: aplicaciones de seguridad. Detección de Vulnerabilidad, Diagnóstico y Defensa. Gráfico de flujo de información y control híbrido (HI-CFG) Muchas tareas de análisis de seguridad requieren la comprensión de la estructura de alto nivel de un programa binario en términos tanto de su flujo de control como de los datos en los que opera.


Para facilitar la ingeniería inversa automática de dicha estructura, hemos introducido una nueva representación de programa, un gráfico híbrido de flujo de información y control (HI-CFG). Nuestra investigación explora algoritmos para inferir un HI-CFG a partir de un rastreo a nivel de instrucción, sin requerir información de nivel de fuente o análisis estático. Un analista de seguridad a menudo necesita comprender dos ejecuciones del mismo programa que exhiben una diferencia en el estado o salida del programa. Esto es importante, por ejemplo, para el análisis de vulnerabilidad, así como para analizar un programa de malware que presenta diferentes comportamientos cuando se ejecuta en diferentes entornos. Differential Slicing es una técnica de corte automático para el análisis de tales diferencias de ejecución. El gráfico de diferencia causal que genera captura las diferencias de entrada que desencadenaron la diferencia observada y la ruta causal de las diferencias que condujeron desde esas diferencias de entrada a la diferencia observada. Gusanos como CodeRed y SQL Slammer pueden comprometer millones de hosts en cuestión de horas o incluso minutos y han causado miles de millones de dólares en daños estimados. ¿Cómo podemos diseñar y desarrollar mecanismos de defensa efectivos contra tales ataques rápidos de gusanos a gran escala? Sting es un sistema automático de defensa contra gusanos que propone un conjunto de técnicas novedosas para detectar automáticamente nuevos exploits, realizar diagnósticos exhaustivos y generar anticuerpos efectivos (firmas de vulnerabilidad y binarios reforzados) para proteger los hosts vulnerables y las redes de nuevos ataques. Los parches de seguridad se supone que corrigen las vulnerabilidades en los programas. Pero, ¿cuáles son las implicaciones de seguridad de un parche de seguridad? En este trabajo, proponemos nuevas técnicas y demostramos que uno podría generar exploits automáticamente a partir del parche binario y el binario del programa vulnerable original y, a veces en minutos. Ejecución simbólica extendida en bucle: diagnóstico y descubrimiento de desbordamiento de búfer.


La ejecución simbólica extendida en bucle (o LESE) es una nueva técnica que generaliza los resultados de las técnicas de ejecución simbólica dinámica anteriores, que amplía los resultados con los efectos de los bucles. LESE es un habilitador clave para el descubrimiento automatizado de vulnerabilidades de seguridad, especialmente desbordamientos de búfer, que es altamente ineficiente con la ejecución puramente simbólica concreta. También permite un diagnóstico más profundo de las vulnerabilidades conocidas, lo que permite que las herramientas de generación de firmas automatizadas razonen sobre la entrada de longitud variable o los elementos repetidos en la entrada. El análisis dinámico de manchas es una herramienta fundamental para detectar ataques de sobreescritura, pero se limita a una distinción de todo o nada en cuanto a si los valores están bajo el control de un atacante, y sufre errores falsos positivos y falsos negativos. Proponemos una influencia cuantitativa para caracterizar con mayor precisión el grado de control que tiene un atacante sobre un valor. Una especialización del concepto de capacidad de canal de la teoría de la información, mostramos que la influencia cuantitativa se puede calcular con precisión utilizando un procedimiento de decisión. La influencia cuantitativa distingue con precisión los ataques reales de los falsos positivos entre las advertencias generadas por una herramienta dinámica de análisis de manchas en servidores binarios vulnerables. El análisis estático, el análisis dinámico y la ejecución simbólica tienen fortalezas complementarias para explorar el espacio de las ejecuciones de programas, pero cada uno tiene limitaciones significativas. ¿Cómo podemos combinarlos para aprovechar las mejores características de los tres? Nuestro trabajo sobre la generación de pruebas dinámicas automatizadas dirigidas estáticamente explora un proceso de tres etapas. Primero realiza un análisis dinámico para construir un modelo de flujo de control, luego realiza un análisis estático para buscar posibles vulnerabilidades y, finalmente, utiliza la ejecución simbólica dinámica para probar que las advertencias son verdaderas positivas al encontrar casos de prueba concretos para ellas. En una evaluación sobre un conjunto de puntos de referencia de desbordamiento de búfer extraídos de aplicaciones reales, los resultados de las dos primeras fases permitieron que la ejecución simbólica desencadenara vulnerabilidades que de otro modo no podrían tener, incluidos todos menos uno de los puntos de referencia.


Análisis automático de malware y defensa. Detección y análisis de malware de violación de privacidad. Una gran cantidad de malware, como keyloggers, Browser-helper Objects (BHO) basado en spyware, rootkits, backdoors, accesos y filtra información sensible de los usuarios y viola la privacidad de los usuarios. ¿Podemos tener un enfoque unificado para identificar ese tipo de malware que infringe la privacidad a pesar de su apariencia muy variada? Panorama propone un enfoque unificado para detectar malware que infringe la privacidad mediante el análisis de la contaminación dinámica de todo el sistema. El empaquetado de código es una técnica comúnmente utilizada para dificultar el análisis de código malicioso a través de ingeniería inversa. Aunque este problema se ha investigado previamente, las soluciones existentes no son capaces de manejar muestras nuevas o son vulnerables a diversas técnicas de evasión. Renovo propone un enfoque totalmente dinámico para la extracción de código oculto, capturando una naturaleza intrínseca de la ejecución de código oculto. Detección y análisis de comportamientos de enganche de malware. Un vector importante de ataque de malware es su mecanismo de enganche. Los programas maliciosos implantan ganchos para muchos propósitos diferentes. El software espía puede implantar ganchos para recibir notificaciones sobre la llegada de nuevos datos confidenciales. Los rootkits pueden implantar ganchos para interceptar y alterar la información crítica del sistema para ocultar su presencia en el sistema. Una puerta trasera sigilosa también puede colocar ganchos en la pila de red para establecer un canal de comunicación sigiloso con atacantes remotos.


HookFinder propone un análisis de impacto preciso para detectar y analizar automáticamente los comportamientos de enganche del malware. Dado que esta técnica captura la naturaleza intrínseca de los comportamientos de enganche, es muy adecuada para identificar nuevos mecanismos de enganche. Disección automática de malware y análisis de comportamiento basado en el disparador. El malware a menudo tiene un comportamiento incrustado que solo se exhibe cuando se cumplen ciertas condiciones. Tal comportamiento basado en disparadores incluye bombas de tiempo, bombas lógicas y programas de botnets que reaccionan a los comandos. El análisis estático del malware a menudo proporciona poca utilidad debido al empaque y la ofuscación del código. El análisis dinámico de Vainilla solo ofrece una visión limitada ya que las condiciones de activación generalmente no se cumplen. ¿Cómo podemos diseñar métodos de análisis automático para descubrir las condiciones de activación y el comportamiento basado en disparadores ocultos en el malware? BitScope permite la exploración automática de rutas de ejecución de programas en malware para descubrir condiciones de activación (como el tiempo utilizado en bombas de tiempo y comandos en programas botnet) y el comportamiento basado en disparadores, utilizando la ejecución simbólica dinámica.


BitScope también proporciona un análisis en profundidad del comportamiento de entrada salida del malware. Extracción y análisis automáticos del modelo. Extracción de modelos relacionados con la seguridad de navegadores para análisis y descubrimiento de vulnerabilidades. En este trabajo, mostramos cómo usar técnicas de exploración mejoradas de cadenas blancas para extraer automáticamente los modelos relacionados con la seguridad de los navegadores y descubrir automáticamente las vulnerabilidades de scripts entre sitios (XSS) mediante la comparación de los modelos extraídos con los filtros de los sitios web. Detección de desviación en Binarios. Muchos protocolos y servicios de red tienen varias implementaciones diferentes. La identificación automática de desviaciones en diferentes implementaciones del mismo protocolo servicio puede permitir la detección de posibles errores de implementación sin la especificación del protocolo, y puede permitir la generación automática de huellas digitales para identificar una implementación de forma remota. ¿Cómo podemos identificar automáticamente tales desviaciones en los binarios que implementan la misma especificación?


La detección de desviación identifica automáticamente las desviaciones en diferentes binarios para detectar errores de implementación y generar huellas dactilares. Se logra construyendo fórmulas simbólicas que caracterizan cómo cada binario procesa una entrada. Muchos protocolos de red son propietarios o no tienen una especificación bien documentada. Sin embargo, muchas aplicaciones de seguridad requieren la ingeniería inversa del protocolo y la repetición del diálogo de aplicación (rastreo de red). Dispatcher, Polygot y Replayer extraen automáticamente información sobre los protocolos de red y habilitan la reproducción del diálogo de la aplicación mediante el análisis binario. BitBlaze en las noticias: Vulnerabilidades y cobertura. El proyecto FPGate recibió el premio especial de reconocimiento Microsoft BlueHat Prize Contest en 2012. Vulnerabilidades descubiertas. CVE-2011-0904 Acceso a la memoria fuera de límites en Gnome VNC Vino Server CVE-2011-0905 Acceso a memoria fuera de límites en Gnome VNC Vino Server CVE-2008-3465 (MS08-071) Desbordamiento de búfer basado en el almacenamiento dinámico gdi32.dll OSVDB-66497 Acceso a memoria fuera de límites en Cutwail bot OSVDB-66498 Desreferencia de punteros nulos en Gheg bot OSVDB-66499 Desreferencia de punteros nulos en troyano Zbot OSVDB-66500 Rizo infinito en troyano Zbot OSVDB-66501 Basado en pila y montón desbordamiento de búfer basado en el troyano Zbot. El ciudadano ruso Oleg Nilolaenko, arrestado en un show automotriz en Las Vegas el mes pasado, es acusado de operar una botnet que en su apogeo generó un tercio del spam mundial.


(InformationWeek, diciembre de 2010) La herramienta BitBlaze aumenta la productividad de búsqueda de errores en 10 veces. El destacado investigador de vulnerabilidades Charlie Miller habla sobre la herramienta en Black Hat. (Computerworld, julio de 2010) Tantos errores, muy poco tiempo. Las herramientas que encuentran errores serios automáticamente podrían conducir a un software más seguro y estable. (Technology Review, julio de 2010) Rompiendo el código de Botnet. El software que descifra las comunicaciones de botnets podría ayudar a infiltrar las redes de delincuentes. (Technology Review, noviembre de 2009) Posiciones de trabajo y voluntariado. El proyecto BitBlaze busca desarrolladores que ayuden a ampliar y mejorar nuestro marco de última generación para el análisis binario en aplicaciones de seguridad.


En particular, buscamos desarrolladores investigadores con habilidades y experiencia que incluyen seguridad informática, lenguajes y compiladores, lenguaje ensamblador, trabajo de bajo nivel de sistema operativo y procedimientos de decisión. Tenemos vacantes para pasantes (para el verano u otro período similar), personal científico programadores de personal, postdoctorados y contribuyentes de código abierto. Si está interesado, envíe un currículum vitae y una descripción del interés a bitblaze. jobs en gmail. com. Facultad: Dawn Song. Para preguntas generales sobre el proyecto BitBlaze, envíe un correo electrónico a bitblaze en gmail. com. Para recibir anuncios sobre versiones de código y otras actualizaciones relacionadas con Bitblaze, suscríbase a la Lista de Anuncios de Bitblaze. Plataforma de análisis binario: angr. Plataforma de análisis binario. angr es un marco de análisis binario independiente de la plataforma desarrollado por el Laboratorio de Seguridad Informática en UC Santa Barbara y su equipo CTF asociado, Shellphish. angr es un conjunto de bibliotecas de Python que le permiten cargar un archivo binario y hacerle muchas cosas interesantes: Desmontaje y elevación de elevación intermedia Instrumentación del programa Ejecución simbólica Análisis de flujo de control Análisis de dependencia de datos Análisis de conjuntos de valores (VSA) La operación de angr más común es cargar un archivo binario: p = proyecto. Angulo (' bin bash') Si hace esto en IPython, puede usar tab-autocompletar para explorar los métodos accesibles a nivel superior y sus cadenas de documentos.


La versión corta de "cómo instalar angr" es mkvirtualenv angr & amp; & amp; pip instalar angr. angr es una plataforma de análisis binario multi-arquitectura, con la capacidad de realizar una ejecución simbólica dinámica (como Mayhem, KLEE, etc.) y varios análisis estáticos en binarios. Se deben superar varios desafíos para hacer esto. Ellos son, aproximadamente: Cargando un binario en el programa de análisis. Traducir un binario en una representación intermedia (IR). Traducir ese IR en una representación semántica (es decir, qué hace, no solo qué es). Realizando el análisis real. Esto podría ser: un análisis estático de programa parcial o completo (es decir, análisis de dependencia, división de programas).


Una exploración simbólica del espacio de estado del programa (es decir, "¿Podemos ejecutarlo hasta que encontremos un desbordamiento?"). Alguna combinación de lo anterior (es decir, "Ejecutamos solo cortes de programas que conducen a una escritura de memoria, para encontrar un desbordamiento"). angr es una biblioteca de python, por lo que debe instalarse en su entorno python antes de que pueda ser utilizado. Está diseñado para Python 2: el soporte de Py3k es factible en algún momento en el futuro, pero dudamos en hacer ese compromiso en este momento (¡las solicitudes de extracción son bienvenidas!). Recomendamos encarecidamente utilizar un entorno virtual de python para instalar y usar angr. Varias de las dependencias de angr (z3, pyvex) requieren bibliotecas de código nativo que se bifurcan de sus originales, y si ya tiene libz3 o libVEX instalado, definitivamente no desea sobrescribir los objetos compartidos oficiales con los nuestros. En general, no espere soporte para problemas que surjan de la instalación de angr fuera de un virtualenv. Todas las dependencias de python deben ser manejadas por pip y o los scripts setup. py. Sin embargo, necesitará construir algo de C para ir de aquí hasta el final, por lo que necesitará un buen entorno de compilación así como los encabezados de desarrollo de python. En algún momento del proceso de instalación de la dependencia, instalará la biblioteca python cffi, pero (al menos en Linux) no se ejecutará a menos que instale el paquete libffi de su sistema operativo. En Ubuntu, querrás: sudo apt-get install python-dev libffi-dev build-essential virtualenvwrapper. Si está probando angr-management, necesitará sudo apt-get install libqt4-dev graphviz-dev. La mayoría de los sistemas operativos, todos los sistemas * nix.


mkvirtualenv angr & amp; & amp; pip install angr suele ser suficiente para instalar angr en la mayoría de los casos, ya que angr se publica en el Python Package Index. Los usuarios de Fish (shell) pueden usar virtualfish o el paquete virtualenv. vf new angr & amp; & amp; vf active angr y amp; & amp; pip instalar angr. De lo contrario, puede instalar angr instalando los siguientes repositorios (y las dependencias enumeradas en sus archivos requirements. txt), en orden, desde github. comangr: Antes de decir pip install angr, debe reconstruir nuestro fork de z3 con la instalación de pip - I --no-use-wheel angr-only-z3-custom. No puede instalar angr desde pip en windows. Debe instalar todos sus componentes individualmente. Capstone es difícil de instalar en Windows. Es posible que necesite especificar manualmente una rueda para instalar, pero a veces se instala con un nombre diferente de "piedra de toque", por lo que, si eso sucede, simplemente desea eliminar el tope de los archivos requirements. txt en angr y archinfo.


Z3 podría compilarse en Windows si tiene un entorno de compilación suficientemente grande. Si este no es el caso para usted, debe descargar una rueda desde algún lugar de Internet. Una ubicación para los archivos de rueda de Windows preconstruidos es github. comOwlzangr-Windows. Si compila z3 desde el origen, asegúrese de estar utilizando la rama inestable de z3, que incluye soporte de punto flotante. Además, asegúrese de tener Z3PATH = ruta a libz3.dll en su entorno. Puede configurar angr en modo de desarrollo haciendo: Esto clona todos los repositorios y los instala en modo editable. setup. sh incluso puede crear un virtualenv PyPy para usted, lo que resulta en un rendimiento significativamente más rápido y menor uso de memoria. Puede bifurcar editar recompilar los diversos módulos en el lugar, y se reflejará automáticamente en su entorno virtual. Para mayor comodidad, enviamos una imagen Docker con 99% de garantía de que funcionará.


Puede instalar a través de Docker haciendo: La sincronización de archivos dentro y fuera de la ventana acoplable se deja como ejercicio para el usuario (sugerencia: verifique docker - v). BinaryAnalysisPlatform. Plataforma de análisis binario. QEMU Interactive Runtime Analyzer. Una especificación formal para BIL. El tutorial de BAP BAP enlaces de pitón. C Enlaces a BAP. Plataforma de análisis binario.


5 Actualizado el 13 de noviembre de 2017. Principal repositorio público de paquetes para OPAM, el administrador de paquetes fuente de OCaml. CC0-1.0 Actualizado el 8 de noviembre de 2017. herramienta de verificación bil 5 Actualizado el 7 de noviembre de 2017. Almacene y lea rastros en Protobuf. MIT actualizado el 2 de noviembre de 2017. QEMU Interactive Runtime Analyzer. Espejo QEMU oficial. 1,538 Actualizado el 19 de octubre de 2017. integración con IDA. MIT actualizado el 16 de octubre de 2017.


binaryanalysisplatform. github. io. 8 Actualizado el 13 de octubre de 2017. El tutorial de BAP MIT actualizado el 3 de octubre de 2017. BAP enlaces de pitón. MIT actualizado el 15 de septiembre de 2017. C Enlaces a BAP. MIT actualizado 25 de agosto de 2017. Repositorio de complementos BAP. MIT actualizado 25 de agosto de 2017. MIT actualizado el 7 de octubre de 2016. Lwt en el estilo Core de Janestreet.


3 actualizado 23 de agosto de 2016. 6 Actualizado el 8 de julio de 2016. 4 Actualizado el 3 de junio de 2016. MIT actualizado el 14 de diciembre de 2015. deprecated-qemu-tracer. GPL-2.0 actualizado el 23 de octubre de 2015. Una especificación formal para BIL. 3 Actualizado el 3 de octubre de 2015. 7 Actualizado el 1 de abril de 2015.


8 Actualizado el 31 de marzo de 2015. 3 Actualizado el 2 de febrero de 2015. MIT actualizado 13 de diciembre de 2014. obsoleto-bap-contenedor. 1 actualizado 12 de diciembre de 2014. MIT actualizado 12 de diciembre de 2014. 1 actualizado 12 de diciembre de 2014.


artefactos de prueba para la plataforma ARM. 4 Actualizado el 23 de noviembre de 2014. 2 Actualizado el 8 de octubre de 2014. &dupdo; 2017 GitHub, Inc. Términos Privacidad Ayuda de Estado de seguridad. No puedes realizar esa acción en este momento. Has iniciado sesión con otra pestaña o ventana. Recarga para actualizar tu sesión. Has cerrado sesión en otra pestaña o ventana. Recarga para actualizar tu sesión. <h1> Plataforma de análisis binario < h1> Solicitudes de extracción 8. GitHub es el hogar de más de 20 millones de desarrolladores que trabajan juntos para alojar y revisar códigos, administrar proyectos y crear software en conjunto. Use Git o finalice la compra con SVN utilizando la URL web. Binary Analysis Platform es una plataforma de ingeniería inversa y análisis de programas que se dirige a los binarios, es decir, a los programas compilados sin el código fuente. BAP admite varias arquitecturas (más de 30), aunque las arquitecturas de primer nivel son x86, x86-64 y ARM.


BAP opera desensamblando y levantando el código binario en el lenguaje de instrucción BAP (BIL) similar a RISC. Por lo tanto, el análisis, implementado en BAP, es independiente de la arquitectura en el sentido de que funcionará igualmente bien para todas las arquitecturas compatibles. La plataforma viene con un conjunto de herramientas, bibliotecas y complementos. El objetivo principal de BAP es proporcionar un conjunto de herramientas para el análisis automatizado de programas. BAP está escrito en OCaml y es el idioma preferido para escribir análisis, tenemos enlaces a C, Python y Rust. BAP se desarrolló en CMU, Cylab y está patrocinado por diversas subvenciones del Departamento de Defensa de los Estados Unidos, Siemens AG y el gobierno de Corea; consulte a los patrocinadores para obtener más información. Proporcionamos paquetes binarios empaquetados para los derivados de Debian y Red Hat. Para otras distribuciones proporcionamos archivos tgz. Para instalar bap en un derivado de Debian: La versión binaria no contiene OCaml runtime, y solo es adecuada si no va a ampliar BAP utilizando el lenguaje de programación OCaml (la forma recomendada).


Recomendamos usar el administrador de paquetes OPAM para instalar BAP y un entorno de desarrollo. Después de que haya instalado OPAM correctamente, haga lo siguiente: Para usar una versión específica de llvm (admitimos 3.4, 3.8 y 4.0) especifique la versión deseada explícitamente a través del paquete conf-llvm, por ejemplo, ¿Tienes algún problema? Luego, visite nuestra página de resolución de problemas o contáctenos directamente a través de nuestro chat de Gitter. La interfaz principal de BAP es una utilidad de línea de comandos llamada bap. Puede usarlo para explorar el binario, ejecutar análisis existentes, agregar su propio comportamiento, cargar rastreos y mucho más. Para volcar un programa en varios formatos use la opción --dump (o su equivalente corto, - d), por ejemplo, ejecute bap en el archivo x86_64-linux-gnu-echo. Por defecto, las opciones --dump utilizan el formato IR, pero puede elegir entre varios otros formatos. Use la opción --list-formats para obtener la lista. Sin embargo, los complementos son proporcionados por complementos, por lo que el hecho de que no vea el formato preferido en la lista no significa que no pueda generarlo. Compruebe OPAM en busca de complementos que puedan proporcionar el formato que desea leer (el complemento bap-piqi proporciona protobuf, xml y json, que cubren muchos casos de uso). Para descubrir qué complementos están actualmente disponibles, use la opción --list-plugins. Se imprimirá una breve descripción para cada complemento. La opción --list-plugins también acepta una lista de etiquetas, que limitará la salida a complementos que coincidan con las etiquetas seleccionadas.


Para la lista de etiquetas, use la opción --list-tags. También puede usar el comando opam search bap, para obtener la información sobre los paquetes bap, disponible desde OPAM. Para obtener información sobre un complemento específico llamado & lt; PLUGIN & gt; use la opción - & lt; PLUGIN & gt; - help, por ejemplo, bap --llvm-help. La utilidad bap funciona con binarios completos; si tiene pocos bytes con los que desea abordar, entonces bap-mc es lo que está buscando. Una forma idiomática de usar BAP es extenderlo con un complemento. Supongamos que quiere escribir algún análisis. Por ejemplo, estimamos la relación entre las instrucciones de salto y la cantidad total de instrucciones (un valor que probablemente se correlaciona con la complejidad de un programa). Hagamoslo. Crea una carpeta vacía, luego abre tu editor de texto favorito y escribe el siguiente programa en un archivo jmp. ml: Antes de ejecutarlo, repasemos el código.


El objeto contador es un visitante que tiene un estado que consiste en un par de contadores. El primer contador realiza un seguimiento del número de términos de jmp, y el segundo contador se incrementa cada vez que ingresamos un término. La función principal solo ejecuta el contador. Finalmente, lo registramos con la función Project. register_pass '. Más tarde, la función se puede invocar desde una línea de comando, y obtendrá una estructura de datos del proyecto, que contiene toda la información que se recuperó de un archivo binario. Para compilar el complemento, simplemente ejecute el siguiente comando: Es más fácil ejecutar el pase, si está instalado, así que hagámoslo: Ahora podemos probarlo: OK, si el ejemplo anterior no tiene sentido para ti, entonces puedes probar nuestras vinculaciones de Python. Instálelos con pip install bap (aún necesita instalar bap de antemano). Aquí está el mismo ejemplo, pero en Python: El mismo programa en C ocupará demasiado espacio y no encajará en el formato README, pero este es un ejemplo de un simple diassembler en C: El ejemplo se puede compilar con el siguiente comando (suponiendo que el código esté en el archivo example. c): BAP también envía un nivel superior interactivo, también conocido como REPL. Este es un programa tipo concha que evaluará interactivamente las instrucciones OCaml e imprimirá los resultados. Solo corre: Ahora puedes jugar con BAP. El siguiente ejemplo abrirá un archivo, construirá un callgraph de un programa y un flujograma de control con un árbol de dominancia de una función.


Nota: si no quiere usar baptop utop, entonces puede ejecutar lo siguiente en cualquier nivel superior de OCaml: Además de la documentación de API, tenemos blog y wiki, donde puedes encontrar información útil. Además, tenemos un chat permanentemente tripulado en caso de emergencia. Mire la insignia en la parte superior del archivo README, y siéntase libre de unirse. BAP es un marco, por lo que no necesita cambiar su código para extenderlo. Usamos el principio de inyección de dependencia con muchos puntos de inyección para permitir al usuario alterar el comportamiento de BAP. Sin embargo, se producen errores, por lo que si tiene algún problema, pregunta o sugerencia, no dude en utilizar nuestro rastreador de problemas. Enviar una solicitud de extracción con una corrección de problema nos hará realmente felices. Sin embargo, solo aceptaremos solicitudes de extracción que tengan licencia de MIT. Si escribió un análisis con BAP, no dude en enviarlo a OPAM, para el beneficio de la comunidad.


Proyecto DARPA VET Siemens AG Institute for Information & amp; Beca de Promoción de Tecnología de Comunicaciones (IITP) financiada por el gobierno de Corea (MSIT) (No.2015-0-00565, Desarrollo de Tecnologías de Detección de Vulnerabilidades para Seguridad de Software de IoT) Por favor, contáctenos si desea ser un patrocinador. No puedes realizar esa acción en este momento. Has iniciado sesión con otra pestaña o ventana. Recarga para actualizar tu sesión. Has cerrado sesión en otra pestaña o ventana. Recarga para actualizar tu sesión. <h1> Plataforma de análisis binario < h1> La herramienta de análisis binario (Binary Analysis Tool, Binary Analysis Tool) hace que sea más fácil y más barato buscar dentro del código binario, encontrar problemas de cumplimiento normativo y reducir la incertidumbre al implementar software libre y de código abierto. Es un marco modular que ayuda a las actividades de cumplimiento y diligencia debida utilizando el mismo tipo de enfoque aplicado por los titulares de derechos de autor para descubrir problemas en los productos electrónicos de consumo. BAT es y siempre ha estado disponible de forma gratuita bajo la licencia de Apache para que todos puedan usarlo, estudiarlo, compartirlo y mejorarlo. BAT puede abrir más de 30 tipos de archivos comprimidos, sistemas de archivos y archivos multimedia, buscar kernel de Linux y problemas de BusyBox, identificar bibliotecas vinculadas dinámicamente y escanear archivos arbitrarios de clase ELF, Android Dalvik y Java usando una base de datos con información extraída del código fuente para averigua qué software está adentro. La investigación científica detrás de BAT se presentó en MSR 2011. Lea el documento y las diapositivas.


La versión 37 de la herramienta se lanzó el 26 de julio de 2017. Esta es la versión final de BAT. No habrá más lanzamientos nuevos. La herramienta de análisis binario fue creada originalmente por Tjaldur Software Governance Solutions y Opendawn. El desarrollo inicial fue patrocinado por la Fundación NLnet, y el desarrollo adicional ha sido patrocinado por la Fundación Linux. El desarrollo de las funciones de análisis de seguridad ha sido posible gracias a una subvención conjunta de la fundación NLnet y el programa "veilig door innovatie" de NCTV. <h1> Plataforma de análisis binario < h1> La plataforma de análisis binario BitBlaze presenta una nueva fusión de técnicas de análisis dinámico y estático, concreto mixto y ejecución simbólica, y emulación de todo el sistema e instrumentación binaria, todo para facilitar la investigación de vanguardia sobre problemas de seguridad reales. Dos de los componentes más importantes en BitBlaze son Vine, el componente de análisis estático que proporciona un lenguaje intermedio para analizar códigos de máquina, y TEMU, el componente de análisis dinámico que proporciona emulación de todo el sistema e instrumentación binaria dinámica, incluido el análisis de contaminación. Ahora hemos hecho que algunas de las partes centrales de la plataforma BitBlaze (Vine y TEMU) estén disponibles para el uso de otros investigadores, bajo licencias de código abierto.


Sin embargo, tenga en cuenta que esto no incluye las aplicaciones particulares que hemos creado utilizando esa plataforma. Junto con nuestra presentación de BlackHat 2010, hemos realizado una versión binaria de demostración de algunas herramientas para el análisis de bloqueos basado en trazas. Está disponible un código fuente adicional relacionado con BitBlaze que no es una versión completa, pero incluye código para algunas funcionalidades más en comparación con las versiones 1.0. Este código, que anteriormente estaba disponible por solicitud, ahora está disponible para su descarga directa; mira la sección de descargas a continuación. FuzzBALL, una herramienta binaria de ejecución simbólica basada en Vine, ahora tiene una versión de vista previa disponible. Publicaciones y documentación. Manual de instalación y uso de Vine (HTML) (o PDF) Describe cómo crear Vine, y brinda una introducción estilo-tutorial a su lenguaje y uso. Manual de instalación y uso de TEMU (HTML) (o PDF) Describe cómo construir TEMU y brinda una introducción al uso del estilo de un tutorial. Vine 1.0 ahora está disponible para su descarga bajo la licencia de ISC. La versión incluye el código fuente de C ++ y OCaml y las versiones apropiadas de la biblioteca VEX y el procedimiento de decisión STP para los sistemas Linux x86 recientes.


El lanzamiento de la versión 1.0 contiene parte de la funcionalidad principal de Vine relacionada con el procesamiento IL y de seguimiento, pero tenemos planes para lanzar más partes de Vine en el futuro: mantengase suscrito a la lista de avisos bitblaze para actualizaciones. TEMU 1.0 ya está disponible para descargar. El lanzamiento incluye el código fuente para el núcleo TEMU (basado en QEMU 0.9.1) y un plugin testigo de muestra, publicado bajo la Licencia ISC, así como también un binario Linux para el complemento de seguimiento Tracecap. Esta versión no incluye muchos otros complementos de análisis que hemos creado utilizando TEMU, pero quédese suscrito a la lista de anuncios bitblaze para obtener actualizaciones sobre lanzamientos futuros. Un lanzamiento de fuente adicional ahora está disponible para descarga directa. Esta versión incluye código para algunas funcionalidades adicionales en comparación con las versiones de TEMU y Vine 1.0, incluido el código fuente para el complemento Tracecap. Estamos lanzando todo el código escrito por BitBlaze bajo la Licencia de ISC. (Por supuesto, al combinar el código desarrollado por BitBlaze con otro software, debe cumplir con todas las licencias relevantes). Reconocimiento y cita Lista de correo y contacto. Aunque no proporcionamos soporte formal para BitBlaze en este momento, nos gustaría saber si lo está utilizando, si encuentra algún error o problema, o si tiene sugerencias para agregar funciones. Suscríbete a la lista de correo de bitblaze-users (a través de Grupos de Google) y comparte tus experiencias.


Para preguntas generales sobre el proyecto BitBlaze, envíe un correo electrónico a bitblaze en gmail. com. Para recibir anuncios sobre versiones de código y otras actualizaciones relacionadas con Bitblaze, suscríbase a la Lista de Anuncios de Bitblaze. BAP: la plataforma de análisis binario. Investigadores: David Brumley, Andres Jager. Alcance: Investigar nuevas técnicas de análisis binario e implementar esas nuevas técnicas como parte de Binary Analysis Platform (BAP). Use esas técnicas para nuevas investigaciones de seguridad de software. Sinergia: las mejoras en el análisis binario nos permiten obtener mejores resultados en seguridad de software; y la seguridad del software motiva qué técnicas de análisis binario son más relevantes para la seguridad. Resultados: Publicaciones en lugares académicos apropiados, prototipos de herramientas disponibles para los socios de CyLab y otros investigadores. Plataforma de análisis binario dinámico. Abstracto. El análisis binario dinámico ha demostrado su fortaleza para resolver un amplio espectro de problemas de seguridad informática, especialmente el análisis de malware. Una plataforma extensible para el análisis binario dinámico proporciona una base para resolver estos problemas.


Para habilitar una variedad de aplicaciones, exploramos un espacio de diseño único. Nuestro objetivo es proporcionar una vista de todo el sistema, adoptar un enfoque externo, facilitar la instrumentación de grano fino y tener suficiente eficiencia. Estos objetivos de diseño generan una nueva arquitectura, a saber, el análisis binario dinámico de grano fino listo para usar de todo el sistema. Para facilitar aún más el análisis binario dinámico de grano fino, proponemos la ejecución anotativa en capas como técnica central, que incorpora análisis de indicador de sombra, análisis de contaminación y ejecución simbólica. Hemos implementado esta nueva arquitectura y la técnica central en una plataforma de análisis llamada TEMU. Debido a su extensibilidad y versatilidad, TEMU sirve como base para numerosas técnicas de análisis de malware. Informacion registrada. Autores y Afiliaciones. Heng Yin 1 Dawn Song 2 1. Departamento de Ingeniería Eléctrica y Ciencias de la Computación Syracuse University Syracuse USA 2. División de Ciencias de la Computación Universidad de California, Berkeley Berkeley, EE. UU. Recomendaciones personalizadas .RIS Papers Reference Manager RefWorks Zotero. .BIB BibTeX JabRef Mendeley. Comportamiento. Descarga instantánea Legible en todos los dispositivos.


Pruébelo para siempre. Impuesto local sobre las ventas incluido, si corresponde. .RIS Papers Reference Manager RefWorks Zotero. .BIB BibTeX JabRef Mendeley. Galletas. Más de 10 millones de documentos científicos a su alcance. &dupdo; 2017 Springer International Publishing AG. Parte de Springer Nature.

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.