Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
scanner-cli — 프로젝트 보안/취약점/위험 스캐닝 도구 | Kitploit
도구/GitHubGitHub/hawkeyesec/scanner-cli
Static AnalysisVulnerability ScannersContainer SecurityCode AnalysisDevSecOpsSecret DetectionArchived
GitHubhawkeyesec/scanner-cli

scanner-cli

프로젝트 보안/취약점/위험 스캐닝 도구

저장소 보기
361864년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

지원 종료 공지: Hawkeye의 수명이 종료되었습니다.

귀하와 귀하의 프로젝트를 위한 더 현대적인 옵션이 있습니다. 프로젝트 유지 관리를 인수하고 싶다면 언제든지 저에게 연락해 주세요. 연락 방법은 제 개인 홈페이지에서 찾을 수 있습니다.

.

.

.

.

.

.

Hawkeye scanner-cli는 프로젝트 보안, 취약점 및 일반 위험을 강조하는 도구입니다. 사전 커밋 훅(pre-commit hooks)과 파이프라인에 통합하도록 설계되었습니다.

스캐너 실행 및 구성

Hawkeye scanner-cli는 디렉터리 구조가 툴체인의 파일을 최상위에 두는 것으로 가정합니다. 대략적으로 요약하면 다음과 같습니다:

  • Node.js 프로젝트는 최상위에 package.json이 있습니다.
  • Ruby 프로젝트는 최상위에 Gemfile이 있습니다.
  • Python 프로젝트는 최상위에 requirements.txt가 있습니다.
  • PHP 프로젝트는 최상위에 composer.lock이 있습니다.
  • Java 프로젝트는 build (gradle) 또는 target (maven) 폴더가 있으며, .java 및 .jar 파일을 포함합니다.
  • Kotlin 프로젝트는 build (gradle) 또는 target (maven) 폴더가 있으며, .kt 및 .jar 파일을 포함합니다.
  • Scala 프로젝트는 target (sbt with sbt-native-packager 또는 sbt-assembly 플러그인) 폴더가 있으며, .scala 및 .jar 파일을 포함합니다. 실행 데모는 이 저장소를 확인하세요.
  • Rust 프로젝트는 최상위에 Cargo.toml이 있습니다.

이는 완전한 목록이 아닙니다. 때로는 도구가 추가 파일을 요구하기도 합니다. 모듈이 프로젝트를 처리할 수 있는지 어떻게 결정하는지 이해하려면 작동 방식 섹션과 모듈 폴더를 확인하세요.

Docker (권장)

도커 이미지는 단연코 가장 쉬운 스캐너 사용 방법입니다. 프로젝트 루트(예: $PWD)를 /target에 마운트해야 합니다.

root@kitploit:~
docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest

JSON을 작성하기 위해 스캐너를 사용하는 경우(-j 및 --json CLI 플래그 또는 .hawkeyerc의 json 설정 통해), 올바른 UID와 GID를 사용하도록 docker run -u $(id -u):$(id -g)를 통해 확인하세요. 그렇지 않으면 Jenkins에서 실행할 때 삭제 불가능한 파일이 남을 수 있습니다.

도커 빌드는 CI 파이프라인에서 스캐너를 실행하는 권장 방법이기도 합니다. 다음은 GoCD에서 Hawkeye를 프로젝트 중 하나에 대해 실행하는 예제입니다:

root@kitploit:~
<pipeline name="security-scan">
  <stage name="Hawkeye" cleanWorkingDir="true">
    <jobs>
      <job name="scan">
        <tasks>
          <exec command="docker">
            <arg>pull</arg>
            <arg>hawkeyesec/scanner-cli</arg>
            <runif status="passed" />
          </exec>
          <exec command="bash">
            <arg>-c</arg>
            <arg>docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest</arg>
            <runif status="passed" />
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>

npm

Node.js 프로젝트에 hawkeye를 설치하고 실행하려면 다음을 사용하세요:

