Top

윈도우 비스타 보안 프로그래밍

  • 원서명Writing Secure Code for Windows Vista (ISBN 9780735623934)
  • 지은이마이클 하워드, 데이빗 르블랑
  • 옮긴이김홍석, 김홍근
  • ISBN : 9788960770263
  • 25,000원
  • 2007년 11월 28일 펴냄
  • 페이퍼백 | 288쪽 | 188*245mm
  • 시리즈 : 해킹과 보안

책 소개

윈도우 비스타 용으로 안전한 소프트웨어를 개발하려는 프로그래머의 필독서

『윈도우 비스타 보안 프로그래밍』은 윈도우 애플리케이션 개발자가 안전한 소프트웨어 제품을 만들 수 있는 보안 모범 사례를 보여주고 있다. 윈도우 비스타는 소프트웨어를 안전하게 만들게 도와주는 플랫폼 도구를 소프트웨어 작성자에게 제공하는 기능을 갖추어 설계됐다. 성공하기 위해서는 무엇보다도 사람들이 신뢰하는 기술 제품을 만들어야 한다. 이 책은 우리 모두가 근본적으로 더 안전하고 더 신뢰할 수 있는 제품을 만들어 고객에게 전달할 수 있게 도와줄 것이다.


[ 책 소개 ]

『Writing Secure Code』의 저자 마이클 하워드와 데이빗 르블랑이 제시한 윈도우 비스타 용으로 보안상 더 안전한 코드를 작성하는 해법을 안내한다. 이 책은 윈도우 프로그래밍과 API의 기본을 잘 이해하고 있는 개발자에게 적합하다. 윈도우 XP와 윈도우 비스타의 보안상 차이점을 분석하여 『Writing Secure Code』를 보완할 수 있다. 설계 시 결정할 사항, 윈도우 비스타 개발에서 얻은 교훈, 실제 보안 사례를 해결하는 실질적 조언을 한눈에 이해할 수 있게 될 것이다.


[ 이 책에서 다루는 내용 ]

● 관리자 권한 없이 실행할 수 있는 프로그램 개발
● 무결성 제어를 사용하는 우수 사례
● ASLR, NX, SafeSEH로 프로그램 보호
● 윈도우 비스타의 인증, 권한 검증, 암호화 알고리즘 개선 사항
● 권한과 토큰을 제한하면서도 제반 문제는 줄어든 서비스 작성
● 윈도우의 인터넷 익스플로러 7 방어 기능과 개발에 영향을 줄 만한 신규 보안 기능


[ 이 책의 대상 독자 ]

이 책이 목표로 하는 독자는 주로 윈도우 비스타용으로 소프트웨어를 만드는 개발자이다. 이 책에는 설계 고려 사항도 몇 가지 있으므로 설계자나 아키텍트에게도 도움이 될 것이다. 하지만 이 책은 코드 중심으로 돼 있음을 이해하자.
윈도우 인증과 권한 부여 체계에 대해 독자가 어느 정도 지식이 있다고 가정한다. 배경 정보가 약간 제공되긴 하지만 윈도우에서 객체가 어떻게 보호되는지는 독자가 이미 아는 것으로 간주한다. 그렇지 않은 경우 마크 루시노비치와 데이빗 솔로먼이 쓴 『윈도우 인터널 4판(Windows Internals Fourth Edition)』(Microsoft Press 2005)을 읽어보기 바란다.


[ 이 책의 구성 ]

이 책은 짧은 편이다. 독자가 윈도우 비스타에서 사용될 소프트웨어를 계획하고 있거나 현재 작성 중이라면 책 전체를 읽어야 한다. 마이크로소프트가 윈도우 비스타에서 추가하거나 향상한 새로운 보안 방어법과 기술에 대해 분위기를 익히는 이유에서이다.
윈도우 비스타용으로 소프트웨어를 만드는 모든 개발자가 반드시 읽어야 하는 앞부분의 세 장을 제외하고는 각 장이 비교적 독립적인 내용이다.

1장 “코드 품질”에서는 코드 수준에서 잠재적인 보안 버그를 없애기 위해 윈도우 비스타에 취해진 많은 변경 사항에 대해 설명한다. 윈도우 비스타를 안전하게 만들기 위해 마이크로소프트가 한 것에서 소프트웨어 업계가 배울 수 있는 내용이 많이 있다. 우리가 보고 싶은 것 외에 우리가 배운 교훈으로부터 다른 개발자도 배울 점도 있다.

