Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
semgrep-rules — 취약점 연구를 용이하게 하기 위한 제 Semgrep 규칙 모음입니다. | Kitploit
도구/GitHubGitHub/0xdea/semgrep-rules
Static Code Analysis (SAST)Vulnerability AnalysisCode AnalysisBinary AnalysisLearning & EducationCurated Resources
GitHub0xdea/semgrep-rules

semgrep-rules

취약점 연구를 용이하게 하기 위한 제 Semgrep 규칙 모음입니다.

저장소 보기
86689244일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

semgrep-rules

validate

"공격 표면이 곧 취약점이다. 그곳에서 버그를 찾는 것은 단지 세부 사항일 뿐이다."

-- Mark Dowd

"어떤 세부 사항은 다른 것보다 더 중요하다."

-- Fedor G. Pikus

취약점 연구를 돕기 위한 제 Semgrep 규칙 모음입니다.

Program in C

블로그 게시물

  • https://hnsecurity.it/blog/semgrep-ruleset-for-c-c-vulnerability-research
  • https://hnsecurity.it/blog/automating-binary-vulnerability-discovery-with-ghidra-and-semgrep
  • https://hnsecurity.it/blog/big-update-to-my-semgrep-c-cpp-ruleset
  • https://hnsecurity.it/blog/streamlining-vulnerability-research-with-the-idalib-rust-bindings-for-ida-9-2/
  • https://hnsecurity.it/blog/my-semgrep-c-cpp-ruleset-is-ready-for-prime-time-again/

참고 항목

  • https://appsec.guide/docs/static-analysis/semgrep/
  • https://semgrep.dev/docs/writing-rules/overview
  • https://semgrep.dev/r

설정 및 사용 방법

  1. Semgrep를 설치합니다.
  2. Semgrep 레지스트리를 통해 이 규칙을 사용하려면 대상 소스 코드 저장소의 루트 폴더에서 다음을 실행합니다.
# high priority scan (quick wins)
semgrep --severity ERROR --config "p/0xdea"

# high and medium priority scan (recommended)
semgrep --severity ERROR --severity WARNING --config "p/0xdea"

# full scan (might include marginal findings and more false positives)
semgrep --config "p/0xdea"

또는 이 GitHub 저장소를 로컬에 클론한 후 다음을 실행할 수 있습니다.

# full scan
semgrep --config semgrep-rules/rules /path/to/source

# specific rule scan
semgrep --config semgrep-rules/rules/c/command-injection.yaml /path/to/source

[!TIP] --no-git-ignore 스위치를 지정하면 git 추적 상태나 .gitignore 규칙과 관계없이 파일을 스캔할 수 있습니다.

보다 간소화된 경험을 위해 Semgrep 스캔 출력을 SARIF 형식으로 저장하고 VS code에서 SARIF Explorer를 사용할 것을 권장합니다:

semgrep --sarif --sarif-output=/path/to/source/SEMGREP.sarif --config semgrep-rules/rules /path/to/source
code /path/to/source # then open the SEMGREP.sarif file in VS code with SARIF Explorer 

포함된 SARIF 출력 예제도 참조하세요.

호환성

Semgrep CLI 1.169.0으로 테스트했습니다.

규칙

C/C++

실전에서 검증된 C(때때로 C++) 규칙 세트입니다.

버퍼 오버플로

  • insecure-api-gets. 안전하지 않은 API 함수 gets의 사용.
  • insecure-api-strcpy-strcat. 잠재적으로 안전하지 않은 API 함수 strcpy, stpcpy, strcat의 사용.
  • insecure-api-sprintf-vsprintf. 잠재적으로 안전하지 않은 API 함수 sprintf 및 vsprintf의 사용.
  • insecure-api-scanf. scanf 계열의 잠재적으로 안전하지 않은 API 함수 사용.
  • incorrect-use-of-strncat. strncat에 잘못된 크기 인자가 전달됨.
  • use-of-source-size-in-copy. strncpy, memcpy, snprintf 및 변형 함수에 잘못된 크기 인자가 전달됨.
  • incorrect-use-of-sizeof. 포인터가 가리키는 대상 대신 포인터에 sizeof 연산자를 실수로 사용함.
  • unterminated-string-strncpy. strncpy 및 stpncpy 사용 후 명시적인 NUL 종료가 없음.
  • off-by-one. 잠재적인 off-by-one 오류.
  • unsafe-ret-snprintf-vsnprintf. snprintf 및 vsnprintf 반환값의 잠재적으로 안전하지 않은 사용.
  • unsafe-ret-strlcpy-strlcat. strlcpy 및 strlcat 반환값의 잠재적으로 안전하지 않은 사용.
  • pointer-subtraction. 크기를 결정하기 위해 포인터 뺄셈을 잠재적으로 사용함.
  • write-into-stack-buffer. 스택에 할당된 버퍼로의 직접 쓰기.

정수 오버플로

  • integer-wraparound. 잠재적인 정수 랩어라운드 오류.
  • unsafe-strlen. strlen의 반환값을 short로 캐스팅하는 것은 위험할 수 있음.
  • integer-truncation. 잠재적인 정수 잘림(truncation) 오류.
  • signed-unsigned-conversion. 잠재적인 signed/unsigned 변환 오류.
  • incorrect-unsigned-comparison. 부호 없는 변수가 음수인지 확인함.

포맷 문자열

  • format-string-bugs. 잠재적인 포맷 문자열 버그.

메모리 관리

  • insecure-api-alloca. 잠재적으로 안전하지 않은 API 함수 alloca의 사용.
  • use-after-free. free 이후 잠재적인 사용(use-after-free).
  • double-free. 잠재적인 이중 free.
  • incorrect-use-of-free. 힙에 없는 메모리에 대해 free 호출.
  • unchecked-ret-malloc. malloc, calloc, realloc 등의 반환 코드를 확인하지 않음.
  • putenv-stack-var. 스택에 할당된 변수로 putenv 호출.
  • ret-stack-address. 스택에 할당된 변수의 주소를 잠재적으로 반환함.
  • mismatched-memory-management. 잠재적으로 일치하지 않는 C 메모리 관리 루틴.
  • mismatched-memory-management-cpp. 잠재적으로 일치하지 않는 C++ 메모리 관리 루틴.
  • memory-address-exposure. 잠재적인 기본 메모리 주소 노출.

명령어 주입

  • command-injection. system 또는 popen을 통한 잠재적인 OS 명령어 주입.

경쟁 조건

도구 다운로드