root@kitploit:~
npm install --save-dev @hawkeyesec/scanner-cli
npx hawkeye scan

이 방법은 다른 툴체인(예: python, ruby)이 필요하지 않은 Node.js 프로젝트에서 권장됩니다.

이 방법을 사용할 때는 git 사전 커밋 훅(예: pre-commit 패키지 사용)에서 스캐너를 호출하여 문제가 발견되면 커밋을 실패시키는 것이 좋습니다.

설정 파일 (권장)

프로젝트 루트의 .hawkeyerc 및 .hawkeyeignore 파일을 통해 스캐너를 구성할 수 있습니다.

.hawkeyerc 파일은 JSON 파일로 다음을 구성할 수 있습니다:

  • 실행할 모듈
  • 사용할 출력(writer)
  • 실패 임계값
root@kitploit:~
{
    "all": true|false,
    "staged": true|false,
    "modules": ["files-ccnumber", "java-owasp", "java-find-secbugs"],
    "sumo": "http://your.sumologic.foobar/collector",
    "http": "http://your.logger.foobar/collector",
    "json": "log/results.json",
    "failOn": "low"|"medium"|"high"|"critical",
    "showCode": true|false
}

.hawkeyeignore 파일은 스캔에서 제외할 경로 및 모듈 오류 코드와 일치하는 정규 표현식의 모음이며, --exclude 플래그를 사용하는 것과 동일합니다. #로 시작하는 줄은 주석으로 간주됩니다.

