신시웨이 '페트라'

 
[컴퓨터월드] 개인정보보호법 등 법적 규제 대응 성격으로 도입되던 DB접근제어 솔루션이 이제는 사용자를 세밀하게 통제할 목적으로 도입되고 있다. 신시웨이가 출시한 페트라 V3.1 R2(Petra V3.1 R2)는 이런 시대적 흐름에 맞춰 개발된 제품으로, 보안 관리자의 요구에 맞게 단순한 구성부터 수백 대의 DBMS를 관리해야 하는 상황까지 충족시킬 수 있다. 신시웨이의 2세대 DB접근제어 솔루션 ‘페트라 V3.1 R2’에 대해 알아본다.

1. 보안정책 중앙관리
DB접근제어 시스템을 단순히 구성한 곳은 2대의 게이트웨이 서버만으로 구성한다. 그렇지만 좀 더 확장하여 구성한 경우에는 스니핑 서버가 별도로 구성되고, DB서버마다 에이전트 서버를 구축한다. 운영시스템의 경우에 위와 같이 구성되고, 재해복구(DR) 시스템이 구축된 경우에는 운영시스템과 동일하게 DB접근제어 시스템이 구성돼야 한다.

이런 관점에서 보면 아무리 단순하게 구성해도 2대의 게이트웨이 서버, DR까지 고려했을 때 총 4대의 게이트웨이 서버가 구축되고, 규모가 큰 곳은 수십 개의 DB보안 시스템이 설치되어 운영된다. 이렇게 많은 DB접근제어 시스템이 구축되는 경우에, 보안정책을 일관성 있게 유지하며 적용하는 것은 매우 어려운 일이다. 모든 시스템 및 사용자에게 일관성 있는 정책이 유지돼야 하는데, 각각의 DB접근제어 서버마다 보안규칙을 별도로 관리하는 경우에는 일관성이 깨지기 쉽고, 일관성 있게 관리하려면 매우 많은 노력이 들어가게 된다.

그러므로 2세대 보안 솔루션은 중앙에서 단일한 보안 규칙만을 관리하고, 중앙에서 관리되는 규칙이 자동으로 모든 DB접근제어 서버에 배포되는 구조를 지원해야 한다. 더구나 앞으로의 추세는 보안 정책을 개인별로 상세히 설정하는 것이 일반화될 가능성이 큰데, 이렇게 많은 보안 규칙을 관리하기 위해서는 중앙관리 기능이 반드시 지원돼야 한다.

2. 딕셔너리 기반의 SQL 파싱
SQL에 대한 세분화된 통제가 필요한데, 특히 개인정보가 저장된 테이블/컬럼에 대한 세밀한 통제가 필요하다. 이런 통제가 가능하기 위해서는 SQL을 파싱 처리하여 개인정보 테이블/컬럼에 접근하고 있는지 정확한 판단을 내릴 수 있어야 한다. 특히 보안 대상 DBMS에 저장된 테이블/컬럼 정보를 이용하여 파싱을 수행함으로써 그 정확도를 DBMS 수준으로 올려야 한다.

3. 강화된 결재 기능
개인정보를 포함하여 중요한 정보가 저장된 테이블/컬럼에 대한 정보 접근이 이루어지는 경우, 반드시 해당 책임자의 결재를 얻도록 요구하고 있는데, 이런 결재를 지원해야 한다. 수행하는 시점에 결재를 받기 어려운 작업환경에서는 사후에 소명해야 하는데, 개인정보를 처리하여 업무를 수행하고 해당 업무를 처리한 사유를 나중에 결재를 올려 담당 책임자의 결재를 받을 수 있어야 한다. 물론 SQL을 수행하기 이전에 해당 작업내용을 미리 결재를 받는 기능도 제공해야 한다.

▲ 페트라의 주요 기능

