Oracle Database 보안 기능

Oracle Database는 지원되는 인증 및 권한 부여 방식, 네트워크 암호화, 권한 분석, Real Application Security, 통합 감사, Oracle Virtual Private Database 등을 비롯한 다양한 보안 기능을 통해 귀사의 보안 요구 사항을 충족할 수 있습니다.

인증 및 권한 부여

중앙화된 사용자 인증 및 권한 부여 시스템을 구성해 사용자 관리를 간소화합니다. Oracle Database는 다양한 인증 방법을 사용하는 Microsoft Active Directory, Microsoft Entra ID, Oracle Cloud Infrastructure Identity and Access Management 등의 엔터프라이즈 ID 서비스들과 원활하게 통합될 수 있습니다. 외부 ID 서비스 또는 RADIUS API를 사용해 다중 요소 인증을 구성할 수 있습니다.

강력한 인증 및 권한 부여 전략을 채택해 기업을 떠난 직원의 데이터베이스 사용자 계정이 활성 상태로 유지되는 일을 방지함으로써 민감한 데이터에 대한 무단 액세스 위험을 줄일 수 있습니다.

블록체인 테이블

Oracle Database의 블록체인 테이블은 변경 또는 삭제할 수 없는 암호화 체인 레코드의 삽입 전용 레코드를 생성함으로써 데이터 무결성을 보장하고, 변조 방지 감사 추적 기능을 제공하고, 설령 데이터베이스를 우회한 침입이 발생하더라도 무단 데이터 변경 시도에 대한 강력한 보호 기능을 제공합니다.

블록체인 기술을 활용하면 변경 또는 삭제할 수 없는 트랜잭션 레코드를 생성할 수 있습니다. 이는 재무 감사, 공급망 추적, 보안 투표 시스템 등 데이터 무결성, 감사 가능성, 위변조 방지 기록 등을 중요시하는 고객을 위한 강력한 솔루션을 제공합니다.

코드 기반 액세스 제어

코드 기반 액세스 제어(CBAC)를 사용해 특정 PL/SQL 비즈니스 로직으로 데이터 액세스를 제한합니다. 함수, 프로시저, 패키지 등의 데이터베이스 롤을 PL/SQL 프로그램 단위에 직접 첨부하면 그와 관련된 특정 코드가 실행 중인 경우에만 해당하는 롤이 활성화되도록 할 수 있습니다. 프로그램 단위는 호출하는 사용자의 권한과 관계없이 필요한 권한으로 실행되며 해당하는 권한이나 기반 객체를 사용자에게 직접 표시하지 않습니다. CBAC를 구현해 개별 사용자나 스키마가 아닌 특정 비즈니스 로직에만 필요한 권한을 부여함으로써 최소 권한의 원칙을 적용할 수 있습니다.

DBMS_CRYPTO

DBMS_CRYPTO PL/SQL 패키지는 암호화 작업에 사용됩니다. 암호화, 암호 해독, 해싱 기능을 제공하며 키 관리를 위해 Oracle Key Vault와 통합할 수 있습니다. DBMS_CRYPTO는 열, 애플리케이션, 또는 개별 데이터 요소 레벨에서 암호화 작업을 세밀하게 제어해야 하는 경우 특히 유용합니다. DBMS_CRYPTO 패키지를 호출해 데이터를 해독할 때까지 데이터가 암호화된 상태로 유지되므로 권한이 없는 사용자나 악의적인 관리자로부터 데이터를 보호한다는 점에서 투명한 데이터 암호화와는 다릅니다.

DbNest

DbNest를 사용하면 Linux 커널 기능으로 멀티테넌트 컨테이너 데이터베이스(CDB) 및 플러그인할 수 있는 데이터베이스(PDB)를 위한 계층적이고 컨테이너화된 런타임 환경을 생성해 각 테넌트의 리소스가 다른 테넌트로부터 격리되도록 지원함으로써 Oracle Database 멀티테넌트 환경의 보안 및 격리 문제를 해결할 수 있습니다.

DbNest를 배포해 멀티테넌트 데이터베이스 환경의 보안 및 격리를 개선하고, 횡적 이동 및 권한 에스컬레이션 공격의 위험을 최소화할 수 있습니다.

개발자 롤

DB_DEVELOPER_ROLE을 사용해 개발팀에 적절한 수준의 액세스 권한을 부여할 수 있습니다. 해당 롤은 개발자가 데이터베이스 개체를 생성, 수정, 배포할 수 있는 균형 잡힌 권한을 제공하면서도 데이터베이스 운영에 미칠 수 있는 잠재적 영향은 제한합니다.

