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

한빛출판네트워크

IT/모바일

보안은 잘 작성된 코드로부터 시작됩니다. 『Secure Programming Cookbook for C and C++』

한빛미디어

|

2003-08-28

|

by HANBIT

5,605

약 3년에 걸쳐 미국 정부 및 사설 기관에서는 암호 스니핑, 스푸핑, 버퍼 오버플로우, 서비스 거부, 바이러스 웜 등을 비롯한 각종 공격에 대항하는 네트워크 보안에만 약 210억 달러로 추정되는 예산을 소모할 계획이다. 이와 같은 엄청난 비용투입에도 불구하고 전문가들은 대부분의 보안 문제가 단 하나의 치명적인 원인에 의해 발생한다고 입을 모아 역설하고 있다. 그리고 여기서 말하는 그 치명적인 원인이란 제대로 작성되지 않거나 제대로된 테스트 과정을 거치지 않은 불안정한 코드이다.

이처럼 코드 자체에 결함이 있다면 네트워크 수준에 있는 시스템 관리자들이 관여할 문제가 아니다. 이는 공격자들이 코드를 실행할 수 없도록 견고한 코드를 작성해야 하는 프로그래머들이 책임질 문제이다. 저자는 이와 같은 현상에 대해 다음과 같이 언급하고 있다. “전문가라 하더라도 견고한 코드를 작성하는 일은 정말 어려운 과제임에 틀림없다. 안타까운 것은 프로그래머들이 자신들은 항상 정확한 코드를 작성하고 있으며 아주 가끔씩만 실수를 한다는 착각 속에 살고 있는 현실이다. 실제로 코드를 살펴보면 거의 모든 코드에서 약간의 실수는 얼마든지 쉽게 발견할 수 있다.” 또한 저자는 최근 발표된 NIST 스터디에 대해 지적하면서, 형편없이 작성된 소프트웨어를 패치하고 커스터마이징 하는데 미국에서만 연간 600억 달러의 돈이 소요된다고 한다.


Secure Programming Cookbook for C and C++

참고 도서

Secure Programming Cookbook for C and C++
John Viega, Matt Messier




이 책의 저자인 비에가(Viega)는 프로그래머들이 작성한 코드의 보안상 취약점을 탐색하고 수정하는 도구를 처음으로 만든 소프트웨어 보안 분야의 선구자이다. 이 책에서는 공동 집필자인 맷 메시에르(Matt Messier)와 함께 실무 접근법을 사용하여 견고한 코드를 작성하는 방법을 잘 설명하고 있다. 이런 맥락에서 이 책을 단순하게 원리와 가이드라인만 옮겨놓은 개념서로 이해해서는 안될 것이다. 이 책은 가장 널리 사용되는 프로그래밍 언어인 C와 C++에 대한 실례를 중점적으로 설명한 실무 레퍼런스이다.

저자에 따르면 튼튼한 소프트웨어를 작성하는 방법을 알려주는 책들은 이미 시중에도 몇몇 권 나와있다고 한다. 실제로 이런 책들 중에는 상당히 괜찮은 것들도 있지만 대부분이 코드 자체가 아니라 원리원칙에만 초점을 맞추고 있는 것이 안타깝다. 원리 원칙에만 매달린 책들 중에서 애플리케이션에 SSL이 가능하게 해주는 방법을 보여주는 책이 있을리가 없다. 복잡한 작업까지 일일이 보여주는 책은 없단 말이다.

이 책은 프로그래머들이 애플리케이션에 삽입할 수 있는 코드 솔루션을 직접 보여주고 있다. 코드에서 흔하게 발생하는 문제들을 하나씩 제거하는 방법을 샘플이 작동하는 방법 및 이유와 함께 잘 설명하고 있다. 또한 이 책이 다루는 보안 문제들의 범위 또한 암호화(대칭키 공개키 모두), 난수표, 안전 초기화, 인풋 허가, 네트워킹, 인증, 접근 제한, 이메일 등등…으로 광범위하다. 이 외에도 (리눅스를 포함한) 유닉스와 윈도우 환경 모두에서 C/C++ 프로그램을 안전하게 작성할 수 있는 200가지가 넘는 팁들을 수록하고 있다.

이미 보안의 기본 사항은 잘 이해하고 있지만 정말 이상하게도 똑같은 실수를 계속해서 되풀이하는 프로그래머들이 있다. 또한 대부분의 보안문제는 이와 같이 기존에도 수 없이 발생한 것들이다. 실제로 새로운 문제들은 정말 보기 드문 케이스이다. 이 책은 바로 이런 사소한 실수를 잡아주는 책이다.
TAG :
댓글 입력
자료실