메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

안전한 프로그램을 만드는 Secure Coding 핵심 원리

안전한 프로그램을 만드는 Secure Coding 핵심 원리

한빛미디어

집필서

절판

  • 저자 : 방성민
  • 출간 : 2004-01-07
  • 페이지 : 344 쪽
  • ISBN : 897914265X
  • 물류코드 :1265
  • 초급 초중급 중급 중고급 고급
4점 (1명)
좋아요 : 14

"원리부터 파헤치는 "hack-proof" 프로그래밍 기법!"

현재 개발하고 있는 응용 프로그램의 보안 취약점을 제거하고 안전하게 실행될 수 있도록 하려면 어떻게 코드를 작성해야 할까? 복잡한 웹/네트워크 환경에서 기업, 고객의 중요한 데이터를 안전하게 전송하려면 개발자는 어떤 암호화 알고리즘을 활용해야 하는가?

이 책은 응용 프로그램이 안전하게 실행될 수 있도록 개발자가 사전에 방지할 수 있는 프로그래밍 기법을 전달하고 있으며, 이해하기도 힘든 복잡한 암호화 알고리즘을 이론적으로 설명하지 않고 보안 라이브러리의 사용 방법을 핵심 원리와 예제 중심으로 전달하고 있다. 마지막 3부에서는 개발 단계마다 점검해야 하는 프로그래밍 고려 사항을 정리하여 개발 초기 단계부터 안전한 프로그램을 개발할 수 있도록 안내하고 있다.

유닉스/리눅스 환경에서 실행되는 응용 프로그램의 보안성 강화 기법을 설명하고 있지만, 원리 이해라는 측면에서 윈도우 기반의 프로그래머도 참고할 수 있을 것이다.

이 책의 주요 내용
  • 버퍼 오버플로우 발생 - 안전한 입출력 함수의 사용과 메모리 버퍼 관리
  • 상위 레벨의 권한 취득 - 프로세스 생성, 동작, 소멸 과정 및 사용자 프로세스 권한 통제
  • 파일과 디렉토리 조작 - 파일시스템의 사용 권한 설정 및 사용자별 허가 용량 할당
  • 로컬 서비스 거부 공격 - 시스템 자원의 통제 및 운영 과정에서 생성되는 파일 관리
  • 프로그램의 오동작 - 환경 변수 조작 방지와 안전한 설정, 관리
  • 개발 단계별 주의 사항 - 기능 단위의 모듈화 프로그래밍
  • 적합한 사용자 인증 - 비밀 번호와 OTP를 이용한 인증 모듈 적용
  • 데이터의 비밀성 보장 - OpenSSL 라이브러리를 이용한 암호화 프로그래밍
  • 공인 인증서 발급 - 공개 키 알고리즘을 이용한 RSA 키 생성
  • 데이터의 무결성 보장 - MD5 알고리즘을 이용한 해시 생성
  • 안전한 데이터 전송 통로 - 암호화 통신 채널, SSL 세션
추천평(미디어서평)

IT 비지니스에 있어서 보안은 이제 선택이 아닌 필수가 되었다. 지금까지 보안에 대한 개념과 주된 논의는 O/S 보안과 네트워크 보안이 대부분이었다. 이 책은 지금까지의 피상적인 보안 모델과 개념을 다루는 것이 아니라 개발자 입장에서 그리고 실제 코드에서 다루어야 할 보안 주제를 완벽하게 다루고 있다. 개발자로서 그리고 현업에서 종사하면서 보안에 대한 좀더 깊은 고려를 하고 좀더 완벽한 코드를 만들어내고 싶다면 주저없이 이 책을 권하고 싶다. - 강경완(하이텔 유닉스 동호회 대표시삽 , Xpert 리눅스 전문가)

최근 정보화 환경은 C/S에서 웹으로의 급속한 전환, 유무선 통합이 가속화되고 있으며, 사회 전반에 정보 시스템에 대한 의존도가 높아지고 있다. 이에 따라서 정보 시스템에 발생하는 각종 재해로 인하여 업무적, 경제적으로 막대한 손실이 발생하고 있으며, 과거와는 다르게 사회 전반에 파급 효과가 커지고 있다. 정보 시스템에 발생하는 각종 재해를 원천적으로 방지하기 위해서는 정보 시스템의 취약성에 위험 분석과 대책의 마련이 필수적이며, 이는 정보 보안에 대한 체계적인 이해와 함께, 실무의 개발에서 효과적으로 적용이 가능해야 할 것이다. 현재 이론 중심 또는 해킹 기법 중심의 보안 서적은 많이 나왔으나, 실제 개발자 입장에서 이를 적용하는 방법을 다루는 데는 많은 한계가 있었다. 이러한 면에서 본 도서는 정보 보안에 대한 체계적인 지식 습득뿐만 아니라 개발자 입장에서 보안 솔루션의 개발과 보안 대책을 수립하는 데 좋은 지침서가 될 수 있을 것이라 판단한다. - 박준우(정보 관리 기술사/정보 시스템 감리사, 법원 행정처 정보화담당관실/데이터센터 전산계장)

대부분의 개발자는 오늘도 지친 눈을 비벼가며 무수한 소프트웨어를 개발하고 있을 것이다. 몇몇은 그들의 소프트웨어에 만족할 것이고, 몇몇은 어떻게 하면 더 안정적이고 우수한 소프트웨어를 만들까 고민하고 있을 것이다. 안전하고 보안성이 강화된 소프트웨어를 만드는 것 또한 이들의 고민 중 하나가 될 것이다. 이 책에서는 보안과 관련된 주제에 대해서 개발자가 현장에서 바로 적용할 수 있는 프로그래밍 기법에 관하여 설명하고 있다. 평소 보안 프로그래밍에 관심이 있는 사람이라면 한번 읽어볼만한 주제들을 다루고 있다. - 장기현(한양대학교 정보통신대학원 미디어 통신공학 석사과정)
방성민 저자