이 롤을 사용하면 과도한 권한을 가진 개발자가 데이터베이스의 보안이나 무결성을 손상시키는 변경을 수행할 위험이 최소화되므로 개발팀은 전체 시스템 보안은 손상시키지 않으면서도 애플리케이션을 빌드하고 테스트할 수 있는 충분한 액세스 권한을 확보할 수 있습니다.

FGA(Fine-grained auditing)

기업은 보안 및 규제 준수 요구 사항을 충족하기 위해 민감한 데이터에 대한 액세스와 관련된 정확한 인사이트를 확보해야 합니다. FGA(Fine-grained auditing)는 데이터베이스 내의 행 및 열 레벨에서 특정 대상에 대한 조건 기반 감사를 지원하고 ,의심스러운 작업에 대한 경고를 트리거하는 커스텀 핸들러를 지정할 수 있습니다. 중요한 데이터에 대한 무단 작업 시도를 감지할 수 있는 고부가가치 감사 기능을 제공합니다. FGA는 성능 영향 및 감사 오버헤드를 최소화하며 보안 관련 가시성을 향상시킵니다. 값 기반 감사(예: 누군가가 특정 임계값 이상의 직원 급여를 선택한 경우에만 감사), 커스텀 핸들러 등의 FGA만의 고유한 기능들은 Oracle Database의 보안을 강화하고 고객이 고급 감사 요구 사항을 충족할 수 있도록 지원합니다.

점진적 비밀번호 롤오버

여러 애플리케이션과 데이터베이스의 비밀번호 관리는 복잡한 작업이고, 세심하게 계획하고 동기화하더라도 다운타임을 발생시키는 경우가 많습니다.

Oracle의 점진적 패스워드 롤오버 기능을 활용하면 서비스 중단 없이 비밀번호를 변경할 수 있습니다. 롤오버 기간 동안 이전 비밀번호와 새 비밀번호를 모두 사용 가능하므로 애플리케이션 팀이 다운타임 없이 인증서를 업데이트할 수 있습니다. 이를 통해 지속적인 액세스가 보장되고 기업은 정기적인 비밀번호 교체에 대한 규제 준수 요건을 충족할 수 있으므로 관리 작업은 간소화되고 시스템 중단은 최소화됩니다.

불변 테이블

불변 테이블을 사용하면 내부자 위협 및 실수로 인한 데이터 손상으로부터 Oracle Database 테이블을 보호할 수 있습니다. 추가 전용 테이블인 불변 테이블은 내부자에 의한 무단 데이터 수정과 인적 오류로 인한 우발적인 데이터 수정을 방지해 데이터의 무결성과 보안성을 지키고 정확성 및 최신 상태를 유지할 수 있도록 지원합니다. 불변 테이블을 활용해 데이터를 삽입한 뒤 변경해서는 안 된다는 요구 사항에 대응할 수 있습니다.

잠금 프로파일

CDB 관리자는 잠금 프로파일이 있는 각 PDB에 대한 세분화된 보안 제어를 구현해 특정 작업 또는 기능을 제한할 수 있습니다. 예를 들어, 잠금 프로파일을 활용해 PDB 사용자가 특정 SQL 문을 실행하지 못하도록 하거나, 네트워크에 액세스하는 프로시저를 실행하지 못하도록 할 수 있습니다.

네트워크 ACL

네트워크 액세스 제어 목록(ACL)은 UTL_TCP, UTL_HTTP, UTL_SMTP, UTL_INADDR 등의 PL/SQL 유틸리티 패키지를 통해 데이터베이스로부터의 아웃바운드 네트워크 액세스를 제어합니다. 호스트의 이름, 포트, 권한을 기반으로 세분화된 규칙을 정의해 사용자 액세스를 제어하고 무단 연결을 방지할 수 있습니다. 이는 데이터 유출에 대한 추가적인 보호 계층을 제공합니다.

네트워크 암호화

클라이언트와 서버 간 데이터베이스 연결을 암호화하는 것은 안전한 통신을 보장하기 위한 보안 모범 사례입니다.

Oracle Database는 전송 중인 데이터를 보호하는 두 가지 방법인 Transport Layer Security(TLS)와 네이티브 네트워크 암호화를 제공합니다. TLS는 강력한 암호화, 인증, 허용 기능을 제공하는 업계 표준 프로토콜입니다. 클라이언트측과 서버측 양쪽 모두에 서버 인증서 및 구성을 요구하므로 엄격한 규제 준수 또는 보안 요구 사항이 적용되는 환경에 적합합니다. 반면 네이티브 네트워크 암호화는 더 간단히 구현할 수 있습니다. 서버측 매개변수만 필요하며 대부분의 애플리케이션에서 투명하게 작동합니다. 인증서 또는 클라이언트를 변경할 필요 없이 가장 강력한 지원 알고리즘을 자동으로 협상합니다.

