01. 데이터베이스 보안의 개요

 

) 데이터베이스 보안의 개요

 ①  데이터베이스 보안의 3원칙

    - DB정보의 유출, 변경, 파괴의 위협으로부터 기밀성, 무결성, 가용성을 확보하기 위한 관리적, 물리적, 기술적 보호 조치

  DB 보안의 필요성

   - 지속가능 경영 : DB 정보유출 침해사고 발생시 기업의 존립 기반 위협(경제적 손실, 신뢰도 하락)

   - 규제 대응 : 보안의 법적 의무화(개인정보보호법, 정보통신망법, 전자금융거래법)

 

) 데이터베이스의 보안 위협 및 대응

  ①  데이터베이스 보안 위협

보안 위협 취약 요소 설명
웹 보안위협 SQL인젝션, Web Shell - 비인가자의 불법적 정보 획득
취약한 식별 및 인증 반복 인증시도, 사회공학 기법 - 인가된 사용자 신원 불법 획득
데이터 유출 암호해독, 비암호 데이터 유출 - 보호/비보호 된 정보 불법 획득
암호 모듈 오용 불안정/부적합 암호 사용 - 부적절한 암호에 따른 정보 누출 

     데이터베이스 보안 위협 대응

구분 세부내용 사례
접근통제(Access Control) 인가된 사용자만 DB 접근 계정관리, MAC, DAC, RBAC
가상테이블(Views) 뷰 이용 인가된 Data만 접근 Create View
암호화(Encryption) 단방향/양방향 암호 알고리즘 적용 SEED, AES, SHA-256

 

02 데이터베이스 접근통제

 

 ) 데이터베이스 접근통제 정책

   ①  임의적 접근통제(DAC)

      - 주체의 신원에 근거한 객체 접근 제한, 객체 소유자가 접근여부 결정

   ②  강제적 접근통제(MAC)

      - 주체의 권한에 근거한 객체 접근, Ex: 시스템 카탈로그는 DB관리자만 접근

   ③  역할기반 접근통제(RBAC)

      - 주체의 역할에 근거한 객체 접근, Ex: DBA 역할 정의 -> 특정인에게 DBA 역할, 권한 부여

 

 나) 데이터베이스 접근통제 구축방식

   ① 에이전트 방식

      - DB서버에 접근통제, 로깅 기능의 에이전트 설치하고 전용 클라이언트 이용한 접근 방식

      - 특징 : 강력한 AC 가능, DB에 트래픽 발생 -> 성능저하 발생 가능

   ② 게이트웨이 방식

      - DB접근통제 서버(프록시 서버)를 경유하여 DB접근 요청 수행, 가장 강력한 접근통제 가능

      - 특징 : 이중화 구성 가능 -> 장애 발생시 업무 영향 최소화

네트워크 스니핑 방식

   - TAP 장비를 통해 패킷 분석, 로깅 수행, 별도 에이전트 불필요

   - NW에 부하 없이 구축 용이, 부적절한 변조(무결성 훼손)의 원천 차단 난해

             * Tap(Test Access Port) : NW의 데이터 흐름에 영향없이 트래픽을 스니핑(Sniffing) 하는 장비

 

   ④ 하이브리드 방식 : 많이 사용

      - 에이전트 + 게이트웨이 방식, 게이트웨이 + 네트워크 스니핑 방식, 에이전트 + 게이트웨이 + 네트워크 스니핑 방식

 

03 데이터베이스 암호화

 

 ) 데이터베이스 암호화 적용시 고려사항 

