
REST APIの自動セキュリティテスト

REST APIのペネトレーションテストは、既存のAPIの継続的な変更や新しく追加されるAPIのために複雑です。Astraは、セキュリティエンジニアや開発者がプロセスの一部として使用できるため、開発サイクルの初期段階で脆弱性を検出し修正できます。Astraはログイン・ログアウト(認証API)を自動的に検出しテストするため、誰でも簡単にCICDパイプラインに統合できます。AstraはAPIコレクションを入力として受け取ることができるため、スタンドアロンモードでのAPIテストにも使用できます。
https://www.astra-security.info/roadmap/
$ git clone https://github.com/flipkart-incubator/Astra
$ cd Astra
$ sudo pip install -r requirements.txt
$ sudo rabbitmq-server
$ celery -A worker -loglevel=INFO
$ cd API
$ python3 api.py
$ docker pull mongo
$ docker run --name astra-mongo -d mongo
$ git clone https://github.com/flipkart-incubator/Astra.git
$ cd Astra
$ docker build -t astra .
$ docker run --rm -it --link astra-mongo:mongo -p 8094:8094 astra
$ git clone -b docker-cli https://github.com/flipkart-incubator/Astra.git
$ cd Astra
$ docker build -t astra-cli .
$ docker run --rm -it --link astra-mongo:mongo astra-cli
- requests
- logger
- pymongo
- ConfigParser
- pyjwt
- flask
- sqlmap
- celery
https://www.astra-security.info
$ 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
api.py を実行し、http://127.0.0.1:8094 で Web インターフェースにアクセスします。
$ cd API
$ python api.py
注意:
macOS 10.13+ では、fork() と exec() の変更によりスキャンプロセスが強制終了されるのを防ぐために、フラグ OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES を使用する必要があります。詳細は こちら を参照してください。
$ cd API
$ OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES python api.py