Oracle 전자 지갑

전자 지갑(또는 키 저장소)은 개인 키, 인증서, 데이터베이스 인증서 등의 인증 및 서명 자격 증명을 안전하게 저장할 수 있는 패스워드로 보호되고 암호화된 컨테이너입니다. Oracle Database 환경에서 전자 지갑은 클라이언트와 서버 양측에 TLS를 지원하고, 투명한 데이터 암호화(TDE) 마스터 키를 저장하고, Microsoft Active Directory와 같은 외부 서비스와의 용이한 통합을 지원해 네트워크 전반의 안전한 통신을 보장합니다. 또한 전자 지갑은 안전한 외부 암호 저장소를 제공하므로 코드에 인증서를 포함시키지 않고도 애플리케이션을 데이터베이스에 연결할 수 있습니다. 전자 지갑에 TDE 마스터 키를 보관할 수 있지만 Oracle은 보안성 향상 및 중앙화된 키 관리를 위해 Oracle Key Vault로 키를 관리할 것을 권장합니다.

권한 분석

애플리케이션과 사용자에게 과도한 권한이 부여되는 경우가 많습니다. 복잡한 환경, 레거시 환경 등에서 특히 그렇습니다. 이는 관리자가 시스템 중단 위험 없이 안전하게 액세스를 취소하기 어렵게 만듭니다. 권한 분석은 런타임 동안 사용된 권한 및 롤을 동적으로 수집합니다. 관리자는 수집한 정보를 기반으로 불필요한 권한을 정확히 취소하고 최소 권한 모델을 적용해 공격 영역을 줄일 수 있습니다.

읽기 전용 사용자

읽기 전용 사용자 기능을 활용하면 권한을 취소하거나 다시 부여할 필요 없이 특정 사용자 또는 세션의 쓰기 기능을 비활성화하거나 재활성화할 수 있습니다. 또한 테스트, 관리 또는 애플리케이션 개발을 위해 사용자 또는 세션 권한을 일시적으로 제어할 수 있습니다.

Real Application Security

Real Application Security를 활용하면 기존 보안 모델로는 충족하기 어려웠던 모던 엔터프라이즈 및 AI 기반 애플리케이션의 세분화된 컨텍스트 인식 액세스 제어에 대한 요구 사항을 충족할 수 있습니다. Real Application Security는 안전한 ID 전달과 행 및 열 레벨 액세스 제어가 결합된, 선언적인 데이터베이스 내장형 프레임워크(database-enforced framework)를 제공합니다. 속성 기반 액세스 제어를 활용하는 Real Application Security는 런타임 시 역할, 부서, 지리적 위치 등의 사용자 속성을 평가해 액세스 권한을 결정합니다. 예를 들어 간호사는 자신의 병동에 배정된 환자의 의료 기록만 볼 수 있고, 의사는 추가 진단 세부 정보에 액세스할 수 있지만 정신 건강 기록이나 생식 건강 데이터와 같은 민감한 필드는 사용자의 롤에 명시적인 열람 권한이 부여되지 않은 경우 표시되지 않습니다. Real Application Security는 액세스 제어 로직을 데이터베이스에 직접 내장함으로써 애플리케이션 코드에 대한 의존도를 없애고, 개발을 간소화하고, 기업이 엄격한 개인정보 보호, 보안, 규제 준수 요건을 대규모로 충족할 수 있도록 지원합니다.

스키마 레벨 권한

일반적으로 Oracle Database의 권한은 객체 레벨(예: SELECT ON hr.employees) 또는 시스템 권한을 가진 더 광범위한 레벨(예: SELECT ANY TABLE)에서 부여되어 왔습니다. 사용자가 스키마의 모든 테이블이나 모든 프로시저에 액세스해야 하는 경우 DBA는 각 객체마다 개별적으로 액세스 권한을 부여하거나, 보안 위험을 초래하는 SELECT ANY TABLE과 같은 지나치게 광범위한 시스템 권한을 사용해야 했습니다.

스키마 레벨 권한 기능은 데이터베이스 객체에 대한 권한 부여를 단순화해 보안을 강화합니다. 특히 스키마에 새 객체를 자주 추가하는 경우에 유용합니다.

