위협 요소 및 취약성 행렬(데이터베이스 엔진)

SQL Server에 다양한 보안 메커니즘이 있더라도 모든 시스템에는 악의적인 목적으로 이용될 수 있는 기능이 있습니다. 데이터나 정보를 노출하는 각 기능은 잘못 구현될 경우 위험한 것으로 보일 수도 있습니다.

각 기능이 위험을 나타내더라도 이러한 기능은 모두 다릅니다. 일부 기능은 실제로 변경해야 하고 다른 기능은 설정과 코드에 여전히 존재합니다. 다음 표에서는 위험과 이 위험을 줄일 수 있는 자동 관리 단계에 대해 설명합니다.

프로세스 위협 요소 및 취약성

위협 요소 및 취약성

정의

완화 방법

보안 정책

보안 정책은 프로세스와 프로시저의 레코드로 이 조직은 보안 위협을 방지, 추적 및 대응합니다. 보안 정책에는 시스템, 패치, 방화벽 및 바이러스 예방 메커니즘에 대한 적절한 액세스 권한과 관련된 정책이 들어 있습니다.

효과적인 보안 정책을 생성, 검토, 배포 및 유지 관리합니다. 보안 정책을 만드는 방법은 SQL Server 보안 설정을 참조하십시오.

"최소 권한"의 원칙

"최소 권한"의 원칙에 따라면 시스템은 보안 개체에 대해 필요한 액세스 수준만 허용해야 합니다. 또한 직접적으로 필요한 사용자가 지정된 시간에만 액세스하도록 설정해야 합니다. 응용 프로그램은 필요 이상의 액세스 권한을 제공하도록 코딩될 수 있고, 계정은 너무 많은 액세스 권한을 가질 수도 있습니다.

최소 권한의 원칙에 따라 보안을 검토하고 구현합니다. 최소 권한 개념을 사용하는 응용 프로그램을 개발하는 방법은 MSDN의 최소 권한 환경에서의 응용 프로그램 개발 모범 사례 및 지침(Developer Best Practices and Guidelines for Applications in a Least Privileged Environment)을 참조하십시오.

보안 게시판

Microsoft는 다양한 플랫폼에서 검증되고 테스트되는 즉시 보안 정보를 게시합니다. 이러한 게시판을 모니터링하지 않는 조직은 적절한 보안 지침을 적용하지 않아서 조직의 시스템이 위험에 처하게 됩니다.

SQL Server 보안 게시판을 검토하고 추적합니다. 자세한 내용은 TechNet의 Microsoft 보안 게시판 검색(Microsoft Security Bulletin Search)을 참조하십시오.

플랫폼 위협 요소 및 취약성

위협 요소 및 취약성

정의

완화 방법

업데이트되지 않은 시스템(소프트웨어 업데이트가 적용되지 않음)

Microsoft는 소프트웨어 업데이트를 게시하여 SQL Server를 보다 안전하게 보호합니다. 이러한 소프트웨어 업데이트를 추적하거나 적용하지 않으면 시스템은 공격에 대해 더욱 취약해집니다.

모든 서비스 팩 및 핫픽스가 사용 가능 상태가 되면 검토하여 적용합니다. 자세한 내용은 SQL Server TechCenter의 다운로드 페이지를 참조하십시오.

네트워크 포트 이용

네트워크는 SQL Server에 대한 공격의 주요 액세스 출처입니다. 표준 포트가 인터넷에 개방되어 있으면 공격을 받을 수 있습니다.

서버가 인터넷에 노출되어 있을 경우 서버에 방화벽을 사용하고 SQL Server 구성 관리자 도구를 사용하여 네트워크 구성을 설정합니다. 또한 더 강력한 보안을 위해 SSL(Secure Sockets Layer)을 사용하는 것이 좋습니다. 방화벽 및 SQL Server에 대한 자세한 내용은 방법: 데이터베이스 엔진 액세스에 대한 Windows 방화벽 구성을 참조하십시오. 네트워크 설정 구성 방법은 SQL Server 구성 관리자를 참조하십시오. SQL Server에서 SSL(Secure Sockets Layer)을 사용하는 방법은 SQL Server 연결 암호화를 참조하십시오.

부적절한 서비스 계정 설정

SQL Server의 서비스 계정으로 인해 종종 플랫폼 또는 네트워크에 필요 이상으로 액세스 권한이 부여됩니다.