2장 “사용자 계정 컨트롤, 토큰, 무결성 수준”3장 “버퍼 오버런 방어”는 반드시 읽어야 한다. 이 두 장에서 설명하는 기술이 윈도우 비스타의 다른 모든 기능에 영향을 미치기 때문이다.

모두는 아니어도 상당수의 개발자가 네트워크 애플리케이션을 작성할 것이기에 4장 “네트워크 방어”의 내용을 충분히 터득해야 한다.

서비스 개발자는 5장 “안전한 서비스 생성”을 반드시 읽자. 서비스가 공격에 더 잘 견디게 하는 방법과 최소한의 권한으로 실행하는 서비스 작성을 더 쉽게 하도록 길잡이를 제공한다.

브라우저 도우미 객체, 도구 모음, 액티브X 컨트롤과 같은 인터넷 익스플로러용 코드를 만든다면 6장 “인터넷 익스플로러 7 방어”를 읽자. 윈도우 비스타의 인터넷 익스플로러 7에는 코드 실행에 영향을 줄 만한 수많은 구조적 변화와 방어 기능이 있다.

개발하는 소프트웨어가 암호화 기능을 사용한다면 7장 “암호 개선 사항”을 읽자. 차세대 암호화 API(CNG)라는 이름의 새로운 암호화 아키텍처를 넣었을 뿐만 아니라 수정된 알고리즘과 인증서 철회, 확인을 추가했다.

기업 개발자는 8장 “인증과 권한 허가”에서 얻을 수 있는 내용이 가장 많을 것인데, 여기서는 윈도우 비스타의 인증과 ACL을 설명한다.

마지막 장 “기타 방어와 보안 관련 기술”은 다른 장 어디에도 넣기 모호한 윈도우 비스타에 추가된 새로운 방어 기능을 모두 모아뒀다. 시간을 내서 이 장을 훑어보고 여기서 제공된 기능이나 방어법이 독자가 작성하는 소프트웨어에 적용되는지 확인하기 바란다.


[ 추천의 글 ]

『윈도우 비스타 보안 프로그래밍』은 첨단 산업 분야에서 일하는 모든 이에게 매우 중요한 책이다. 모든 기술의 사용자가 기대하는 신뢰할 수 있는 경험을 만들어내는 최신 아이디어를 이 책에서 서술한다.

사회 모든 분야의 기술 사용에 대한 마이크로소프트의 비전은 무어의 법칙이 계속되면서 모든 유형의 사용자 요구에 부합하는 수많은 방면에 적용될 수 있는 컴퓨터가 점점 더 막강한 성능에 점점 더 싼 가격으로 만들어진다는 개념에 근거를 두고 있다. 새로운 무선 기술을 포함해 광대역 네트워크도 꾸준히 성장하면서 기기들이 전 세계적으로 서로 연결돼 사람들이 이전에 경험하지 못했던 정보, 미디어, 서비스에 편리하게 접근할 수 있게 될 것이다. 이 비전은 마이크로소프트만의 것이 아니라, 첨단 산업계의 많은 기업이 공유하는 것이다. 상업적으로든 기술적으로든 이 비전은 산업이 성장하고, 비즈니스에서 상업적 성공을 거두고, 모든 이에게 더 편리하고, 모든 사람이 각자의 잠재력을 발휘하게 해 주는 세계에 우리 모두가 어떻게 공헌할 것인가를 제시한다. 참으로 훌륭한 비전이지 않은가! 참으로 하루빨리 이루고 싶다.

이 비전을 실현하려면 중요한 기본 조건이 하나 있다. 모든 직업의 사람들이 이렇게 멋지게 연결된 디지털 세상에 동참하려면 기술을 신뢰해야 한다. 사람들은 자신의 사생활이 보장된다고 알고 싶어한다. 사람들은 자신의 중요한 정보가 도난이나 파괴로부터 안전하다고 믿고 싶어한다. 사람들은 자신의 체험이 믿음직하고 간단하기를 원한다. 그런데 이런 건 언제나 점점 어려워진다.

