제11회 SQL 고급과정 세미나 SQL Server 보안 핵심만 알면 확 달라진다 MCT/MCDBA/MCSE
차례 보안은 어디서 부터 시작 해야할까요 ? - 보안이란 무엇이며 왜 하는가? - 그 보안의 범위는 어디까지 일까? - 보안의 적용방법은 해결방안은? 침입자는 어디에서 어떤 활동을 하고 있는가 ? 감사로 알아보자! - SQL Server 인스턴스 레벨 감사 - SQL Server 데이터베이스 레벨 감사 ( 2:00 ~ 3:00 ) Coffee Break ( 3:00 ~ 3:10 )
차례 계속 보안 레벨별로 보안을 적용해보자. - 운영체제 레벨 - SQL SQL Server 서버 인스턴스 레벨 - SQL Server 데이터베이스 레벨 - T-SQL 레벨 ( 3:10 ~ 4:00 )
보안은 어디서 부터 시작 해야할까요? [Session 1 - 02:00 ~ 03:00] 보안을 책임지고 있는 사람은 약간의 편집적인 성향을 가지고 매사를 꼼꼼하게 준비해야 합니다. 불시 발생하는 일련의 사태에 항상 대비해야 합니다.
보안이란? – 보안의 목표 신용 안전성 이용가능성 SQL Server
보안이란? – 기본 요소 유일성 - 누가 누구인가? 암호 - 각각의 사용자는 자신의 암호를 가진다 유일성 - 누가 누구인가? 암호 - 각각의 사용자는 자신의 암호를 가진다 인증 - 권한 없는 사용자는 억세스할 수 없다 신용 - 오직 허가받은 사용자만 사용가능하다 무결성 - 데이터는 변형되거나 분실되지 않는다
보안이란? – 위험 요소 사람 - 실수 SQL 설정,관리 - 시스템적인 미비 네트워크 - 각종 결함,기타 공격 사람 - 실수 SQL 설정,관리 - 시스템적인 미비 네트워크 - 각종 결함,기타 공격 물리적환경 - 안전하지 못한 장소의 서버위치외 재해 - 화재,수재,테러등등
보안이란? – 적용방법(싸이클) 디자인 테스트 운영 협력/지원
데모 – SQL서버 로그인 성공/실패추적 C2감사모드 : SQL서버에 접속하는 사용자 추적 sp_configure 'show advanced option', 1 reconfigure sp_configure 'c2 audit mode',1 Mssql\Data 폴동 trc파일(감사파일)을 남긴다(200MB) audittrace 파일이 생성된다
데모 – 객체 사용 감사 User Database msdb Database ... sysalerts Table 고객테이블 E-mail Message From: SQL Server To: Account Manager Subject: Error Number 50099 고객 732가 누군가에게 삭제되었다 msdb Database 고객테이블 CustomerID LastName ... 731 Harui 732 van Dam 733 Niikkonen Raise Error 50099 with Log 고객데이터 삭제 sysalerts Table id name 15 50099 sysnotifications Table alert_id operator_id 12 sysoperators Table Account Manager
Break Time 3:00 ~ 3:10
보안 레벨별로 보안을 적용해보자. [Session 2 - 03:10 ~ 04:00]
Session 2 차례 운영체제 레벨 SQL SQL Server 서버 인스턴스 레벨 SQL Server 데이터베이스 레벨 T-SQL 레벨
운영체제 레벨 하드웨어 스펙 문서화(안정된 버전 구비) OS 의 안전한 설치 (SlipstreamedCD) 최신 서비스팩및 보안패치의 확보 사용하는 윈도우 구성요소만 설치 사용한다
Demo – 운영체제 레벨 보안강화 네트워크 연결전에 하는 최신패치 방법 - 네트워크가 분리된 상태에서 CD롬으로 설치 - 관련도구 : hfnetchk, Microsoft Baseline Security Analyzer 일반적으로 알려진 미사용 응용서비를 사용안함 설정함 - (윈도우2000 VS 윈도우 2003)
SQL서버 레벨 인증모드 서버 로그인 계정(Server logins) 서버 역할(Server roles) AGDLP 사용 프로토콜,포트 설정 Sa계정보안
Demo – SQL서버레벨 보안강화(1) 사용 프로토콜,포트 설정
Demo – SQL서버레벨 보안강화(2) Sa계정의 보안 - Sa계정 암호는 왜 노출되면 안되는가? Xp_cmdshell 'net user testuser /ADD' Xp_cmdshell 'net localgroup Administrators testuser /ADD' - 노출막으려면 sa의 암호는 복잡성을 만족하게 하고 다른 sysadmin 계정을 사용한다
데이터베이스 레벨 유저 계정 과 역할(User accounts and roles) 데이터베이스 권한 객체 권한 Guest 계정의 제거
데모 – northwind 와 pubs 데이터베이스 권한 소개 객체 권한 소개 Guest 권한의 위험성 안내
T-SQL 레벨 뷰와 저장프로시저를 사용한 보안 암호화
Demo – 저장프로시저,뷰(암호화) Employees EmployeeID 1 2 3 LastName Davolio Fuller Leverling FirstName Nancy Andrew Janet ReportsTo ... SELECT * FROM Employees EXEC Employee_Update 1, 9 SELECT * FROM Employee_View
마인드!(멍청함에 패치는 없다) 요약 보안은 항상 준비하고 있어야한다 - 운영체제 레벨 - 운영체제 레벨 - SQL SQL Server 서버 인스턴스 레벨 - SQL Server 데이터베이스 레벨 T-SQL 레벨(Application Level) + 마인드!(멍청함에 패치는 없다)
감사합니다 Break Time 3:00 ~ 3:10