[정보보안기사] 애플리케이션 보안 - 인터넷 응용 보안 (5) DB 보안
본문 바로가기

[정보보안기사] 애플리케이션 보안 - 인터넷 응용 보안 (5) DB 보안

액트 2019. 6. 27.

DB보안


- 목차 -

1. 데이터베이스의 기본 개념

   (1) 정보와 데이터

   (2) 데이터베이스와 DBMS의 개념

   (3) 데이터의 종류

   (4) 관계형 데이터베이스 모델의 구성요소

   (5) 키

2. DB 데이터 보안

   (1) DB 보안의 개요

   (2) DB 데이터 보안의 유형

3. DB 관리자 권한 보안

4. DBMS 운영

5. DB 보안 개발

   (1) 개요

   (2) DB 애플리케이션 보안 프로그래밍(웹을 통한 SQL Injection 공격 방지 개발 방법)


1. 데이터베이스의 기본 개념

   (1) 정보와 데이터

  ① 데이터 : 관찰이나 측정을 통해서 수집된 사실이나 값으로 수치, 스트링 등의 형태로 표현된다.

  ② 정보 : 데이터가 가공된 형태로, 의사 결정을 할 수 있게 하는 데이터의 유효한 해석이나 상호관계, 의미를 나타낸다.

 

   (2) 데이터베이스와 DBMS의 개념

  ① 데이터베이스 : 한 조직의 여러 응용 시스템이 공용하기 위해 최소의 중복으로 통합, 저장된 운영 데이터의 집합을 말한다.

  ② DBMS : 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 주는 소프트웨어이다.

 

   (3) 데이터의 종류

       ① 통합된 데이터 : 최소의 중복 / 통제된 중복이다.

       ② 저장 데이터 : 컴퓨터가 접근 가능한 매체가 저장한다.

       ③ 운영 데이터 : 조직의 운영에 꼭 필요한 필수적인 데이터이다.

       ④ 공유 데이터 : 여러 응용 프로그램이 공동으로 허용한다.

 

   (4) 관계형 데이터베이스 모델의 구성요소

        ① 릴레이션 : 열과 행으로 이루어진 테이블이다.

        ② 속성 : 테이블 안에 데이터에 대한 고유한 특성을 나타내는 테이블의 열이다.

        ③ 튜플 : 테이블의 각 행이다.

        ④ 도메인 : 각 릴레이션에서 특정 속성이 가질 수 있는 데이터 형식을 지닌 모든 가능한 값의 집합이다.

        ⑤ 키 : 튜플을 구분시켜 주는 하나 또는 그 이상의 속성들의 모임이다.

        ⑥ 무결성 제약 조건 : 데이터 무결성을 보장하기 위해 데이터에 적용되는 일련의 규칙이다.

 

    (5) 키 : 릴레이션의 튜플을 유일하게 식별할 수 있는 속성의 집합을 말한다.   

        ① 키의 특성

            ㄱ. 유일성 : 속성의 집합인 키의 내용이 릴레이션 내에서 유일하다는 특성을 말한다.

            ㄴ. 최소성 : 속성의 집합인 키가 릴레이션의 모든 튜플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성된 것을 의미한다.

          ② 키의 유형

              ㄱ. 후보키 : 키의 특성인 유일성과 최소성을 만족하는 키를 지칭한다.

              ㄴ. 슈퍼키 : 유일성은 있으나 최소성이 없는 키를 지칭하는 것으로, 특정 속성을 제거하면 튜플을 유일하게 식별하지 못하는 것이다.

              ㄷ. 기본키 : 여러 개의 후보 키 중에서 하나를 선정하여 사용하는 것을 지칭한다.

              ㄹ. 대체키 : 여러 개의 후보 키 중에서 기본키로 선정되고 남은 나머지 키를 지칭하는 것으로 기본키를 대체할 수 있는 키라는 의미이다.

              ㅁ. 외래 키 : 어느 한 릴레이션 속성의 집합이 다른 릴레이션에서 기본키로 이용되는 키를 지칭하는 것이다.

 

