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에 대한 연결 실패를 기록하여 이를 정기적으로 검토해야 한다. 가능하면 이 로그는 데이터 파일이 저장되는 드라이브와 다른 하드 드라이브에 저장한다.
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에 대한 연결 실패를 기록하여 이를 정기적으로 검토해야 한다. 가능하면 이 로그는 데이터 파일이 저장되는 드라이브와 다른 하드 드라이브에 저장한다.
'wow db Log > ms-sql' 카테고리의 다른 글
[mssql2008] TABLOCK 최소로깅에 대해서 (0) | 2010.04.28 |
---|---|
[MSSQL2008] 701 오류 (리소스 풀 'internal'에 시스템 메모리가 부족하여 이 쿼리를 실행할 수 없습니다.) (0) | 2010.04.27 |
[MSSQL] SQL Server 2005의 데이터베이스 미러링 (0) | 2009.12.18 |
[MSSQL] Full Text Search 윈도우 서버에 따른 설정 고려사항 (0) | 2009.12.16 |
[펌] 성능 저하 없이 미러링할 수 있는 데이터베이스의 수는 최대 몇 개? (0) | 2009.12.08 |