본문 바로가기

wow db Log/ms-sql

MS-SQL 보안점검 사항

1. 최신 서비스 팩 설치 및 보안패치 설치
  MS에서 제공되는 서비스 팩과 수시로 발표되는 보안패치의 설치를 적용하는 것은
DBMS의 보안에 기본이 되는 부분이다. 현재 운영 중인 시스템의 안정성을 위해서 테스트
서버를 대상으로 먼저 서비스 팩 등을 적용해 본 후 이상 유무를 확인한 이후 운영 시스템에
적용하도록 한다.
  - MS-SQL 2000
    http://www.microsoft.com/korea/sql/downloads/2000/sp4.asp
  - MS-SQL 2005
    http://www.microsoft.com/downloads/details.aspx?familyid=
    b6c71ea-d649-47ff-9176-e7cac58fd4bc&displaylang=en


2. 인증 및 계정관리 확인
  가. Windows 인증모드 사용
  Windows 인증모드 사용을 통해, SQL 사용 권한이 없는 도메인 사용자 또는 Windows 사용자로부터 Windows 비밀번호 정책을 사용하여 보안을 강화할 수 있다.

  나. guest 계정이 활성화 여부 확인
  guest계정은 특별한 로그인 계정으로 이 계정을 데이터베이스에 지정함으로써 SQL 서버의 정상 사용자 모두가 데이터베이스에 액세스하게 허락하는 경우가 종종 있다. 이는 당연히 MS-SQL 서버의 보안에 치명적인 결과를 가져온다.

  다. public 데이터베이스 역할 부여 여부 확인
  모든 데이터베이스 사용자들의 표준 역할로서 사용자는 public 역할의 권한과 특권을 계승 받고, 이 역할은 그들의 최소한의 권한과 특권을 나타낸다. 따라서 public 데이터베이스 역할에 권한이 설정되어 있으면, 인가를 받지 않은 사용자도 모든 작업을 할 수 있는 취약점 발생한다.

  라. SYSADMIN으로 그룹의 사용자 제한여부 확인
  sysadmin(system administrators)의 역할은 SQL서버와 설치된 데이터베이스에 대해서 완전한 관리 권한을 필요로 하는 사용자를 위해 만들어 진 역할로서 이 역할의 구성원은 SQL서버에서 모든 작업을 수행할 수 있어, 이 역할에 인증되지 않은 사용자 있어서는 안된다.

3. 외부로부터의 SQL Server 포트 접속차단 여부 확인
  SQL Server 포트는 Default 가 TCP/1433, TCP/1434 이다. 즉 SQL Server를 운영하고 있는 사실을 알고 있는 해커라면, 방화벽에서 1433, 1434 포트가 OPEN 되어있다는 것을 알고 있는 것이나 마찬가지란 뜻이다. 실제로 인터넷에 노출된 MS-SQL 서버를 모니터링해보면 1433, 1434 포트를 Target으로 수많은 Scan 공격과 웜으로 인한 유해 트래픽이 끊임없이 공격을 시도하는 것을 발견할 수 있다. 따라서 SQL Server를 설치할 때 통신
Default Port를 임의의 다른 포트로 설정하여 운영하도록 하는 것을 권장한다.

4. 확장 프로시저 제거
  서버의 유지 관리를 위해 MS-SQL에서 제공하고 있는 확장 프로시저 중, 자주 해킹에 이용되고 있는 특정 프로시저를 제거한다. 특히 xp_cmdshell은 중국에서 제작된 해킹툴에서 자주 이용되고 있으므로 불필요할 경우 반드시 제거하도록 한다.

5. SQL Server연결 감사 수행
  SQL Server는 시스템 관리자의 검토를 위해 이벤트 정보를 기록할 수 있다. 최소한 SQL Server에 대한 연결 실패를 기록하여 이를 정기적으로 검토해야 한다. 가능하면 이 로그는 데이터 파일이 저장되는 드라이브와 다른 하드 드라이브에 저장한다.