dba 를 위한 sql server security

52
DBA DBA 를 를를 를 를를 SQL Server SQL Server Security Security Microsoft SQL Server Technical Workshop Microsoft SQL Server Technical Workshop 를를를 를를를

Upload: tyler-mejia

Post on 03-Jan-2016

59 views

Category:

Documents


0 download

DESCRIPTION

DBA 를 위한 SQL Server Security. Microsoft SQL Server Technical Workshop 하성희. 방어해야 하는 대상 ?. 평범한 해커 전문적인 해커 불만을 품은 직원 미숙한 직원 “ 서버에 여유 공간이 필요해서 어떤 . mdf 파일을 삭제했어요. 그리고 어떤 서비스도 중단시켜야 했어요. 그게 잘못되었나요? ”. DBA 가 방어해야 하는 것들 ?. 데이터에 대한 액세스 데이터의 무결성 SQL Server. 필요한 작업. 서버에 대한 액세스 방식을 제한 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DBA 를 위한  SQL Server Security

DBADBA 를 위한 를 위한 SQL Server SQL Server SecuritySecurity

Microsoft SQL Server Technical WorkshopMicrosoft SQL Server Technical Workshop

하성희하성희

Page 2: DBA 를 위한  SQL Server Security

방어해야 하는 대상방어해야 하는 대상 ??

평범한 해커평범한 해커 전문적인 해커전문적인 해커 불만을 품은 직원불만을 품은 직원 미숙한 직원미숙한 직원

““ 서버에 여유 공간이 필요해서 어떤 서버에 여유 공간이 필요해서 어떤 ..mdf mdf 파일을 삭제했어요파일을 삭제했어요 .. 그리고 어떤 서비스도 그리고 어떤 서비스도 중단시켜야 했어요중단시켜야 했어요 . . 그게 잘못되었나요그게 잘못되었나요 ??””

Page 3: DBA 를 위한  SQL Server Security

DBADBA 가 방어해야 하는 것들가 방어해야 하는 것들 ??

데이터에 대한 액세스데이터에 대한 액세스 데이터의 무결성데이터의 무결성 SQL ServerSQL Server

Page 4: DBA 를 위한  SQL Server Security

필요한 작업필요한 작업 서버에 대한 액세스 방식을 제한서버에 대한 액세스 방식을 제한 데이터에 대한 액세스 방식을 제한데이터에 대한 액세스 방식을 제한 잠재적인 공격 대상 제한잠재적인 공격 대상 제한

기능과 응용 프로그램이 더 많아질수록 기능과 응용 프로그램이 더 많아질수록 공격할 지점이 증가한다공격할 지점이 증가한다

Page 5: DBA 를 위한  SQL Server Security

관련되는 것들관련되는 것들 ??

물리적인 환경물리적인 환경 네트워크 네트워크 NT/2000 NT/2000 SQL Server SQL Server 응용 프로그램응용 프로그램 데이터베이스데이터베이스 데이터데이터 정책과 절차정책과 절차

Page 6: DBA 를 위한  SQL Server Security

관련되는 사람들관련되는 사람들 ??

데이터베이스 관리

NT 관리네트워크 인프라

개발

관리업무 부서 규칙

Page 7: DBA 를 위한  SQL Server Security

물리적 환경물리적 환경

건물이 물리적으로 안전한가건물이 물리적으로 안전한가 ?? 서버가 있는 곳이 물리적으로 안전한 곳인가서버가 있는 곳이 물리적으로 안전한 곳인가 ?? 컴퓨터를 사용하지 않을 때에는 컴퓨터 잠금이 컴퓨터를 사용하지 않을 때에는 컴퓨터 잠금이

되어 있는가되어 있는가 ??

Page 8: DBA 를 위한  SQL Server Security

네트워크네트워크 가능하다면가능하다면 , , 클라이언트가 클라이언트가 SQL ServerSQL Server 와 와

통신하기 위하여 “명명된 파이프”를 사용하지 말 통신하기 위하여 “명명된 파이프”를 사용하지 말 것것

가능하다면가능하다면 , , 디폴트 포트를 사용하지 말 것디폴트 포트를 사용하지 말 것 관련 포트들을 차단관련 포트들을 차단

