Astra – это основанный на Python инструмент для автоматического тестирования безопасности API, тестирование на проникновение API REST является сложным из-за постоянных изменений в существующих API и вновь появляющихся API.
Astra может использоваться инженерами или разработчиками в области безопасности как неотъемлемую часть процесса, поэтому они могут обнаруживать и исправлять уязвимости на ранних этапах цикла разработки.
Astra может автоматически обнаруживать и проверять вход и выход из системы (API аутентификации), поэтому любой может легко интегрировать это в конвейер CI/CD.
Astra может принимать коллекцию API в качестве входных данных, поэтому ее также можно использовать для тестирования API в автономном режиме, она ищет следующие проблемы:
- SQL-инъекция
- Межсайтовый скриптинг
- Утечка информации
- Аутентификация и управление сессиями
- CSRF (включая слепой CSRF)
- Ограничение скорости
- Неправильная настройка CORS (включая методы обхода CORS)
- Атака JWT
- Обнаружение CRLF
- Слепая инъекция XXE
Использование Astra для автоматического тестирования безопасности API
$ python astra.py --help _ /\ | | / \ ___| |_ _ __ __ _ / /\ \ / __| __| '__/ _` | / ____ \__ \ |_| | | (_| | /_/ \_\___/\__|_| \__,_| usage: astra.py [-h] [-c {Postman,Swagger}] [-n COLLECTION_NAME] [-u URL] [-headers HEADERS] [-method {GET,POST}] [-b BODY] [-l LOGINURL] [-H LOGINHEADERS] [-d LOGINDATA] REST API Security testing Framework optional arguments: -h, --help show this help message and exit -c {Postman,Swagger}, --collection_type {Postman,Swagger} Type of API collection -n COLLECTION_NAME, --collection_name COLLECTION_NAME Type of API collection -u URL, --url URL URL of target API -headers HEADERS, --headers HEADERS Custom headers.Example: {"token" : "123"} -method {GET,POST}, --method {GET,POST} HTTP request method -b BODY, --body BODY Request body of API -l LOGINURL, --loginurl LOGINURL URL of login API -H LOGINHEADERS, --loginheaders LOGINHEADERS Headers should be in a dictionary format. Example: {"accesstoken" : "axzvbqdadf"} -d LOGINDATA, --logindata LOGINDATA login data of API