Model Checking (Detección de Troyanos de Hardware usando ATPG y Model Checking)
La amenaza de la existencia de troyanos por hardware en los circuitos integrados se ha
convertido en una gran preocupación en la industria del diseño System-on-Chip (SoC), así como en las organizaciones militares / de defensa. Hay un mayor énfasis en encontrar formas efectivas para detectar y activar troyanos de hardware en los esfuerzos actuales de investigación. Sin embargo, los enfoques de última generación adolecen de la falta de integridad y escalabilidad. Además, la mayoría de los métodos existentes no pueden generar pruebas eficientes para activar el posible troyano oculto. En este documento, proponemos un enfoque de generación de prueba eficaz que es capaz de activar la funcionalidad maliciosa oculta en grandes diseños secuenciales. La generación automática de patrones de prueba (ATPG) funciona bien en diseños de escaneo completo, mientras que la verificación de modelos es adecuada para bloques lógicos sin cadena de escaneo. Debido a consideraciones generales, la inserción de la cadena de escaneo parcial es la práctica estándar en la actualidad. Desafortunadamente, ni ATPG ni la verificación de modelo es adecuada para diseños de escaneo parcial.
Nuestra técnica de detección de troyanos de hardware propuesta utiliza la combinación de
enfoques ATPG y de verificación de modelos. Utilizamos la verificación de modelos en un subconjunto de elementos no escaneados y ATPG en elementos de escaneo para evitar las trampas comunes de ejecutar el diseño original con cualquiera de estas técnicas. Los resultados experimentales demuestran la efectividad de las pruebas generadas por nuestro enfoque propuesto para detectar troyanos en los puntos de referencia del centro de confianza.
Verification of Code Generators via Higher-Order
Model Checking (Verificación de generadores de código a través de un control de modelo de orden superior) La generación dinámica de código es útil para optimizar el código con respecto a la información disponible solo en tiempo de ejecución. Escribir un generador de código es, sin embargo, difícil y propenso a errores. Consideramos un lenguaje simple para escribir generadores de código y proponemos un método automatizado para verificar los generadores de código. Nuestro método se basa en la verificación de modelos de mayor orden y puede verificar que un generador de códigos determinado solo pueda generar programas cerrados y bien tipados. Comparado con los lenguajes de programación de múltiples etapas, nuestro enfoque es menos conservador en la capacidad de escritura de los programas generados (es decir, puede aceptar generadores de código válidos que serían rechazados por los lenguajes de múltiples etapas típicos) y puede verificar una gama más amplia de propiedades de generadores de códigos. Hemos implementado el método propuesto y confirmamos su efectividad a través de experimentos.
Using Model-Checking for Timing Verification in
Industrial System Design (Uso de verificación de modelo para la verificación de sincronización en el diseño de sistemas industriales)
Para reducir el riesgo de errores de temporización costosos detectados después de la fase de
integración, existe la necesidad de métodos de predicción de tiempos automatizados, confiables y confiables que ya se apliquen en las primeras etapas de diseño, incluso si se basa en información de tiempo incompleto o parcial. Las estimaciones de tiempo obtenidas se pueden consolidar a lo largo de las diferentes fases de diseño, hasta la integración final. Model-Checking es un buen candidato para la verificación de tiempo de grano grueso, ya que, para tal uso, escala y proporciona estimaciones exactas. Sin embargo, su uso en la industria está condicionado por una integración perfecta en el proceso de desarrollo. En este documento, presentamos nuestra solución para conectar la herramienta de comprobación de modelos ROMEO al proceso de diseño, lo que permite la verificación del comportamiento de sincronización del sistema en las primeras etapas.
How Discover a Malware using Model Checking
(Cómo descubrir un malware utilizando la verificación de modelo) El sistema operativo Android está constantemente saturado por nuevas amenazas sofisticadas y nuevos ataques de día cero. Mientras que el malware agresivo, por ejemplo, comportamientos maliciosos capaces de cifrar archivos de datos o bloquear la GUI, no se preocupan por eludir a los usuarios por infección (que puede tratar de desinfectar el dispositivo), existe malware con el objetivo de realizar acciones maliciosas furtivas, es decir, tratando de no manifestar su presencia a los usuarios. Este tipo de malware es menos reconocible, porque los usuarios no son conscientes de su presencia. En este artículo proponemos FormalDroid, una herramienta capaz de detectar virus maliciosos silenciosos y localizar la carga maliciosa en la aplicación de Android. Evaluando muestras de malware del mundo real obtenemos una precisión igual a 0:94.