TCP 1433 (TCP 1433 ( 디폴트디폴트 )) UDP 1434 (UDP 1434 ( 변경 불가변경 불가 )) TCP 2433 (“TCP 2433 (“ 서버 숨기기서버 숨기기” ” 옵션을 옵션을

체크하는 경우의 디폴트체크하는 경우의 디폴트 )) 라우터와 방화벽에서 액세스를 제한할 것라우터와 방화벽에서 액세스를 제한할 것

Page 9: DBA 를 위한  SQL Server Security

NT/2000NT/2000

계정 정책계정 정책 강력한 강력한 password password 설정설정 PasswordPassword 가가 expireexpire 되도록 설정되도록 설정 WorkstationWorkstation 들에 잠금 스크린 세이버 설정들에 잠금 스크린 세이버 설정 Administrator Administrator 액세스 권한 제한액세스 권한 제한

Page 10: DBA 를 위한  SQL Server Security

NT/2000 NT/2000

NTFS NTFS 권한권한 Everyone Everyone 그룹을 그룹을 root root 레벨 액세스에서 레벨 액세스에서

제거할 것제거할 것 (C: drive, D: drive,(C: drive, D: drive, 등등 )) SQL Server SQL Server 디렉터리들은 디렉터리들은 administratorsadministrators

와 와 SQL Server SQL Server 서비스에 사용된 서비스 서비스에 사용된 서비스 계정에만 권한을 허용할 것계정에만 권한을 허용할 것

SQL Server SQL Server 서비스 계정은 서비스 계정은 SQL ServerSQL Server 를 를 위해 필요한 디렉터리들만으로 제한할 것위해 필요한 디렉터리들만으로 제한할 것

Page 11: DBA 를 위한  SQL Server Security

NT/2000NT/2000

다음의 서버들에는 다음의 서버들에는 SQL ServerSQL Server 를 설치하지 말 를 설치하지 말 것것 :: 도메인 컨트롤러도메인 컨트롤러 Exchange ServerExchange Server Web serverWeb server File/print serverFile/print server

Page 12: DBA 를 위한  SQL Server Security

NT/2000NT/2000

사용하지 않는 서비스는 비활성화할 것사용하지 않는 서비스는 비활성화할 것 비활성화비활성화 ::

WWW Publishing ServiceWWW Publishing Service FTP Publishing ServiceFTP Publishing Service SMTPSMTP NNTPNNTP

Page 13: DBA 를 위한  SQL Server Security

NT/2000NT/2000

Everyone Everyone 그룹을 제거하고 그룹을 제거하고 Administrators Administrators 로컬 그룹과 로컬 그룹과 SSQL Server QL Server 서비스 계정에 대하여 서비스 계정에 대하여 full accessfull access 를 할당할 것를 할당할 것 HKEY_LOCAL_MACHINE\SOFTWARE\HKEY_LOCAL_MACHINE\SOFTWARE\

MICROSOFT\MSSQLSERVER MICROSOFT\MSSQLSERVER HKEY_LOCAL_MACHINE\SOFTWARE\HKEY_LOCAL_MACHINE\SOFTWARE\

MICROSOFT\MICROSOFT SQL SERVER\MICROSOFT\MICROSOFT SQL SERVER\

INSTANCENAMEINSTANCENAME

Page 14: DBA 를 위한  SQL Server Security

NT/2000NT/2000

기타기타 터미널 서비스나 원격 컨트롤 소프트웨어가 터미널 서비스나 원격 컨트롤 소프트웨어가

서버에 설치되어 있는가서버에 설치되어 있는가 ?? 어떤 어떤 33rdrd 파티 유틸리티들이 서버에 설치되어 파티 유틸리티들이 서버에 설치되어

있는가있는가 ?? 바이러스로부터의 보호바이러스로부터의 보호 백업 소프트웨어백업 소프트웨어

Page 15: DBA 를 위한  SQL Server Security

SQL ServerSQL Server

서비스 계정서비스 계정 SQL Server SQL Server 서비스 계정과 서비스 계정과 SQL Agent SQL Agent

서비스 계정에 주어지는 권한을 제한할 것서비스 계정에 주어지는 권한을 제한할 것 복제복제 , , 네트워크 액세스네트워크 액세스 , , 원격 데이터 소스원격 데이터 소스 , ,

