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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
whispers — 정적 구조화 텍스트에서 하드코딩된 비밀정보를 식별합니다. | Kitploit
도구/GitHubGitHub/skyscanner/whispers
Static AnalysisVulnerability AnalysisCode AnalysisConfiguration AuditingDevSecOpsSecret DetectionSupply Chain SecurityArchived
GitHubskyscanner/whispers

whispers

정적 구조화 텍스트에서 하드코딩된 비밀정보를 식별합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Whispers Whispers

"내 작은 새들은 어디에나 있어, 북쪽에도 있지. 그들은 나에게 가장 이상한 이야기들을 속삭여." - 바리스 경

Whispers는 하드코딩된 자격 증명과 위험한 함수를 찾기 위해 다양한 일반적인 데이터 형식을 분석하도록 설계된 정적 코드 분석 도구입니다. Whispers는 CLI에서 실행하거나 CI/CD 파이프라인에 통합할 수 있습니다.

감지 항목

  • 비밀번호
  • API 토큰
  • AWS 키
  • 개인 키
  • 해시된 자격 증명
  • 인증 토큰
  • 위험한 함수
  • 민감한 파일

지원되는 형식

Whispers는 구조화된 텍스트 파서로 설계되었으며, 코드 파서가 아닙니다.

다음과 같은 일반적으로 사용되는 형식이 현재 지원됩니다:

  • YAML
  • JSON
  • XML
  • .npmrc
  • .pypirc
  • .htpasswd
  • .properties
  • pip.conf
  • conf / ini
  • Dockerfile
  • Dockercfg
  • 셸 스크립트
  • Python3

Python3 파일은 네이티브 언어 지원으로 인해 AST로 파싱됩니다.

선언 및 할당 형식

다음 언어 파일은 텍스트로 파싱되며 일반적인 변수 선언 및 할당 패턴이 확인됩니다:

  • JavaScript
  • Java
  • Go
  • PHP

특수 형식

  • AWS 자격 증명 파일
  • JDBC 연결 문자열
  • Jenkins 설정 파일
  • SpringFramework Beans 설정 파일
  • Java Properties 파일
  • Dockercfg 개인 레지스트리 인증 파일
  • Github 토큰

설치

PyPI에서

root@kitploit:~
pip3 install whispers

GitHub에서

root@kitploit:~
git clone https://github.com/Skyscanner/whispers
cd whispers
make install

사용법

CLI

root@kitploit:~
whispers --help
whispers --info
whispers source/code/fileOrDir
whispers --config config.yml source/code/fileOrDir
whispers --output /tmp/secrets.yml source/code/fileOrDir
whispers --rules aws-id,aws-secret source/code/fileOrDir
whispers --severity BLOCKER,CRITICAL source/code/fileOrDir
whispers --exitcode 7 source/code/fileOrDir

Python

root@kitploit:~
from whispers.cli import parse_args
from whispers.core import run

src = "tests/fixtures"
configfile = "whispers/config.yml"
args = parse_args(["-c", configfile, src])
for secret in run(args):
  print(secret)

설정

Whispers에는 여러 구성 옵션이 있습니다. 파일 경로, 키 또는 값을 기준으로 결과를 포함/제외할 수 있습니다. 파일 경로 지정은 glob으로 해석됩니다. 키와 값은 정규식 및 기타 여러 매개변수를 허용합니다. 기본 제공되는 기본 구성 파일이 있으며, 사용자 정의 파일을 제공하지 않으면 이 파일이 사용됩니다.

config.yml은 다음과 같은 구조여야 합니다:

root@kitploit:~
include:
  files:
    - "**/*.yml"

exclude:
  files:
    - "**/test/**/*"
    - "**/tests/**/*"
  keys:
    - ^foo
  values:
    - bar$

rules:
  starks:
    message: Whispers from the North
    severity: CRITICAL
    value:
      regex: (Aria|Ned) Stark
      ignorecase: True

감지를 조정(즉, 거짓 양성 및 원하지 않는 결과 제거)하는 가장 빠른 방법은 기본 config.yml을 새 파일로 복사하고, 수정한 다음 Whispers에 인수로 전달하는 것입니다.

whispers --config config.yml --rules starks src/file/or/dir

사용자 정의 규칙

규칙은 키-값 쌍에서 실제로 추출해야 하는 항목을 지정합니다. AWS 키 및 비밀번호와 같은 여러 일반적인 규칙이 내장되어 있지만, 도구는 새로운 규칙으로 쉽게 확장할 수 있도록 설계되었습니다.

  • 사용자 정의 규칙은 기본 구성 파일의 rules: 아래에 정의할 수 있습니다.
  • 사용자 정의 규칙은 whispers/rules에 추가할 수 있습니다.
root@kitploit:~
rule-id:  # 고유한 규칙 이름
  description: AWS 세션 토큰처럼 형식화된 값
  message: AWS Session Token  # 보고서에 이 메시지가 표시됩니다.
  severity: BLOCKER           # BLOCKER, CRITICAL, MAJOR, MINOR, INFO 중 하나

  key:        # 키 형식 지정
    regex: (aws.?session.?token)?
    ignorecase: True   # 대소문자 구분 없음

  value:      # 값 형식 지정
    regex: ^(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9\+\/]{270,450}$
    ignorecase: False  # 대소문자 구분
    minlen: 270        # 값이 최소 이 길이 이상
    isBase64: True     # 값이 base64 인코딩됨
    isAscii: False     # 디코딩 시 값이 바이너리 데이터
    isUri: False       # 값이 URI 형식이 아님

  similar: 0.35        # 키와 값 사이의 최대 허용 유사도
                       # (1.0은 완전히 동일함)

플러그인

모든 파싱 기능은 플러그인을 통해 구현됩니다. 각 플러그인은 파일을 처리하고 규칙으로 확인할 키-값 쌍을 반환하는 pairs() 메서드가 있는 클래스를 구현합니다.

root@kitploit:~
class PluginName:
    def pairs(self, file):
        yield "key", "value"
도구 다운로드