서브메뉴

본문

버그 없는 안전한 소프트웨어를 위한 CERT 자바 프로그래밍
버그 없는 안전한 소프트웨어를 위한 CERT 자바 프로그래밍
저자 : 프레드 롱|드루브 모힌드라|데이비드 수오보다|로버트 C. 시코드|딘 서덜랜드
출판사 : 한빛미디어
출판년 : 2012
ISBN : 9788979149500

책소개

『버그 없는 안전한 소프트웨어를 위한 CERT 자바 프로그래밍』은 17개의 장을 통해 자바의 핵심 영역별로 구체적인 규칙을 자세하게 설명한다. 각 영역에서 부적합 예제와 문제를 올바르게 해결한 적합 예제를 보여준다. 각 규칙은 부적합 코드가 일으키는 심각성, 악용할 수 있는 취약점을 발생시킬 수 있는 가능성을 설명한다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

1. 이 책이 제시하는 핵심 내용
보안 취약점을 사전에 제거하는 방어적 프로그래밍

2. 어떤 독자를 위한 책인가?
-. 버그 없는 안전한 소프트웨어를 작성하는 데 필요한 코딩 기법을 알고 싶은 자바 개발자
-. 보안 관련 회사나 대학원 종사자, 보안 컨설턴트, 보안 프로그래밍 강사

3. 도서 특징
일반적인 코딩 패턴에서 나타나는 보안 취약점을 사전에 제거하는 방어적 프로그래밍
컴퓨터 비상 대응팀(CERT)은 다양한 소프트웨어에서 취약점을 유발하는 안전하지 못한 코딩 습관이 반복되는 것을 보았다. 이 책에서 제시하는 지침을 적용하면 취약점을 유발하는, 안전하지 못한 코딩 습관을 제거해 공격에 더 잘 견디는 튼튼한 고품질 시스템을 만들 수 있다.

이 책에서 제시하는 17개 장을 통해 자바의 핵심 영역별로 구체적인 규칙을 자세하게 설명한다. 각 영역에서 부적합 예제와 문제를 올바르게 해결한 적합 예제를 보여준다. 각 규칙은 부적합 코드가 일으키는 심각성, 악용할 수 있는 취약점을 발생시킬 수 있는 가능성을 설명한다.

코딩 표준에서는 자바 프로그래밍 언어와 라이브러리를 포함한 자바 SE 6 플랫폼에 대한 안전한 코딩 규칙을 정의하고, 자바 SE 7 플랫폼에 새로 추가된 기능에 대해서도 설명한다. javax 패키지가 제공하는 표준 확장 API와 관련된 보안 문제, lang, util, 컬렉션, 동시성 유틸리티, 로그, 리플렉션, 정규 표현식, 압축, 파일 입출력, JMX, JNI, 직렬화, JAXP 라이브러리 등에 적용할 수 있는 보안 문제까지 포괄적으로 설명한다.

행정안전부, SW 개발단계부터 보안취약점 제거(시큐어 코딩) 의무화
2012년 12월부터 행정기관 등에서 추진하는 개발비 40억 원 이상의 정보화 사업에 소프트웨어 개발보안 적용을 의무화하고 단계적으로 의무 대상을 확대하여 2015년에는 감리대상 전 정보화사업에 소프트웨어 개발보안을 적용한다. 보안 코딩은 일반적인 코딩 패턴에서 나타나는 취약점을 사전에 예방하는 습관일 뿐 아니라 현업에서의 요구사항이 되고 있다.

“자바 세계에서는 보안을 부가 기능으로 생각하지 않습니다. 언제나 보안을 고려해야 합니다. 보안을 염두에 두지 않는 개발자가 결국 문제를 일으킵니다. 그러나 보안 기능이 준비되어 있다고 해서 소프트웨어가 저절로 안전해지는 것은 아닙니다. 『버그 없는 안전한 소프트웨어를 위한 CERT 자바 프로그래밍』은 수년간 발전해온 표준적인 관습을 요약한 해설서입니다. 그렇다고 해서 이론적인 연구 논문이나 제품 안내 자료도 아닙니다. 이 책은 중요한, 개발에 필수적인, 실전에서 검증된, 기업 규모의 프로젝트에 적용할 수 있습니다.”
- 제임스 고슬링(James A. Gosling), 자바 프로그래밍 언어의 아버지