SQL MailSQL Mail 을 위해서는 도메인 사용자가 을 위해서는 도메인 사용자가 필요함필요함

모든 기능을 활용하기 위해서는 모든 기능을 활용하기 위해서는 Local Local AdministratorAdministrator 로 액세스하는 것이 필요함로 액세스하는 것이 필요함

Page 16: DBA 를 위한  SQL Server Security

SQL ServerSQL Server

XP_CMDSHELLXP_CMDSHELL 가장 유용하면서 가장 위험한 가장 유용하면서 가장 위험한 XPXP SQL Server SQL Server 서비스를 수행하는데 도메인 서비스를 수행하는데 도메인

admin, admin, 로컬 로컬 admin, admin, 또는 로컬시스템 또는 로컬시스템 계정을 사용하는 경우라면계정을 사용하는 경우라면 , , xp_cmdshellxp_cmdshell 이 이 가지는 힘을 알고 있어야 함가지는 힘을 알고 있어야 함

Page 17: DBA 를 위한  SQL Server Security

SQL ServerSQL Server

Trojan Trojan 저장 프로시저저장 프로시저 어떤 프로시저들이 자동으로 수행되는지 확인어떤 프로시저들이 자동으로 수행되는지 확인

sp_helpstartup (7.0)sp_helpstartup (7.0)sp_procoption (2000)sp_procoption (2000)

공격에 사용할 가능성 있는 프로시저들공격에 사용할 가능성 있는 프로시저들sp_passwordsp_passwordsp_help proceduressp_help proceduressp_MSRepl_startupsp_MSRepl_startup

Page 18: DBA 를 위한  SQL Server Security

SQL ServerSQL Server 와 와 MailMail

만약 메일 기능을 전혀 사용하지 않는 만약 메일 기능을 전혀 사용하지 않는 경우라면경우라면 , , 다음 저장 프로시저들을 모두 다음 저장 프로시저들을 모두 삭제할 것삭제할 것xp_startmailxp_startmail

xp_stopmail xp_stopmail xp_readmailxp_readmailxp_sendmailxp_sendmailxp_findnextmsgxp_findnextmsg

xp_deletemail xp_deletemail

Page 19: DBA 를 위한  SQL Server Security

SQL XML SQL XML 지원지원 필요하지 않은 경우에는 필요하지 않은 경우에는 XML XML 지원 기능을 지원 기능을

활성화하지 말 것활성화하지 말 것 XML XML 지원 기능을 구성한 경우에는지원 기능을 구성한 경우에는 , , 가능한 한 가능한 한

많이 많이 XML XML 지원 기능을 제한할 것지원 기능을 제한할 것 (( 예를 들어예를 들어 , , Xpath Xpath 쿼리를 지원하지 않아도 된다면 비활성쿼리를 지원하지 않아도 된다면 비활성화화 ))

Page 20: DBA 를 위한  SQL Server Security

기타기타 Query governor cost limit Query governor cost limit 옵션을 튜닝 옵션을 튜닝

서비스에 지장을 주는 공격에 대비 보호할 것서비스에 지장을 주는 공격에 대비 보호할 것 텍스트 파일 형태의 스크립트에는 텍스트 파일 형태의 스크립트에는 login namelogin name

과 과 passwordpassword 정보를 기록해 두지 말 것정보를 기록해 두지 말 것

Page 21: DBA 를 위한  SQL Server Security

사용자 관리사용자 관리 사용자 로그인 관리사용자 로그인 관리 데이터베이스 사용자 관리데이터베이스 사용자 관리 권한권한 ((Permission) Permission) 관리관리 역할역할 ((Role) Role) 관리관리

Page 22: DBA 를 위한  SQL Server Security

SQL Server SQL Server 보안 모델보안 모델

SQL Server 에 연결

SQL Server 컴퓨터에 연결

데이터베이스 컨텍스트 설정

작업 권한 검증 ( 데이터베이스 내의 모든 작업에 대해 권한 검증 )

SQL Server 에게 로그인 인증 요청

원하는 데이터베이스로 연결 및 액세스 인가

원하는 작업 수행

