Post List

2015년 1월 9일 금요일

Database 보안

작가
김규백
출판
프리렉
발매
2013.05.07
평점

오라클 데이터베이스 보안이란 책을 읽고 그중 Database 보안에 대한 내용을 정리해 보았다.

 통상적으로 Software 개발시 처음에는 성능, 안정성을 우선하여 개발한다. DBMS 역시 마찬가지다. 처음부터 보안적인 부분까지 고려하여 개발하기란 쉽지 않다. 그래서 DBMS 중에 보안에 대한 취약성이 있는 경우가 많다.

 국내 Database 보안사고 사례를 보면 70%는 내부망에서 일어났으며, 그 중 90%는 내부인의 소행이다.

 Database 보안을 적용하기에 앞서 기본이 되는 지침들이 있다.

 첫째, 보안패치를 실행한다. D/B는 그 특성상 동작을 멈추고 보안패치를 실행하기가 쉽지 않은데, 패치하기 전까지는 해당 위험에 노출되어 있으니 각별히 신경을 써야 한다.

 둘째, 사용안하는 계정은 잠그며, 비밀번호도 만료시켜야 한다.

 셋째, 비밀번호 정책을 강화한다.

 넷째, 의심스러운 작업을 모니터링 해야 한다.

 다섯째, 계정, 패스워드는 절대로 Text 형태로 저장하여서는 안된다.

* Database 보안의 영역

1. 암호화(Encryption)

 - 민감한 Data는 암호화하여 처리한다. Database 설정뿐 아니라 응용 프로그램까지 수정해야 하므로 적용이 귀찮다.
 - Column Level 암호화, Table Space 암호화 설정
 - Data Masking : 원본 Data를 알아 볼 수 없도록 변조
 - Backup 암호화 : Backup Data 로 개인정보가 유출되는 사례가 많다.

2. 접근제어(Access Control)

 - SQL 명령어 실행 통제
 - 보안영역 설정 : 특정 Group/사용자만 특정 영역에 접근가능 (심지어 DBA도 접근불가하게 설정)
 - 행단위 접근제어 : 한개의 Table에 대해서도 자기 부서 정보만 열람 가능하도록 설정
 - Level 지정 접근제어 : 해당 Level 이상의 권한이 있는 사람만 열람 가능하도록 설정
 - 접속유형 제한 : IP, 사용자, 시간 등
 - 보안위반사항 알림 : 관리자에게 자동 e-mail 전송 등...
 - 보고서 생성

3. 감사(Audit)

 - 감사대상 선정 -> 수집방안 -> 소스 Database 설정 -> 수집기 설정 -> 보고서 Data 생성 -> 경보 설정

* SQL Injection

 - D/B 보안 솔루션 만으로는 해결이 힘들다.
 - Application 개발시 신경써야 한다. Parameter 처리 -> Bind Variable 사용
 - DBMS 보안에서 고려사항 : 최소한의 권한 부여, 보안 영역 보호, 명령어 원천 차단, 대량 정보 조회 감사

* 10가지 Database 보안 위험

 1. 과도한 권한에 의한 남용 (Excessive Privilege Abuse)
 2. 정당한 권한에 의한 남용 (Legitimate Privilege Abuse)
 3. 권한 상승 (Privilege Elevation)
 4. 플랫폼 취약성 (Platform Vulnerabilities)
 5. SQL Injection
 6. 약한 감사 기능 (Weak Audit Trail)
 7. DoS (Deniel of Service)
 8. 데이터베이스 프로토콜 오류 (Database Communication Protocol Vulnerabilities)
 9. 약한 인증 (Weak Authentication)
10. 백업 데이터 노출 (Backup Data Exposure)


블로거의 오늘의 책에 참여한 포스트 입니다

댓글 없음:

댓글 쓰기