마이크로소프트에서는 인터넷에서 해커와 범죄자의 활동을 아주 면밀하게 추적하고 있다. 환경은 점점 더 복잡해진다. 재미나 명예심으로 시스템을 해킹하는 사람들에서부터 조직 범죄에 이르기까지 다양한 범죄자가 있다. 인터넷 기반의 범죄자는 세계적으로 수십억 달러의 손실을 일으킨 것으로 추산된다. 그만한 돈이면 어마어마한 기술 자금을 댈 수 있으며, 이것은 범죄자들이 그 어느 때보다도 지속적으로 모든 종류의 첨단 기술 제품에서 정말 눈에 띄지 않을 만한 취약점을 찾아낸다는 의미이다. 제품에서 어떤 취약점이 누구에게도 발견되지 않을 거라고 가정하는 것은 이젠 더 이상 가능하지 않다. 취약점이 존재하면 반드시 노출되고 공격되는 그런 시대에 도달하고 말았다.

금전적 이득을 노리는 해킹이 증가함에 따라 범죄 사회는 점점 더 조직화해 취약점 정보를 공유하고 있다. 취약점을 식별하는 시간과 금전을 노리고 그 취약점을 공격하는 시간까지의 차이가 0에 가까와지면서 범죄자들이 전문적으로 취약점 정보를 “무기화”하는 환경에 우리는 살고 있다. 이렇게 전문화된 범죄자는 인터넷상 조직 범죄의 무기 거래상이며, 가장 돈을 많이 내는 사람에게 자기 상품을 판다.

해커 사회의 범죄적 진화로 인해 제품에 취약점이 존재할 가능성을 최소화하기 위해서는 첨단 제품을 만드는 모든 이들이 안전한 개발 절차(Secure Development Lifecycle)와 같은 엄격한 엔지니어링 표준을 활용하는 것이 대단히 중요하다. 첨단 제품도 사람이 만드는 것이기 때문에 취약점이 하나도 없다는 보장은 할 수 없다. 하지만 산업계에서 함께 뭉쳐 공동체가 방어 능력을 극대화할 수 있다.

소프트웨어 플랫폼으로서 윈도우는 모든 종류의 소프트웨어 회사가 취약점과 공격으로부터 안전한 소프트웨어를 만드는 것을 가능한 한 쉽게 하도록 돕는 특별한 임무를 띠고 있다. 『윈도우 비스타 보안 프로그래밍』은 윈도우 애플리케이션 개발자가 안전한 소프트웨어 제품을 만들 수 있는 보안 모범 사례를 보여주고 있다. 윈도우 비스타는 소프트웨어를 안전하게 만들게 도와주는 플랫폼 도구를 소프트웨어 작성자에게 제공하는 기능을 갖추어 설계됐다. 이런 기능들은 인증, 데이터 보호, 공격으로부터의 보호와 같은 분야에서 소프트웨어 프로그램에 어떤 것이 필요한지 마이크로소프트가 가장 잘 이해한다는 점을 나타낸다. 애플리케이션에서 윈도우 비스타의 새로운 보안 기능을 사용함으로써 고객의 관점에서는 더 안전하고 더 신뢰할 수 있게 된다.

서로 연결된 디지털 비전을 만드는 것은 긴 여행이며, 첨단 산업이 함께 노력해 모든 유형의 사람에게 편리함과 가치를 전하게 되는 적응 과정이요, 초기 단계이다. 성공하기 위해서는 무엇보다도 사람들이 신뢰하는 기술 제품을 만들어야 한다. 『윈도우 비스타 보안 프로그래밍』은 우리 모두가 근본적으로 더 안전하고 더 신뢰할 수 있는 제품을 고객에게 전달할 수 있게 도와줄 것이다.

존 드반
마이크로소프트 엔지니어링 우수성 부문 수석 부사장

저자/역자 소개

[ 저자 소개 ]

마이클 하워드
마이클 하워드는 마이크로소프트 보안 엔지니어링 팀에서 선임 보안 프로그램 매니저이며, 보안 관련 절차 개선 아키텍트이기도 하다. 수상 경력이 있는 『Writing Secure Code』, 『19 Deadly Sins of Software Security』, 『Security Development Lifecycle』를 포함해서 많은 보안 서적의 공저자이다. 대부분 데이빗 르블랑과 함께 작업했다. IEEE 보안 및 개인정보 분야 편집자이며, 마이크로소프트 출판부의 ‘안전한 소프트웨어 개발’ 시리즈의 에디터이다.