Page 23: DBA 를 위한  SQL Server Security

사용자 로그인 관리사용자 로그인 관리 인증 모드인증 모드

Windows Windows 통합 인증 통합 인증 / / 혼합 모드 인증혼합 모드 인증 엔터프라이즈 관리자 엔터프라이즈 관리자 : [: [SQL Server SQL Server 속성속성

(( 구성구성 )] )] [ [ 보안보안 ] ] 탭탭 SQL Server SQL Server 로그인 등록로그인 등록

sp_addlogin / sp_grantloginsp_addlogin / sp_grantlogin 엔터프라이즈 관리자 엔터프라이즈 관리자 : [: [ 보안보안 ] ] [ [ 로그인로그인

]] BUILTIN\Administrators BUILTIN\Administrators 그룹의 구성원인 그룹의 구성원인

Windows NT Windows NT 사용자는 자동으로 사용자는 자동으로 sysadmin sysadmin 서버 역할의 구성원이 됨서버 역할의 구성원이 됨

Page 24: DBA 를 위한  SQL Server Security

사용자 로그인 관리사용자 로그인 관리 로그인 삭제로그인 삭제

sp_droploginsp_droplogin sp_revokelogin : Windows NT sp_revokelogin : Windows NT 사용자사용자 //

그룹 로그인 제거그룹 로그인 제거 데이터베이스 사용자 삭제 후 작업데이터베이스 사용자 삭제 후 작업

만들 때와 역순만들 때와 역순

Page 25: DBA 를 위한  SQL Server Security

데이터베이스 사용자 관리데이터베이스 사용자 관리

SQL Server SQL Server 로그인 등록 후 작업로그인 등록 후 작업 등록 방법등록 방법

sp_grantdbaccess : sp_grantdbaccess : 사용 권장사용 권장 sp_adduser : sp_adduser : 사용 권장하지 않음 사용 권장하지 않음 ((

이전 버전과의 호환성이전 버전과의 호환성 )) 엔터프라이즈 관리자 엔터프라이즈 관리자 : : 데이터베이스 데이터베이스

[[ 사용자사용자 ]]

Page 26: DBA 를 위한  SQL Server Security

권한권한 관리관리 GRANT - GRANT - 권한 부여권한 부여 REVOKE - GRANT REVOKE - GRANT 또는 또는 DENY DENY 취소취소 DENY - DENY - 권한 부여 금지권한 부여 금지

++--REVOKEREVOKEREVOKE [DENY]REVOKE [DENY]

DENYDENY

DENYDENY GRANTGRANT

GRANTGRANT

Page 27: DBA 를 위한  SQL Server Security

Role (Role ( 역할역할 ))

Fixed Server RoleFixed Server Role Fixed Database RoleFixed Database Role Application RoleApplication Role 사용자 정의 사용자 정의 RoleRole Public RolePublic Role

Page 28: DBA 를 위한  SQL Server Security

역할 관리역할 관리 로그인을 고정 서버 역할의 구성원으로 등록 로그인을 고정 서버 역할의 구성원으로 등록 : :

sp_addsrvrolemembersp_addsrvrolemember 데이터베이스 사용자를 고정 데이터베이스 데이터베이스 사용자를 고정 데이터베이스

역할의 구성원으로 등록 역할의 구성원으로 등록 : : sp_addrolemembersp_addrolemember 역할을 만들고역할을 만들고 , , 역할에 권한을 설정하고역할에 권한을 설정하고 , ,

역할에 사용자를 추가역할에 사용자를 추가

Page 29: DBA 를 위한  SQL Server Security

Fixed Server RoleFixed Server Role

SysadminSysadmin ServeradminServeradmin SetupadminSetupadmin SecurityadminSecurityadmin DbcreatorDbcreator ProcessadminProcessadmin DiskadminDiskadmin BulkadminBulkadmin

Page 30: DBA 를 위한  SQL Server Security

Fixed Database RoleFixed Database Role

db_ownerdb_owner db_accessadmindb_accessadmin db_securityadmindb_securityadmin db_ddladmindb_ddladmin db_backupoperatordb_backupoperator db_datareaderdb_datareader db_datawriterdb_datawriter db_denydatareader db_denydatareader db_denydatawriterdb_denydatawriter