고려사항 설명
암호화 대상 및 방식 법규 지정 데이터 및 중요 데이터 우선 선정
암호화 알고리즘 비밀번호- 일방향 암호(SHA-256이상), 그외-양방향 암호(SEED, ARIA, AES)
검색 및 성능 인덱스 유지 등 성능 고려, 부분 암호화 적용
암호 키 관리 /복호화 키, 생성~폐기까지 안전하게 관리

 

  ) 데이터베이스 암호화 대상 및 방식

 ) 데이터베이스 암호화 유형

   ①  API 방식

      - 응용프로그램 서버내 암/복호화 모듈 설치하여 수행

      - 특징 : 다수 응용프로그램 수정 필요, AP서버와 DB간 암호상태 통신

                   DB서버 부하 낮음, AP서버 부하 높음

       - 적용 조건 : 응용프로그램 변경 용이, DB서버 성능이 나쁜 경우

    ②  플러그인 방식

       - DB서버내에 암/복호화 모듈 설치하여 암/복호화 수행

       - 특징 : DB서버 부하 발생 가능, AP서버와 DB서버간 평문 형태 통신

       - 적용 조건 : DB서버 성능 우수, 응용 프로그램의 수정 불가시

      ③ TDE방식

          - DBMS의 암/복호화 기능 이용, DBMS 종류, 버전에 따라 의존적

          - DBMS커널 레벨에서 처리, 응용프로그램 수정 없음

          - 적용조건 : DBMS 신규 도입시

 

 ) 데이터베이스 암호화 적용

   ①  일방향 암호 알고리즘의 적용

      - 비밀번호 등의 데이터 저장시 적용, SHA-256이상의 해쉬 암호 알고리즘 사용

구분 방안
평문 저장시 - Salt 값 추가하여 해쉬 적용(Rainbow 공격 방어), Salt값 안전 보관
취약한 해쉬암호  적용시
(MD5, SHA-1)
- 기존 해쉬 값 이중 해쉬 암호화(SHA-256) 적용
- 점진적 SHA-256사용한 단일 해쉬값으로 변환

 

   ②  양방향 암호 알고리즘의 적용

      - 개인정보 등 중요 데이터 대상, SEED, ARIA, AES 등 블록 암호화 적용

구분 방안
평문 저장시 - 128비트 이상 비밀키 암호화 사용, 비밀키 안전 장소 보관
취약한 암호화 적용시
(DES, 3-DES)
- 기존 암호화 데이터 복호화(배치 작업) 후 안전한 블록 암호화 작용

 

 ) 데이터베이스 암호화 적용 절차

    ①  암호화 적용 사전협의

       - 이해관계자와 정보 공유/협의, 대상, 환경, 보안 정책 등 협의

 

     ②  DB암호화 적용 영향도 분석

       - 운영서버 모니터링 통한 애플리케이션과 DBMS의 영향도 분석 단계

       - 암호화 사전 진단/분석, 암호화 이후 성능/리소스 변화 분석

구분 설명
암호화 대상 선정 암호화 대상 테이블, 컬럼 추출
퀴리문 분석 데이터 양, 수행시간, 최적화 대상 쿼리문 선정
DBMS 분석 리소스(CPU, 메모리, 스토리지) 확인, 추가 필요 리소스 산정
애플리케이션 분석 추가 모듈/변경 로직 분석, 최적화 애플리케이션 모듈 산정

 

  ③  DB암호화 적용 테스트

     - 운영환경과 동일한 테스트 환경 구축 및 암호화 적용 후 업무 테스트 진행 단계

     - 발생가능 문제 도출, 이슈 해결, 전환 준비, 모든 애플리케이션/쿼리 테스트 수행

  ④  DB암호화 적용 및 모니터링

     - 운영환경에 모든 변경사항 반영한 보안 적용 단계

     - 장애 발생 여부, 애플리케이션 성능 지속 모니터링 및 관리

 

04 데이터베이스 암호화 키(Key) 관리

 

 ) 데이커베이스 암호화 키의 종류

     - /복호화 키와 마스터키로 이중화 후 인가자만 접근하도록 관리

 ) 암호화 키 생명주기 단계별 관리방안

단계 설명
키 생성 단계 난수 발생기 이용, 안정성 검증된 알고리즘 적용
키 분배 단계 비대칭키 암호화 이용 키 암호화, 인가자만 접근가능 하도록 전달
키 저장 단계 별도 키 관리 서버, HSM와 같은 HW저장방식 적용
키 사용 단계 최소한의 권한, 직무 분리 원칙 적용, 마스터키 접근 통제
키 백업 및 복구 단계 분실/훼손 상황 대비 백업/복구 절차 수립, 주기적 백업 실시
키 교체 단계 암호화키의 주기적 교체, 키 변경 후 재 암호화 수행
키 폐기 단계 분실/훼손 시 절차에 따른 복호화/재 암호화 및 폐기 수행

 

+ Recent posts