방성민

IDS와 모바일 에이전트(Mobile Agent)를 통합하는 주제로 석사학위를 마치고, 제주한라대학 정보통신과에서 3년간 전산정보학 개론, 프로그래밍 등의 과목을 강의했다. IDS, ESM 및 임베디드 리눅스와 관련한 다수의 프로젝트에 참여했으며, 현재는 Billing 관련 업체에서 이기종 장비 인터페이스에 관련된 개발 프로젝트를 수행하고 있다. 하이텔 소프트웨어 동호회의 원서 벤치마킹 팀장과 Xpert 사이트 네트워크 및 보안 프로그래밍 관련 전문가로 활동한 경험이 있으며, 국내 현실에서 환갑이 넘어서까지 엔지니어로 살아가기 위한 목표로 정보 보안, 리눅스 커널 해킹 및 네트워크 관리 등의 주제에 관심을 두고 연구를 계속하고 있다.

1부. 안전한 프로그램을 만드는 보안 프로그래밍 기법
1장. 버퍼 오버플로우 보안
01 버퍼 오버플로우의 이해
02 버퍼 오버플로우 방지 기법
03 스택가드의 활용
04 포맷스트링 취약성과 포맷가드
05 보안 입출력 라이브러리
06 요약

2장. 프로세스 보안
01 프로세스와 정보 보안
02 SUID/SGID
03 프로세스 보안 지침
04 프로세스 보안을 위한 코드 작성 지침
05 요약

3장. 파일시스템 보안
01 파일 권한 및 umask
02 안전한 파일의 생성 및 접근
03 디렉토리 보안 전략
04 경쟁 조건의 이해
05 경쟁 조건 방지를 위한 파일 조작 기법
06 요약

4장. 자원 보안
01 시스템 자원과 보안 침해
02 서비스 거부 공격과 자원 관리
03 코어 파일의 취약성
04 요약

5장. 환경 변수 보안
01 환경 변수의 취약성
02 IFS 버그
03 안전한 환경 변수의 이용
04 요약

6장. 보안 강화 코드 작성 지침
01 개발 단계에서 소프트웨어 공학 원리를 적용하라
02 최소 권한의 원리를 적용하라
03 안전한 인터페이스를 통해 모든 입출력 값의 적합성을 평가하라
04 모든 변수, 자료 구조에 안전한 기본 값으로 초기화를 수행하라
05 경쟁 조건을 회피하라
06 가능한 모든 경우의 예외 상황 처리 방법을 구현하라
07 시스템 자원에 대한 사용 한계를 반드시 정의하라
08 신뢰할 수 있는 채널을 통한 입출력만을 신뢰하라
09 성능강화를 목적으로 예측 불가능한 코드를 작성하지 말라
10 프로그램 동작 과정에 대한 감사 로그를 작성하라

2부. 데이터 전송 보호를 위한 암호화 기법
7장. 안전한 사용자 인증
01 비밀번호 인증과 취약성
02 안전한 비밀 번호 점검을 통한 보안 강화
03 일회용 비밀 번호

8장. 대칭 키 암호 알고리즘
01 암호학의 기초
02 유닉스 운영체제의 암호화 기능
03 대칭 키 암호 알고리즘
04 암호 라이브러리 활용
05 대칭 키 암호 프로그래밍
06 요약

9장. 공개 키 암호 알고리즘
01 공개 키 암호 알고리즘의 개요
02 RSA 알고리즘
03 공개 키 암호 프로그래밍과 응용
04 공개 키 암호 해독
05 요약

10장. 해시 알고리즘
01 해시 알고리즘의 개요
02 해시 함수의 활용
03 전송 데이터 무결성 보장을 위한 MAC 알고리즘
04 요약

11장. 암호화 채널
01 암호 프로토콜의 개요
02 SSL의 구조
03 SSL 라이브러리 활용
04 요약

3부. 소프트웨어 개발 단계와 보안 고려 사항
12장. 소프트웨어 공학과 정보 보안
01 정보 보안 프로세스
02 소프트웨어 공학의 기초 개념
03 요약

13장. 안전한 소프트웨어 개발 방법
01 정보 보안을 고려한 소프트웨어 개발 주기
02 요약

부록 A. 참고 자료 목록
찾아보기

이 책은 안전한 프로그래밍을 위한 프로그래밍 기법들을 소개한 책입니다.

버퍼오퍼 플로우 공격을 회피하는 법이라든지, OpenSSL을 이용한 암호화 프로그램 작성 방법, SSL 통신 프로그램을 작성하는 법 등을 소개하고 있습니다

특히, OpenSSL을 이용하여 프로그램을 작성하는 방법을 소개한 책들이 거의 없어서, 오픈 소스 라이브러리를 이용한 암호화 프로그램을 작성해야 하는 분들이 참고할 만 합니다.

요즘은 보안에 대한 인식이 널리 퍼진 상태라서, 프로그래밍을 하다보면 보안 모듈에 대한 요구들이 간혹 나오곤 합니다.

이 책은 그러한 보안 모듈을 작성하기 위한 기본 지식을 얻을 수 있는 책입니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
안전한 프로그램을 만드는 Secure Coding 핵심 원리
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
안전한 프로그램을 만드는 Secure Coding 핵심 원리
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
안전한 프로그램을 만드는 Secure Coding 핵심 원리
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실