
Dawn은 루비로 작성된 웹 애플리케이션을 위한 정적 분석 보안 스캐너입니다. Sinatra, Padrino 및 Ruby on Rails 프레임워크를 지원합니다.
dawn은 웹 애플리케이션의 보안 문제를 검토하기 위해 설계된 소스 코드 스캐너입니다.
이 도구는 Ruby로 작성된 웹 애플리케이션을 스캔할 수 있으며, 기본적으로 모든 주요 MVC(Model View Controller) 프레임워크를 지원합니다:
dawn 버전 2.0은 지식 베이스에 680개 이상의 보안 검사를 탑재하고 있으며, NIST의 National Vulnerability Database에서 매주 업데이트됩니다.
코드에서 dawn을 실행하면 프로젝트의 Gemfile.lock을 파싱하여 사용된 젬을 찾고, 사용 중이거나 선호하는 Ruby 버전 관리 도구(RVM, rbenv, ...)에서 선언한 Ruby 인터프리터 버전을 감지하려고 시도합니다.
그런 다음 도구는 웹 애플리케이션이 사용하는 MVC 프레임워크를 감지하고 그에 따라 보안 검사를 적용합니다. Rails 애플리케이션에 맞게 설계된 검사 또는 모든 Ruby 코드에 적용 가능한 검사가 있습니다.
dawn은 또한 뷰의 코드를 이해하고 싱크를 역추적하여 실제로 작성한 코드에 의해 도입된 크로스 사이트 스크립팅 및 SQL 인젝션을 발견할 수 있습니다 (프로젝트 로드맵에서 이 부분이 향후 개발 노력의 대부분이 집중될 코드입니다).
dawn 보안 스캔 결과는 더 강력한 웹 애플리케이션을 구축하기 위해 따라야 할 몇 가지 완화 조치와 함께 취약점 목록을 제공합니다.
다음 명령어를 입력하여 Rubygems에서 최신 dawn 버전을 설치할 수 있습니다:
$ gem install dawnscanner
그런 다음 Github에서 knowledge base를 다운로드하여 아카이브를 $HOME/dawnscanner/kb 디렉토리에 압축 풀어야 합니다.
일반적인 kb 디렉토리 구조는 다음과 같습니다:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
지식 베이스는 다음과 같이 구성됩니다:
버전 2.0부터 도구는 특정 작업을 시작하기 위해 하위 명령어를 사용하며, 각각 특정 도움말 메시지를 제공합니다.
scan 하위 명령어는 dawn이 지정된 대상을 보안 문제에 대해 스캔하도록 지시합니다.
$ dawn scan target
현재 결과는 텍스트 형식으로만 제공되며, 스캔 타임스탬프로 명명된 디렉토리에 $HOME/dawnscanner/results/target 아래 저장됩니다. 여기서 target은 분석 중인 애플리케이션의 이름입니다.
kb 하위 명령어를 사용하여 지식 베이스를 쿼리할 수 있습니다.
dawn kb find # Searches the knowledge base for a given vulnerability
dawn kb help [COMMAND] # Describe subcommands or one specific subcommand
dawn kb lint # Checks knowledge base content for correcteness
dawn kb list gem_name[gem_version] # List all security issues affecting a gem passed as argument (the version string is optional).
dawn kb status # Checks the status of the knowledge base
dawn kb unpack # Unpacks security checks in KB library path
Twitter 프로필: @dawnscanner Github 저장소: https://github.com/thesp0nge/dawnscanner
피드백은 대단히 환영하며, 여러분의 의견을 듣고 싶습니다.
자랑스러운 dawn 사용자이시고, 유용하다고 생각하시며, 릴리스 프로세스에 통합하셨고, 프로젝트를 공개적으로 지원하고 싶다면 여기에 참조를 남겨주세요. 도구에 대한 소감과 회사 로고(있는 경우)를 포함한 내용으로 issue를 열어주세요.
감사합니다.
saten: README의 오타에 관한 첫 번째 이슈를 제기해 주셨습니다.
presidentbeef: dawn을 만들도록 영감을 준 뛰어난 작업과 비교 매트릭스를 이중 확인해 주셨습니다. Issue #2는 당신의 것입니다 :)
marinerJB: 여러 버그 리포트와 추가 아이디어를 제공해 주셨습니다.
Matteo: API에 대한 아이디어와 github.com 훅과의 사용에 대해 알려주셨습니다.
Copyright (c) 2013-2023 Paolo Perego [email protected]
MIT 라이선스
이 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 얻은 모든 사람에게는 제한 없이 소프트웨어를 다룰 수 있는 권한이 무료로 부여됩니다. 여기에는 소프트웨어의 사용, 복사, 수정, 병합, 게시, 배포, 재라이선스 및/또는 판매 권한과 소프트웨어를 제공받은 사람이 이를 수행하도록 허용하는 권한이 포함되며, 다음 조건을 따릅니다:
위 저작권 표시와 이 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함되어야 합니다.
소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 제한되지 않는 모든 명시적 또는 묵시적 보증 없이 제공됩니다. 어떤 경우에도 저작자나 저작권 소유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래에서 발생하거나 이와 관련된 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.