본문 바로가기
Database

오라클 데이터베이스의 기본 보안 설정

by 굿센스굿 2024. 12. 5.
반응형

 

데이터는 현대 비즈니스의 핵심 자산입니다. 오라클 데이터베이스는 세계적으로 널리 사용되는 데이터 관리 시스템으로, 기본적으로 강력한 보안 기능을 제공합니다. 하지만 이러한 기능을 올바르게 설정하지 않으면 데이터 손실, 무단 액세스, 법적 문제 등 심각한 위협에 노출될 수 있습니다. 이번 글에서는 오라클 데이터베이스의 기본 보안 설정과 이를 실무에 적용하는 방법을 다룹니다.


1. 오라클 데이터베이스 보안의 중요성

오라클 데이터베이스 보안은 단순히 외부 침입을 막는 데 그치지 않고, 다음과 같은 역할을 합니다.

  • 데이터 기밀성 유지: 무단 액세스 방지.
  • 데이터 무결성 보장: 데이터 변경 및 손상 방지.
  • 서비스 가용성 보장: 시스템 중단 없이 안정적인 서비스 제공.
  • 규제 준수 지원: GDPR, HIPAA 등 다양한 규제 준수.

2. 오라클 데이터베이스의 주요 보안 기능

오라클은 다양한 보안 기능을 제공합니다. 여기서는 기본적인 설정 및 관리 항목을 중심으로 살펴보겠습니다.

2.1 사용자 인증 (Authentication)

오라클 데이터베이스는 사용자 인증을 통해 액세스를 제어합니다. 기본적으로 다음 세 가지 유형의 인증 방법을 지원합니다.

  1. 데이터베이스 인증: 사용자 이름과 비밀번호를 기반으로 인증.
  2. 외부 인증: 운영 체제 또는 디렉토리 서비스(LDAP 등)를 활용.
  3. 전역 인증: SSO(Single Sign-On) 및 Kerberos와 같은 중앙 집중식 인증.

기본 사용자 생성 예제:

CREATE USER sample_user IDENTIFIED BY secure_password;
GRANT CONNECT, RESOURCE TO sample_user;

비밀번호 정책 강화:

  • 기본 보안 설정을 개선하기 위해 강력한 비밀번호 정책을 적용해야 합니다.
  • CREATE PROFILE 명령을 사용해 비밀번호 만료 기간, 복잡성 등을 설정할 수 있습니다.
CREATE PROFILE secure_profile LIMIT
  PASSWORD_LIFE_TIME  90
  PASSWORD_REUSE_MAX  5
  PASSWORD_VERIFY_FUNCTION ora12c_verify_function;
ALTER USER sample_user PROFILE secure_profile;

2.2 권한 관리 (Authorization)

사용자가 데이터베이스 내에서 수행할 수 있는 작업은 부여된 **권한(Privileges)**에 따라 결정됩니다.

주요 권한 종류

  1. 시스템 권한: 데이터베이스 수준의 작업 권한 (예: CREATE TABLE, ALTER DATABASE).
  2. 객체 권한: 특정 객체에 대한 작업 권한 (예: SELECT, INSERT, UPDATE).

권한 부여 및 회수 예제:

-- 권한 부여
GRANT CREATE SESSION, CREATE TABLE TO sample_user;

-- 권한 회수
REVOKE CREATE TABLE FROM sample_user;

역할(Role) 활용:

  • 복잡한 권한 관리를 단순화하기 위해 역할을 사용합니다.
CREATE ROLE analyst_role;
GRANT SELECT, INSERT ON hr.employees TO analyst_role;
GRANT analyst_role TO sample_user;

2.3 데이터 암호화 (Encryption)

오라클 데이터베이스는 데이터 암호화를 통해 기밀성을 보장합니다.

  • TDE (Transparent Data Encryption): 데이터 파일이나 백업 데이터를 자동으로 암호화.
  • 네트워크 암호화: 데이터 전송 중 발생할 수 있는 중간 공격 방지.

TDE 활성화 예제:

-- 암호화 키 설정
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "keystore_password";

-- 테이블 열 암호화
CREATE TABLE hr.secure_table (
  id NUMBER,
  sensitive_data VARCHAR2(100) ENCRYPT USING 'AES256'
);

2.4 감사(Auditing)

데이터베이스에서 발생한 모든 작업을 기록하여 누가, 언제, 무엇을 했는지 추적할 수 있습니다.

표준 감사

기본적으로 사용 가능한 감사 기능.

AUDIT SELECT ON hr.employees BY sample_user;

통합 감사 (Unified Auditing)

오라클 12c 이상 버전에서 제공하는 새로운 감사 기능.

CREATE AUDIT POLICY secure_audit_policy
  ACTIONS SELECT, INSERT ON hr.employees;
AUDIT POLICY secure_audit_policy;

2.5 네트워크 보안

데이터 전송 중 보안을 유지하기 위해 네트워크 설정을 강화해야 합니다.

  • SSL/TLS: 데이터 전송 중 암호화.
  • 방화벽 설정: 특정 IP 또는 포트에 대한 액세스 제어.
  • Oracle Net Encryption: 간단한 설정으로 네트워크 암호화 활성화.

Oracle Net Encryption 설정 예제:
sqlnet.ora 파일에 다음과 같은 설정 추가:

SQLNET.ENCRYPTION_CLIENT = REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256)

3. 실무 예제 3가지

예제 1: 새로운 사용자 생성 및 보안 설정

-- 사용자 생성
CREATE USER new_user IDENTIFIED BY strong_password;

-- 최소 권한 부여
GRANT CREATE SESSION TO new_user;

-- 비밀번호 정책 적용
ALTER USER new_user PROFILE secure_profile;

예제 2: 특정 테이블에 대한 감사 설정

-- 직원 데이터 접근 추적
AUDIT SELECT, INSERT ON hr.employees BY ACCESS;

예제 3: 네트워크 암호화 활성화

  1. sqlnet.ora 파일 설정:
SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)
  1. 데이터 전송 테스트: 클라이언트에서 접속하여 암호화 상태 확인.

4. 기본 보안 설정 점검 체크리스트

  1. 사용자 관리: 기본 사용자(예: SYS, SYSTEM)의 비밀번호를 강력하게 설정했는가?
  2. 권한 관리: 최소 권한 원칙을 준수하고 있는가?
  3. 암호화: 중요한 데이터가 암호화되어 있는가?
  4. 감사 활성화: 민감한 데이터에 대한 액세스를 추적하고 있는가?
  5. 네트워크 보안: 데이터 전송이 암호화되고 방화벽이 구성되어 있는가?

결론

오라클 데이터베이스의 기본 보안 설정은 데이터 관리의 출발점입니다. 이번 글에서 다룬 주요 보안 기능과 실무 예제를 바탕으로 보안 설정을 강화하고, 데이터베이스를 안전하게 운영할 수 있습니다.

보안은 단발성이 아닌 지속적으로 관리해야 하는 과제입니다. 정기적으로 보안 정책을 점검하고 최신 보안 패치를 적용하여 데이터베이스의 안전성을 유지하세요.

궁금한 점이나 도움이 필요한 경우 댓글로 남겨주세요! 😊

반응형