데이빗 르블랑
데이빗 르블랑은 마이크로소프트 오피스 부서의 신뢰할 수 있는 컴퓨팅 팀의 선임 개발자이다. 코드 작성 외에도, 오피스 제품의 보안 문제와 SDL 구현 방법에 대해 조언한다. 대부분 마이클 하워드와 공동 작업으로 보안 서적을 여러 권 공저하였다. 보안 업계의 다양한 방면에서 일해 왔는데, 전화 회사의 사기 방지에서부터 수상 경력이 있는 네트워크 보안 평가 도구 개발 팀 지휘, 마이크로소프트의 네트워크 보안 그룹에 대한 침투 테스트, 신뢰할 수 있는 컴퓨팅 기획 팀의 창립 회원 등이다. 책을 쓰지 않을 때엔 말을 타고 캐스케이드 지방 어딘가에 있을 것이다.


[ 저자 서문 ]

인터넷에 연결된 컴퓨터는 매일 공격을 당하고 위협을 받는다. 공격자가 소프트웨어 스택 중 점점 상위 계층으로 올라가 컴퓨터에 설치된 소프트웨어를 공격한다는 것은 의심의 여지가 없다. 이런 일은 소프트웨어 공급사들이 운영체제에 방어 기능을 구축하는 데에 점점 더 많은 노력을 하기 때문이기도 하다. 2001년 윈도우 XP의 출시부터 2006년 윈도우 비스타 출시까지 보안 환경은 극적으로 진화했다. 공격은 훨씬 더 잦아지고 시스템 위협의 증가는 더 심난해지고 있다. 가장 많이 공격을 받는 플랫폼은 바로 윈도우라는 얘기를 많이 들어봤을 것이다. 그건 일면 사실이다. 필자는 공격 그 자체보다는 공격이 언제나 일어난다는 점이 걱정이다. 사람들이 걱정해야 하는 건 위협이다. 이로 인해 마이크로소프트에서 일하는 사람들은 어떻게 하면 윈도우 비스타를 더 믿음직한 제품으로 만들 수 있을지 오랫동안 심각하게 고민해왔다.

윈도우 비스타는 마이크로소프트가 출시한 가장 안전한 운영체제이다. 운영체제에 추가된 어마어마한 양의 방어 기술은 깜짝 놀랄 만하며, 필자들은 이러한 방어 기능 대다수에 적극적으로 참여했다. 그럼에도 불구하고 공격은 계속될 것이다. 윈도우 비스타에 보안 버그가 없을 거라는 얘기가 아니다. 분명 있을 것이다. 하지만 많은 방어 기능을 운영체제에 추가함으로써, 공격이 성공할 가능성을 줄이고 취약점이 그 즉시 공격 당할 가능성을 줄인다. 이들 방어 기능의 목적은 위험 노출 가능성을 줄이는 것이다.

잠재적인 공격 가능성이 증가하는 이 상황에서 개발자는 애플리케이션을 안전하게 하기 위해서 무엇을 하고 있나? 언젠가는 공격 받을 수 있음을 반드시 명심하라! 애플리케이션의 이름에 “마이크로소프트”라는 단어가 들어 있지 않다고 해서 공격을 받지 않는다는 의미가 아니다. 보안이 매력적인 주제가 되게 한 것은 컴퓨터 성능이나 신뢰성과는 다르다. 그런 것들은 사람과 컴퓨터 문제에 귀결되지만 보안은 전적으로 사람과 사람의 문제다. 어디에나 악당이 있을 것이므로 보안 문제는 결코 완전히 사라지지는 않을 것이다.

코드를 정돈하고 설계 문제를 고치는 것에 더하여 마이크로소프트는 누구나 프로그램을 더 안전하게 만들기 위해 사용할 수 있는 새로운 기능을 아주 많이 제공하고 있기도 하다. 이전에 필자들이 썼던 책들은 주로 기초를 다뤘던 데 반해 이 책은 윈도우 비스타 위에서 실행되는 개발자의 애플리케이션이 이런 방어 기능을 활용해 어떻게 모두의 고객을 보호할 수 있을지에 대해 설명한다. 이 책은 기본적인 방어 전략의 수준을 넘어선다. 사용할 수 있는 새로운 보안 기능 몇 가지를 배워서 애플리케이션에 방어 기능을 추가한다면 독자 여러분이나 고객들의 목적을 만족시키는 비즈니스에도 도움이 될 것이다.

