Apisan es una herramienta que infiere automáticamente los usos de API correctos del código fuente sin esfuerzo manual. La idea clave en el apisan es extraer probablemente los patrones de uso correctos en cuatro aspectos diferentes (p. Ej., Relación causal y relación semántica en los argumentos) al considerar las limitaciones semánticas. El Apisan se adapta para verificar varias propiedades con implicaciones de seguridad. Aplicamos Apisan a 92 millones de líneas de código, incluido Linux Kernel, y OpenSSL, encontramos 76 errores previamente desconocidos y proporcionó parches para todos los errores.
Este repositorio tiene herramienta de análisis y LLVM. Los archivos relacionados con LLVM siguen su propia licencia (License.LLVM), y la herramienta de análisis se proporciona bajo los términos de la licencia MIT.
$ ./setup.sh $ apisan build [cmds] $ apisan build ./configure
$ apisan build make $ apisan check --db=[db] --checker=[checker] $ cd test/return-value
$ ../../apisan build make
$ ../../apisan check --checker=rvchk @inproceedings{yun:apisan,
title = {{APISan: Sanitizing API Usages through Semantic Cross-checking}},
author = {Insu Yun and Changwoo Min and Xujie Si and Yeongjin Jang and Taesoo Kim and Mayur Naik},
booktitle = {Proceedings of the 25th USENIX Security Symposium (Security)},
month = aug,
year = 2016,
address = {Austin, TX},
}