━━━━ ◇ ━━━━
정보보안실무/해킹보안실무평가

평가 11. DB보안구축

728x90
반응형

 

[평가 1.1 ~ 1.3]

Web Server(APM), Wordpress 구축, DB 모니터링(PMM-Server) 시스템 구축

Web Server (192.168.10.38)

 

Wordpress (192.168.10.58)

 

 

PMM-Server(192.168.10.70)

 


[평가 1.4] Web Server

- KCyber(DB) : Cyber1, Cyber2 테이블을 생성하고 임의의 데이터 5개 행 입력

Cyber1

Cyber2

 

- KSec(DB) : Sec1 테이블을 생성하고 임의의 데이터 5개 행 입력

Sec1


[평가 2.1]

DB Serverhkituser1, hkituser2, hkituser3 사용자 생성 및 권한, 접근제어 설정

- hkituser1: KSec DB에 모든 권한(로컬호스트)

- hkituser2: KCyber DBCyber1 Table에 대해 select, create 권한(로컬호스트)

- hkituser3: KCyber DBCyber2 Table에 대해 모든 권한(원격호스트: 10.10.10.10)

 
 

[평가 2.2]

PMM을 이용하여 DB 모니터링 서버를 구축하고 클라이언트를 등록하여 관리

 
 
 

[평가 2.3]

Attack(Kali) Victim(DVWA) : SQL Injection을 통해 Password를 추출하고 대응방안에 대해 서술

DVWA(192.168.10.24)

 
 

설명 및 해결방안 확인

 

 


해결방안

1) 신원이 확인 된 클라이언트일지라도 클라이언트에게서 제공되는 입력값을 신뢰하지 말아야한다.

 

2) 서버 측에 입력되는 모든 데이터 값들을 확인해야한다.

 

3) 응용프로그램이 JDBC를 활용한 DB연동을 실행중이라면 Callable Statement나 템플릿 형태인 Prepared Statement‘?’를 통해 전달된 매개변수를 사용해야한다.

 

4) 응용프로그램이 ASP를 사용하는 경우, 확실한 입력값 확인과 매개변수화된 쿼리를 동반한 ADO 명령개체를 사용해야한다.

 

4) 만일 데이터베이스 저장프로시저를 사용가능하다면 사용하는 것이 좋다.

 

5) 절대 저장프로시저에 저장된 쿼리들의 문자열을 연결시키거나 ‘exec’, ‘exec immediate’ 혹은 그와 동일한 기능을 가진 것들을 사용해선 안된다.

 

6) 단일 문자열을 사용하는 동적 SQL 쿼리를 생성하지 말아야한다.

 

7) 클라이언트에게서부터 제공된 모든 데이터들에서 벗어나야한다.

 

8) 허가된 문자에 대해 허가 목록또는 금지된 문자에 대해 거부 목록을 작성, 적용한다.

 

9) 사용자 권한이 최소화된 DB를 사용하여 사용자들이 가질 수 있는 권한을 최소화한다.

 

10) 특히, ‘sa’ 혹은 ‘db-owner’와 같은 DB유저 사용을 지양해야한다. 그리하면 SQL 인젝션의 완벽한 제거는 기대하기 어렵지만 인젝션을 통한 피해를 최소화할 수 있다.

 

11) 응용프로그램에 필요한 수준의 최소 접근 권한만을 허용한다.

 

 
 

 

 

 

 
728x90
반응형
COMMENT