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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sobelow — Phoenix Framework를 위한 보안 중심의 정적 분석 | Kitploit
도구/GitHubGitHub/nccgroup/sobelow
Static AnalysisVulnerability ScannersVulnerability AnalysisCode AnalysisWeb Security
GitHubnccgroup/sobelow

sobelow

Phoenix Framework를 위한 보안 중심의 정적 분석

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Sobelow

Module Version Hex Docs Total Download License Last Updated

Sobelow는 Elixir 및 Phoenix 프레임워크를 위한 보안 중심 정적 분석 도구입니다. 보안 연구자에게는 관심 지점을 빠르게 파악하는 유용한 도구이며, 프로젝트 관리자에게는 다양한 일반적인 취약점 도입을 방지하는 데 사용될 수 있습니다.

현재 Sobelow는 다음과 같은 유형의 보안 문제를 탐지합니다.

  • 안전하지 않은 구성
  • 알려진 취약점이 있는 종속성
  • 크로스 사이트 스크립팅
  • SQL 인젝션
  • 명령어 인젝션
  • 코드 실행
  • 서비스 거부
  • 디렉터리 트래버설
  • 안전하지 않은 직렬화

잠재적 취약점은 불안전성에 대한 신뢰도에 따라 다른 색상으로 표시됩니다. 높은 신뢰도는 빨간색, 중간 신뢰도는 노란색, 낮은 신뢰도는 초록색입니다.

일반적으로 함수가 안전하지 않게 사용될 수 있지만, 해당 함수가 사용자 입력을 받는지 신뢰할 수 있게 판단할 수 없는 경우 "낮은 신뢰도"로 표시됩니다. 즉, 발견 항목이 초록색으로 표시되면 중대한 보안 취약점일 수 있지만, 더 많은 수동 검증이 필요합니다.

참고: 이 프로젝트는 지속적으로 개발 중이며, 시간이 지남에 따라 추가적인 취약점이 플래그될 예정입니다. 버그를 발견하거나 추가 기능 또는 보안 검사를 요청하려면 이슈를 열어주세요!

목차

  • 설치
    • 사용 방법
  • 옵션
  • 설정 파일
  • 오탐지
  • 모듈
  • 엄브렐라 앱
  • 업데이트

설치

Sobelow를 사용하려면 애플리케이션의 종속성에 추가할 수 있습니다.

root@kitploit:~
def deps do
  [
    {:sobelow, "~> 0.13", only: [:dev, :test], runtime: false}
  ]
end

또한 명령줄에서 다음을 실행하여 Sobelow를 전역적으로 설치할 수 있습니다.

root@kitploit:~
$ mix escript.install hex sobelow

최신 릴리스가 아닌 master 브랜치에서 설치하려면 다음 명령을 사용할 수 있습니다.

root@kitploit:~
$ mix escript.install github nccgroup/sobelow

사용 방법

설치 후, Phoenix 프로젝트를 스캔하는 가장 간단한 방법은 프로젝트 루트에서 다음을 실행하는 것입니다.

root@kitploit:~
$ mix sobelow

옵션

참고: 경로 인수는 절대 경로이거나 애플리케이션 루트를 기준으로 한 상대 경로여야 합니다.

  • --root 또는 -r - 애플리케이션 루트 디렉터리를 지정합니다. 경로 인수를 받습니다(예: ../my_project).

  • --verbose 또는 -v - 코드 조각 및 추가 발견 세부 정보를 출력합니다.

  • --ignore 또는 -i - 특정 발견 유형을 무시합니다. 쉼표로 구분된 모듈 이름 목록을 받습니다(예: XSS.Raw,Traversal).

  • --ignore-files - 파일을 무시합니다. 쉼표로 구분된 파일 이름 목록을 받습니다(예: config/prod.exs).

  • --details 또는 -d - 발견 유형에 대한 세부 정보를 가져옵니다. 단일 모듈 이름을 받습니다(예: Config.CSRF).

  • --all-details - 모든 발견 유형의 세부 정보를 가져옵니다.

설정 파일

Sobelow는 사용자가 자주 사용하는 옵션을 설정 파일에 저장할 수 있도록 허용합니다. 예를 들어, 항상 다음을 실행하는 경우:

root@kitploit:~
$ mix sobelow -i XSS.Raw,Traversal --verbose --exit Low

--save-config 플래그를 사용하여 .sobelow-conf 설정 파일을 만들 수 있습니다:

root@kitploit:~
$ mix sobelow -i XSS.Raw,Traversal --verbose --exit Low --save-config

이 명령은 애플리케이션 루트에 .sobelow-conf 파일을 생성합니다. 이 파일을 직접 편집하여 변경할 수 있습니다.

이 패키지를 처음 사용할 때 옵션 없이 명령을 실행할 수도 있습니다:

root@kitploit:~
$ mix sobelow --save-config