마이크로소프트는 윈도우 비스타에 방어 기능과 새로운 현대식 보안 기능을 추가하는 데에 5년 이상을 투자해왔다. 개발자는 이러한 방어 기능과 보안 기능을 애플리케이션 내에서 활용해 프로그램이 위협을 받을 가능성을 줄일 수 있다. 다음 세 가지 방법으로 공격 가능성을 줄일 수 있다.

● 영향을 받는 사용자를 줄인다: 독자 여러분이 만든 애플리케이션을 아무도 쓰지 않는다면 공격 가치는 사라진다.
● 공격 노출 표면을 줄인다: 특히 기본값으로 진입 지점이 적은 구성 요소는 덜 공격받게 마련이다.
● 공격 노출 표면을 강하게 한다: 적어도 다른 것보다는 강하게 한다.

첫 번째 접근 방법은 정말로 권하고 싶지 않지만 보안에 관심을 기울이지 않고 현실에 안주하면 이런 일이 생길 것이다. 나머지 두 가지 접근 방법이 우리가 도움을 줄 수 있는 방법이다. 운영체제 방어법과 기능을 잘 활용해 고객을 보호할 수 있게 하기 위해 윈도우 비스타 기능을 사용하는 방법을 설명하는 것, 이것이 이 책의 최대 목표다.


[ 역자 소개 ]

김홍석
한국마이크로소프트의 보안 프로그램 매니저로, 정보 보안 관련 세미나에서 마이크로소프트의 보안 기술과 전략을 널리 알리고 있으며, 국내 파트너 사들과 함께 보안 침해사고 대응을 하고 있다. 매달 둘째 화요일 밤을 새우며 윈도우 한 귀퉁이의 보안 패치 아이콘에 실릴 내용을 준비한다. 그 전에는 윈도우 디바이스 드라이버 개발을 했고 윈도우 서버 시스템 엔지니어를 거쳤다. 서울대학교 전기공학과에서 학부와 석사를 마쳤다. 새로운 컴퓨터 프로그램 익히기와 퀴즈 풀기를 즐긴다.

김홍근
서울대학교 컴퓨터공학과 박사과정을 졸업했으며, 현재 한국정보보호진흥원에서 책임연구원으로 일하고 있다. 수동적인 대상인 정보 보안에 이어 현재는 수동적인 면과 능동적인 면을 모두 가지는 소프트웨어 보안을 연구하고 있으며, 특히 소프트웨어 개발 과정에서의 보안성 향상을 위한 프로세스와 방법론에 주목하고 있다. 소프트웨어의 보안 취약성을 가시화시켜주는 기술을 “소프트웨어 보안 토마그러피”라고 스스로 작명하고 이 분야의 지평을 열기 위해 노력하고 있다.


[ 역자 서문 ]

컴퓨터 시스템과 소중한 데이터를 공격하고 탈취하고 망치려는 사람들과 그것을 지키고 보호하려는 사람들의 전쟁은 시간이 지남에 따라 누그러지기는커녕 한층 더 심각해지고 있다. 특히 공격자가 더 이상 개인과 단체의 명예를 높이려고 또는 영웅심에서 공격하는 것이 아니라 소위 ‘돈이 되는 공격’에 관심을 두는 현상이 눈에 띄게 증가하면서 정보 보호에 대한 위협이 사회적 문제로 크게 대두되고 있다.

마이크로소프트는 윈도우 비스타를 출시하면서 개인 사용자와 기업 정보 관리자가 악성 코드에 공격당할 가능성을 줄이고 보안에 대해 사용자의 주의를 끌면서 피해를 최소화하기 위한 기능에 중점을 두고 있다.

윈도우 비스타에서 자신의 애플리케이션이 실행되기를 원하는 개발자는 그 프로그램이 보안과는 전혀 관련이 없다고 생각할지라도 비스타의 보안 기능을 이해하고 그에 맞게 코딩을 해야 고객을 안전하게 보호하면서도 사용자의 불편을 최소화할 수 있다.

수많은 개인 사용자부터 정보보호 전문가에 이르기까지 많은 분이 윈도우 비스타를 접해보거나 일상 업무에 활용하면서 깨달은 느낌과 의견을 마이크로소프트에 여러 경로로 전해 주시고 있다. 보안상 더 안전한 방향으로 좋아진 거 같기는 하지만 사용이 불편해진 점도 있고 특히 프로그램 호환성에 대해 부정적인 의견이 많이 들리며 조금은 불안하다는 의견도 간혹 들린다.

