
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 보안 테스트 프레임워크
optional arguments:
-h, --help 도움말 메시지를 표시하고 종료
-c {Postman,Swagger}, --collection_type {Postman,Swagger}
API 컬렉션 유형
-n COLLECTION_NAME, --collection_name COLLECTION_NAME
API 컬렉션 이름
-u URL, --url URL 대상 API의 URL
-headers HEADERS, --headers HEADERS
사용자 정의 헤더. 예: {"token" : "123"}
-method {GET,POST}, --method {GET,POST}
HTTP 요청 메서드
-b BODY, --body BODY API의 요청 본문
-l LOGINURL, --loginurl LOGINURL
로그인 API의 URL
-H LOGINHEADERS, --loginheaders LOGINHEADERS
헤더는 딕셔너리 형식이어야 합니다. 예:
{"accesstoken" : "axzvbqdadf"}
-d LOGINDATA, --logindata LOGINDATA
API의 로그인 데이터
api.py를 실행하고 http://127.0.0.1:8094 에서 웹 인터페이스에 접속하십시오.
$ 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