정규 표현식에서 예약된 특수 문자(-[]{}()*+?.,^$|#\s)는 리터럴로 사용할 때 이스케이프해야 합니다!

모듈 오류 코드는 일반적으로 사용자에게 주로 관련이 없기 때문에 표시되지 않습니다. 특정 오탐(false positive)을 제외하려면 --show-code 플래그 또는 .hawkeyerc의 showCode 속성을 사용하여 모듈 오류 코드를 표시할 수 있습니다.

root@kitploit:~
^test/

# 이것은 주석입니다

^README.md

CLI

hawkeye modules를 사용하여 사용 가능한 모듈과 해당 상태를 확인하세요.

root@kitploit:~
> npx hawkeye modules
[info] Version: v1.4.0
[info] Module Status
[info] Enabled:   files-ccnumber
[info]            신용카드 번호를 포함할 가능성이 있는 의심스러운 파일 내용을 스캔합니다.
[info] Enabled:   files-contents
[info]            비밀을 포함할 가능성이 있는 의심스러운 파일 내용을 스캔합니다.
[info] Disabled:  files-entropy
[info]            암호를 포함할 가능성이 있는 높은 엔트로피의 문자열을 스캔합니다.
[info] Enabled:   files-secrets
[info]            비밀을 포함할 가능성이 있는 의심스러운 파일 이름을 스캔합니다.
[info] Enabled:   java-find-secbugs
[info]            findsecbugs를 사용하여 Java 코드에서 일반적인 보안 문제를 찾습니다.
[info] Enabled:   java-owasp
[info]            OWASP 종속성 검사기를 사용하여 알려진 취약점이 있는 gradle/maven 종속성을 스캔합니다.
[info] Enabled:   node-npmaudit
[info]            알려진 취약점이 있는 종속성에 대해 노드 프로젝트를 확인합니다.
[info] Enabled:   node-npmoutdated
[info]            오래된 npm 모듈에 대해 노드 프로젝트를 확인합니다.
[info] Enabled:   node-yarnaudit
[info]            알려진 취약점이 있는 종속성에 대해 yarn 프로젝트를 확인합니다.
[info] Enabled:   node-yarnoutdated
[info]            오래된 yarn 모듈에 대해 노드 프로젝트를 확인합니다.
[info] Enabled:   php-security-checker
[info]            security-checker를 사용하여 composer.lock에 알려진 취약점이 있는 종속성이 있는지 확인합니다.
[info] Enabled:   python-bandit
[info]            bandit을 사용하여 Python 코드에서 일반적인 보안 문제를 스캔합니다.
[info] Enabled:   python-piprot
[info]            오래된 패키지에 대해 Python 종속성을 스캔합니다.
[info] Enabled:   python-safety
[info]            safety 도구를 사용하여 알려진 보안 취약점에 대해 Python 종속성을 확인합니다.
[info] Enabled:   ruby-brakeman
[info]            Brakeman으로 Rails 코드를 정적으로 분석하여 보안 문제를 찾습니다.
[info] Enabled:   ruby-bundler-scan
[info]            bundler를 사용하여 알려진 취약점이 있는 Ruby gems을 스캔합니다.

hawkeye scan을 사용하여 스캔을 시작하세요:

root@kitploit:~
> npx hawkeye scan --help
[info] Version: v1.3.0
Usage: hawkeye-scan [options]

Options:
  -a, --all                                       git 저장소가 발견되었는지 여부와 관계없이 모든 파일을 스캔합니다. 기본값은 git 저장소의 추적된 파일입니다.
  -t, --target [/path/to/project]                 스캔할 위치입니다. 기본값은 $PWD입니다.
  -f, --fail-on [low|medium|high|critical]        hawkeye가 0이 아닌 상태 코드를 반환하는 수준을 설정합니다. 기본값은 low입니다.
  -m, --module [module name]                      특정 모듈을 실행합니다. 기본값은 모든 적용 가능한 모듈입니다.
  -e, --exclude [pattern]                         하나 이상의 제외 패턴(예: test/*)을 지정합니다. 여러 번 지정할 수 있습니다.
  -j, --json [/path/to/file.json]                 결과를 파일에 씁니다.
  -s, --sumo [https://sumologic-http-connector]   결과를 SumoLogic에 씁니다.
  -H, --http [https://your-site.com/api/results]  결과를 지정된 URL에 씁니다.
  --show-code                                     모듈이 보고에 사용하는 코드를 표시합니다. 특정 오탐을 무시하는 데 유용합니다.
  -g, --staged                                    git에 스테이징된 파일만 스캔합니다.
  -h, --help                                      사용법 정보를 출력합니다.

결과

종료 코드

scanner-cli는 다음 종료 코드로 응답합니다:

  • 종료 코드 0은 최소 임계값 이상의 결과가 발견되지 않았음을 나타냅니다.
  • 종료 코드 1은 최소 임계값 이상의 문제가 발견되었음을 나타냅니다.
  • 종료 코드 42는 프로그램 내에서 예상치 못한 오류가 발생했음을 나타냅니다. 이는 버그일 가능성이 높으며 발생하지 않아야 합니다. 로그 출력을 확인하고 버그를 신고해 주세요.

콘솔 출력 리디렉션

콘솔 로거 출력을 리디렉션하려면 stdout에 연결하는 것이 권장됩니다. 이 예에서는 JSON과 stdout 결과를 모두 사용하고 있습니다:

root@kitploit:~
docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest -j hawkeye-results.json -f critical 2>&1 | tee hawkeye-results.txt

콘솔 출력

기본적으로 스캐너는 결과를 테이블 형식으로 콘솔에 출력합니다.

Sumologic

결과를 원하는 SumoLogic 수집기로 보낼 수 있습니다. 이 예에서는 단일 HTTP 소스가 있는 수집기를 사용합니다.

root@kitploit:~
hawkeye scan --sumo https://collectors.us2.sumologic.com/receiver/v1/http/your-http-collector-url

SumoLogic에서 _collector="hawkeye" | json auto를 검색하세요:

SumoLogic

모든 HTTP 엔드포인트

SumoLogic 예와 유사하게, 스캐너는 POST 메시지를 수락하는 모든 HTTP 엔드포인트로 결과를 보낼 수 있습니다.

root@kitploit:~
hawkeye scan --http http://your.logging.foobar/endpoint

결과는 User-Agent: hawkeye와 함께 전송됩니다. 콘솔 출력과 유사하게, 각 결과에 대해 다음 JSON이 POST됩니다:

root@kitploit:~
{
  "module": "files-contents",
  "level": "critical",
  "offender": "testfile3.yml",
  "description": "Private key in file",
  "mitigation": "Check line number: 3"
}

작동 방식

Hawkeye는 모듈과 출력(writer)을 추가하여 확장할 수 있도록 설계되었습니다.

  • 모듈 폴더에 모듈을 추가합니다.
  • 출력 폴더에 출력(writer)을 추가합니다.

모듈

모듈은 기본적으로 자체 로직을 구현하거나 타사 도구를 래핑하고 출력을 표준화하는 작은 코드 조각입니다. 필요한 기준이 충족된 경우에만 실행됩니다. 예를 들어, npm outdated 모듈은 스캔 대상에서 package.json이 감지된 경우에만 실행됩니다. 결과적으로 스캔 중인 프로젝트 유형을 Hawkeye에 알릴 필요가 없습니다.

일반 모듈

  • files-ccnumber: 신용카드 번호를 포함할 가능성이 있는 의심스러운 파일 내용을 스캔합니다.
  • files-contents: 비밀을 포함할 가능성이 있는 의심스러운 파일 내용을 스캔합니다.
  • files-entropy: 암호를 포함할 가능성이 있는 높은 엔트로피의 문자열을 스캔합니다. 엔트로피 스캔은 오탐이 많기 때문에 기본적으로 비활성화되어 있습니다. 가끔 코드베이스에서 키를 스캔하는 데 유용하며, 이 경우 -m files-entropy 스위치를 사용하여 실행하세요.
  • files-secrets: 비밀을 포함할 가능성이 있는 의심스러운 파일 이름을 스캔합니다.

Java / Kotlin / Scala

  • java-find-secbugs: findsecbugs를 사용하여 Java 코드에서 일반적인 보안 문제를 찾습니다.
  • java-owasp: OWASP 종속성 검사기를 사용하여 알려진 취약점이 있는 gradle/maven 종속성을 스캔합니다.

Node.js

  • node-npmaudit: npm audit을 사용하여 알려진 취약점이 있는 종속성에 대해 노드 프로젝트를 확인합니다.
  • node-npmoutdated: npm outdated를 사용하여 오래된 npm 모듈에 대해 노드 프로젝트를 확인합니다.
  • node-yarnaudit: yarn audit을 사용하여 알려진 취약점이 있는 종속성에 대해 yarn 프로젝트를 확인합니다.
  • node-yarnoutdated: yarn outdated를 사용하여 오래된 yarn 모듈에 대해 노드 프로젝트를 확인합니다.

PHP

  • php-security-checker: security-checker를 사용하여 composer.lock에 알려진 취약점이 있는 종속성이 있는지 확인합니다.

Python

  • python-bandit: bandit을 사용하여 Python 코드에서 일반적인 보안 문제를 스캔합니다.
  • python-piprot: piprot을 사용하여 오래된 패키지에 대해 Python 종속성을 스캔합니다.
  • python-safety: safety 도구를 사용하여 알려진 보안 취약점에 대해 Python 종속성을 확인합니다.

Ruby

  • ruby-brakeman: Brakeman으로 Rails 코드를 정적으로 분석하여 보안 문제를 찾습니다.
  • ruby-bundler-scan: bundler를 사용하여 알려진 취약점이 있는 Ruby gems을 스캔합니다.

Rust

  • rust-cargoaudit: cargo audit을 사용하여 Cargo.lock에 알려진 취약점이 있는 종속성이 있는지 확인합니다.

모듈 추가

모듈에 대한 아이디어가 있으면 Issues 섹션에서 기능 요청을 자유롭게 열어주세요. 시간이 조금 있다면 풀 리퀘스트를 보내 주시기 바랍니다. 모듈이 어떻게 작동하는지 보려면 모듈 폴더로 이동하여 작동 방식을 확인하세요.

도구 다운로드