감사의 글 ... 5 추천의 글 ... 6 저자 소개 ... 9 옮긴이의 말 ... 10 옮긴이 소개 ... 13 1장 코드 품질 ... 27 윈도우 비스타 품질 관문 ... 29 모든 C/C++ 문자열 버퍼에 SAL로 표식을 붙임 ... 30 예제로 보는 SAL ... 31 기존의 코드에서 SAL를 활용하는 방법 ... 36 코드에서 금지된 API의 제거 ... 36 코드에서 금지된 암호화 방법의 제거 ... 38 버그를 찾아서 해결하기 위한 정적 분석의 활용 ... 39 /analyze와 관련된 경고 ... 39 애플리케이션 검증 도구 경고 ... 41 FxCop 경고 ... 41 C/C++ 비관리 코드는 /GS로 컴파일하고, /SafeSEH, /DynamicBase, /NXCompat로 링크 ... 41 개발자가 해야 할 일 ... 42 참고 자료 ... 42 2장 사용자 계정 컨트롤, 토큰, 무결성 수준 ... 43 사용자 계정 컨트롤 ... 45 사용자 토큰 ... 46 관리자로 권한 상승 ... 50 살짝 변형된 버전, 관리자 동의 모드 ... 50 윈도우 비스타 토큰 형식에서 달라진 점 ... 52 프로세스의 권한 상승 여부 확인 ... 53 애플리케이션이 관리자 계정으로 실행되게 만드는 방법 ... 55 애플리케이션이 계정 정보 입력이나 동의 화면을 띄우게 설정 ... 58 COM 권한 상승 모니커로 COM 구성 요소 시작 ... 60 권한 상승된 관리 코드 애플리케이션의 시작 ... 62 사용자 인터페이스 고려 사항 ... 62 가상화 ... 63 애플리케이션에서 가상화를 사용하지 않게 설정하는 방법 ... 67 무결성 수준 ... 69 무결성 설정에 대한 규칙 ... 80 NW, NR, NX 마스크 ... 80 무결성 수준을 사용한 방어 모델 ... 81 윈도우 비스타에서 애플리케이션 호환성 문제 디버깅 ... 83 파일 경고 ... 83 레지스트리 경고 ... 83 INI 경고 ... 83 토큰 경고 ... 84 권한 경고 ... 84 네임 스페이스 경고 ... 84 기타 객체 경고 ... 84 프로세스 경고 ... 85 코드 서명의 중요성 ... 85 윈도우 비스타에 새로 등장한 권한 ... 86 SE_TRUSTED_CREDMAN_ACCESS_NAME("SeTrustedCredManAccessPrivilege") ... 86 SE_TRUSTED_CREDMAN_ACCESS_PRIVILEGE(31L) ... 86 SE_RELABEL_NAME("SeRelabelPrivilege") ... 86 SE_RELABEL_PRIVILEGE(32L) ... 86 SE_INC_WORKING_SET_NAME("SeIncreaseWorkingSetPrivilege") ... 86 SE_INC_WORKING_SET_ PRIVILEGE(33L) ... 86 SE_TIME_ZONE_NAME("SeTimeZonePrivilege") ... 87 SE_TIME_ZONE_ PRIVILEGE(34L) ... 87 SE_CREATE_SYMBOLIC_LINK_NAME("SeCreateSymbolicLinkPrivilege") ... 87 SE_CREATE_SYMBOLIC_LINK_ PRIVILEGE(35L) ... 87 개발자가 해야 할 일 ... 87 참고 자료 ... 88 3장 버퍼 오버런 방어 ... 91 ASLR ... 93 ASLR의 한계 ... 96 성능과 호환성에 미치는 영향 ... 97 스택 임의화 ... 98 성능과 호환성에 미치는 영향 ... 99 힙 방어 ... 99 NX ... 105 성능과 호환성 영향 ... 109 /GS ... 112 SafeSEH ... 116 요약 ... 122 개발자가 해야 할 일 ... 122 참고 자료 ... 123 4장 네트워크 방어 ... 125 IPv6 개요 ... 127 터리도 ... 129 네트워크 목록 관리자 ... 133 윈도우 비스타 RSS 플랫폼 ... 135 윈속 보안 소켓 확장 ... 137 고급 보안이 설정된 윈도우 방화벽 ... 139 전역 방화벽 설정 ... 140 규칙 작성 ... 142 규칙 그룹 다루기 ... 150 개발자가 해야 할 일 ... 152 참고 자료 ... 153 5장 안전한 서비스 생성 ... 155 서비스의 개요 ... 156 서비스 계정 ... 158 권한의 축소 ... 162 네트워크 액세스의 제어 ... 170 데스크탑과 통신 ... 173 단순 메시지 박스 ... 175 공유 메모리 ... 176 네임드 파이프 ... 176 소켓 ... 182 RPC/COM ... 183 경험에서의 교훈 ... 183 개발자가 해야 할 일 ... 185 참고 자료 ... 185 6장 인터넷 익스플로러 7 방어 ... 187 심층 방어 ... 189 액티브X 옵트 인 ... 189 보호 모드 ... 191 데이터 실행 방지 ... 195 cURL과 IUri 인터페이스 ... 199 액티브X 컨트롤 한정 ... 201 인터넷 익스플로러 7에 대해 알아야 할 다른 것들 ... 201 클립보드 접근이 제한됨 ... 202 URL 스크립트 ... 202 PCT와 SSL2여 잘 가게(속이 시원하군)! AES여 어서 오게! ... 202 윈도우 출처 ... 203 개발자가 해야 할 일 ... 203 참고 자료 ... 205 7장 암호 개선 사항 ... 207 커널 모드와 사용자 모드 지원 ... 208 암호 민첩성 ... 209 CNG에서의 암호 민첩성 ... 210 CNG에 포함된 신규 알고리즘 ... 212 CNG의 사용 ... 214 데이터 암호화 ... 215 데이터 해싱 ... 215 데이터 MAC 연산 ... 216 난수 생성 ... 216 CNG와 FIPS ... 217 개선된 감사 기능 ... 218 CNG에서 다루지 않는 것 ... 219 개선된 SSL/TLS ... 219 SSL/TLS 해지 여부의 점검과 OCSP ... 221 윈도우 비스타에서의 루트 인증서 ... 224 윈도우 비스타에서 문제 있는 암호 기능 ... 225 실천 사항 ... 225 참고 자료 ... 225 8장 인증과 권한 허가 ... 227 윈도우 카드스페이스와 인포메이션 카드 ... 228 윈도우 카드스페이스와 피싱 ... 229 PIN ... 231 카드스페이스와 피싱 사례 ... 232 인포메이션 카드의 동작 관찰 ... 234 인포메이션 카드에 들어있는 정보 ... 234 프로그램에서의 인포메이션 카드 액세스 ... 234 카드스페이스 요약 ... 237 GINA의 변경 ... 238 소유자 SID의 변경 ... 239 개발자가 해야 할 일 ... 241 참고 자료 ... 241 9장 기타 방어와 보안 관련 기술 ... 243 애플리케이션에 자녀 보호 기능 추가 ... 244 코드 ... 245 시간 제한 ... 246 450 에러 ... 247 파일 다운로드 차단 옵션의 사용 ... 247 애플리케이션이나 URL 차단 면제 ... 247 이벤트 로깅 ... 248 윈도우 디펜더 API ... 249 윈도우 디펜더 정책 문서 ... 250 코드 서명 ... 250 윈도우 디펜더 "알려짐 또는 아직 분류되지 않음" 목록에 추가하기 위한 요청 ... 251 새로운 자격 증명 사용자 인터페이스 API ... 252 보안 이벤트 로그 사용 ... 254 포인터 인코딩 ... 255 커널 모드 디버깅 문제 ... 259 TPM 프로그래밍 ... 260 TPM에 대한 하위 수준의 접근 ... 262 윈도우 사이드바와 가젯 보안 고려 사항 ... 267 참고 자료 ... 268 찾아보기 ... 270