2. DB 데이터 보안

   (1) DB 보안의 개요

         - DB보안은 크게 DB 데이터 보안DB 관리자 권한 보안으로 나뉜다.

 

   (2) DB 데이터 보안의 유형

          ① DB보안 요구사항

              ㄱ. 부적절한 접근 방지 : 인가된 사용자만의 접근을 허락하고 모든 접근 요청은 DBMS가 검사한다.

              ㄴ. 추론 방지 : 추론이란 기밀이 아닌 데이터로부터 기밀 정보를 얻어내는 가능성을 의미한다. DB내의 데이터는 상호 연관이 있을 가능성이 있고, 데이터에 직접 접근하지 않고 가용한 데이터 값을 이용한 추론이 가능하다. 통계적인 데이터 값으로부터 개별적인 데이터 항목에 대한 정보를 추적하지 못하도록 해야 하는 것을 의미한다.

              ㄷ. 데이터 무결성 : 데이터베이스 내에 있는 자료 값들이 정확하도록 보장하는 관리 작업을 말한다. 잘못된 갱신으로부터의 보호나 불법적인 조작에 대한 보호를 통해 자료 값을 보호한다. 보안 시스템을 통하여 DBMS의 무결성 서브 시스템의 지원을 받아 제어한다.

              ㄹ. 감사 기능 : DB의 모든 접근에 대한 감사 기록을 생성한다. DB 접근에 대한 분석 및 추론에 의해 비밀 데이터가 노출되었는지를 판단할 근거가 생기기 때문이다.

              ㅂ. 사용자 인증 : 별도의 엄격한 사용자 인증 방식이 필요하다.

 

          ② DB 보안통제 : DB 통제는 접근 제어, 추론 통제, 흐름 통제를 통하여 인가된 사용자에게 암호화된 DB를 가용하게 한다.

              ㄱ. 접근 통제

                   a. 인증된 사용자에게 허가된 범위 내에서 시스템 내부의 정보에 대한 접근을 허용하는 기술적인 방법을 말한다. 사용자가 DB에 접근할 때는 접근 권한이 있는지 검사하여 허용 여부를 결정한다.

                   b. 데이터베이스는 사용자가 가진 접근 권한에 따라 논리적으로 분리한다. 즉, 데이터베이스 관리자는 누가 어떤 부분의 데이터에 접근 가능하며, 어느 수준까지 접근 가능한지, 그리고 어느 기능까지만 허락할 것인지를 결정한다. 이렇게 체계적인 정책을 확립하고 수행함으로써 데이터베이스 보안을 유지할 수 있게 되는 것이다.

              ㄴ. 추론 통제

                   a. 간접적으로 노출된 데이터를 통해 다른 데이터를 추론하여 다른 데이터가 공개되는 것을 방지하는 것이다. 대부분 통계적인 자료에서 많이 발생한다.

                   b. 추론 방지를 위한 방법

                       · 허용 가능한 질의를 제한한다.

                       · 질의의 응답으로 제공되는 데이터를 한정한다.

                       · 데이터를 숫자의 경우 반올림하거나 일관성이 없는 결과를 제공한다.

              ㄷ. 흐름 통제 : 접근이 가능한 객체들 간의 정보의 흐름을 조정하는 것이다. 여기서 정보의 흐름이라는 것은 예를 들어 A값이 B값에 기록이 되었다면 이를 'A에서 B로 흐름이 발생했다'라고 말한다. 따라서 정보의 흐름으로 볼 때 보안 등급이 높은 객체에서 낮은 객체로의 정보흐름을 제어해야 한다. 이는 기밀성을 위반하는 것이기 때문이다.

          ③ DB 백업과 복구

              ㄱ. 장애 유형

                   a. 사용자 오류 : 말 그대로 사용자에 의한 오류로 발생한 장애를 말한다.

                   b. 명령문 장애 : 유효한 SQL 구성이 아닌 경우와 같이 명령문을 처리할 때 발생하는 논리적 상태를 말한다. 명령문에 장애가 ㅂ라생하면 명령문의 실행 결과가 자동으로 무효화되고 제어가 사용자에게로 돌아간다.

                   c. 프로세스 장애 : 비정상적인 접속 해제나 프로세스 종료와 같이 DB를 액세스 하는 사용자 프로세스에 발생하는 장애를 말한다.

                   d. 인스턴스 실패 : 인스턴스(시스템 글로벌 영역과 백그라운드 프로세스)가 계속 작업을 수행할 수 없게 되었을 때 발생한다.

                   e. 매체 고장 : 매체 고장으로 인해 발생하는 장애를 말한다.

              ㄴ. 복구에 사용되는 기술

                   a. Redo로그 : 데이터베이스에 대한 모든 변경 사항을 기록하여 데이터 복구 시 사용한다. 기본적으로 2개 이상의 Redo 로그 그룹과 1개 이상의 Redo 로그 멤버로 구성한다. 장애로부터 데이터베이스를 보호하며 Redo 로그 파일 자체의 장애에 대비하기 위해 서로 다른 디스크에 Redo 로그 파일의 복사본 유지가 필요하다.

                   b. 제어 파일 : 데이터베이스를 제어하는 파일이다. 제어 파일이 필요한 경우는 미러링 된 모든 제어 파일이 유실된 경우, 제어 파일의 백업본이 없거나 유용하지 않을 경우, 데이터베이스의 이름을 변경하는 경우이다.

                   c. 롤백 : DB 복구 동안 Redo 로그에서 데이터 파일에 적용된 커밋되지 않은 변경 사항을 실행 취소하는 데 사용한다.

 

