데이터베이스 보안(Database Security)이란 데이터베이스 또는 데이터베이스 관리 소프트웨어를 무단 사용과 악성 사이버 위협·공격으로부터 보호하고 안전하게 유지하기 위해 적용되는 일련의 조치를 의미합니다. 데이터베이스 보안은 정보 보안의 한 계층으로, 정보의 물리적 보호, 저장 중인 데이터의 암호화, 그리고 데이터 잔존(data remanence) 문제를 핵심 관심사로 다룹니다.
데이터베이스 보안은 보안 담당자가 보안 계획을 수립할 때 반드시 고려해야 하는 기본 원칙입니다. 데이터베이스는 유용한 정보의 집합체로, 조직의 핵심 자산이자 경제적 성장을 좌우하는 가장 중요한 구성 요소로 취급됩니다.
따라서 모든 보안 활동은 데이터베이스에 대해 가장 강력한 수준의 통제를 제공해야 한다는 점을 기억해야 합니다. 다른 기술 분야와 마찬가지로 데이터베이스 관리 시스템(DBMS)의 보안 역시 여러 다른 시스템에 기반을 두고 있습니다. 여기에는 운영체제, DBMS를 필요로 하는 애플리케이션, DBMS와 상호작용하는各종 서비스, 최종 사용자에게 애플리케이션을 제공하는 웹 서버 등이 포함됩니다.
데이터베이스 보안의 주요 단점
1. 취약한 사용자 계정 설정
일부 데이터베이스 사용자 계정에는 운영체제 환경에서 확인할 수 있는 수준의 사용자 설정이 마련되어 있지 않습니다. 흔히 알려진 기본 계정 이름과 비밀번호가 비활성화되거나 변경되지 않은 채 방치되어 무단 접근을 허용하는 경우가 많습니다.
또한 사용자 계정 설정은 보안 측면에서 매우 제한적인 기능만 제공합니다. 사전 공격 대비를 위한 비밀번호 검사나 계정 만료 처리 같은 계정 통제 기능이 없어 보안 강도가 크게 떨어질 수 있습니다.
2. 직무 분리 부족
조직의 데이터베이스 관리 체계에서 별도의 보안 관리자 역할이 지정되지 않는 경우가 있습니다. 이로 인해 데이터베이스 관리자(DBA)가 사용자 계정 관리라는 관리자 업무와 성능 및 운영 전문가 업무를 동시에 수행하게 되며, 이는 권한 과잉과 관리 비효율로 이어질 수 있습니다.
3. 불충분한 감사 추적(Audit Trail)
데이터베이스의 감사(auditing) 기능은 추가적인 요구 사항을 지속적으로 추적·관리해야 하기 때문에 성능 향상이나 디스크 공간 확보를 위해 종종 간과됩니다. 감사가 불충분하면 책임 소재를 추적하는 능력이 저하되고, 데이터 이력 분석의 효과성도 크게 떨어집니다.
감사 추적은 핵심 정보에 대해 수행된 작업에 대한 정보를 기록합니다. 데이터와 직접 연관된 이벤트를 로그로 남기기 때문에 데이터베이스 시스템에 대한 접근과 활동을 검증하는 데 필수적인 요소입니다.
4. 활용되지 않는 DBMS 보안 기능
개별 애플리케이션의 보안은 일반적으로 DBMS 자체의 보안과 독립적으로 운영됩니다. 애플리케이션에 내장된 보안 장치는 클라이언트 소프트웨어를 사용하는 사용자에게만 적용된다는 점이 중요합니다.
그러나 DBMS 자체 또는 ODBC 등 다른 프로토콜을 통해 데이터베이스에 직접 연결할 수 있는 도구나 유틸리티는 이러한 애플리케이션 수준의 보안을 완전히 우회할 수 있습니다. 따라서 애플리케이션에만 의존하지 않고, DBMS 차원에서 안정적인 보안 제약 조건을 활용하는 것이 필요합니다.