생성된 설정 파일에는 각 옵션의 기본값이 채워집니다. (이렇게 하면 기존 코드베이스에 이 패키지를 빠르게 통합하는 데 도움이 됩니다.)

이제 저장된 구성으로 Sobelow를 실행하려면 --config 플래그와 함께 Sobelow를 실행하면 됩니다.

root@kitploit:~
$ mix sobelow --config

오탐지

Sobelow는 과소 보고보다 과대 보고를 선호합니다. 따라서 일반적인 스캔에서 많은 오탐지를 발견할 수 있습니다. 이러한 발견 항목은 함수 정의 앞에 # sobelow_skip 주석과 모듈 목록을 추가하여 개별적으로 무시할 수 있습니다.

root@kitploit:~
# sobelow_skip ["Traversal"]
def vuln_func(...) do
  ...
end

Sobelow를 새 프로젝트에 통합할 때 많은 오탐지가 발생할 수 있습니다. 출력된 모든 발견 항목을 오탐지로 표시하려면 --mark-skip-all 플래그와 함께 sobelow를 실행하세요.

적절한 발견 항목에 태그를 지정한 후에는 --skip 플래그와 함께 Sobelow를 실행하세요.

root@kitploit:~
$ mix sobelow --skip

# sobelow_skip 주석은 함수 수준의 발견 항목만 표시할 수 있지만(구성 문제를 건너뛰는 데는 사용할 수 없음), --mark-skip-all 플래그는 모든 유형의 발견 항목을 건너뛰는 데 사용할 수 있습니다.

모듈

발견 항목 범주는 모듈로 나뉩니다. 이러한 모듈은 발견 클래스를 무시(ignore 및 skip 옵션 사용)하거나 취약점 세부 정보를 가져오는 데(details 옵션 사용) 사용할 수 있습니다.

이 목록 및 기타 유용한 정보는 명령줄에서 확인할 수 있습니다:

root@kitploit:~
$ mix help sobelow

엄브렐라 앱

엄브렐라 앱 내의 모든 하위 앱을 단일 명령으로 Sobelow로 스캔하려면 루트 mix.exs 파일에 sobelow에 대한 별칭을 추가할 수 있습니다:

root@kitploit:~
defp aliases do
  [
    sobelow: ["cmd mix sobelow"]
  ]
end

엄브렐라 앱에서 설정 파일을 사용하려면 각 하위 애플리케이션에 .sobelow-conf를 생성하고 --config 플래그를 사용하세요.

업데이트

프로젝트를 스캔할 때 Sobelow는 가끔 업데이트를 확인하고 새 버전이 있으면 알림을 출력합니다. Sobelow는 스캔된 프로젝트의 루트에 .sobelow 파일을 생성하여 마지막 업데이트 확인을 추적합니다.

이 기능이 필요하지 않은 경우 --private 플래그를 스캔과 함께 사용할 수 있습니다.

도구 다운로드
  • --private - 업데이트 확인을 건너뜁니다.

  • --router - 라우터 위치를 지정합니다. 라우터 위치가 비표준인 경우에만 사용해야 합니다. 경로 인수를 받습니다(예: my/strange/router.ex).

  • --exit - low, medium 또는 high의 신뢰도 임계값 이상에서 0이 아닌 종료 상태를 반환합니다. 기본값은 false로, 0 종료 상태를 반환합니다.

  • --threshold - low(기본값), medium 또는 high의 신뢰도 수준 이상인 발견 항목을 반환합니다.

  • --format 또는 -f - 발견 항목 출력 형식을 지정합니다. 형식을 받습니다(예: txt 또는 json).

    json 형식에서는 --verbose와 같은 옵션이 작동하지 않습니다. 모든 json 형식의 발견 항목에는 type, file, line 키가 포함됩니다. 다른 키는 다를 수 있습니다.

  • --quiet - 발견 항목 수를 나타내는 한 줄을 반환합니다. 발견 항목이 없으면 출력을 반환하지 않습니다.

  • --compact - 신뢰도에 따라 색상이 지정된 최소 단일 줄 발견 항목을 표시합니다.

  • --flycheck - flycheck 기반 도구와 호환되는 최소 단일 줄 발견 항목을 표시합니다.

  • --save-config - 명령줄 옵션을 기반으로 설정 파일을 생성합니다. 자세한 내용은 설정 파일을 참조하세요.

  • --config - 설정 파일로 Sobelow를 실행합니다. 자세한 내용은 설정 파일을 참조하세요.

  • --mark-skip-all - 표시된 모든 발견 항목을 건너뛸 수 있는 것으로 표시합니다.

  • --clear-skip - --mark-skip-all로 생성된 구성을 지웁니다.

  • --skip - 건너뛰기로 표시된 발견 항목을 무시합니다. 자세한 내용은 오탐지를 참조하세요.

  • --version - Sobelow의 현재 버전을 출력합니다. 이는 CI 단계 또는 Salus와 같은 다른 도구와의 통합에 유용합니다.