호환성_이슈와_가이드(sunghyi).

Download Report

Transcript 호환성_이슈와_가이드(sunghyi).

Windows Vista 호환성
이슈와 ISV를 위한 가이드
이승희 책임
마이크로소프트 프리미어 기술지원부
2006년 12월 18일
목차
•
•
•
•
•
•
윈도우즈 비스타와 패러다임의 전환
호환성 이슈
어플리케이션 개발 가이드
어플리케이션 호환성 점검 도구
참고 자료
마이크로소프트로부터 얻을 수 있는 지원
윈도우즈 비스타와 패러다임 전환
• 윈도우즈 비스타 (Windows Vista)
– 새로운 지평, 혹은 패러다임의 전환
– 안전하고 믿을만한 컴퓨팅 환경을 위한 시도
• 악의적인 위협으로부터 공동체를 방어
• 예측/관리 가능한 컴퓨팅 환경을 제공
• 마이크로소프트
– 새로운 선택과 과감한 포기, 기존 아키텍쳐의 개선
– 개발 단계부터 호환성을 고려한 다양한 기제 포함 (Program
Compatibility Assistant, User Profile Namespace …)
– 호환성 테스트를 지원하기 위한 문서와 도구들 (ACT, SUA…)
– 개발자/IT 운영자를 위한 훈련과 이슈 지원 센터 운영
윈도우즈 비스타와 패러다임 전환
• 기업과 파트너
– 무엇이 바뀌었나, 왜 바뀌었나 (인지와 공감)
• 아키텍쳐 상의 변화와 그 이유
• 새로운/ 변화된/ 없어진 기능들의 파악
– 영향은 무엇인지 (비용)
• 기존 어플리케이션의 영향도 평가
• 버릴 것과 바꿀 것 - 다양한 방안 모색 (16비트, 일부 커널 드라이버 등)
– 기회는 무엇인지(목표)
• RFP에 포함될 사항들, 보안, 총소유 비용, UX
• 신기술에 대한 발빠른 접근으로 입지와 수익의 창출
– 무엇을 지원받나(자원)
• 자본, 기술, 인력 그리고 마이크로소프트
– 전략과 전술의 수립
호환성 이슈
- 사용자 계정 콘트롤
• 신뢰도 등급 (Mandatory Integrity Level, MIC) 설정
– 프로그램이 동작할 때, 가지게 되는 신뢰도 등급을 미리 지정
– 사용자와 무관하게, 디폴트는 중간 등급 – 표준 사용자 권한
• 관리 가능한 환경의 기초
– 위험을 가져올 수 있는 프로그램은 특별히 보호모드로 실행
• 디폴트로 낮은 등급으로 실행 (인터넷 익스플로러 7.0)
호환성 이슈
- 사용자 계정 콘트롤
• 사용자 계정 콘트롤 (User Account Control, UAC)
– 관리자 권한이 필요할 때만 프로세스의 신뢰도 등급을 높힘
• 표준 사용자 (Standard User)로 실행됨
• 가트너 그룹의 자료에서 관리된 환경의 PC는 TCO가 40% 이상 절감
– 낮은 등급을 가진 인터페이스에서 높은 등급으로 메시지 전달 금지
– 권한 상승 기제 (Elevation) 제공
• 하나의 프로세스가 서로 다른 신뢰도 등급의 토큰을 할당 받고,
• 필요할 때, 동의창 혹은 자격인증창을 통해 권한 상승
• 프로그램을 통한 자동 권한 상승은 가능하지 않음 (반드시 사용자 개입)
– 악의적인 공격 후에도 시스템을 방어할 수 있도록
– UAC가 적용되지 않는 예외
• 로컬 관리자로 로그인 – 그러나 디폴트로 비활성화된 계정
• 사용자 계정 콘트롤을 끈 경우
호환성 이슈
- 사용자 계정 콘트롤
• 영향 : 어플리케이션 실행 실패
– 어플리케이션의 설치, 제거, 업그레이드 시 관리자 권한 전제
– 대부분의 어플리케이션이 로컬 관리자일 것을 가정하고 실행
• HKLM 레지스트리 쓰기 실패
• %SystemDrive%, %Programfiles%, %WinDir% 등에 쓰기 실패
– 낮은 신뢰도 등급으로 기동하는 프로그램에서 더 높은 신뢰도
등급으로 기동하는 것으로 윈도우즈 메세지를 전달할 수 없음
• 마이크로소프트가 제공한 대안
– “관리자 권한으로 실행”으로 프로그램 실행
– 호환성 탭에서 “이 프로그램을 관리자 권한으로 실행” 선택
– “install”, “update”, “uninstall” 등의 이름을 가진 프로그램은 일단
설치 프로그램으로 간주하고 권한 상승 시도 (Installation Detection)
호환성 이슈
- 사용자 계정 콘트롤
• 마이크로소프트가 제공한 대안 – 가상화 (Virtualization)
– 기존 어플리케이션과의 호환성 위해
– 관리자 권한 상승이 필요한 리소스에 쓰기를 시도하면,
– 표준 사용자가 쓰기 가능한 곳 아래로 바꾸어 기록 (Redirect)
• 기존 어플리케이션은 이를 인식하지 못하고 일단 성공
• 파일: %userprofile%\AppData\local\virtualstore
• 레지스트리: HKCU\software\classes\virtualstore
– 그러나, 단기적인 미봉책에 불과, 향후 이 기능은 지원하지 않음
• 단기적 대안
– Manifest 파일을 이용하여 관리자 권한으로 실행하도록 마킹
데모
- 사용자 계정 콘트롤
•
•
•
•
표준 사용자와 신뢰도 등급
권한 상승
메니페스 파일을 이용한 관리자 권한 마킹
파일 및 레지스트리 가상화
호환성 이슈
- 보호모드 상의 인터넷 익스플로러 7.0
• 인터넷 익스플로러7.0의 보호 모드 (Protected Mode)
–
–
–
–
표준 사용자보다 더 낮은 신뢰도 등급으로 프로그램 실행
신뢰도 등급과 사용자 계정 콘트롤의 원칙이 그대로 적용
IE7.0 프로세스에서 동작하는 플러그인, 액티브X가 모두 영향받음
단, 임시 인터넷 파일(TIF) 폴더는 호환성을 위해 예외
호환성 이슈
- 보호모드 상의 인터넷 익스플로러 7.0
• 권한상승이 가능하도록 2개의 감찰 프로세스를 제공
– 사용자 권한 브로커(IEUser.exe): 표준 사용자 권한으로 쓰기
가능한 리소스 접근을 위한 프로세스
– 관리자 권한 브로커(IEInstal.exe):관리자 권한이 필요한, 액티브X
콘트롤 설치와 같은 작업 수행을 위한 프로세스
호환성 이슈
- 보호모드 상의 인터넷 익스플로러 7.0
호환성 이슈
- 보호모드 상의 인터넷 익스플로러 7.0
• 영향
– 아래와 같은 폴더 외에는 쓰기 실패
*
*
*
*
*
임시 인터넷 파일
히스토리
쿠키
즐겨찾기
윈도우즈 임시 폴더
– 여타 어플리케이션에 윈도우즈 메시지 전달 실패
– 기타 인터넷 익스플로러 7.0 자체의 변화로 인한 기능 문제
* 교차 도메인(XSS) 소스에 접근하는 액티브X 콘트롤 차단
* 코드 서명이 되지 않은 액티브X 콘트롤
* 스크립팅하기에 안전(Safe-for-Scripting)하지 않은 액티브X 콘트롤
호환성 이슈
- 보호모드 상의 인터넷 익스플로러 7.0
• 마이크로소프트가 제공한 대안
– UAC 하의 어플리케이션과 마찬가지로 가상화 제공, 그러나 미봉책
• 파일: %userprofile%\AppData\local\virtualstore
• 레지스트리: HKCU\software\classes\virtualstore
– 사이트를 “신뢰할 수 있는 영역”에 포함
호환성 이슈
- 보호모드 상의 인터넷 익스플로러 7.0
• 단기적 대안
– IEGetWriteableHKCU(), SHGetKnownFolderPath() 이용하여 쓰기
가능한 레지스티리와 폴더를 검색
– 관리자 권한이 반드시 필요한 액티브X 콘트롤의 경우에는,
매니페스트 파일이나 CoCreateInstanceAsAdmin() 이용
Manifest 파일
Shellexecute()
실행파일(.EXE)
ActiveX 컨트롤
CoCreateInstanceAsAdmin()
ActiveX 컨트롤
사용자 권한
ActiveX 컨트롤
관리자 권한
데모
- 보호모드 상의 인터넷 익스플로러 7.0
• 관리자 권한이 필요한 액티브X 콘트롤의 개발
호환성 이슈
- 리소스 보호 기능
• 리소스 보호 기능(Windows Resource Protection, WRP)
– 운영체제의 폴더, 레지스트리, 파일을 믿을 수 있는 상태로 유지
– 어플리케이션에 의한 원하지 않는 상태 변화를 통제
– 영향
• WRP에 포함된 파일/레지스트리를 배포하거나 변경하려는
어플리케이션은 모두 실패
– 대안: 소스 변경 불가피
• SfcIsFileProctected(), ScfIsKeyProtected() 함수로 미리 파악
• MSI 3.x, 4.x 등의 Trusted Installer를 이용한 설치/업그레이드/제거
호환성 이슈
- 세션 0 고립화
• 서비스의 세션 고립화(Session 0 Isolation)
– 기존에는 모든 서비스가 첫번째 로그인한 사용자와 세션을 공유
– 이제는 서비스가 사용자 세션에 의해 영향 받지 않도록 고립시킴
– 고립화란,
• 사용자 인터페이스 허용 안함
• 시스템 프로세스와 서비스만이 세션 0일 수 있음
– 영향
• 사용자 인터페이스를 가진 서비스의 작동 이상
• 글로벌 네임 스페이스를 사용하는 어플리케이션의 작동 이상
• 빠른 사용자 전환 (Fast User Switch, FUS) 상의 이상 동작
– 단기적인 대안
• 사용자 인터페이스를 가진 서비스를 위해 일단 전달된 메시지를
보여주는 기능을 윈도우즈 비스타가 제공
• 글로벌 네임 스페이스를 사용할 경우, “윈도우즈 XP” 호환 모드로
데모
• 윈도우즈 리소스 보호 기능 데모
호환성 이슈
- 기타
• 64비트 윈도우즈 비스타 상의 호환성
–
–
–
–
32비트 드라이버 지원 안함
서명된 커널 드라이버만 설치 가능
32비트 윈도우즈 비스타에서의 업그레이드 미지원
16비트를 더이상 지원하지 않음
• 콤포넌트, 인스톨러, 어플리케이션 모두
– 64비트 윈도우즈 비스타는 가상화 지원하지 않음
• 네트워킹
– IPv6 디폴트로 활성화, 가능하면, IPv6로 통신
• 로컬 루프백 주소와 다른 주소 간의 통신 불가
– 윈도우즈 방화벽을 끄는 함수 지원하지 않음
• INetFwProfile.put_FirewallEnabled(VARIANT_FALSE)
– 방화벽 기능을 후킹하는 함수나 드라이버 지원 않함
호환성 이슈
- 기타
• MS GINA
–
–
–
–
Microsoft Graphical Identification and Authentication
그래픽 부분과 인증 처리 부분이 하나로 묶임
새로운 Credential Provider API 제공
영향
• 생체 인식 장치
• XP용 사용자 VPN 솔루션
• 스마트 카드 리더
• 버전 체크
– GetVersion() 함수를 확인하는 어플리케이션이 정상 수행되지 않음
– 어플리케이션마다 드러나는 양상이 다를 수 있음 (설치 프로그램
중단, 어플리케이션 크래쉬, 업데이트 불가 등)
– 임시로, “윈도우즈 XP” 호환 모드로 동작 가능
호환성 이슈
- 더 이상 지원되지 않은 기능
• DHTMLEd.OCX
– MSHTML.DLL로 대체
– 혹은 HTC를 이용한 대체 콘트롤 개발
– 윈도우즈 XP에서도 Kill-Bit 될 것으로 보임
•
•
•
•
•
•
•
커널 모드 프린터 드라이버
FrontPage Server Extension
Service for Macintosh
D3DRM – 대신 DirectX 사용
Web Publishing Wizard
NetDDE – 보통의 DDE는 여전히 지원
IsBadReadPtr(), IsBadWritePtr()
어플리케이션 개발 가이드
• 가능한 표준 사용자 권한으로 기동할 수 있도록 디자인
– 프로그램 설치는 MSI 등의 Trusted Installer 사용
– HKCU, %userprofile% 아래 쓰기 작업 수행
– 인터넷의 액티브X 콘트롤의 경우, 허용된 폴더에 쓰기 작업
• 관리자 권한이 필요한 부분과 필요하지 않은 부분은
가능한 나누어 모듈화
• 업데이트 기능과 일반 기능 수행이 하나의 모듈에
들어가지 않도록 디자인
• 관리자 권한이 반드시 필요할 경우, 관리자 권한 마킹
– 액티브X 콘트롤은 CoCreateInstanceAsAdmin() 혹은 Manifest
• 액티브X 콘트롤 대신 AJAX, DHTML, CSS로 기능 수행
어플리케이션 호환성 점검 도구
• Application Compatibility Toolkit 5.0 RC1
– Standard User Analyzer
• Application Verifer 다운로드
• 표준 사용자 환경에서의 어플리케이션 테스트 수행
– Setup Analysis Tool
• 설치 프로그램의 수행 시 호환성 점검
– Internet Explorer Compatibility Test Tool
• 인터넷 익스플로러 기능 변화에 따른 호환성 이슈 점검
– Application Compatibility Manager
• MSSQL 2005(or Express Edition)을 이용
참고 자료
•
•
•
•
•
•
•
•
•
•
–
–
Windows Vista IE7의 새로운 보안하에서 ActiveX 컨트롤 개발 (이동석)
ISV Windows Vista Compatibility Cookbook (MSDN)
DevReadiness 사이트 (http://devreadiness.org)
시스템 리소스 보호 목록 (Windows Resource Protection – WRP)
UAC 둘러보기 (개관, 알려진 이슈와 해결책에 대한 개괄적 설명)
버츄얼 랩 (호환성 탭, 관리자 계정으로 실행, 권한상승 창, 보안정책 설정, 가상화 등)
PDC 2005 자료 (Vista, WPF, IIS7, Office12 등)
표준 사용자 환경에서 개발 가이드
Standard User Analyzer (SUA) 내려받기 (포함된 매뉴얼 필독)
업데이트 가이드라인 (패치와 업그레이드)
Understanding and Working in Protected Mode Internet Explorer (Windows ...
Developer Best Practices and Guidelines for Applications in a Least Privileged
Environment
– 인터넷 익스플로러 7.0의 호환성 이슈 (이승희)
– 인터넷 익스프로러 7.0 호환성 백서 (정성태) –DHTMLED.Ocx 관련 샘플 소스
마이크로소프트로부터 얻을 수 있는 지원
• 정식 출시 일자
– Volume License 계약자용 제품 출시; 2006년 11월 30일
– Volume License 계약자 이외 제품 출시; 2007년 1월 31일
• IE7 및 Windows Vista 호환성 지원
– www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx
– 온라인 교육 : www.microsoft.com/korea/eseminar/
– 오프라인 교육
• 교육 신청: http://www.eiti.co.kr/event/Vista_dev.htm
• 1월 말까지 매일 5시간(오후 1시~6시)의 무상 교육 과정
– 호환성 지원 센터
• 호환성 지원센터 페이지 (질의 입력 가능):
http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx
• 전자우편을 통한 문의: [email protected] (050-5912-1000)
– 프리미어 계약 고객은 담당 Technical Account Manager를 통해