Page 31: DBA 를 위한  SQL Server Security

Application RoleApplication Role

LoginLogin 이 아닌 이 아닌 ApplicationApplication 을 기준으로 액세스 을 기준으로 액세스 레벨 설정 레벨 설정

Sp_setapproleSp_setapprole

Page 32: DBA 를 위한  SQL Server Security

사용자 정의 사용자 정의 RoleRole

Fixed RoleFixed Role 로는 부적합한 경우 많음로는 부적합한 경우 많음 많이 만들어 사용해도 무방함 많이 만들어 사용해도 무방함 ((Cost Cost 적음적음 )) 데모데모

Page 33: DBA 를 위한  SQL Server Security

권한 관리권한 관리 대원칙 대원칙 : : 꼭 필요한 최소한의 권한만 부여꼭 필요한 최소한의 권한만 부여 효율적인 권한 관리효율적인 권한 관리 권고 사항권고 사항

항상 항상 UserUser 가 아닌 가 아닌 RoleRole 에 대하여 권한을 에 대하여 권한을 부여할 것부여할 것

RoleRole 을 세분화하여 관리할 것을 세분화하여 관리할 것 PublicPublic 에게 권한을 부여하지 말 것에게 권한을 부여하지 말 것

Page 34: DBA 를 위한  SQL Server Security

Database Database 레벨레벨 권한 관련 권고 사항권한 관련 권고 사항

모든 리소스들에서 모든 리소스들에서 Public RolePublic Role 에 대한 에 대한 권한 제거권한 제거

““DENY” DENY” 활용활용만약 누군가가 어떤 것을 보아서는 안 만약 누군가가 어떤 것을 보아서는 안

된다면된다면 , , 볼 수 없도록 확실히 조치할 것볼 수 없도록 확실히 조치할 것 저장 프로시저를 사용하여 데이터를 저장 프로시저를 사용하여 데이터를

액세스하고액세스하고 , , sp sp 레벨에서 권한을 부여할 레벨에서 권한을 부여할 것 것 (( 테이블 레벨에서 권한을 부여하지 말 테이블 레벨에서 권한을 부여하지 말 것것 ))

Page 35: DBA 를 위한  SQL Server Security

참고 참고 - - SQL InjectionSQL Injection 에 의한 에 의한 해킹해킹 Ad-hoc Ad-hoc 쿼리를 사용하면쿼리를 사용하면 , , 해커가 다른 해커가 다른 SQL SQL

문을 끼워 넣을 수 있는 가능성을 제공함문을 끼워 넣을 수 있는 가능성을 제공함 SQL injectionSQL injection 이 어떻게 동작하는지에 대한 이 어떻게 동작하는지에 대한

자세한 내용은 자세한 내용은 www.www.sqlsecuritysqlsecurity.com.com 와 와 David LitchfieldDavid Litchfield 의 의 whitepaperwhitepaper 를 참고하기 를 참고하기 바람바람

Page 36: DBA 를 위한  SQL Server Security

다중 인스턴스 환경다중 인스턴스 환경 다중 인스턴스 고려 사항다중 인스턴스 고려 사항

BUILTIN\AdministratorsBUILTIN\Administrators 를 제거할 것를 제거할 것 인스턴스별로 별도의 서비스 계정을 사용할 것인스턴스별로 별도의 서비스 계정을 사용할 것 서비스 계정은 도메인 사용자 계정이나 로컬 서비스 계정은 도메인 사용자 계정이나 로컬

사용자 계정을 사용할 것사용자 계정을 사용할 것– – 도메인 도메인 adminadmin 이나 이나 localsystemlocalsystem 계정은 사용하지 말 것계정은 사용하지 말 것

인스턴스별로 인스턴스별로 NTFS NTFS 권한을 개별적으로 권한을 개별적으로 설정할 것설정할 것

인스턴스별로 레지스트리를 개별적으로 권한 인스턴스별로 레지스트리를 개별적으로 권한 관리를 할 것관리를 할 것

Page 37: DBA 를 위한  SQL Server Security

BUILTIN\AdministratorsBUILTIN\Administrators 제거제거 시스템 관리자와 시스템 관리자와 DBADBA 는 다른 업무를 수행하며 는 다른 업무를 수행하며