3. DB 관리자 권한 보안

 데이터베이스 관리자들은 특별한 operations을 수행해야 하므로 데이터베이스 관리자 username에 대해서는 보다 안전한 인증 schema를 필요로 한다.

  ① Operation System에 의한 인증

  ② Network 인증 서비스(Kerberos 등)에 의한 인증

 

4. DBMS 운영

 실제의 DBMS 시스템을 운영함에 있어서 각 DBMS 플랫폼별로 주어진 보안 기능을 적절히 활용하여 안정성 있는 DB 보안관리를 해야 한다.

  ① Oracle 보안 운영: SSO 기능 설정, 인증(LDAP, PKI 인증), OID(Oracle Internet Directory)를 통한 디렉터리 활동 보안

  ② Informix 보안 운영 : 서버 설정(환경변수 및 공유 메모리 파라미터 설정, 디스크 파라미터 설정 등), 디스크 관리, 로그 관리, 모니터링

  ③ MS-SQL 보안 운영 : 인증(Window 인증, 혼합 인증(Window 인증 + SQL 서버인증))

  ④ MySQL 보안 운영 : 서버의 시작과 종료 방법 숙지(수동, 자동), 사용자 계정 유지관리, 로그 파일 유지

 

5. DB 보안 개발

    (1) 개요

  데이터베이스에 접근할 수 있는 데이터베이스 애플리케이션에 보안상 문제점이 있을 경우 이를 이용하여 DB정보에 주어진 권한을 넘어 접근할 수가 있게 된다. 특히 최근에는 웹 서버와 데이터베이스 서버 간에 연동이 되어 정보서비스를 구축하는 웹-DB 연동 애플리케이션 개발 과정에서 보안을 고려한 개발이 더욱 요구된다.

 

    (2) DB 애플리케이션 보안 프로그래밍(웹을 통한 SQL Injection 공격 방지 개발 방법)

         ① 원시 ODBC에러를 사용자가 볼 수 없도록 코딩한다.

         ② 데이터베이스 애플리케이션을 최소 권한으로 구동한다.

         ③ 데이터베이스 내장 프로시저를 사용한다.

         ④ 테이블 이름, 칼럼 이름, SQL구조 등이 외부 HTML에 포함되어 나타나서는 안 된다.

 


[ 출처 ]

https://m.blog.naver.com/PostView.nhn?blogId=rockcrash&logNo=220470103256&proxyReferer=https%3A%2F%2Fwww.google.com%2F

댓글