Apisan - это инструмент, который автоматически позволяет исправлять использование API из исходного кода без ручных усилий. Ключевая идея в апизане состоит в том, чтобы извлечь, вероятно, исправить паттерны использования в четырех различных аспектах (например, причинно -следственная связь и семантическое отношение к аргументам) путем рассмотрения семантических ограничений. Апизан адаптирован для проверки различных свойств с последствиями безопасности. Мы применили Apisan к 92 миллионам строк кода, включая ядро Linux и OpenSSL, нашли 76 ранее неизвестных ошибок и предоставили патчи для всех ошибок.
Этот репозиторий имеет инструмент анализа и LLVM. Файлы, связанные с LLVM, следуют их собственной лицензии (License.llvm), а инструмент анализа предоставляется в соответствии с условиями лицензии 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},
}