이미 소장하고 있다면 판매해 보세요.
|
1 시작하기와 위협 모델
위협 모델 학습 __무엇을 개발하고 있는가? __무엇이 잘못될 수 있는가? __각각의 위협 대응 __작업 내용 확인 스스로 위협 모델링하기 착수와 위협 모델링을 위한 체크리스트 요약 2 위협 모델링 전략 위협 모델이란 무엇인가? 위협을 브레인스토밍하기 __브레인스토밍 변형 __문헌 연구 __브레인스토밍 관점 위협 모델링을 위한 체계적인 접근 방식 __자산에 초점 맞추기 __공격자에 초점 맞추기 __소프트웨어에 초점 맞추기 소프트웨어의 모델 __다이어그램 유형 __신뢰 경계 __다이어그램에 포함시켜야 되는 것 __복잡한 다이어그램 __다이어그램의 레이블 __다이어그램의 색 __엔트리 포인트 __다이어그램 검증 요약 2부 위협 발견 3 STRIDE STRIDE의 이해와 유용성 스푸핑 위협 __동일한 시스템의 프로세스나 파일 스푸핑 __시스템 스푸핑 __사람 스푸핑 조작 위협 __파일 조작 __메모리 조작 __네트워크 조작 부인 위협 __로그 공격 __행위 부인 정보 유출 위협 __프로세스를 통한 정보 유출 __데이터 저장소 정보 유출 __데이터 흐름에서 정보 유출 서비스 거부 위협 권한 상승 위협 __프로세스 오류를 이용한 권한 상승 __인증 오류를 통한 권한 상승 추가 사례: Acme-DB에 대한 STRIDE 위협 STRIDE 변형 __STRIDE별 요소 __STRIDE별 상호작용 __DESIST 종료 기준 요약 4 공격 트리 공격 트리 작업 __위협을 찾기 위한 공격 트리 사용 __새로운 공격 트리 생성 트리 표현 __사람이 이해하기 쉬운 표현 __구조적인 표현 공격 트리 사례 실제 공격 트리 __사기 공격 트리 __선거 운영 평가 위협 트리 __마인드맵 공격 트리의 관점 요약 5 공격 라이브러리 공격 라이브러리의 속성 __라이브러리와 체크리스트 __라이브러리와 문헌 분석 CAPEC __종료 기준 __CAPEC에 대한 관점 OWASP Top 10 요약 6 프라이버시 도구 솔로브의 프라이버시 분류 체계 인터넷 프로토콜에 대한 프라이버시 고려 사항 프라이버시 영향 평가(PIA) 니미티 슬라이더와 개인정보 톱니바퀴 맥락상 무결성 __맥락상 무결성 의사결정 휴리스틱 __추가된 맥락상 무결성 휴리스틱 __맥락상 무결성에 대한 관점 LINDDUN 요약 3부 위협 관리와 해결 7 위협 처리와 관리 위협 모델링 프로젝트 시작 __위협 모델링의 시기 __무엇으로 시작하고 끝내야 되는가 __시작하는 곳 완화를 위해 깊이 파고들기 __완화의 차수 __체스 게임 __우선순위 결정 __곰에게서 도망치기 표와 리스트로 추적 __위협 추적 __가정하기 __외부 보안 노트 시나리오에 특화된 위협 모델링의 구성 요소 __고객/벤더 신뢰 경계 __새로운 기술 __API 위협 모델링 요약 8 방어 전략과 기술 위협을 완화하기 위한 전략과 기술 __인증: 위장에 대응 __무결성: 무단 변조에 대응 __부인 방지: 부인에 대응 __기밀성: 정보 노출에 대응 __가용성: 서비스 거부에 대응 __권한 관리: 권한 상승에 대응 __전략과 기술의 함정 패턴을 활용한 위협 해결 __표준 구축 __CAPEC 위협 대응 프라이버시 위협에 대응 __최소화 __암호화 __컴플라이언스와 정책 요약 9 위협 대응의 트레이드오프 전통적 위험 관리 전략 __위험 회피 __위험 대응 __위험 수용 __위험 전이 __위험 무시 위험 관리를 위한 완화 방법 선택 __설계 변경 __표준 완화 기술 적용 __맞춤형 완화 방법의 설계 __퍼징은 완화 방법이 아니다 위협 특화적인 우선순위 적용 방식 __단순 접근 방식 __버그 막대를 이용한 버그 순위 결정 __비용 예상 접근 방식 위험 수용을 통한 완화 __비즈니스 수용을 통한 완화 __사용자 수용을 통한 완화 완화 전략에서의 군비 경쟁 요약 10 위협 대응 검증 위협 완화 테스팅 __테스트 프로세스 통합 __완화 방식을 테스트하는 방법 __침투 테스팅 획득한 코드 확인 __소프트웨어 모델 작성 __소프트웨어 모델 사용 위협 모델링 품질 보증 __모델/실제 일치 __작업과 프로세스 완료 __버그 체크 위협 대응의 프로세스 측면 __위협 모델링은 테스팅에 권한을 부여; 테스팅은 위협 모델링에 권한을 부여 __검증/변환 __가정할 때마다 문서화 표와 리스트 요약 11 위협 모델링 도구 일반적으로 유용한 도구 __화이트보드 __오피스 프로그램 __버그 추적 시스템 오픈소스 도구 __TRIKE __SeaMonster __권한 상승 상용 도구 __ThreatModeler __Corporate Threat Modeler __SecurITree __Little-JIL __마이크로소프트 SDL 위협 모델링 도구 아직 존재하지 않는 도구 요약 4부 기술적이고 다루기 힘든 분야의 위협 모델링 12 요구 사항 문서 왜 문서('Cookbook')인가? 요구 사항, 위협, 대응 방안의 상호작용 비즈니스 요구 사항 __경쟁자보다 더 뛰어난 점 __산업 요구 사항 __시나리오 기반 요구 사항 요구 사항을 위한 프레임으로서의 예방/탐지/대응 __예방 __탐지 __대응 요구 사항을 위한 프레임으로서 사람/프로세스/기술 __사람 __프로세스 __기술 직접 개발 시 요구 사항과 기술 구입 시 요구 사항 컴플라이언스 기반 요구 사항 __클라우드 보안 연합 __NIST 발표 200 __PCI-DSS 개인정보 보호 요구 사항 __공정한 정보 관행 __개인정보 보호 설계 __개인 식별을 위한 일곱 가지 법률 __개발자를 위한 마이크로소프트 개인정보 보호 표준 STRIDE 요구 사항 __인증 __무결성 __부인 방지 __비밀성 __가용성 __권한 부여 비요구 사항 __운영상 비요구 사항 __경고와 지시 __마이크로소프트의 ‘10가지 불변 법칙’ 요약 13 웹과 클라우드 위협 웹 위협 __웹사이트 위협 __웹 브라우저와 플러그인 위협 클라우드 사용자 위협 __내부 위협 __공동 사용자 위협 __컴플라이언스에 대한 위협 __법적 위협 __포렌식 대응에 대한 위협 __기타 위협 클라우드 공급자 위협 __사용자의 직접적인 위협 __사용자 행동에 의한 위협 모바일 위협 요약 14 계정과 식별 계정 수명주기 __계정 생성 __계정 유지 __계정 제거 __계정 수명주기 체크리스트 인증 __로그인 로그인 실패 __'당신이 가진 것'의 위협 __'당신의 어떤 것'의 위협 __'당신이 알고 있는 것'의 위협 __인증 체크리스트 계정 복구 __시간과 계정 복구 __이메일 계정 복구 __지식 기반 인증 __사회적 인증 __공격자 기반 계정 복구 분석 __다중 채널 인증 __계정 복구 체크리스트 이름, ID, 사회보장번호 __이름 __신분증 __사회보장번호와 기타 국가 신분 번호 __신분 도용 __이름, ID, 사회보장번호 체크리스트 요약 15 인적 요인과 유용성 사람 모델 __사람에 대한 행동주의자 모델 적용 __사람에 대한 인지 과학 모델 __사람에 대한 체험 모델 소프트웨어 시나리오 모델 __소프트웨어 모델링 __소프트웨어 모델링 설계 __전자 사회공학 공격 모델링 위협 도출 기술 __브레인스토밍 __위협 모델링의 세레모니 접근법 __세레모니의 발견 학습 분석 __4단계 프레임워크에 유용성 통합 인적 요인을 해결하기 위한 도구와 기술 __인적 요인을 금지하는 신화 __좋은 결정을 위한 디자인 패턴 __친절한 학습 환경을 위한 디자인 패턴 사용자 인터페이스 도구와 기술 __환경설정 __명시적 경고 __관심을 사로잡는 패턴 인적 요인 테스트 __양성과 악성 시나리오 __생태 유효 기간 유용성과 세레모니에 대한 관점 요약 16 암호화 체계에 대한 위협 암호화의 기본 요소 __기초 기본 요소 __개인정보보호 기본 요소 __현대의 암호화 기본 요소 대표적인 위협 배우 암호 체계 공격 암호화를 사용한 구축 __선택 __업그레이드 준비 __키 관리 __복호화 전의 인증 암호화에 관해 기억해야 할 사항 __전문가에 의해 설계된 암호 체계를 사용하라 __전문가에 의해 만들어지고 테스트된 암호화 코드를 사용하라 __암호화는 만병통치약이 아니다 __모든 것은 세상에 다 알려질 것이라 생각하라 __계속 키를 관리하라 비밀 시스템: 케르크호프스와 그의 원리 요약 5부 한 단계 더 나아가기 17 조직에 위협 모델링 적용 위협 모델링을 소개하는 방법 __개인 기여자 설득 __경영진 설득 누가 무엇을 하는가? __위협 모델링과 프로젝트 관리 __전제 조건 __산출물 __각자의 역할과 책임 __그룹 상호작용 __위협 모델링 팀의 다양성 개발 수명주기 안에서의 위협 모델링 __개발 프로세스 문제 __조직 문제 __조직에 맞게 프로세스 바꾸기 위협 모델링에 대한 반대 극복 __자원에 대한 반대 의견 __값에 대한 반대 의견 __계획에 대한 반대 의견 요약 18 실험적 접근 경계선 찾기 운영상의 위협 모델 __FlipIT __킬 체인 __'넓은 거리' 분류 체계 적대적 기계학습 비즈니스 위협 모델링 위협 모델링 방법에 대한 위협 __위험한 산출물 __위협 모델 보고서 __위험한 접근 방식 실험 방법 __문제 정의 __측정할 측면 찾기와 측정 __결과 연구 요약 19 성공을 위한 설계 흐름 이해 __흐름과 위협 모델링 __사람들을 방해하는 것 __인지 부하를 주의하라 __작성자 맹점을 피하라 __자산과 공격자 참여자들에 대해 알기 경계 대상 최선은 선의의 적 관점 마무리 __위협 모델은 달라졌다 __예술성에 관해 요약 __지금부터의 위협 모델 부록 A 유용한 도구 부록 B 위협 트리 부록 C 공격자 목록 부록 D 권한 상승: 카드 부록 E 사례 연구 |
|
★ 이 책에서 다루는 내용 ★
■ 고객이 피해를 입기 전에 보안 문제들을 찾아서 해결하는 방법 ■ 실용적이고 실행 가능한 도구, 기술, 소프트웨어 개발자와 IT 전문가 그리고 보안 전문가를 위한 활용 방법 ■ 소프트웨어 중심의 위협 모델링의 미묘한 차이를 분석하고, 구축한 이후 단계에서 소프트웨어와 시스템에 적용한 사례 소개 ■ 복잡한 시스템을 관리할 때 보안을 강화하기 위해 위협 모델링 적용 방법 ■ 구조적, 조직적 체계를 사용한 잠재적 위협 관리 ■ 진화하는 보안 위협들을 발견하고 식별하는 방법 ■ 소프트웨어 유형, 운영 시스템, 마이크로 소프트와 기타 최고 IT 기업에서 효과가 입증되고 검증된 프로그램 방식과 기술에 관계없이, 구체적이고 실행 가능한 조언 ★ 이 책의 대상 독자 ★ 소프트웨어 개발자와 테스터 소프트웨어를 만드는 개발자들은 소프트웨어 엔지니어, 품질 보증, 다양한 프로그램, 또는 프로젝트 관리자를 포함한다. 개발자들이 프로젝트 그룹에 속해 있다면 초기 소프트웨어 프로세스에서 설계 문제를 확인하고 해결할 수 있는 방법을 배울 수 있다. 이 책은 고객의 요구 사항과 기대를 더욱 충족시키는 더 안전한 소프트웨어를 배포하게 한다. 소프트웨어를 모델링하거나 위협을 찾는 다른 방법 외에도 위협 모델링에 대한 간단하고 효과적이며 재미있는 접근 방법을 배울 수 있다. 또한 개발 프로세스에 맞게 취약점과 위협을 추적하는 방법을 알아본다. 그리고 요구 사항을 더 분명하게 만드는 데 도움을 주기 위해서 위협을 사용하는 방법을 배운다. 인증, 암호화, 유용성과 같이 오랜 역사를 가진 완화와 공격의 상호작용이 일어나는 위치에 대해서도 배운다. 이를 통해 추천되는 접근 방법들이 어떻게 현재 상태까지 발전해왔는지 이해할 수 있다. 이 밖에도 개발 프로세스에서 위협 모델링을 이끌어내는 방법 등 더 많은 것을 배울 수 있다. 시스템 설계, 운영, 관리 소프트웨어 구성 요소를 통합하고, 이를 통해 값을 전달하는 시스템을 만드는 사람들은 시스템을 설계하고 구성 요소를 선택할 때나 배포를 준비할 때 위협을 찾아내 발견하는 방법을 배울 수 있다. 이 책은 비즈니스, 고객, 규정 준수 요구 사항을 더욱 충족하는 더 안전한 시스템을 제공할 수 있다. 시스템을 구축하거나 구축한 시스템을 모델링하는 방법 외에도 위협 모델링에 대한 간단하고 효과적이며 재미있는 접근 방법을 배울 수 있다. 또한 시스템에 대한 보안이나 개인정보 보호 위협을 발견하는 방법을 배운다. 그리고 운영 중에 위협을 해결할 수 있는 방법을 알아본다. 직면한 위협의 보완 방법과 그러한 위협을 해결하는 방법도 배운다. 그리고 웹과 클라우드 시스템같은 기술의 범주에 있는 특정 위협과 계정에 대한 위협을 알아본다. 두 가지 모두 운영자에게 매우 중요하다. 이 책은 유용성의 문제를 다루고 조직 내에 있는 사람들과 고객들의 보안 활동에 영향을 주는 방법에 대한 관점을 바꾸게 해준다. 이 밖에도 시스템을 보호하는 데 사용할 수 있는 암호화 구성 요소 등 더 많은 것을 배운다. 보안 전문가 보안 업무를 하고 있다면 이 책에서 두 가지 중요한 방법을 배운다. 첫째, 생산성을 향상시켜주는 위협 모델링에 대한 구조화된 접근 방법을 배울 수 있고, 그렇게 함으로써 위협 모델링의 ‘명백한’ 부분들이 생각처럼 명백하지 않거나 옳지 않았음을 알게 된다. 둘째, 조직에서 사용 중인 개발, 운영, 배포 프로세스에 보안을 포함하는 방법을 배운다. 보안 전문가에게 이 책은 더 나은 위협 모델링을 하도록 도움을 줄 수 있다. 저자는 경험으로 설명한다. 부록에서 사례 연구를 작성하면서 부록 B와 요구 사항을 설명한 책의 내용에 참조하고 있고, 단지 소프트웨어 모델에서 갑자기 생각난 것이 아닌 위협을 찾고 있는 것을 발견하게 된다. ★ 이 책의 구성 ★ 1부, '시작하기'는 시작에 관한 것으로, 책의 처음 부분(특히 1장)은 많은 보안 전문 지식이 없는 사람들을 위해 쓰여졌다. 책의 후반부는 이 책에서 얻을 수 있는, 또는 자신의 경험과 결합된 보안 지식을 기반으로 한다. 위협 모델링의 이해와 그 분야에 새로운 사람들을 위한 권장 방법을 얻을 수 있다. 또한 공격자나 자산 같은 다른 옵션들보다 소프트웨어 모델링이 시작하기에 더 좋은 이유와 함께 모델링 방법들을 배운다. 2부, '위협 발견'은 위협을 찾는 방법으로, 위협을 찾는 데 사용하는 기술과 도구를 제공한다. 이를 통해 사람들이 에너지를 쏟고 있는 다양한 기술들의 장단점을 검토하게 하고, 정보 기술 위협 모델링에 접근하는 다양한 방법들을 조사하고 분석한다. 그 방법은 처음부터 끝까지 읽거나 도움이 필요한 특정 지점으로 건너뛰는 방식으로 분류돼 있다. 3부, '위협 관리와 해결'에는 위협을 해결하는 방법, 위협을 해결하는 데 사용할 수 있는전술과 기술, 위험의 장단점을 만드는 방법 등이 포함돼 있다. 또한 해결된 위협을 검토하고 위협 모델링하는 데 도움이 되는 도구를 다룬다. 4부, '기술적이고 다루기 힘든 분야의 위협 모델링'은 수많은 위협 모델링과 분석을 마친 특정 기술과 어려운 영역에서의 위협 모델링이다. 웹과 클라우드, 계정과 정체성, 암호화, 자신만의 보안 요구 사항 분석을 시작할 수 있는 요구 사항 문서(Cookbook) 등을 포함한다. 5부, '한 단계 더 나아가기'는 위협 모델링의 다음 단계로의 전진이다. 특정 조직에 대한 위협 모델링 프로세스를 만들고, 사용자 정의에 대한 방법을 고려하고 있는 경험 있는 위협 모델러, 보안 전문가, 프로세스 설계자 등을 대상으로 한다. 부록은 이제까지 배웠던 기술을 적용하는 데 도움을 주는 정보를 제공한다. “위협 모델은 무엇인가”, “자산은 무엇인가”와 같은 질문에 대한 일반적인 답변들을 포함하고 있다. 또한 위협을 찾는 데 도움을 줄 수 있는 위협 트리, 공격자와 공격자 페르소나 리스트, 1장에서 사용할 권한 상승(Elevation of Privilege) 게임에 대한 세부 사항, 마지막으로 상세한 위협 모델 예제들을 포함하고 있다. 그 다음으로 용어집, 참고 문헌, 찾아보기 등이 이어진다. ★ 지은이의 말 ★ 이 책은 잠재적 위협을 해결하거나 완화하기 위해 이용할 수 있는 유용한 모델을 설명한다. 소프트웨어, 시스템, 또는 소프트웨어를 만드는 사람은 자신의 시스템이 직면하는 예측 가능한 많은 위협을 해결해야 한다. 위협 모델링은 우리 모두가 이미 수행하는 모델링의 멋진 이름이다. 당신의 집을 위협 모델링한다면 그 안에 있는 가족, 가보, 사진, 사인이 그려진 영화 포스터들과 같이 소중한 것을 생각하며 위협 모델링을 시작할 수 있다. 그 위협은 잠기지 않은 문이나 열려 있는 창을 이용해 누군가 침입할 수 있는 방법과 같다. 그리고 동네 아이들, 강도, 마약 중독자, 스토커, 피카소 원본을 훔치려는 사람과 같이 침입하려는 사람의 유형도 생각할 수 있다. 이런 예시들이 소프트웨어 세계에서는 고전적인 것처럼 보일 것이다. 중요한 점은 각 위협의 방지법이 아니라 이렇게 생각하는 방법을 이해하는 것이다. 친구의 집을 진단해 달라고 부탁받았다면 도움이 될 수는 있겠지만, 당신의 분석이 얼마나 완벽한지는 확신할 수 없다. 사무실 단지를 보호하도록 요청받았다면 여전히 애를 먹을 것이고, 군사 기지나 감옥을 보호하는 것조차도 더 어렵게 느껴질 것이다. 이러한 경우 당신의 능력만으로 부족하므로 이런 요청을 해결하기 위한 도구가 필요하다. 이 책은 체계적이고 효과적으로 위협 모델링에 대해 생각할 수 있는 도구를 제공한다. 여기에서는 위협 모델링이 무엇이고, 개인, 팀, 조직이 위협 모델링을 하는 이유를 알아본다. 초기에 보안 이슈를 발견하고 보안 요구 사항에 대한 이해를 높이고, 더 나은 제품을 제작해 제공하는 것 등이 그 이유가 될 수 있다. 또한 책이 무엇을 설명하는지, 위협 모델링의 정의와 중요한 이유, 누가 이 책을 읽어야 하는지, 위협 모델링의 사용 방법, 다양한 분야에서 기대할 수 있는 것, 위협 모델링의 새로운 학습 내용 등을 비롯한 다섯 가지 주요 사항을 알아본다. ★ 옮긴이의 말 ★ 시작하기 전에 보안 위협 모델링이라는 개념 자체가 생소한 사람들이 많을 것으로 생각된다. 보안 사고를 사전에 예방하고 징후를 미리 탐지하는 보안 관제, 모의해킹 등의 일을 수행할 때 좀 더 체계적이고 전문적인 밑그림을 그리고 시작하는 경우가 드물기 때문이다. 이 책은 학문적이면서도 비즈니스에 적용할 수 있는 보안 위협의 구체적이고 실질적인 내용을 제공한다. 위협 모델링은 제품, 소프트웨어, 네트워크, 또는 환경에 대한 보안 위험과 공격 수행 방식을 확인하는 데 도움이 된다. 이는 완화해야 하는 위협과 해당 위협을 확인하는 데 목적을 두고 있다. 위협 모델링 전략을 수립하려면 소프트웨어 모델링을 통해 소프트웨어 정보를 수집한다. 정보를 수집할 때 고려해야 할 사항은 대상의 환경, 범위, 구성 요소, 종속성, 사용 사례에 따른 시나리오 등이 있다. 모델링은 소프트웨어를 구성하고 있는 컴포넌트의 전체적인 모습을 이해해 전체적인 보안성에 영향을 미치는지 확인하는 과정이다. 이 책에서는 STRIDE라는 위협의 유형을 소개한다. STRIDE는 스푸핑, 조작, 정보 노출, 권한 상승 등 대표적인 위협의 앞 글자를 합쳐 만든 단어다. stride는 실제로 다른 뜻을 가진 단어지만, 여기서 말하는 STRIDE는 위협 모델링을 위한 진전을 의미하려고 했던 것이 아닐까 하는 생각이 든다. 이 책에서는 공격 트리라는 새로운 모델링 방법을 소개한다. 먼저 수행한 모델링 작업과 외부 엔티티에 대해 얼마나 취약할 수 있는지 판단을 위한작업을 수행하고, 여러 가지 공격 유형별로 위협 수준을 평가해 보안 대응책을 제시함으로써 효율적인 위험 관리 정책을 수립하게 된다. 위협을 구분하고 식별하는 것은 이를 완화시킬 수 있을 때 비로소 가치가 있다고 할 수 있다. 위협을 완화시킬 수 있는 정책, 프로세스, 관리, 방어 기재 등 여러 요소를 살펴본다. 물론 위협에 대응하기 위해 전혀 비용이 들지 않을 수는 없다. 비용을 최소화하고 위협에 대한 검증을 최대한 이끌어낼 수 있는 노력이 필요하다. 이 책에서는 활용할 수 있는 위협 모델링을 위한 도구를 소개한다. 웹, 클라우드, 계정 식별, 인적 요인, 암호화에 대한 위협을 상세히 소개하고, 기업에 위협 모델링을 적용시키는 과정을 소개하고, 성공적인 컨설팅을 위한 문서화, 구현 및 테스트 과정은 소프트웨어 아키텍처를 구상할 때 도움이 될 뿐만 아니라 비즈니스에 위협 모델링을 적용하는 데 도움이 된다. 매년 수많은 보안 사고가 일어나고 그중 대단히 위중한 사고는 모두에게 커다란 손실을 가져오기도 한다. 이를 사전에 대비하기 위해 많은 비용과 시간을 들이고 있다. 하지만 이를 소홀히 하거나 부족한 이해로 인한 사고를 지켜보는 것은 안타까운 일이 아닐 수 없다. 모든 보안 사고를 막을 수 없다고 하더라도 위협 모델링을 통해 보안 사고를 최소화시킬 수 있지 않을까? 많은 고민과 연구를 통해 시스템의 보안을 평가하고 위협을 완화하는 데 도움이 되길 바란다. |