L'Apisan est un outil qui déduit automatiquement les usages d'API corrects à partir du code source sans effort manuel. L'idée clé de l'Apisan est d'extraire les modèles d'utilisation corrects probablement dans quatre aspects différents (par exemple, la relation causale et la relation sémantique sur les arguments) en considérant les contraintes sémantiques. L'Apisan est adapté pour vérifier diverses propriétés avec des implications de sécurité. Nous avons appliqué APISAN à 92 millions de lignes de code, y compris le noyau Linux, et OpenSSL, avons trouvé 76 bogues précédemment inconnus, et avons fourni des correctifs pour tous les bogues.
Ce référentiel a un outil d'analyse et LLVM. Les fichiers liés à LLVM suivent leur propre licence (licence.llvm) et l'outil d'analyse est fourni en vertu des termes de la licence 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},
}