이제 DBA는 전체 데이터베이스에 적용되는 광범위한 시스템 권한을 부여하는 대신 스키마 레벨의 권한을 부여할 수 있습니다. 스키마 레벨 시스템 권한은 대상 스키마 내의 현재 객체와 미래 객체에 모두 적용됩니다. 스키마 수준 권한 기능은 자주 업데이트되고 사용자에게 권한을 과도하게 부여하지 않으면서 스키마에 새 개체를 추가해야 하는 애플리케이션에 유용합니다.

보안 애플리케이션 롤

모던 애플리케이션은 민감한 데이터를 보호하고 규제 준수 요구 사항을 충족하기 위한 컨텍스트 인식 보안 기능을 요구합니다. Oracle의 보안 애플리케이션 롤 기능은 제어 가능하고 데이터베이스 단위로 정의된 조건 하에서만 롤 활성화를 허용함으로써 무단 권한 사용을 방지합니다. 기존 롤과 달리 직접 로그인이나 외부 도구를 통해 오용할 수 없습니다. PL/SQL 패키지 또는 프로시저(애플리케이션 컨텍스트에 연결된 로직을 보유한 경우가 이상적)만이 보안 애플리케이션 롤을 활성화할 수 있습니다. 보안 애플리케이션 롤을 활용하면 애플리케이션 로직을 변경하지 않으면서도 더욱 강력한 액세스 정책을 적용하고, 공격 표면을 줄이고, 일관된 보안을 유지할 수 있습니다.

Transparent Sensitive Data Protection

Transparent Sensitive Data Protection을 활용하면 데이터베이스 테이블에서 중요한 데이터를 신속하게 식별 및 분류한 뒤 해당하는 데이터를 보호하기 위한 정책을 생성할 수 있습니다. 생성된 정책은 열 레벨에서 특정 데이터 유형을 대상으로 적용되고, Oracle Data Redaction 또는 Oracle Virtual Private Database 설정을 사용해 신용카드 번호 또는 주민등록번호와 같은 중요한 정보를 보호합니다. 사용자는 Transparent Sensitive Data Protection 기능을 통해 여러 Oracle 데이터베이스에 동일한 정책을 생성할 수 있고, 생성한 규정은 관련 규제 준수 정책이 변경되면 그에 맞춰 수정할 수 있습니다. Transparent Sensitive Data Protection 정책은 대규모 조직에 간단히 적용하고, 감사를 간소화하고, 일관적인 정책 시행을 지원합니다. 특히 유사한 보안 관련 제한이 적용되는 정부 환경에 적합합니다.

통합 감사

Oracle Database의 포괄적인 감사 기능들을 활용해 권한 사용 내역, 높은 권한이 부여된 사용자의 활동, 민감한 데이터에 대한 액세스 현황, 데이터베이스 객체에 대해 수행된 작업, 데이터베이스 설정에 대한 수정 사항 등을 추적할 수 있습니다. 통합 감사 기능은 특정 조건 하에서 중요한 데이터에 대한 작업을 감사할 수 있는 조건부, 열 레벨 감사 기능을 제공합니다. 감사 레코드는 변경 방지 트레일에 저장됩니다.

Virtual Private Database

기업에서는 세분화된 데이터 액세스를 적용하는 데 어려움을 겪는 경우가 많습니다. 특히 여러 사용자가 동일한 테이블에 대해 서로 다른 뷰를 필요로 하는 경우에 그렇습니다. 기존 방식은 관리, 감사, 보안상의 어려움이 있는 복잡한 애플리케이션 로직이나 정적 뷰에 의존합니다.

Oracle Virtual Private Database는 데이터베이스 내에서 직접 행 및 열 레벨 보안을 적용하여 해당 문제를 해결했습니다. Virtual Private Database는 사용자 ID 또는 세션 컨텍스트를 기반으로 SQL 쿼리에 필터링 술어를 동적으로 추가합니다. 사용자는 연결 방식과 관계없이 액세스 권한이 부여된 데이터만 볼 수 있습니다. 보안 정책은 중앙화되고, 애플리케이션에 대한 투명성을 갖추고, 런타임 조건에 맞게 조정되어 일관적인 적용을 보장합니다. Virtual Private Database를 활용해 데이터 유출을 방지하고, 규제 준수를 지원하고, 애플리케이션 개발을 간소화할 수 있습니다. Virtual Private Database는 데이터 액세스 제어를 지원하는 확장 가능한 컨텍스트 인식 솔루션입니다. Virtual Private Database는 데이터가 저장된 곳에 직접 보안 체계를 구축합니다.