사용도 더 편리해지면서 동시에 보안도 철저해질 수 있다면 마이크로소프트의 개발자도 고객도 모두 좋겠지만 안타깝게도 보안이 강화된다는 것은 얼마만큼 사용자의 사전 지식과 판단을 요구하다 보니 귀찮고 불편하게 느껴지는 것이 사실이다. 개발자로서는 자신의 애플리케이션이 튼튼하고 보안 헛점이 없으면서, 가급적 예전에 비해 사용이 번거로워졌다는 평보다는 사용하기 편리하다는 이야기를 듣고 싶을 것이다.

그러기 위해서는 운영체제가 제공하는 보안 기능을 각 개발자가 십분 활용해야 한다. 따라서 달라진 환경은 무엇인지 마이크로소프트는 왜 그런 변경을 적용했는지 이해하는 것이 우선되었으면 한다.

윈도우 비스타라고 해서 물론 아직까지는 보안상 완벽하지는 않다. 지금도 보안 면에서 계속 진화하고 있는 운영체제의 한 단면을 보여주고 있다.
비스타의 보안 기능을 익히고 그에 맞는 코딩 기법을 터득하는 차원에서 한 발 더 나아가 운영체제를 만드는 사람들의 보안 고민은 무엇인지, 그것을 어떻게 해결하려고 하는지, 현재 기술로는 어떤 면의 한계가 있는지와 같은 큰 틀에서 살펴보는 일도 즐거울 것이라 생각한다.


2007년 11월, 막 겨울이 오기 전
김홍석

목차

목차
  • 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
      • SETRUSTEDCREDMANACCESSNAME
      • (“SeTrustedCredManAccessPrivilege”) 86
      • SETRUSTEDCREDMANACCESSPRIVILEGE (31L) 86
      • SERELABELNAME (“SeRelabelPrivilege”) 86
      • SERELABELPRIVILEGE (32L) 86
      • SEINCWORKINGSETNAME (“SeIncreaseWorkingSetPrivilege”) 86
      • SEINCWORKINGSET PRIVILEGE (33L) 86
      • SETIMEZONE_NAME (“SeTimeZonePrivilege” ) 87
      • SETIMEZONE_ PRIVILEGE (34L) 87
      • SECREATESYMBOLICLINKNAME (“SeCreateSymbolicLinkPrivilege”) 87
      • SECREATESYMBOLICLINK 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

관련 블로그 글

흥미로운 해킹·보안 책 두 권이 출간됩니다

지난 주 내린 첫 눈, 모두 보셨나요? 서울은 오는 대로 족족 녹아 버리긴 했지만 조용하게 내리던 함박눈에 오랜 만에 가슴 설렜던 분 많으셨을 것 같더군요. 올 겨울은 예년보다 따뜻해서 눈이 별로 많이 안 내린다고 하던데요. 조금 일찍 찾아온 첫 눈 덕분에 조금은 위안이 되었을지도 모르겠습니다. 마음을 설레게 하는 기다림이란 지친 삶에 힘을 주는 윤활유인지도 모르겠습니다.

자, 여러분이 기대하시고 계실, 11월의 마지막을 장식할 에이콘의 신간, 4번 5번 타자들을 소개합니다.

윈도우 비스타 보안 프로그래밍
에이콘 해킹 · 보안 시리즈 14
마이클 하워드 · 데이빗 르블랑 지음 | 김홍석 · 김홍근 옮김 |
288페이지 | 25,000원 | 2007년 11월 28일 출간예정


제목에서 단박에 알아차리셨겠지만, 이 책은 윈도우 비스타용으로 안전한 소프트웨어를 개발하려는 프로그래머를 위한, 윈도우 비스타 보안 관련 첫 서적입니다.

『Writing Secure Code』의 저자 마이클 하워드와 데이빗 르블랑이 제시한 윈도우 비스타 용으로 보안상 더 안전한 코드를 작성하는 해법을 안내한다. 이 책은 윈도우 프로그래밍과 API의 기본을 잘 이해하고 있는 개발자에게 적합하다. 윈도우 XP와 윈도우 비스타의 보안상 차이점을 분석하여 『Writing Secure Code』를 보완할 수 있다. 설계 시 결정할 사항, 윈도우 비스타 개발에서 얻은 교훈, 실제 보안 사례를 해결하는 실질적 조언을 한눈에 이해할 수 있게 될 것이다.

