설치
MS SQL 서버 설치에 앞서 구내 라우터·방화벽에서 SQL 서버 IP주소로 향하는 UDP 및 TCP 포트 1433과 1434를 막아둔다. 설치 중 SQL 인젝션 위험에 노출되는 것을 방지하기 위해서다.
SQL 서버는 윈도우 도메인 컨트롤러 시스템에는 설치하면 안된다. 애플리케이션 취약점이 노출될 경우 전체 도메인 보안이 위험에 빠질 수 있기 때문이다. 각 SQL 서버는 모든 패치를 적용한 상태의 운영체제 상에 설치하고, 이후 애플리케이션 설치 및 데이터 마이그레이션 순서를 따른다.
SQL 서버 서비스는 애플리케이션이 해킹당해도 다른 서버가 영향을 받지 않도록 항상 각기 독립적인 로컬 계정 하에서 동작해야 한다.
설치한 SQL 서버가 윈도우 기반 네트워크에 연계될 경우, 이 서버로 향하는 모든 연결에 대해 윈도우 인증을 받도록 하면 관리자는 각각의 패스워드를 기억하거나 메모해놓지 않아도 될 것이다.
서비스 계정
당연한 말이지만 서비스 계정에 부여되는 권한에 대해서는 특별히 주의를 기울여야 한다. SQL 서버는 두 개의 서비스 계정 - SQL 서버 엔진, SQL 서버 에이전트 - 을 사용하는데, 이 두 계정은 일반 계정 권한을 갖는 도메인 유저로 운영돼야 한다.
만일 관리자가 윈도우 인증 대신 SQL 서버 인증을 사용한다거나, 또는 액티브X 스크립트, CmdExec(운영체제 커맨드, .bat, .cmd, .com, .exe 확장자 파일 등)를 사용한다면 해당 SQL 서버 에이전트 계정에는 ‘로컬 윈도우 관리자’ 권한을 부여해야 한다.
SQL 서버 서비스와 연관돼 있는 계정을 변경해야 한다면 제어판의 ‘MMC’ 서비스 애플릿을 사용하지 말고, 대신 ‘SQL 서버 엔터프라이즈 매니저’를 사용하는 것이 좋다. 엔터프라이즈 매니저는 SQL 서버가 사용하는 파일 및 레지스트리 키에 대해 적절한 퍼미션을 세팅해준다.
설치 이후 할 일
MS의 KillPwd.exe 유틸리티를 사용해서 설치 과정에서 생성된 부산물을 청소한다. 이 유틸리티는 설치 도중에 각종 셋업 파일에 저장된 sysadmin 패스워드를 삭제해준다.
설치 파일을 청소했다면 그 다음엔 MBSA(MS Baseline Security Analyze)를 실행시킨다. 이 툴은 다음과 같은 문제점이 없는지 스캔 및 테스트를 수행한다.
MBSA를 이용한 점검이 끝나면 마지막으로 실패한 연결(failed connection)을 점검한다(SQL 서버 인스톨 과정에서 가장 잘 간과되는 부분이다). SQL 서버 엔터프라이즈 매니저를 이용해 ‘감사(audit)’ 기능을 활성화시키는 방법은 다음과 같다.
1. 서버(server)를 마우스 오른쪽 버튼 클릭하고, 속성(Properties)을 선택
2. 보안(Security) 탭에서 감사(Audit) 아래쪽의 실패(Failure)를 선택
3. 기능을 적용시키기 위해 서버를 중단시키고 재시작