4. 관련도서
『테스트 주도 개발: 고품질 쾌속개발을 위한 TDD 실천법과 도구』(한빛미디어, 2010)
『Blog2Book, 자바 개발자도 쉽게 즐겁게 배우는 테스팅 이야기』(한빛미디어, 2009)
[교보문고에서 제공한 정보입니다.]

목차정보

90년대 들어 일반인도 인터넷에 접속할 수 있게 되면서 인터넷은 무한한 탐구의 장이 되었습니다. 초기에 사용한 gopher, archie 등 텍스트 터미널 기반의 서비스가 Mosaic과 HTML/WWW를 시작으로 그래픽 기반의 환경으로 넘어가면서, 일반인도 사용하기 쉬워지고 다양한 멀티미디어를 쉽게 공유하고 확산시킬 수 있게 되었습니다. 저도 WWW Virtual Library에서 당시에 다른 방법으로 구하기에는 너무 비쌌던 논문을 쉽게 구해 공부하고 연구할 수 있어 무사히 학위 논문을 썼던 기억이 납니다.
그러나 인터넷에 실시간으로 다양한 정보가 넘쳐 나고, 금융 거래나 각종 중요한 문서와 정보를 교환하게 되면서 인터넷이 지닌 좋은 기능뿐만 아니라 나쁜 기능도 활발해졌습니다. 유닉스 계열의 r-시리즈 명령의 취약점을 장난처럼 사용하고, 여러 버그를 이용해 시스템에 몰래 들어가서 남의 정보를 엿보던 장난은 이제는 추억 속 금지된 불법 행위가 되었습니다. 현재는 반정부 활동의 일환으로 정부 사이트를 해킹하고 정부가 주도해 특정 기업이나 국가 정보를 캐내는 활동이 많아지고 있습니다.
최근 한국의 대형 포털과 은행 사이트 등이 해킹당해 개인 정보와 금융 정보가 파괴 및 유출되면서 보안이 시급하고 중요한 문제로 다시 부각되고 있습니다. 그런데 해킹할 때 사회공학적 기법을 사용하기도 하지만, 시스템이나 애플리케이션의 보안 취약점이 큰 약점이 되기도 합니다. 공격받는 취약점의 2/3 가량은 소프트웨어를 구현할 때 생기는 오류에 기인하는 버그에서 나온다고 분석한 보고서도 있습니다. 그리고 시스템의 취약점을 악용하는 해커의 능력도 상당히 발전했습니다. 2001년도에 한국을 강타했던 CodeRed 웜의 경우 취약점이 발견된지 약 1년 반만에 이 취약점을 공격하는 코드가 나왔습니다. 그러나 7~8년 전부터 제로데이 어택 Zero-Day Attack 이라는 말이 유행할 정도로, 이제 해커는 소프트웨어 취약점을 발견하는 즉시 이 취약점을 악용하는 코드를 만들 수 있게 되었습니다. 그러므로 소프트웨어를 개발할 때 아예 취약점과 버그 없이 개발하는 것이 중요해졌습니다.
이 책은 자바로 구현한 애플리케이션을 보안에 취약하지 않게 만드는 좋은 프로그래밍 규칙과 습관을 입력 검증, 수치 연산, 객체 관리, 스레드와 락 사용 등 여러 분야별로 체계적으로 분류하여 설명하고 있습니다. 한국의 개발 환경을 보면 소프트웨어를 개발하고 릴리스하기 전에 전문가 그룹이 소스를 면밀히 검토하고 코드 안전성을 검증하는 과정을 거치기 어렵습니다. 이 책에서는 CERT가 C와 C++ 언어로 안전하게 코딩하는 규칙을 정하고, 소스 코드 보안 검증 서비스를 운용해온 경험을 자바 언어에 적용해 지금까지 자바 프로그래머가 범해왔고 범할 수 있는 오류를 짚어내어 안전하게 코딩하는 규칙을 예제와 함께 설명합니다. 이 책 서문에서도 밝히고 있듯이 이 책이 기업이나 기관에 적용할 안전한 자바 코딩 표준의 좋은 안내서로 활용되길 바랍니다.
_강권학
[교보문고에서 제공한 정보입니다.]