상세 컨텐츠

본문 제목

소프트웨어 보안 검사 기술: 소프트웨어 보안 결함 식별

by techbard 2008. 1. 29. 13:57

본문

반응형
강컴에서

엘프리드 더스틴(Elfriede Dustn)이 저자인 것에 흥미를 느껴 쥔장이 원서를 살펴보던 것이 역서로 나온 것을 보게 되었다.

테스팅과 보안 기술의 영역을 넘나드는 것 같지만, 저자들의 비율로 보아서도 알듯이 기술서에 좀 더 가까울 듯 하다. 혹여나 이 책을 테스팅 일반 서적으로 오인하여 구입하시는 오류가 없으시길... ^^

사용자 삽입 이미지


제1부 개 론
01 공격 당하기 전에 자신의 약점을 먼저 면밀히 조사하라 :
전통적 소프트웨어 검사를 벗어난 패러다임의 전환 47
◈ 보안 검사 대 전통적인 소프트웨어 검사 50
_ SQL 주입 공격 패턴 53
◈ 보안 검사의 패러다임 전환 53
◈ 고수준 보안 검사 전략 55
_ 오류 주입 공격형 검사 : 탐정으로서 검사자 55
◈ 공격자처럼 생각하라 57
_ 작업 우선순위 정하기 60
_ 손쉬운 길을 택하라 : 탐정작업에 도움이 되는 툴 사용 62
_ 취약점이란 지식나무에서 배워라 63
◈ 요약 : 검사 비법 66
02 취약점들은 모든 소프트웨어에 어떻게 스며드는가? 68
◈ 설계 취약점 대 구현 취약점 69
◈ 안전한 설계와 관련된 일반적인 이슈들 72
_ 빈약한 암호 작성법 사용 72
_ 사용자 및 사용허가 추적 75
_ 결함 있는 입력 유효성 검증 76
_ 빈약한 구조적 보안 78
_ 기타 설계와 관련된 결함들 81
◈ 프로그래밍 언어 구현 관련 이슈들 83
_ 컴파일러형 언어 : C와 C++ 83
_ 해석형 언어들 : 셸 스크립팅과 PHP 96
_ PHP 99
_ 가상 컴퓨터 언어 : 자바와 C# 101
◈ 플랫폼 구현 이슈들 103
_ 문제점 : 기호 연결 104
_ 문제점 : 디렉터리 접근 공격 105
_ 문제점 : 문자 변환 106
◈ 애플리케이션 보안 구현과 연관된 일반적인 이슈들 108
_ SQL 주입 공격 108
_ 크로스사이트 스크립팅 110
◈ 개발 과정에서 생기는 문제점들 111
_ 빈약하게 문서로 만들어진 보안 요구사항들과 가정들 111
_ 빈약한 의사소통과 문서화 112
_ 개발과정에서 보안 프로세스 결여 113
◈ 취약한 배포 114
◈ 취약점의 근본 원인들에 대한 분류작업 115
◈ 요약 : 검사 비망록 116

03 안전한 소프트웨어 개발 생명주기 118
◈ 보안 검사를 소프트웨어 개발 생명주기에 맞추기 119
◈ SSDL 1단계 : 보안 지침, 규칙, 규제 123
◈ SSDL 2단계 : 보안 요구사항 : 공격 유스 케이스 125
_ 보안 요구사항 샘플 127
◈ SSDL 3단계 : 아키텍처 및 설계 리뷰와 위협 모델링 129
◈ SSDL 4단계 : 안전한 코드작업 지침 130
◈ SSDL 5단계 : 블랙박스/그레이박스/화이트박스 검사 131
◈ SSDL 6단계 : 악용 가능성 판단 132
◈ 애플리케이션의 안전한 배포 133
◈ 패치 관리 : 취약점 관리 134
◈ 역할과 책임 135
◈ SSDL과 시스템 개발 생명주기의 관계 136
◈ 요약 138

04 위험 기반의 보안 검사 : 위협 모델링을 이용한 보안 검사 우선순위 140
◈ 정보 수집 141
_ 설계사들과 회의 141
_ 런타임 검사 143
◈ 윈도우 플랫폼 144
◈ 유닉스 족적 추적 149
◈ 정보 수집 종결 152
◈ 모델링 프로세스 153
_ 위협 경로 식별 154
_ 위협 식별 158
_ 취약점 식별 160
_ 취약점과 연관된 위험 등급 매기기 161
◈ 악용 가능성 판단 162

