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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DBShield — Go로 작성된 데이터베이스 방화벽 | Kitploit
도구/GitHubGitHub/nim4/dbshield
Defensive ToolsWeb SecurityDatabase SecurityAnomaly Detection
GitHubnim4/dbshield

DBShield

Go로 작성된 데이터베이스 방화벽

저장소 보기웹사이트
68416158년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Linux Windows Go Report Card codecov Dev chat GoDoc MIT licensed

DBShield

애플리케이션 서버에서 들어오는 쿼리를 검사하고 비정상적인 쿼리를 거부하여 데이터를 보호합니다.


작동 방식

예를 들어, 일반적으로 웹 서버가 데이터베이스 서버와 상호 작용하는 방식은 다음과 같습니다.

Sample Web Server and DB

데이터베이스 서버 앞에 DBShield를 추가하면 비정상적인 쿼리로부터 보호할 수 있습니다. 비정상적인 쿼리를 탐지하기 위해 먼저 DBShield를 학습 모드로 실행합니다. 학습 모드는 모든 쿼리를 통과시키지만, 내부 데이터베이스에 해당 쿼리의 패턴, 사용자 이름, 시간 및 소스 정보를 기록합니다.

Learning mode

충분한 패턴을 수집한 후에는 DBShield를 보호 모드로 실행할 수 있습니다. 보호 모드는 비정상적인 쿼리 패턴, 사용자 및 소스를 구별하고 구성에 따라 조치를 취합니다.

Protect mode


데모

데모를 위해 sqlmap(자동 SQL 인젝션 및 데이터베이스 장악 도구)을 사용하여 user.php의 SQL 인젝션 취약점을 악용합니다.

첫 번째 시나리오에서는 웹 애플리케이션이 데이터베이스(MySQL)에 직접 연결되었을 때 sqlmap이 성공적으로 SQL 인젝션을 악용합니다. 두 번째 시나리오에서는 user.php를 수정하여 DBShield가 웹 애플리케이션과 데이터베이스 사이에 위치하게 하여 인젝션 시도를 차단하고 sqlmap이 실패하게 만듭니다.

Demo

샘플 출력

CLI

root@kitploit:~
$ go run main.go
2016/10/15 16:25:31 [INFO]  Config file: /etc/dbshield.yml
2016/10/15 16:25:31 [INFO]  Internal DB: /tmp/model/10.0.0.21_postgres.db
2016/10/15 16:25:31 [INFO]  Listening: 0.0.0.0:5000
2016/10/15 16:25:31 [INFO]  Backend: postgres (10.0.0.21:5432)
2016/10/15 16:25:31 [INFO]  Protect: true
2016/10/15 16:25:31 [INFO]  Web interface on https://127.0.0.1:8070/
2016/10/15 16:25:33 [INFO]  Connected from: 10.0.0.20:35910
2016/10/15 16:25:33 [INFO]  Connected to: 10.0.0.21:5432
2016/10/15 16:25:33 [INFO]  SSL connection
2016/10/15 16:25:34 [DEBUG] Client handshake done
2016/10/15 16:25:34 [DEBUG] Server handshake done
2016/10/15 16:25:34 [INFO]  User: postgres
2016/10/15 16:25:34 [INFO]  Database: test
2016/10/15 16:25:34 [INFO]  Query: SELECT * FROM stocks where id=-1 or 1=1
2016/10/15 16:25:34 [WARN]  Pattern not found: [53 55 51 52 55 52 50 53 55 51 53 49 115 116 111 99 107 115 53 55 51 53 50 105 100 54 49 52 53 53 55 51 55 57 53 55 52 48 52 53 55 51 55 57 54 49 53 55 51 55 57] (SELECT * FROM stocks where id=-1 or 1=1)
2016/10/15 16:25:34 [WARN]  Dropping connection

웹 인터페이스

Web UI


설치

다운로드

root@kitploit:~
$ go get -u github.com/nim4/DBShield

그런 다음 "-h" 인수를 사용하여 도움말을 확인할 수 있습니다.

root@kitploit:~
$ $GOPATH/bin/DBShield -h
DBShield 1.0.0-beta3
Usage of DBShield:
  -a	get list of abnormal queries
  -c file
      config file (default "/etc/dbshield.yml")
  -h	show help
  -k	show parsed config and exit
  -l	get list of captured patterns
  -version
      show version

그리고 구성 파일과 함께 실행합니다.

root@kitploit:~
$ $GOPATH/bin/DBShield -c config.yml

샘플 구성 파일을 참조하세요.

경고: 프로덕션 환경에서는 기본 인증서를 사용하지 마십시오!


지원하는 데이터베이스


할 일

(우선순위별 정렬)

  • 문서 개선
  • Microsoft SQL Server 추가
  • 더 많은 명령줄 인수 추가
  • 90% 테스트 커버리지 달성
  • Oracle SSL 지원
도구 다운로드
DatabaseProtectSSL
DB2예아니오
MariaDB예예
MySQL예예
Oracle예아니오
Postgres예예