incastle의 콩나물
Bandit으로 application security testing하기 본문
Bandit이란?
- bandit은 Python 코드에서 일반적인 보안 문제를 찾기 위해 설계된 도구입니다.
- 이를 위해 Bandit은 각 파일을 처리하고 이 파일에서 AST를 만들고 AST 노드에 대해 적절한 플러그인을 실행합니다. - - Bandit이 모든 파일 스캔을 마치면 보고서를 생성합니다.
사용법
## severity-level : low, medium, high 중 특정 level 이상의 보안 항목만 보고 싶을 때
## o : save file path
## f : save file format (csv, json 등 다양하게 있음)
## b : baseline_report 설정
bandit -r . o [save_report_path] --severity-level [level] -f json
bandit -r . o [save_report_path] --severity-level [level] -f json -b [baseline path]
1) baseline없이 먼저 report를 만든다.
2) 추후 배포를 하거나 코드 변경이 있을 때 baseline report를 바라보고 bandit을 돌린다.
3) baseline에서 발생됐던 report들 이외에 새로운 bug or severity 코드가 발생되면 results부분에 해당 코드들이 report되어 저장된다.
4) 새로운 bug가 없으면 results는 빈 list를 반환한다.
참고
- AST : application security testing
- DAST : dynamic application security testing
- 동적 어플리케이션 보안 테스트
- Black-Box Test 방식
- 응용 프로그램의 내부 구조나 작동원리를 모르는 상태에서 동작을 검사하는 테스트 방식
- 어플리케이션이 실행 중인 상태에서 보안 취약점을 탐지하는 것
- 대부분의 DAST Solution은 웹 어플리케이션의 취약점을 테스트하도록 설계되어 있다. -
- SAST : static application security testing
- 정적 어플리케이션 보안 테스트
- White-Box Test 방식
- 응용 프로그램의 내부 구조와 동작을 검사하는 테스트 방식
- 컴파일되지 않은 소스코드를 분석하여 수치 오류, 입력 유효성, 경쟁 조건(Race Condition), 경로 탐색, 포인터 및 참조 등과 같은 결함을 확인할 수 있다.
광고
광고
'Data Engineering' 카테고리의 다른 글
CGI, WSGI, ASGI (0) | 2022.02.05 |
---|
Comments