05 세 가지 분석의 미묘한 차이 : 화이트박스, 그레이박스, 블랙박스 검사 164
◈ 화이트박스 검사 164
◈ 블랙박스 검사 165
◈ 그레이박스 검사 167
◈ 검사를 위한 실험실 설정 168
_ 퓨저 169
_ 스나이퍼 170
_ 디버거 170
_ 하드웨어 171
_ 상용 검사용 툴들 171
_ 네트워크 하드웨어 172
◈ 계획적으로 실시하는 애플리케이션 공격 172
_ 실험실 환경 172
_ 네트워크 공격 175
제2부 공격 수행
06 일반적인 네트워크 장애 주입 공격 183
◈ 네트워크 183
◈ 포트 탐색 184
_ netstat와 로컬 툴 185
_ 포트 주사 189
◈ 프록시 190
_ 가장 간단한 프록시 : 임의의 TCP/UDP 오류 주입기 192
_ 오류 주입 공격용 데이터 세트 작성법 198
_ 끼어들기 프록시 202
◈ 결론 204
◈ 요약 204

07 웹 애플리케이션 : 세션 공격 205
◈ 목표 애플리케이션 겨냥 205
◈ 인증 대 인가 205
◈ 세션과 자원 ID에 대한 주먹구구식 공격 207
◈ 쿠키 수집 212
◈ SID 견고성 판단 : 위상 공간 분석 215
◈ 크로스사이트 스크립팅 공격 219
◈ 결론 222
◈ 요약 223
08 웹 애플리케이션 : 일반적인 이슈들 224
◈ 인가 회피 224
◈ SQL 주입 공격 227
_ 기본사항 228
_ 데이터베이스 스키마 찾기 234
_ SQL 서버에서 명령 실행하기 239
◈ 실행 코드(ASP, PHP, 배치 파일) 올리기 243
◈ 파일 나열하기 245
◈ 소스코드 노출 취약점 250
◈ HTTP의 숨은 필드 253
◈ 결론 257
◈ 요약 257

09 웹 프록시 : 웹스카랩 사용하기 259
◈ 웹스카랩 프록시 259
◈ 결론 276
◈ 요약 276

10 맞춤형 퓨즈 유틸리티 구현 278
◈ 프로토콜 찾아내기 278
◈ SOAP와 WSDL 283
◈ SOAPpy 라이브러리 285
◈ 결론 295
◈ 요약 296

11 로컬 애플리케이션 장애 주입 공격 297
◈ 로컬 자원 그리고 프로세스 간 통신 297
_ 윈도우NT 객체 299
_ 유닉스의 set-user-id 프로세스 그리고 프로세스 간 통신 302
◈ 로컬 애플리케이션 위협 모델링 304
_ 윈도우 애플리케이션 자원 나열 305
_ 유닉스 애플리케이션 자원 나열 306
◈ 스크립팅 가능한 액티브엑스 객체 인터페이스 검사 308
◈ 스크립팅해도 되는 ‘안전한’ 객체 식별 310
◈ 객체 인터페이스 검사 313
_ 인터페이스 수동 검사 313
_ 액티브엑스 인터페이스 자동 검사 315
_ 충돌 평가 316
◈ 파일 형식 퓨징 317
◈ 파일 훼손 검사 319
◈ 파일 훼손 자동화 319
◈ 명령행 퓨징 유틸리티 321
◈ 셰어퓨즈 322
◈ 브루트-포스 이진 검사기 324
◈ CLI 퓨즈 325
◈ 공유 메모리 329
◈ 요약 333

제3부 분 석
12 악용 가능성 판단 337
◈ 취약점 등급 정하기 337
_ 시간 338
_ 신빙성과 재현 가능성 338
_ 접근방법 339
_ 위치 선정 341
◈ 메모리 침해와 임의의 코드 실행 342
◈ 컴퓨터 아키텍처 344
_ 스택 346
_ 스택 버퍼 초과 347
_ 힙 348
◈ 악용 가능성 판단 351
_ 프로세스 충돌 덤프 351
_ 공격자의 수중에 들어간 메모리와 레지스터 353
_ 취약점을 경감시켜주는 요소들 : 스택과 힙 보호 358
◈ 더 참고할 만한 자료들 358
◈ 찾아보기 361
반응형

관련글 더보기

댓글 영역