book.jayu.org
개정판 C & C++ 시큐어 코딩; 버그 없는 안전한 소프트웨어를 위한

개정판 C & C++ 시큐어 코딩; 버그 없는 안전한 소프트웨어를 위한

로버트 시코드 (지은이), 이승준 (옮긴이)

에이콘출판·2015-01-09

  • 700쪽
  • 총류
  • KDC 004.61

로그인하면 내 서재에 추가할 수 있어요.

알라딘에서 보기

책 소개

에이콘 해킹.보안 시리즈. 이 책은 소프트웨어 취약점의 근본 원인을 설명하고 침투를 막기 위해 취할 수 있는 대책을 알려준다. 더욱이 이 책을 통해 프로그래머는 당장 오늘만이 아니라 미래의 공격으로부터 소프트웨어를 보호하는 보안 업무 채택과 보안 사고 방식을 발전시킬 수 있다.

목차펼치기

제1장 가위 들고 뛰어다니기 1.1 위협 알아보기 손실 비용은 얼마인가? 위협하는 자는 누구? 소프트웨어 보안 1.2 보안 개념 보안 정책 보안 결함 취약점 익스플로이트(Exploit) 완화 1.3 C and C++ 간략한 역사 C 언어에서 대체 무엇이 문제인가? 오래된 코드 그 외의 언어 1.4 개발 플랫폼 운영체제 컴파일러 1.5 요약 1.6 추가 참고 자료 제2장 문자열 2.1 문자변수 문자열 데이터 형 UTF-8 확장 문자열 문자열 리터럴 C++에서의 문자열 문자형 문자열 크기 정하기 2.2 일반 문자열 처리 에러 부적절한 경계의 문자열 복사 1바이트 오버플로 에러 null 종결 에러 문자열 잘림 함수 없이 벌어지는 문자열 에러 2.3 문자열 취약점과 익스플로이트 오염된 데이터(Tainted Data) 보안 결함: IsPasswordOK 버퍼 오버플로 프로세스 메모리 조직 스택 관리 스택 스매싱 코드 인젝션 아크 인젝션(Arc Injection) 2.4 문자열에 대한 완화 전략 문자열 처리 C11 Annex K 경계 검사 인터페이스 동적 할당 함수 C++ std::basic_string 문자열 객체 참조를 무효로 만들기 basic_string 사용에 있어서 그 외의 일반적 실수 2.5. 문자열 처리 함수 gets() C99 C11 Annex K 경계 검사 인터페이스: gets_s() 동적 할당 함수 strcpy()와 strcat() C99 strncpy()와 strncat() memcpy()와 memmove() strlen() 2.6 런타임 방지 전략 검출과 복구 입력 유효화 객체 크기 검사 비주얼 스튜디오 컴파일러가 발생한 런타임 검사 스택 카나리아 스택 스매싱 프로텍터(프로폴리스) 운영체제 전략 검출과 복구 비실행 스택 W^X PaX 미래 방향 2.7 주목할만한 취약점 원격 로그인 커베로스(Kerberos) 2.8 요약 2.9 추가 참고 자료 제3장 포인터 변조(Pointer Subterfuge) 3.1 데이터 위치 3.2 함수 포인터 3.3 객체 포인터 3.4 명령어 포인터 수정하기 3.5 전역 오프셋 테이블 3.6 .dtors 섹션 3.7 가상 포인터 3.8 atexit()와 on_exit() 함수 3.9 longjmp() 함수 3.10 예외 처리 구조적 예외 처리 시스템 기본 예외 처리 3.11 완화 전략 스택 카나리아 W^X 함수 포인터를 인코딩/디코딩 하기 3.12 요약 3.13 추가 참고 자료 제4장 동적 메모리 관리 4.1 C 메모리 관리 C 표준 메모리 관리 함수 alloca()과 변수 길이 배열 4.2 범하기 쉬운 C 메모리 관리 에러 초기화 에러 반환 값 점검 생략 Null이나 부적절한 포인터의 역참조(dereference) 해제된 메모리 참조 메모리를 여러 번 해제하기 메모리 누수 0 길이 할당 DR #400 4.3 C++ 동적 메모리 관리 할당 함수 할당 해제 함수 가비지 콜렉션(Garbage Collection) 4.4 일반적인 C++ 메모리 관리 에러 할당 실패를 올바르게 점검 못함 짝이 잘못된 메모리 관리 함수. 메모리를 여러 번 해제하기 할당 해제 함수의 예외 처리 4.5 메모리 관리자 4.6 더그 리(Doug Lea)의 메모리 할당자 힙에서의 버퍼 오버플로 4.7 이중 해제 취약점 해제된 메모리에 쓰기 RtlHeap 버퍼 오버플로 (리덕스) 4.8. 완화 전략 Null 포인터 일관성 있는 메모리 관리 습관 phkmalloc 난수화(Randomization) OpenBSD jemalloc 메모리 관리자 정적 분석 실시간 분석 도구 4.9 주목할만한 취약점 CVS 버퍼 오버플로 취약점 마이크로소프트 데이터 액세스 컴포넌트(MDAC) CVS 서버의 이중 해제 MIT 커버로스 5의 취약점 4.10. 요약 제5장 정수 보안 5.1 정수 보안에 대한 소개 5.2 정수 데이터형 무부호 정수형 랩어라운드 부호 정수형 부호 정수형의 범위 정수 오버플로 문자형 데이터 모델 기타 정수형 5.3 정수 변환 정수 변환하기 정수 변환 순위 정수 촉진 보통 산술 변환 무부호 정수형에서의 변환 부호 정수형의 변환 변환 암시 5.4 정수 연산 지정 덧셈 뺄셈 곱셈 나눗셈과 나머지 시프트(Shifts) 5.5 정수 취약점 취약점 랩어라운드 변환과 잘림 에러 비예외적 정수 로직 에러 5.6 완화 전략 정수형 선택 추상 데이터형 임의 정확 계산 범위 점검하기 선조건과 후조건 검사 안전 정수 라이브러리 오버플로 검출 컴파일러가 생성한 실시간 검사 입증가능한 범위 내 연산 AIR 정수 모델 검사와 분석 5.7 요약 제6장 서식 출력 6.1 배리애딕(Variadic) 함수 6.2 서식 출력 함수 서식 문자열 GCC 비주얼 C++ 6.3 서식 출력 함수 뚫기 버퍼 오버플로 출력 스트림 프로그램 크래쉬하기 스택 내용 보기 메모리 내용 보기 메모리 겹쳐 쓰기 국제화 확장 문자 서식 문자열 취약점 6.4 스택 난수화 하기 스택 난수화 없애기 두 개의 워드로 주소 기록하기 직접 인자 접근 6.5 완화 전략 서식 문자열에서 사용자 입력을 배제하기 정적 내용의 동적 사용 기록될 바이트 제한하기 C11 Annex K 경계 점검 인터페이스 iostream 대 stdio 시험하기 컴파일 점검 정적 폐해 분석 배리애딕 함수 구현을 수정하기 Exec 실드 포맷가드(FormatGuard) 정적 바이너리 분석 6.6 주목할만한 취약점 워싱턴 대학의 FTP 데몬 CDE 툴토크(ToolTalk) 이터캡(Ettercap) 버전 NG-0.7.2 6.7 요약 6.8 추가 참고 자료 제7장 동시성 7.1 멀티스레딩 7.2 병렬 처리 데이터 병렬 처리 작업 병렬 처리 7.3 성능 목표 암달(Amdahl)의 법칙 7.4 일반적인 에러 경합 상태(Race Conditions) 손상된 값 발러틸(volatile) 객체 7.5 완화 전략 메모리 모델 동기화 기본 연산 스레드 역할 분석(연구) 불변 데이터 구조체 현재 코드 성질 7.6 완화 함정 교착 상태 일찍 해제한 잠금 쟁탈 ABA 문제 7.7 주목할만한 취약점 다중코어(Multicore) 동적 임의 접근 기억 장치(DRAM : Dynamic Random-Access Memory) 시스템에서의 DoS 공격 시스템 호출 래퍼에서의 동시성 취약점 7.8 요약 제8장 파일 I/O 8.1 파일 I/O 기본 파일 시스템 특수 파일 8.2 파일 I/O 인터페이스 데이트 스트림 파일 열고 닫기 POSIX C++에서의 파일 I/O 8.3 접근 제어 유닉스 파일 권한 프로세스 특권 특권 변경하기 특권 관리하기 권한 관리하기 8.4 파일 식별 디렉토리 이동 동일 에러 심볼릭 링크 전형화(Canonicalization) 하드 링크(Hard Links) 장치 파일 파일 속성 8.5 경합 상태(Race Conditions) 점검 시간, 사용 시간(Time of Check, Time of Use : TOCTOU) 교체 없이 생성하기 배타 접근(Exclusive Access) 공유 디렉토리 8.6 완화 전략 경합 윈도 닫기 경합 객체 제거하기 경합 객체에 대한 접근 제어하기 경합 검출 도구 8.7 요약 제9장 권고 관행(Recommended Practices) 9.1 보안 개발 생명주기 TSP-시큐어 계획과 추적 품질 관리 9.2 보안 훈련 9.3 필요조건 시큐어 코딩 표준 보안 품질 요구 공학 유즈/미스유즈 케이스 9.4 설계 안전한 소프트웨어 개발 원칙 위협 모델링 공격면 분석 기존 코드의 취약점 안전 래퍼 입력 유효화 신뢰 경계 블랙리스트 작성 화이트리스트 작성 검사하기 9.5 구현 컴파일러 보안 기능 무한 범위(AIR) 정수 모델 세이프-시큐어 C/C++ 정적 분석 소스 코드 분석 실험기(SCALe) 철저한 방어 9.6 검증 정적 분석 모의 해킹 퍼즈 검사 코드 감사 개발자 지침과 점검표 독립적 보안 리뷰 공격면 리뷰 9.7 요약 9.8 추가 참고 자료

출처: 국립중앙도서관 서지정보

리뷰 남기기

로그인하면 리뷰를 남길 수 있어요.

리뷰 0개

아직 리뷰가 없어요.