그러므로 서로 다른 권한을 필요로 함그러므로 서로 다른 권한을 필요로 함 작업 순서 작업 순서 (( 중요중요 ))

Windows 2000/Windows NT Windows 2000/Windows NT 그룹 만들기 그룹 만들기 & & 그룹에 구성원그룹에 구성원 ((member)member) 할당하기할당하기 예예 : : SQLAdminsSQLAdmins

SQL ServerSQL Server 에서 에서 SQLAdminsSQLAdmins 에 대하여 에 대하여 Windows Windows 인증 로그인 허용 인증 로그인 허용 & & sysadmin Server Rolesysadmin Server Role 에 추가에 추가

BUILTIN\Administrators BUILTIN\Administrators 로그인을 삭제 또는 로그인을 삭제 또는 sysadmin Server Rolesysadmin Server Role 에서 제거에서 제거

SQL Server SQL Server 인증 모드를 인증 모드를 Windows Windows 인증만으로 인증만으로 변경변경

SQL Server SQL Server 재시작 재시작 변경된 인증 모드 반영 변경된 인증 모드 반영

Page 38: DBA 를 위한  SQL Server Security

BUILTIN\AdministratorsBUILTIN\Administrators 제거제거 작업 순서를 다르게 하면 작업 순서를 다르게 하면 sysadmin sysadmin

로그인으로 로그인으로 SQL ServerSQL Server 에 로그인할 수 없는 에 로그인할 수 없는 상황이 발생할 수 있음 상황이 발생할 수 있음 ((Lock out)Lock out) 해결 방법 해결 방법 : : 레지스트리에서 레지스트리에서 LoginMode LoginMode 값 값

변경 변경 ((HKEY_LOCAL_MACHINE\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SOFTWARE\Microsoft\MicrosoftSQLServer\<instance_name>\MicrosoftSQLServer\<instance_name>\MSSQLServer\LoginMode)MSSQLServer\LoginMode)

SaSa 로 로그인해서 재작업로 로그인해서 재작업

*** *** Administrators Administrators 로컬 그룹의 모든 구성원이 로컬 그룹의 모든 구성원이 sysadmin sysadmin 권한을 가지지 않도록 할 것 권한을 가지지 않도록 할 것 ******

Page 39: DBA 를 위한  SQL Server Security

DataData EncryptionEncryption

.mdf, .ndf, .ldf .mdf, .ndf, .ldf 파일에 파일에 EFSEFSsignificantsignificant 프로세싱 오버헤드 추가 유발프로세싱 오버헤드 추가 유발파일을 파일을 non-EFSnon-EFS 로 이동하면 로 이동하면 Encryption Encryption

유실유실 데이터베이스 자체 내에서 데이터베이스 자체 내에서 EncryptionEncryption

33rdrd 파티 유틸리티파티 유틸리티주의 요망 주의 요망 ((EncryptionEncryption 을 해독 가능한지 을 해독 가능한지

확인 요망확인 요망 )) 저장 프로시저 저장 프로시저 EncryptionEncryption

주의 요망주의 요망

Page 40: DBA 를 위한  SQL Server Security

DataData

백업을 안전하게 관리백업을 안전하게 관리 백업 테이프 저장 장소백업 테이프 저장 장소 SQL Server SQL Server 백업 백업 EncryptionEncryption SQL Server SQL Server 백업과 테이프 백업에 대하여 백업과 테이프 백업에 대하여

password password 보호보호 가능가능 주의 요망주의 요망 :: 재난 복구 계획에 영향을 미칠 재난 복구 계획에 영향을 미칠

수 있음수 있음

Page 41: DBA 를 위한  SQL Server Security

정책과 절차정책과 절차 다음에 대하여 정책 수립다음에 대하여 정책 수립 ::

누가 누가 SQL ServerSQL Server 들에 대한 관리적인 액세스 권한을 들에 대한 관리적인 액세스 권한을 가지는지가지는지

누가 새로운 누가 새로운 SQL ServerSQL Server 를 설치할 것인지를 설치할 것인지 누가 클라이언트 툴에 대한 액세스 권한을 가지는지누가 클라이언트 툴에 대한 액세스 권한을 가지는지 만약 보안 침범이 발생하거나 누군가 의심스럽다면 만약 보안 침범이 발생하거나 누군가 의심스럽다면