이 책은 마이크로소프트 보안 엔지니어링 팀에서 선임 보안프로그램 매니저를 맡고 있는 마이클 하워드와 마이크로소프트 오피스 부서의 신뢰할수있는 컴퓨팅 팀 선임개발자인 데이빗 르블랑인 공저했습니다. 그리고 한국마이크로소프트의 보안프로그램 매니저이신 김홍석 차장님과 한국정보보호진흥원 책임연구원이신 김홍근 박사님이 공역하셨습니다. 이름만 놓고 보면 두 분이 마치 형제분이신 듯하지만, 친인척 관계는 전혀 아닙니다. ^^ 마이크로소프트 직원분께 소개를 받고 흔쾌히 생애 첫 번역을 맡아주시고 마지막까지 최선을 다해 꼼꼼히 마무리 해주신 김홍석 차장님께 특별히 감사의 말씀을 전합니다.

지금 교보문고, YES24, 강컴, 알라딘, 인터파크 등에서 예약주문을 받고 있습니다.


루트킷: 윈도우 커널 조작의 미학
에이콘 해킹 · 보안 시리즈 15
그렉 호글런드 · 제임스 버틀러 지음 | 윤근용 옮김 | 360페이지 |
360페이지 | 33,000원 | 2007년 11월 30일 출간예정

에이콘 해킹 보안 시리즈 15번째 책이자 최초 루트킷 서적이 출간됩니다. 와, "스파르타!"의 300개 복근은 저리가라 할 이 책 표지는 원서를 계약할 때부터 "참, 멋지다!"했는데, 이리 보고 저리 보고 다시 보아도 참 알흠답군요. ^^;

rootkit.com을 만들고 블랙햇에서 루트킷과 관련한 교육과 명강의를 진행해오고 있는 저자 그렉 호글런드와 제임스 버틀러는 이 책에서 그들이 지금까지 공개한 적 없는 루트킷 기술을 다루고 있습니다. 어떻게 하면 공격시스템에 침투해 몇년 동안이나 은닉성을 발휘해 탐지되지 않은 채 잠복할 수 있는지를 설명하고 있습니다. 따라서 윈도우 XP와 윈도우 2000의 커널 조작 방법은 물론이고 윈도우 서버 2003이나 리눅스와 유닉스에도 쉽게 적용할 수 있는 공격개념도 알려줍니다.

마이크로소프트를 포함한 대부분의 소프트웨어 제조사들은 루트킷을 그렇게 심각하게 받아들이지 않고 있다. 이 점이 바로 우리가 이 책을 출판하게 된 계기라고 할 수 있다. 이 책의 내용은 루트킷이나 운영체제 분야에 수년간 종사해 온 사람들에게는 그리 혁신적인 것은 아니지만 대부분의 사람들에게 루트킷이 대단히 심각한 위협이라는 것을 보여주고 있다. 또한 여러분의 바이러스 스캐너나 데스크톱 방화벽만으로는 충분하지 않다는 사실을 깨닫게 하며, 루트킷이 여러분의 시스템에 침투해서 몇 년 동안이나 몰래 존재할 수 있다는 것을 보여준다.  - 저자 서문 중에서

앞에서 윈도우 비스타 보안 관련 책을 설명했는데, 이 책은 저자의 글에서 묘한 뉘앙스를 풍기는군요. 흐흣. 여러 책을 하다보니... ^^; 두 책을 붙여놓고 보니 참 재미있습니다.

이 책은 『웹 애플리케이션 해킹 대작전』과 『오픈소스 툴킷을 이용한 실전해킹 절대내공』을 번역한 윤근용님이 번역하셨습니다. 그러고 보니 세권이 모두 올해 2007년 1월, 6월, 11월 5개월 간격으로 출간되었네요. 조만간 올해를 마무리해야 할 텐데 올해 최다 출간 역자상을 타게 되실라나요? 한번 뽑아봐야겠습니다.

저희 에이콘에서 한 달에 신간이 5권 나오는 건 초유의 사건(!)입니다. 초겨울의 문턱에 들어선 11월의 마지막을 화려하게 장식할 두 권의 해킹 보안 신간도 많이 많이 읽어주셔서, 열심히 달리고 있는 저희 에이콘에 힘 많이 실어주세요! ^^*

루트킷: 윈도우 커널 조작의 미학』은 교보문고, YES24, 강컴, 알라딘, 인터파크에서 예약 판매를 하고 있습니다.
CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안