4. 안전한 로그 관리
로그에 대한 안전한 관리를 위하여 민감한 로그를 암호화 하여 저장해야 한다. 특히 주민등록번호 등의 개인정보를 로그 형태로 저장하는 경우에 개인정보보호법에 따라 암호화 하여 저장해야 한다. 또한 저장된 로그에 대한 위변조 방지를 위해 변경(update), 삭제(delete), 테이블 제거(drop) 등의 행위를 할 수 없도록 로그용 DBMS 차원에서 해당 명령어를 차단하는 기능을 가져야 한다.

5. 다양한 인증 기능
보안의 시작은 행위자에 대한 명확한 식별이다. DB접근제어 시스템이 없는 경우에는, DBMS내에 생성된 DB계정을 통해 사용자를 식별했는데, 이런 경우 개인별로 DB 계정을 가지고 있어야 한다. DB계정을 공유하는 환경에서는 접속자의 IP를 이용하여 식별하거나, 별도의 ID/PW를 입력하는 인증과정을 통해 식별한다.

현재의 추세는 이런 과정을 다단계 인증을 통해서 수행하는 것인데, 접속자 단말기의 OS계정 인증, DB계정인증, OTP인증 등 여러 인증을 복합적으로 수행하여 DB접속자의 신원을 파악하는 기능을 제공해야 한다.

6. 세밀한 접근통제 규칙
사용자에 대한 통제를 정확히 수행하기 위하여 세밀한 접근통제 정책을 수립할 수 있어야 한다. 세밀한 접근통제는 아래와 같은 기능을 포괄한다.

1) SQL 타입별 통제: DBMS에서 사용 중인 SQL의 종류를 분석하면 약 650종 정도가 된다. 각 DBMS 별로 지원하는 SQL 타입이 각각 다른데, 이에 맞게 상세한 수준까지 통제가 가능해야 한다.

2) 정규식 통제: SQL TEXT에 들어 있는 내용 중 정규식 패턴을 통해 체크하여 통제하는 것이다. DBMS가 암호화 되어 있는 경우에 복호화 함수는 일부 사용자만 사용할 수 있어야 하는데, ‘SELECT PT_DECRYPT(JUMINNO$$) FROM EMP’와 같은 SQL에 대하여 PT_DECRYPT 라는 문자열이 포함된 SQL은 일반 사용자가 사용할 수 없도록 통제할 수 있어야 한다.

3) 건 수 기준 통제: 대량의 개인정보를 취급하는 경우 통제하는 것이다. 주민등록번호가 포함된 테이블은 100건 이상 조회하는 경우 조회를 불가능하게 하거나, 경보를 발행하는 것이다.

4) 요일, 공휴일, 시간대별 통제: 업무 시간과 비업무 시간에 수행할 수 있는 작업은 달라야 한다. 이런 측면에서 요일, 공휴일, 시간대 등의 복합 조건으로 규칙을 통제할 수 있어야 한다. 또한 각 조직마다 공휴일이 다를 수 있는데, 예로 회사 창립기념일은 회사마다 다를 수 있다. 이런 것을 위하여 공휴일을 등록 관리할 수 있어야 한다.

7. 보안 관리자 분할 기능
다수의 DB사용자를 한두 명의 보안 관리자가 모두 관리하는 것은 현실적으로 매우 어렵다. 공공 기관의 경우 각 조직별로 관리자를 세분화하여 관리하도록 할 필요가 있을 수 있는데, 이를 지원해야 한다.

DB사용자 그룹을 만들고 해당 그룹마다 담당 보안 관리자를 지정하여 해당 그룹의 사용자를 관리하게 하고, 보안 관리자는 자신이 담당하는 사용자 규칙만 관리가 가능하며 수집된 로그도 해당 사용자들이 수행한 결과 로그만 조회가 가능하도록 해야 한다.

▲ 페트라의 주요 특징

8. 보안 모니터링
현재 보안 상황을 한눈에 파악할 수 있는 모니터링 기능을 제공하여야 한다. 로그인 차단, SQL 차단, 경보 발생 현황, SQL 수행 현황, 로그인 현황 등을 보안서버별, 각 DBMS 별로 제공하며, 특정 기간(즉, 1주일 전)과 현재를 비교하여 문제가 없는지 식별할 수 있어야 한다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지