어떤 작업을 수행하는지어떤 작업을 수행하는지 만약 당신이 정책을 수립할 위치에 있지 않다면만약 당신이 정책을 수립할 위치에 있지 않다면 , , 정책을 수립하도록 정책을 수립하도록

요청할 것요청할 것 모든 보안 감사와 구성에 대하여 공식적이고 문서화된 절차를 모든 보안 감사와 구성에 대하여 공식적이고 문서화된 절차를

작성할 것작성할 것

Page 42: DBA 를 위한  SQL Server Security

패치 유지 관리패치 유지 관리 Alert Alert 리스트를 다중으로 구독할 것리스트를 다중으로 구독할 것

Microsoft(http://register.microsoft.com/Microsoft(http://register.microsoft.com/regsys/pic.asp)regsys/pic.asp)

NTBugTraq (http://www.ntbugtraq.com/)NTBugTraq (http://www.ntbugtraq.com/) CERT (www.cert.org)CERT (www.cert.org)

SQL ServerSQL Server 에 국한된 내용만 보지 말고에 국한된 내용만 보지 말고 , , 관련된 내용들을 두루 확인할 것관련된 내용들을 두루 확인할 것

해커들도 해커들도 Alert Alert 리스트를 구독할 것이므로리스트를 구독할 것이므로 , , 가능한 한 빨리 패치를 적용할 것가능한 한 빨리 패치를 적용할 것

Page 43: DBA 를 위한  SQL Server Security

주기적인 보안 감사주기적인 보안 감사 ((audit)audit)

서비스 팩 점검서비스 팩 점검 서버 구성 점검서버 구성 점검 새로운 취약 지점 확인새로운 취약 지점 확인 Administrator Administrator 액세스 감사액세스 감사 사용하지 않는 로그인 확인사용하지 않는 로그인 확인 잠재적인 보안 잠재적인 보안 breach breach 문서화문서화 이에 대하여 공식적이고 문서화된 절차 작성이에 대하여 공식적이고 문서화된 절차 작성

Page 44: DBA 를 위한  SQL Server Security

보안의 빈틈보안의 빈틈 ““ 단지 개발용 컴퓨터일 뿐인데단지 개발용 컴퓨터일 뿐인데…”…” MSDEMSDE SA passwordSA password 가 설정되지 않은 상태의 가 설정되지 않은 상태의

Windows Windows 인증인증 레지스트리레지스트리

Windows Windows 인증에서 인증에서 SQL Server SQL Server 인증으로의 스위칭 가능인증으로의 스위칭 가능

PasswordPassword 가 가 setup log setup log 파일에 저장됨파일에 저장됨 Q263968 Q263968

PasswordPassword 가 외부 가 외부 DTS DTS 패키지에 저장됨패키지에 저장됨

Page 45: DBA 를 위한  SQL Server Security

일반적인 권고 사항일반적인 권고 사항 처음부터 보안 고려 처음부터 보안 고려 ((SQL Server SQL Server 설치설치 ~~ 개발 개발

~ )~ ) 가능한 한 서버를 여러 가지 기능을 위해 가능한 한 서버를 여러 가지 기능을 위해

사용하지 말 것사용하지 말 것 모든 사람들이 여러분의 시스템을 해킹하려 할 모든 사람들이 여러분의 시스템을 해킹하려 할

수 있다고 가정하고 주의할 것수 있다고 가정하고 주의할 것 감사감사 ((Audit) Audit) 점검 목록을 설정할 것점검 목록을 설정할 것 공식적이고 문서화된 절차를 수립할 것공식적이고 문서화된 절차를 수립할 것 가능한 한 가능한 한 SA SA 계정을 사용하지 말 것계정을 사용하지 말 것

SASA 에 대해서는 강력한 에 대해서는 강력한 passwordpassword 를 지정할 것를 지정할 것 복잡한 암호 복잡한 암호 (( 대문자대문자 , , 소문자소문자 , , 특수기호특수기호 , ,

스페이스스페이스 , , 숫자 등 포함숫자 등 포함 ))

Page 46: DBA 를 위한  SQL Server Security

SQL ServerSQL Server 를 안전하게 를 안전하게 관리하는 기본적인 원칙관리하는 기본적인 원칙1. 1. 최신 서비스 팩 설치최신 서비스 팩 설치 , , 보안 패치 설치보안 패치 설치2. Microsoft Baseline Security Analyzer (MBSA)2. Microsoft Baseline Security Analyzer (MBSA)

를 사용하여 서버 보안 점검를 사용하여 서버 보안 점검3. 3. 가능한 경우라면 가능한 경우라면 Windows Authentication Windows Authentication

모드 사용모드 사용4. 4. 서버의 물리적서버의 물리적 , , 논리적 격리 및 주기적 백업논리적 격리 및 주기적 백업5. 5. 강력한 강력한 sa password sa password 설정설정6. SQL Server 6. SQL Server 서비스의 권한 수준 제한서비스의 권한 수준 제한

Page 47: DBA 를 위한  SQL Server Security

SQL ServerSQL Server 를 안전하게 를 안전하게 관리하는 방법관리하는 방법7. 7. 방화벽에서 방화벽에서 SQL Server SQL Server 포트 비활성화 포트 비활성화 ((TCP TCP

port 1433, UDP port 1434)port 1433, UDP port 1434)

8. 8. 안전한 파일 시스템 사용안전한 파일 시스템 사용9. 9. 작업 완료된 작업 완료된 setup setup 파일들 삭제 또는 파일들 삭제 또는

password password 정보 제거정보 제거10. SQL Server 10. SQL Server 연결 실패에 대한 감사연결 실패에 대한 감사11. 11. 꼭 필요한 최소한의 권한 부여꼭 필요한 최소한의 권한 부여

Page 48: DBA 를 위한  SQL Server Security

보안 관련 사이트보안 관련 사이트 일반적인 보안 관련 사이트일반적인 보안 관련 사이트

www.cert.org www.cert.org www.microsoft.com/securitywww.microsoft.com/security www.securityfocus.comwww.securityfocus.com

Page 49: DBA 를 위한  SQL Server Security

보안 관련 사이트보안 관련 사이트 SQL Server SQL Server 관련 사이트관련 사이트

www.microsoft.com/sql/techinfo/www.microsoft.com/sql/techinfo/administration/2000/securityWP.aspadministration/2000/securityWP.asp많은 주제들에 대하여 다룬 좋은 내용의 많은 주제들에 대하여 다룬 좋은 내용의

whitepaperwhitepaper 들이 있음들이 있음 www.www.SQLSecuritySQLSecurity.com.com

Chip AndrewsChip Andrews 의 사이트의 사이트 – – 보안 점검 보안 점검 목록과 목록과 freeware freeware 툴들을 포함하여 좋은 툴들을 포함하여 좋은 정보들이 있음정보들이 있음

www.www.ngssoftwarengssoftware.com.comDavid LitchfieldDavid Litchfield 의 사이트 – 좋은 내용의 의 사이트 – 좋은 내용의

whitepaperwhitepaper 들이 있음들이 있음

Page 50: DBA 를 위한  SQL Server Security

툴툴 Microsoft Security Baseline Analyzer Microsoft Security Baseline Analyzer

(http://download.microsoft.com/(http://download.microsoft.com/download/win2000platform/Install/1.0/download/win2000platform/Install/1.0/NT5XP/EN-US/mbsasetup.msi)NT5XP/EN-US/mbsasetup.msi)취약 사항 점검에 좋은 기본적인 툴취약 사항 점검에 좋은 기본적인 툴http://www.http://www.microsoftmicrosoft.com/.com/koreakorea//technettechnet

/security/tools/tools//security/tools/tools/mbsaqambsaqa.asp.asp

Page 51: DBA 를 위한  SQL Server Security

툴툴 www.www.appsincappsinc.com.com www.www.sqllitespeedsqllitespeed.com.com www.www.ngssoftwarengssoftware.com.com www.www.netiqnetiq.com.com www.ca.comwww.ca.com www.www.symantecsymantec.com.com

Page 52: DBA 를 위한  SQL Server Security

감사합니다 감사합니다 !!