SQL Server의 서비스 계정은 최소 권한의 원칙 하에서 운영되어야 하고 강력한 암호가 있어야 합니다. 서비스 계정에 대한 자세한 내용은 Windows 서비스 계정 설정을 참조하십시오. 암호에 대한 자세한 내용은 강력한 암호를 참조하십시오.

광범위한 노출 영역

필요하지 않은 경우에 SQL Server의 기능과 특징이 노출될 수 있습니다.

SQL Server 구성 관리자 및 정책 기반 관리를 사용하여 기능과 다른 구성 요소를 제어합니다. 자세한 내용은 노출 영역 구성 이해를 참조하십시오.

불필요한 저장 프로시저 사용

일부 확장된 저장 프로시저를 통해 운영 체제 또는 레지스트리에 액세스할 수 있습니다.

반드시 필요한 경우가 아니라면 운영 체제 또는 레지스트리에 대한 액세스를 허용하는 저장 프로시저를 사용하지 마십시오. 자세한 내용은 노출 영역 구성 이해를 참조하십시오.

인증 위협 요소 및 취약성

위협 요소 및 취약성

정의

완화 방법

약한 암호

단순한 암호를 사용하면 문자 조합을 이용한 공격 또는 사전 공격의 위험이 있습니다.

항상 강력하고 복잡한 암호를 사용합니다. 자세한 내용은 강력한 암호를 참조하십시오. 또한 CREATE LOGIN(Transact-SQL) 문 및 ALTER LOGIN(Transact-SQL) 문의 CHECK_POLICY 옵션과 CHECK_EXPIRATION 옵션을 참조하십시오.

감사되지 않은 사용자 계정

사용자(보안 주체)가 자주 위치를 변경하거나 조직을 그대로 둡니다. 사용자 계정에 대한 액세스 권한이 변경되지 않으면 이전 권한 수준으로 시스템에 계속 액세스할 수 있습니다.

사용자 권한을 자주 감사하여 데이터베이스 서버 및 개체에 대해 적절한 액세스 권한이 설정되었는지 확인해야 합니다. SQL Server 액세스를 감사하는 방법은 오류 로그 모니터링을 참조하십시오.

프로그래밍 위협 요소 및 취약성

위협 요소 및 취약성

정의

완화 방법

SQL 인젝션

합법적인 쿼리에 악의적인 쿼리를 포함하는 방법입니다.

SQL 인젝션 공격을 다루는 방법은 SQL 인젝션을 참조하십시오.

포함된 암호

일부 응용 프로그램이 프로그램 또는 구성 파일에 연결 문자열을 저장합니다.

암호나 중요한 연결 정보를 프로그램, 레지스트리 또는 구성 파일에 저장하지 마십시오. 자세한 내용은 암호 정책을 참조하십시오.

데이터 액세스 위협 요소 및 취약성

위협 요소 및 취약성

정의

완화 방법

부적절하게 적용된 암호화

암호화를 통해 SQL Server의 데이터 또는 연결 정보를 난독 처리합니다. 필요할 때 암호화되지 않거나 필요 없을 때 암호화가 추가되면 불필요한 위험과 복잡성이 발생합니다.

SQL Server 암호화를 이해하고 올바르게 구현합니다. 자세한 내용은 SQL Server 암호화를 참조하십시오.

부적절하게 적용된 인증서

인증서는 인증을 검증하는 메커니즘입니다. SQL Server에서는 데이터 연결에 다양한 용도의 인증서를 사용할 수 있습니다. 자체 인증의 부적절한 사용 및 연장된 유효 기간으로 인해 전반적인 보안 강도가 약해집니다.

SQL Server 인증서를 이해하고 올바르게 구현합니다. 자세한 내용은 SQL Server 인증서 및 비대칭 키를 참조하십시오.

백업되지 않은 SQL Server 키

SQL Server 인스턴스와 이 인스턴스에 포함된 데이터베이스에는 여러 가지 보안상의 용도로 사용되는 키가 있을 수 있습니다. 여기에는 암호화도 포함됩니다.

서비스 마스터 키라고도 하는 서버 키와 데이터베이스 키는 안전하게 저장되고 백업되어야 하며 정기적으로 변경되어야 합니다. 자세한 내용은 SQL Server 및 데이터베이스 암호화 키(데이터베이스 엔진)를 참조하십시오.