560 likes | 903 Views
SQL Server 2000 보안 . 정원혁 이사 DB 사업부 필라넷. 저서. 전문가로 가는 지름길 Microsoft SQL Server 2000 1, 2 권 외 다수. 경 력. 현 , ㈜ 필라넷 이사 , 수석컨설턴트 현 , 필라넷 교육센터 전임강사 현 , MCT/MCDBA ㈜ 웹타임 SQL 서버 전임 강사 ㈜ 인브레인 사외이사 다우데이타 / 다우교육원 : SQL/Windows 전임강사 1997.7 ~ 1998.12
E N D
SQL Server 2000 보안 정원혁 이사 DB 사업부 필라넷
저서 전문가로 가는 지름길 Microsoft SQL Server 2000 1, 2권 외 다수 경 력 • 현, ㈜필라넷 이사, 수석컨설턴트 • 현, 필라넷 교육센터 전임강사 • 현, MCT/MCDBA • ㈜웹타임 SQL 서버 전임 강사 ㈜인브레인 사외이사 • 다우데이타 / 다우교육원 : SQL/Windows 전임강사 1997.7 ~ 1998.12 • 마이크로소프트 컨설팅 서비스(MCS) : SQL 서버 컨설팅 1997.1 ~ 1997.9 • 마이크로소프트 기술지원부(PSS) : NT 및 SQL 서버지원 / Technical Account Manager 1995.7 ~ 1997.1 • 비트컴퓨터 : C-ISAM Library Project 1993.6 ~ 1993.12 • 이랜드 정보산업 근무 : Netware 관리자 / 바코드 시스템 개발, 영업 시스템 개발 / Unix admin / DBA 1990.7 ~ 1995.6 강사 소개 http://williamc.feelanet.com MCDBA, MCT SQL specialist .Net Advisor 그룹SQL 소그룹장
이 주제를 이해하는 데 필요한 지식 • SQL Server 기본 툴 (EM, Q/A) 사용 경험 • Windows 사용 가능 • Windows 의 보안과 사용자 관리 경험 Level 100, 200
목차 • 기본 개념 • Authentication, Authorization • Login Security • User/ Schema • Impersonation • Permission • 소유권 체인 • 기타 이슈
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Who are we defending against? • 재미삼아 실험삼아 해 보는 해커 • 허가 받지 않은 직원 • 교육 받지 않은 직원 • “난 공간이 더 필요했어요. 그래서 커다란 파일이 있길래 지웠을 뿐이라구요. 뭐 ….mdf 였죠? 아 물론 지우려고 했더니 뭐 서비스도 하나 멈춰야 하더라구요. 그게 그렇게 잘 못한 거에요?” • 사이버 야만족 • 전문 해커
What are we defending? • 데이터 엑세스 • 데이터 무결성 • SQL Server • network infrastructure • Your job
What needs to be done? • Limit access methods to the server • Limit access methods to the data • 잠재적인 연약한 노출을 제한한다 • 더 많은 기능과 응용 프로그램을 가진다는 것은 더 많은 접근 경로를 가진다는 것을 의미한다. • 더미 터미널로 돌아가겠다는 어떤 업체
What’s involved? • Physical Environment • Network Infrastructure • WindowsInfrastructure • SQL Server • Application • Database • Data • Process and Policy
Who’s involved? Database Administration Development Management Business Units Regulations Network Infrastructure Windows Administration
기본 개념Authentication, AuthorizationLogin SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Authentication and Authorization • Authentication • SQL server validates and establishes the identity of a principal expressing the desire to access a resource • Authorization • SQL server decides whether a given principal is allowed to access a resource
SQL 서버 보안 모드 • 혼합 인증 • Windows (only) 인증
데모 SQL 서버 보안 모드
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Login Security • Login access can be granted to: • Windows login • Windows group • SQL Server login • Password policy • 사실상 아무 제한이 없다 • 설치 시에 빈 암호는 권장하지 않는다. • SP3는 강력히 빈 암호를 막는다. • 하지만 다른 login에 대해서는 속수무책이다 • Windows 인증을 쓰자
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Users and Schemas • ANSI 는 두 개념을 구분 한다: • Schema: 하나의 user에 의해 소유되는, 단일 namespace 를 형성하는 개체의 모음(collection) • Namespace: 동일 이름을 가질 수 없는 개체의 집합(set) • SQL Server 는 암시적(IMPLICIT) 관계 • User를 만들면 schema를 만든다 • User의 default schema 는 변경 불가능하다.
Special User: DBO • A user name • A default schema • All logins in sysadmin role use this user name and schema • ‘실제’ owner 는 sysadmin이 아닐 수도 있다. • db_owner role의 user는 이 이름이나 스키마를 default 로 갖지 않는다. • Aliase를 사용한 편법
데모 Login / User
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Impersonation (SETUSER) • SETUSER may be deprecated • 권한 테스트에 유용 • SQL login과 Windows login에서 차이 • 누가 실행하는 가에 따른 차이
데모 Impersonation (SETUSER)
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
권한과 역할 • General permission model • System and user defined roles
Grant - Revoke Revoke [deny] + DENY Grant Deny General Permission Model • Windows와 비슷 • DENY 나 GRANT 가 지정되면 상위 수준의 권한이 검사된다 DENY는 다른 어떤 권한보다 우선
역할 • System Role login name • 새로운 것 만들 수 없다 • ‘owner’라는 개념 없다 • Database Role user • 새로운 것 만들 수 있다 • 각 role 마다 owner 가 있다
응용 프로그램 역할 • 매우 독특 • 해당 프로시저, 해당 프로그램에서만 액세스 • sp_setapprole
데모 권한의 부여 서버 역할 설정 DB 역할 설정 응용 프로그램 역할 사용
Permissions Wishlish • Execute all procedures • db_datareader / db_datawriter 같은 것 없다 • 추적 할 수 있는 권한 없다. Sys admin role • ALTER / 다른 schema 변경할 수 있는 권한 없다
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Ownership Chains • Unbroken chain • june.proc1 june.table1; junegrants exec permission to dan • bill.view1 bill.table2; bill grants select permission to dan • Dan은 table1 이나 table2에 아무 권한도 필요없다 • Broken chain • joy.proc1 bill.view1;joy grants exec permission to dan • Dan 은 proc1을 실행할 수 없다!
Ownership Chain 예외 • 프로시저 안의 동적 SQL 문은 항상 권한 검사 한다. 실행자의 문맥에서 수행된다. • Cross Database Ownership Chains • KB Q272424 is incorrectly titled: Object Ownership Chain Checking Across Databases Depends on Database Ownership • SQL Server 2000, sp3에서 제대로 동작: • KB Q810474
Cross Database Chaining • 잠재적 보안 위반 • A db 에서 높은 권한 가진 userA, B db에서 낮은 권한 가진 userA • SP3의 새로운 기능: • Sp_configure ‘Cross DB Ownership Chaining’, 1 • sp_dboption ‘mydb', 'db chaining', 'true' • SETUP 에서 묻는다. default 는 NO
데모 소유권 체인 DB간 소유권 체인
기본 개념Authentication, Authorization Login SecurityUser/ SchemaImpersonationPermission소유권 체인기타 이슈
Row Level Security • 보안은 오직 다음 항목에만 가능: • Database • Object • Column • row level security를 흉내 내려면: • 각 행에 추가적인 데이터 삽입 • WHERE 절을 가진 view를 생성
Metadata Security • 대부분 메타 데이터는 everyone에게 열려있다 • 아주 몇가지 예외: • EM: 시스템 데이터베이스와 테이블 숨길 수 있다 • QA: database 목록에는 접근할 수 있는 것만나타난다 • 응용하면 EM에서 접근가능한 테이블만 나타나게 할 수 있다. • 가능한 대안: • 시스템 저장 프로시저를 새로 만들고, 권한을 부여한다. • 정식 기술지원 안된다!
세션 요약 • 기본 개념 • Authentication, Authorization • Login Security • User/ Schema • Impersonation • Permission • 소유권 체인 • 기타 이슈
참고자료 • General Security Sites • www.cert.org • 첫 출발을 위한 좋은 곳 • www.microsoft.com/security • 거의 매일 업데이트 • www.securityfocus.com • 매우 다양한 일반적 정보
참고자료 (2) • SQL Server 관련 사이트 • http://www.microsoft.com/sql/techinfo/administration/2000/securityWP.asp • 많은 양의 주제를 다루는 기술 백서 사이트 • www.sqlsecurity.com • Chip Andrew’s site –보안 점검 리스트와 무료 툴을 다운 받을 수 있다 • www.ngssoftware.com • David Litchfield의 좋은 기술 백서
참고자료 (3) • Tools • Microsoft Security Baseline Analyzer (MSBA) (http://download.microsoft.com/download/win2000platform/Install/1.0/NT5XP/EN-US/mbsasetup.msi) • 취약 사항에 대한 좋은 점검 도구 • www.appsinc.com • 보안 감사, 암호화, 침입 탐색 • www.sqllitespeed.com • 암호화/ 압축을 지원하는 백업 도구 • www.ngssoftware.com • 보안 감사/ 검사 도구
참고자료 (4) • Tools • www.netiq.com • 다양한 보안 도구 • www.ca.com • eTrust line : security policy management 에 대한 바이러스 강화 • www.symantec.com • 보안 도구, 바이러스 도구
추천서적: Microsoft PressIT 전문가를 위한 고급 정보 Microsoft SQL Server 2000 포켓 컨설턴트 (관리자용), 정보문화사 Microsoft SQL Server 2000 운영 가이드 최신 기술서적에 대한 정보는 여기서 참조하세요. www.microsoft.com/learning/books/
추천서적: IT 전문가를 위한 참고서적 전문가를 위한 지름길, SQL Server 2000 (2), 도서출판 대림 이 서적은 국내 대형서점에서 판매되며, 온라인 서점에서도 판매 됩니다.
Microsoft교육센터IT 전문가를 위한 교육정보 자세한 교육정보는 Microsoft 공식 교육기관 또는 인터넷에서 통해서 얻을 수 있습니다. www.microsoft.com/learning
여러분의 Microsoft 기술 능력 평가 Microsoft Skills Assessment무엇인가? • 현재 제품 및 기술 솔루션에 대한 능력 평가 • Windows Server 2003, Exchange Server 2003, Windows Storage Server 2003, Visual Studio .NET, Office 2003 • 무료, 온라인, 누구나 사용 가능 • 평가결과를 기초로 Microsoft 교육 프로그램을 제안합니다. • 평가항목과 최고점수 표시 • 방문하세요!www.microsoft.com/assessment