데이터베이스 보안
Database security데이터베이스 보안은 데이터베이스(데이터, 데이터베이스 애플리케이션 또는 저장된 기능, 데이터베이스 시스템, 데이터베이스 서버 및 관련 네트워크 링크 등)를 기밀성, 무결성 및 가용성의 침해로부터 보호하기 위해 광범위한 정보 보안 제어를 사용하는 것에 관한 것입니다.여기에는 기술적, 절차적/행정적 및 물리적 제어와 같은 다양한 유형 또는 범주의 제어가 포함됩니다.
데이터베이스 시스템의 보안 리스크에는 다음과 같은 것이 있습니다.
- 허가된 데이터베이스 사용자, 데이터베이스 관리자, 네트워크/시스템 관리자 또는 허가되지 않은 사용자 또는 해커에 의한 부정 또는 의도하지 않은 활동 또는 오용(예를 들어 데이터베이스 내의 기밀 데이터, 메타데이터 또는 기능에 대한 부적절한 접근 또는 데이터베이스 프로그램, 구조 또는 보안 구성의 부적절한 변경)
- 악성코드에 의한 감염으로 인해 부정 액세스, 개인 데이터 또는 독점 데이터의 유출 또는 공개, 데이터 또는 프로그램의 삭제 또는 손상, 데이터베이스 접근의 중단 또는 거부, 다른 시스템에 대한 공격 및 데이터베이스 서비스의 예기치 않은 장애 등의 문제가 발생합니다.
- 과부하, 성능 제약 및 용량 문제로 인해 허가된 사용자가 데이터베이스를 의도대로 사용할 수 없음
- 컴퓨터실 화재 또는 홍수, 과열, 번개, 우발적인 액체 유출, 정전, 전자고장/기기 고장 및 노후화로 인한 데이터베이스 서버의 물리적 손상
- 데이터베이스 및 관련 프로그램 및 시스템의 설계 결함 및 프로그래밍 오류를 발생시켜 다양한 보안 취약성(부정 권한 상승 등), 데이터 손실/파손, 성능 저하 등
- 유효하지 않은 데이터 또는 명령어 입력, 데이터베이스 또는 시스템 관리 프로세스의 실수, 파괴/범죄적 손상 등으로 인한 데이터 손상 및/또는 손실
Ross J. Anderson은 큰 데이터베이스는 본질적으로 보안 침해에 의한 오용으로부터 자유로울 수 없다고 자주 주장해 왔습니다.대형 시스템이 접근하기 쉽도록 설계되어 있으면 안전하지 않고, 물이 새지 않으면 사용할 수 없게 됩니다.이것은 때때로 앤더슨의 [1]법칙으로 알려져 있다.
데이터베이스에는 다음과 같은 많은 레이어 및 타입의 정보보안 제어가 적용됩니다.
데이터베이스는 방화벽과 같은 네트워크 보안 조치와 네트워크 기반 침입 탐지 시스템을 통해 해커로부터 주로 보호되어 왔습니다.이 점에서 네트워크 보안 통제는 여전히 중요한데, 데이터베이스 시스템 자체와 그 안에 있는 프로그램/기능 및 데이터의 보안은 네트워크가 보다 넓은 액세스, 특히 인터넷으로부터의 접근을 위해 개방됨에 따라 더욱 중요해지고 있습니다.게다가 시스템, 프로그램, 기능 및 데이터 액세스 제어와 관련된 사용자 식별, 인증 및 권한 관리 기능은 항상 중요하며, 경우에 따라서는 인증된 사용자 및 관리자의 활동을 제한하고 기록해야 합니다.즉, 이들은 데이터베이스 보안에 대한 보완적인 접근법이며, 외부와 내부 모두에서 그대로 작동합니다.
많은 조직이 데이터베이스 시스템의 기본적인 보안 관리 수단을 상술한 자체 "기준" 보안 표준 및 설계를 개발하고 있습니다.이는 기업의 정보보안 정책 및 적용 가능한 법령(프라이버시, 재무관리, 보고서 시스템에 관한 것 등)에 의해 부과되는 일반적인 정보보안 요건 또는 의무와 일반적으로 인정되고 있는 양호한 데이터베이스 보안 관행(기반 시스템의 적절한 강화 등)을 반영할 수 있다.ems) 및 관련 데이터베이스 시스템 및 소프트웨어 벤더로부터의 보안 권장 사항.특정 데이터베이스 시스템의 보안 설계에서는 일반적으로 데이터베이스 내의 다양한 비즈니스 중심 정보 보안 제어와 더불어 보안 관리 및 관리 기능(사용자 액세스 권한 관리 및 보고서, 로그 관리 및 분석, 데이터베이스 복제/동기화 및 백업 등)을 추가로 지정합니다.e 프로그램 및 기능(예: 데이터 입력 검증 및 감사 추적)또한 다양한 보안 관련 활동(수동 제어)은 일반적으로 데이터베이스의 설계, 개발, 구성, 사용, 관리 및 유지 보수와 관련된 절차, 지침 등에 통합된다.
권한
데이터베이스 환경 내 데이터베이스 보안과 관련하여 시스템 권한과 개체 권한의 두 가지 권한이 중요합니다.
시스템 권한
시스템 권한을 통해 사용자는 데이터베이스에서 관리 작업을 수행할 수 있습니다.
오브젝트 권한
오브젝트 권한을 사용하면 데이터베이스 오브젝트에 대해 다른 사용자에 의해 허가된 특정 조작을 사용할 수 있습니다.예를 들어 사용, 선택, 삽입, 업데이트 및 [2]참조가 있습니다.
최소 특권자 및 직무 분리:
내부통제에 해당하는 데이터베이스(즉, 공개보고, 연차보고 등에 사용되는 데이터)는 직무분리의 대상이 되며, 이는 개발 및 생산 간에 태스크를 분리해야 한다는 것을 의미한다.각 태스크는 실제 코드를 작성하지 않은 제3자가 (코드 워크스루/신선한 눈을 통해) 검증해야 합니다.데이터베이스 개발자는 실행 중인 작업에 대한 문서/코드를 독립적으로 검토하지 않으면 실제 가동 중인 작업을 수행할 수 없습니다.일반적으로 개발자의 역할은 DBA에게 코드를 전달하는 것이지만, 경기 침체로 인한 비용 절감을 고려할 때 DBA를 쉽게 구할 수 없을 수도 있습니다.DBA가 관여하지 않는 경우 최소한 피어(peer)가 코드 리뷰를 실시하는 것이 중요합니다.이를 통해 개발자의 역할이 명확하게 [citation needed]분리됩니다.
내부 통제의 또 다른 포인트는 특히 생산에서 최소한의 특권을 제공한다는 원칙을 고수하는 것입니다.개발자가 작업을 수행하기 위해 더 많은 액세스 권한을 허용하려면 권한 상승이 필요한 예외(예: 일시적으로 EXECUTE AS 또는 sudo)에 가장을 사용하는 것이 훨씬 안전합니다.종종 개발자들은 코딩 영광으로 가는 과정에서 이를 "오버헤드"로 치부할 수 있습니다.그러나 DBA는 조직의 실질적인 데이터 관리자로서 규정과 [3]법률을 준수해야 하므로 책임 있는 것으로 간주되는 모든 작업을 수행해야 합니다.
리스크 및 컴플라이언스 관리를 위한 취약성 평가
데이터베이스 보안을 평가하는 방법 중 하나는 데이터베이스에 대한 취약성 평가 또는 침투 테스트를 수행하는 것입니다.테스터는 보안 제어를 해제하거나 우회하거나 데이터베이스에 침입하거나 시스템을 손상시키는 데 사용할 수 있는 보안 취약성을 찾으려고 합니다.예를 들어 데이터베이스 관리자 또는 정보보안 관리자는 자동화된 취약성 검사를 사용하여 데이터베이스 소프트웨어 내의 알려진 취약점과 함께 상기 계층 내의 잘못된 컨트롤 구성(흔히 '드리프트'라고 함)을 검색할 수 있습니다.이러한 검색 결과는 데이터베이스를 강화하고(보안 강화) 식별된 특정 취약성을 종료하는 데 사용되지만 다른 취약성은 인식되지 않고 해결되지 않는 경우가 많습니다.
보안이 중요한 데이터베이스 환경에서는 표준 준수 여부를 지속적으로 모니터링하면 보안이 향상됩니다.보안 컴플라이언스에는 특히 패치 관리 및 데이터베이스 내의 개체에 부여된 권한(특히 공용)의 검토와 관리가 필요합니다.데이터베이스 오브젝트에는 [Table]링크에 리스트 되어 있는 테이블 또는 기타 오브젝트가 포함될 수 있습니다.이 프로세스에서는 개체에 대한 SQL 언어 명령에 부여된 사용 권한이 고려됩니다.컴플라이언스 모니터링은 취약성 평가와 유사하지만 취약성 평가의 결과가 일반적으로 지속적인 모니터링 프로그램으로 이어지는 보안 표준을 주도한다는 점이 다릅니다.기본적으로 취약성 평가는 컴플라이언스 프로그램이 지속적인 위험 평가 프로세스인 경우 위험을 결정하기 위한 예비 절차입니다.
데이터베이스 레벨의 변경이 애플리케이션 소프트웨어 또는 애플리케이션 서버에 영향을 미칠 수 있으므로 컴플라이언스 프로그램에서는 애플리케이션 소프트웨어 레벨의 의존관계를 고려해야 합니다.
추상화
애플리케이션 레벨의 인증 및 인가 메커니즘은 데이터베이스 레이어에서 추상화를 제공하는 효과적인 수단일 수 있습니다.추상화의 주요 이점은 여러 데이터베이스와 플랫폼에 걸친 싱글 사인온 기능의 이점입니다.Single Sign-On 시스템은 데이터베이스 사용자의 자격 증명을 저장하고 사용자를 대신하여 데이터베이스에 대해 인증합니다.추상화는 복잡한 생각을 이해하기 쉽게 만드는 아이디어입니다.
데이터베이스 액티비티 모니터링(DAM)
보다 고도의 보안 레이어에는 네트워크를 통한 프로토콜 트래픽(SQL)을 분석하거나 소프트웨어 에이전트를 사용하여 각 서버의 로컬 데이터베이스 액티비티를 관찰하거나 둘 다에 의한 실시간 데이터베이스 액티비티 감시가 포함됩니다.데이터베이스 서버에서 실행되는 액티비티를 캡처하려면 에이전트 또는 네이티브 로그를 사용해야 합니다.이 액티비티는 일반적으로 데이터베이스 관리자의 액티비티를 포함합니다.에이전트를 사용하면 네이티브 감사 로그를 비활성화 또는 수정할 수 있는 데이터베이스 관리자가 비활성화할 수 없는 방식으로 이 정보를 캡처할 수 있습니다.
분석을 수행하여 알려진 악용 또는 정책 위반을 식별하거나 침입을 나타낼 수 있는 비정상적인 액티비티의 검출에 사용되는 표준 패턴을 시간에 따라 캡처할 수 있습니다.이러한 시스템은 침입 탐지 메커니즘과 더불어 포괄적인 데이터베이스 감사 추적을 제공할 수 있습니다.또한 일부 시스템은 사용자 세션을 종료하거나 의심스러운 행동을 보이는 사용자를 격리함으로써 보호를 제공할 수도 있습니다.일부 시스템은 감사인의 전형적인 요건인 직무분리(SOD)를 지원하도록 설계되어 있습니다.SOD에서는 일반적으로 DAM의 일부로 감시되는 데이터베이스 관리자는 DAM 기능을 비활성화하거나 변경할 수 없습니다.이를 위해서는 데이터베이스 관리 그룹이 관리하지 않는 다른 시스템에 DAM 감사 추적을 안전하게 저장해야 합니다.
원어민 감사
감시 또는 감사에 외부 툴을 사용하는 것 외에 많은 데이터베이스 플랫폼에서도 네이티브 데이터베이스 감사 기능을 사용할 수 있습니다.네이티브 감사 추적은 정기적으로 추출되어 데이터베이스 관리자가 액세스할 수 있거나 액세스해서는 안 되는 지정된 보안 시스템으로 전송됩니다.이를 통해 네이티브 감사 내역이 인증된 관리자에 의해 변경되지 않았음을 증명할 수 있는 일정 수준의 직무 분리가 보장되며, 운영 환경에 대한 읽기 권한을 가진 보안 중심의 상급 DBA 그룹이 수행해야 합니다.네이티브를 켜면 서버 성능에 영향을 미칩니다.일반적으로 데이터베이스의 네이티브 감사 추적은 직무 분리를 강제하기에 충분한 제어를 제공하지 않습니다.따라서 네트워크 및/또는 커널 모듈 수준의 호스트 기반 모니터링 기능은 법의학 및 증거 보존에 대한 높은 수준의 신뢰를 제공합니다.
프로세스 및 절차
양호한 데이터베이스 보안 프로그램에는 사용자 계정에 부여된 권한 및 즉시 프로세스에 의해 사용되는 계정에 대한 정기적인 검토가 포함됩니다.개별 계정에 대해 2단계 인증 시스템은 보안을 향상시키지만 복잡성과 비용을 증가시킵니다.자동화된 프로세스에서 사용되는 계정에는 보안 침해 위험을 줄이기 위해 충분한 암호화 및 액세스 제어 등 패스워드 스토리지에 대한 적절한 제어가 필요합니다.
적절한 disaster recovery 프로그램은 건전한 데이터베이스 보안 프로그램과 연계하여 보안 사고 또는 프라이머리 데이터베이스 환경의 중단을 초래하는 사고 중에 서비스가 중단되지 않도록 보장할 수 있습니다.예를 들어 주 데이터베이스를 다른 지리적 영역에 [4]위치한 사이트로 복제하는 방법이 있습니다.
사고 발생 후 데이터베이스 포렌식을 사용하여 위반 범위를 결정하고 시스템 및 프로세스에 대한 적절한 변경을 식별할 수 있습니다.
「 」를 참조해 주세요.
- 네거티브
- 데이터베이스 방화벽
- FIPS 140-2 암호화 모듈 인증을 위한 미국 연방 표준
- 가상 개인 데이터베이스
레퍼런스
- ^ 앤더슨의 규칙이 공식화된 보안 침해에 대한 가디언 신문 기사
- ^ Stephens, Ryan (2011). Sams teach yourself SQL in 24 hours. Indianapolis, Ind: Sams. ISBN 9780672335419.
- ^ "Database Security Best Practices". technet.microsoft.com. Archived from the original on 2016-09-15. Retrieved 2016-09-02.
- ^ Seema Kedar (1 January 2009). Database Management Systems. Technical Publications. p. 15. ISBN 978-81-8431-584-4.