CERT C 프로그래밍 2/e – 버그 없는 안전한 소프트웨어

検出された言語がありません。

入力言語を確認してください。CERT Coding Standard, Second Edition, The 98 Rules for Developing Safe, Reliable and Secure Systems (ソフトウェアエンジニアリングにおけるSEIシリーズ)CERT Coding Standard, Second Edition, The: 98 Rules for Developing Safe, Reliable, and Secure Systems (ソフトウェアエンジニアリングにおけるSEIシリーズ) www.amazon.comCERT Coding Standard, Second Edition, The 98 Rules for Developing Safe, Reliable and Secure Systems (ソフトウェアエンジニアリングにおけるSEIシリーズ)CERT Coding Standard, Second Edition, The: 98 Rules for Developing Safe, Reliable, and Secure Systems (ソフトウェアエンジニアリングにおけるSEIシリーズ) www.amazon.comCERT Coding Standard, Second Edition, The 98 Rules for Developing Safe, Reliable and Secure Systems (ソフトウェアエンジニアリングにおけるSEIシリーズ)CERT Coding Standard, Second Edition, The: 98 Rules for Developing Safe, Reliable, and Secure Systems (ソフトウェアエンジニアリングにおけるSEIシリーズ) www.amazon.com책 소개 코딩 과정에서 오류 및 취약점을 유발하는 안전하지 않은 프로그램 코드를 제거하여 안전성, 신뢰성, 보안성을 갖춘 C프로그램을 개발할 수 있는 효과적인 방법을 제공합니다. 관련 규칙은 제목과 설명, 부적절한 코드 예제, 규칙에 부합하는 해결 방법을 코드 예제로 설명합니다. 맞춤형 소프트웨어 개발을 위한 이해관계자의 요구사항을 정의하는 데 사용할 수 있으며, 안전성과 신뢰성이 요구되는 시스템 개발에서 지켜야 할 사항을 리스크 평가 항목과 우선순위에 따라 정리하고 있습니다.책 소개 코딩 과정에서 오류 및 취약점을 유발하는 안전하지 않은 프로그램 코드를 제거하여 안전성, 신뢰성, 보안성을 갖춘 C프로그램을 개발할 수 있는 효과적인 방법을 제공합니다. 관련 규칙은 제목과 설명, 부적절한 코드 예제, 규칙에 부합하는 해결 방법을 코드 예제로 설명합니다. 맞춤형 소프트웨어 개발을 위한 이해관계자의 요구사항을 정의하는 데 사용할 수 있으며, 안전성과 신뢰성이 요구되는 시스템 개발에서 지켜야 할 사항을 리스크 평가 항목과 우선순위에 따라 정리하고 있습니다.목차 1장. 전 처리기__PRE30-C.유니버설 문자 이름을 여러 문자열에 찍어 만들지 마라__PRE31-C. 안전 아니라 거시로 매개 변수에 따른 부수 효과를 피한다__PRE32-C.함수형 매크로 호출에 전처리 지시자를 사용하지 마라.선언과 초기화__DCL30-C.객체를 선언할 때 적절한 지속 공간을 지정하는__DCL31-C.식별자를 사용하기 전에 먼저 선언하라__DCL36-C. 연결(링크)분류에서 충돌하는 식별자를 선언하지 않는다__DCL37-C.예약어를 식별자로 선언하거나 정의하거나 하지__DCL38-C.유연한 배열의 멤버를 선언할 때 정확한 문법을 사용하세요__DCL39-C. 구조체 패딩에서 정보 누출을 피하세요__DCL40-C.동일한 함수나 객체에 호환성 없는 선언을 생성하지 마__DCL41-C. switch구문에 첫 case절 앞에 변수를 선언하지는3장. 표현식__EXP30-C. 부수 효과의 평가 순서에 의존하지 마라_EXP32-C. volatile이 아니라 초기 객체에 접근 없어_Pile객체_Pol.포인터를 더 엄격하게 할당된 포인터 유형으로 변환하지 마__EXP37-C. 인자의 정확한 개수와 타입에서 함수를 호출하는__EXP39-C. 호환성 없는 타입의 포인터 변수에 접근하지 마__EXP40-C. 상수 객체를 수정하지 마__EXP42-C. 파디은그데ー타을 비교하지 마__EXP43-C.restrict에 한정된 포인터를 사용하면서 정의되지 않은 동작을 피한다_EXP44-C.sizeof, Align에서 정의되지 않은 동작을 피한다_EXPener-P45-C.unsigned정수 연산이 포장되지 않도록 주의하다__INT31-C. 정수 변환에서 데이터가 상실되거나 잘못 처리하지 않도록 주의해라__INT32-C. signed정수의 연산이 오버 플로 하지 않도록 보장하는__INT33-C. 나눗셈과 나머지 연산에서 0으로 나눌 에러가 발생하지 않도록 하는_INT34-C. 물과 피 연산자의 비트보다 많은 비트를 이동한_INT35-C. 정확한 정수 정밀도를 사용하기 위한 정수 점 또는 부동 소수 점에서_FL포인터에 주의한다.부동 소수 점 변수를 반복 문의 카운터로 사용하지 마__FLP32-C.수학 함수에서 도메인 오류나 영역 에러를 찾고 예방하는__FLP34-C. 부동 소수 점 표시가 새로운 유형의 범위 내에 속하는지를 확인하는__FLP36-C. 정수 값을 부동 소수 점으로 변환할 때의 정밀도를 보존하는 6장.배열__ARR30-C.경계를 넘어선 포인터나 배열의 첨자를 만들거나 사용하거나 하지__ARR32-C. 가변 배열로 크기를 나타내는 인자가 유효한 범위에 있는 것을 보장하는__ARR36-C. 같은 배열을 참조하지 않으면 2개의 포인터를 제외하거나 비교한__ARR37-C.배열이 아닌 객체에 대한 포인터로 정수를 더하거나 빼지 마라__ARR38-C. 라이브러리 함수가 효과적이지 않은 포인터를 만들지 않도록 보장하는__ARR39-C. 포인터로 스케일링된 정수를 더하거나 빼지 마라, 7장. 문자와 문자열__STR30-C.문자열 리터럴을 고치려고 하지 마라__STR31-C. 문자열의 위한 공간이 문자 데이터와 노르 종료 문자를 넣는 데 충분하길 보장하는__STR32-C)문자열을 처리하는 라이브러리 함수에 노르 종료 문자가 없는 문자열을 전달하지 마__STR34-C. 문자열을 보다 큰 타입의 정수로 변환하기 전에 unsigned char유형으로 캐스팅한다__STR37-C. 문자를 처리하는 함수에 전달되는 인자는 반드시 unsigned char로 표현해야 할__STR38-C. 와이드라고 우치로 유형의 문자열과 함수를 혼동하지 마라 8장.메모리 관리(MEM)__MEM30-C. 해제된 메모리에 접근하지 마라__MEM31-C. 동적으로 할당된 메모리는 더 이상 필요 없을 때에 해제하는__MEM33-C.유연한 배열 멤버를 포함한 구조체를 동적으로 할당하고 복사하는__MEM34-C. 동적으로 할당된 메모리만 해제하는__MEM35-C.객체에 충분한 메모리를 할당__MEM36-C. realloc()호출에서 오브젝트 및을 수정한 9장.입력과 출력(FIO)__FIO30-C.형식 문자열에서 사용자 입력을 배제한다__FIO31-C. 이미 열고 있는 파일을 다시 열지__FIO32-C.파일에만 적용 가능한 연산을 장치에 대해서 하는__FIO34-C. 파일에서 읽어야 할 문자와 EOF또는 WEOF를 구별하는__FIO37-C.fgets()또는 fgetws()이 성공시에 하늘 아닌 문자열을 돌려준다고 가정한__FIO38-C. 입출력 FILE객체를 복사한__FIO39-C. 플래시 및 위치 조정 함수 호출 없이 스트림에서 입출력을 번갈아 하는__FIO40-C.fgets()또는 fgetws()실패 시, 문자열을 리셋 할__FIO41-C. 부수 효과가 있는 스트림 인자에서 getc(), putc(), getws(), putwc()를 불러낸__FIO42-C. 더 이상 필요 없게 된 파일이 적절하게 닫고 있는지 확인한다__FIO44-C. fsetpos()에는 fgetpos에서 반환된 값만 사용하는__FIO45-C_C_경쟁한 파일에 접속한다.함수에서 반환 값을 참조하는 객체를 수정하지 마__ENV31-C. 환경 변수의 값을 무효화할 수 있는 연산을 했다면 더 이상 그 값에 의존한__ENV32-C. 모든 exit장치는 반드시 반환으로 종료해야 한다__ENV33-C. system()를 불러낸__ENV3추천사”시스코에서는 보안 코딩 표준으로서 CERT C코딩 표준을 채용했다.보안 프로그램의 라이프 사이클에 있어서 중요한 컴포넌트이다, 본서에서 설명하는 코딩 표준은 복잡한 소프트웨어의 보안 관련 문제를 실제 사례와 함께 적용하기 쉽게 상세히 나누어 설명하고 있다.C와 C++프로그래밍 언어에서 보안성과 각종 위험으로 회복력이 강한 소프트웨어를 작성하고자 하는 개발자에게 필수적인 보조 교재이다.”-에드워드·D·파라다이스(시스코 시스템스의 엔지니어링, 리스크 관리, 정보 및 개발 관련 부사장)”나는 CERT안전한 코딩·이니셔티브(CERT Secure Coding Initiative)의 열렬한 지지자이다.프로그래머는 정확성, 명확성, 유지 보수성, 성능, 또 안정성에 관해서도 여러 방식으로 조언을 구할 수 있다.그러나 특정 언어의 특징이 보안에 미치는 영향은 다루지 않고 있다.이 책이 바로 이런 요구를 충족시키고 주는 책이다”-란디·마이야즈(ANSIC회장)”몇년간 우리는 CERT/CC를 통해서 많은 보안 문제에 대한 조언을 문서로 등록할 수 있었다.CERT는 최고의 기술 전문가의 제언을 책에 수록하고 새로운 어플리케이션에서 발생할 수 있는 문제를 예방하고 기존의 시스템을 안전하게 유지하도록 프로그래머와 매니저에게 실용적인 가이드 역할을 한다.”-크리스·탭(LDRALtd.필드 아프리케ー션즈 엔지니어)”이 책은 오늘의 소프트웨어 시스템이 실제 상황에서 어떻게 실패할지를 정확하게 제시하고 우리에게 꼭 필요한 전문 정보를 모아 놓았다.내부적으로 안전한 코딩 가이드 라인을 구축하기 위한 시작 단계로 우선 이 책을 읽어 보자.소프트웨어의 보안 영역에서는 무지한 부분이 자주 우리를 괴롭힐 것이다.다른 어디서나 얻지 못한 이 정보를 전개하기 바란다.”-존·맥도날드(『 소프트웨어 보안 평가 기술(The Art of Software Security Assessment)』의 공저자)추천문 ‘시스코에서는 보안 코딩 표준으로서 CERT C 코딩 표준을 채택했다. 보안 프로그램의 라이프사이클에 있어서 중요한 컴포넌트이며, 본서에서 설명하는 코딩 표준은 복잡한 소프트웨어의 보안 관련 문제를 실제 사례와 함께 적용하기 쉽도록 상세하게 나누어 설명하고 있다. C와 C++ 프로그래밍 언어로 보안성과 각종 위험에 회복력이 강한 소프트웨어를 작성하고자 하는 개발자에게 필수적인 참고서이다.” – 에드워드 D. 파라다이스(시스코 시스템즈의 엔지니어링, 리스크 관리, 정보 및 개발 관련 부사장) “나는 CERT 안전한 코딩 이니셔티브(CERT Secure Coding Initiative)의 열렬한 지지자이다. 프로그래머는 정확성, 명확성, 유지보수성, 성능, 심지어 안정성에 관해서도 다양한 방법으로 조언을 구할 수 있다. 그러나, 특정 언어의 특징이 시큐러티에 미치는 영향은 취급하고 있지 않다. 이 책이야말로 바로 이런 요구를 충족시켜 주는 책이다”-랜디 마이어스(ANSIC 회장) 수년간 우리는 CERT/CC를 통해 수많은 보안 문제에 대한 조언을 문서로 등록할 수 있었다. CERT는 최고의 기술전문가의 제언을 책에 수록해 새로운 어플리케이션에서 발생할 수 있는 문제를 예방하고 기존 시스템을 안전하게 유지할 수 있도록 프로그래머와 매니저에게 실용적인 가이드 역할을 해준다.” – 크리스 탭(LDRALtd). 필드 애플리케이션스 엔지니어) “이 책은 오늘날의 소프트웨어 시스템이 실제 상황에서 어떻게 실패하는지를 정확하게 보여주고 우리에게 꼭 필요한 전문 정보를 모아놓았다. 내부적으로 안전한 코딩 가이드라인을 구축하기 위한 시작 단계로 먼저 이 책을 읽어보자. 소프트웨어 보안 영역에서는 무지한 부분이 종종 우리를 괴롭힐 것이다. 다른 어디에서도 얻을 수 없었던 이 정보를 펼쳐 주기 바란다. -존 맥도널드(소프트웨어 보안 평가 기술(The Art of Software Security Assessment)의 공저자)저자 및 역자소개 로버트 C. 시코드 (Robert C. Seacord) (저자) 저자 파일 신간공지신청카네기 멜론 대학(Carnegie Mellon University)소프트웨어 엔지니어링 연구소(SEI, Software Engineering Institute CERT)부서의 안전한 코딩 기술 책임자이다.카네기 멜론 대학의 정보 네트워킹 연구소와 컴퓨터 과학 학부 조교수이다.현재까지 『 C&C++보안 코딩 』(에이콘, 2015)『 자바 시큐어 코딩 가이드 라인 』(인피니티 북스, 2017)등 총 8권의 책을 썼다.소프트웨어 보안과 컴포넌트 기반 소프트웨어 엔지니어링, 웹 기반의 시스템 설계, 옛 체계의 현대···상세:<CERT C프로그래밍 2/e>,<자바 시큐어 코딩 가이드 라인>,<C&C++보안 코딩>… 그렇긴전 20종(모두 추정)/·영창(번역자)저자 파일 신간 알리미 신청 롯데 정보 통신에서 ERP시스템 개발 때문에 7년 프로그래머로 일하면서 서던 캘리포니아 대학교의 Software Engineering전공으로 대학원을 졸업했다.현재는 미국 캘리포니아에서 비즈니스 솔루션 개발 및 시스템 컨설팅을 위한 Cloud Cornerstore를 설립하고 고객에게 다양한 IT서비스를 제공하고 있다.로버트·C·시 코드(지웅이)의 말 이 책은 소프트웨어 개발시에 발생하는 프로그램 오류 및 취약성을 유발하는 불안정한 프로그램 코드를 제거하고 안전성, 신뢰성, 보안성을 갖춘 C프로그램을 개발할 효과적인 방법을 제시한다.책에서 명시하는 표준 규칙은 C언어로 소프트웨어를 개발할 때 프로그램의 안전성과 신뢰성, 보안성을 보장할 수 있다.물론 CERT C프로그래밍 표준을 준수하는 동시에 안전하고 보안의 높은 소프트웨어 설계를 따른 필요가 있다.일반적으로 보안 관련 시스템은 프로그래밍의 표준 규칙보다는 소프트웨어 요구 사항에 따른 엄격한 코딩 규칙을 따른다.예를 들면, 모든 메모리의 정적 할당을 요구하는 시스템은 신뢰성과 튼튼한 구조 및 보안 공격에 대한 방어 능력을 가진 최적화된 코딩 표준을 따른다.표준에 해당하는 관련 규칙은 제목과 설명, 부적절한 코드 예(nonCompliant code example)규칙에 맞는 해결 방법(Compliant solution)으로 구성한다.제목은 함축적이고 모호하지도 않고 규칙에 대한 설명을 내포해야 하며 설명은 관련 규칙의 제안과 판단, 평가의 기준을 명시한다.부적절한 코드 예제는 관련 규칙에 어긋나는 부분을 예제를 통해서 설명한다.마지막으로 규칙에 맞는 해결 방법은 관련 규칙에 적합하거나, 기타에 적합한 해결 방법을 코드 예를 통해서 나타낸다.관련 규칙이 문서가 충분히 입증되고 권고될 수 있는 것은 C언어 코딩 표준의 기본 요소이다.코딩 표준은 프로그래머 개인적 선호도보다는 프로젝트나 조직, 이해 관계자의 요구 사항에 의해서 정의된 통일된 규칙 및 권고이며 프로그래머가 따라야 하는 코딩 표준이다.확정된 코딩 표준은 소스 코드를 검증하기 위한 툴로서 사용된다.검증은 수동 또는 자동적인 프로세스에서 열린다.CERT코딩 표준은 산업 전반에 널리 사용되는 국제 표준 가이드이다.시스코 시스템스(Ciso Systems)는 2011년 9달의 SecCon콘퍼런스에서 제품 개발을 위한 코딩 표준으로서 CERT C안전한 코딩 표준(CERT CSecure Coding Standard)를 채용하겠다고 밝혔다.최근 오라클(Oracle)도 현재 사용 중인 보안 코딩 표준에 CERT보안 코딩 표준을 사용하겠다고 밝혔다.번역자 리뷰는 왜 코딩 표준에 따라야 하는가?만약, 프로그래머가 정의되지 않는 코딩 표준에서 자신만의 방법으로 코딩을 한다면 프로그램 논리의 안에 인지되지 않은 버그와 실책으로 보안 공격에 쉽게 노출할 수 있다.또 소프트웨어의 성능 저하에 따른 사용자, 소프트웨어, 하드웨어 시스템 전체에 악영향을 미칠 가능성이 있다.본서에서는, 소프트웨어 개발시에 발생된 버그나 프로그램의 취약성을 유발하는 코드를 제거하고 안전하고 신뢰할 수 있는 C프로그램을 개발하는 방법을 제시한다.표준에 해당하는 관련 규칙을 제목과 설명, 부적절한 코드 예제, 규칙에 부합하는 해결 방법으로 구성하는 독자들이 실용적으로 이해할 수 있도록 정리했다.또 프로젝트 때 이해 관계자의 요구 사항의 정리와 소스 코드를 검증하기 위한 툴로서 사용하기 때문에 위험 평가 항목을 담고 있다.개발자의 부적절한 코드에 의해서 발생된 잠재적 위험을 알리고 위험 요소를 제거하기에 예상되는 비용도 함께 제시하고 있다.리스크 평가 항목은 개발 팀 내에서 문제 해결을 위한 우선 순위를 결정하는데 유용하게 사용할 수 있다.CERT코딩 표준은 현재 산업 전반에 널리 사용된 국제 표준 가이드인, C코드 개발자가 효과적으로 활용할 수 있는 길잡이가 될 것이다.이해 관계자의 요구 사항을 효과적으로 정리하고 버그 없이 안전하고 보안 공격에 견딜 수 있는 견고한 소프트웨어 개발을 원하는 개발자에게 참고할 만한 책이라고 생각한다.출판사소개 에이콘출판도서 모두 보다 신간 공지 신청 최신작 : <실전 분산 추적>, <애자일 소프트웨어 아키텍트의 길>, <페도라에서 실습하는 리눅스 시스템 관리 Vol.1> 등 총 1,304종 대표분야: 프로그래밍 언어 7위(브랜드지수 124,954점), 그래픽/멀티미디어 16위(브랜드지수 16,438점)출판사소개 에이콘출판도서 모두 보다 신간 공지 신청 최신작 : <실전 분산 추적>, <애자일 소프트웨어 아키텍트의 길>, <페도라에서 실습하는 리눅스 시스템 관리 Vol.1> 등 총 1,304종 대표분야: 프로그래밍 언어 7위(브랜드지수 124,954점), 그래픽/멀티미디어 16위(브랜드지수 16,438점)출판사소개 에이콘출판도서 모두 보다 신간 공지 신청 최신작 : <실전 분산 추적>, <애자일 소프트웨어 아키텍트의 길>, <페도라에서 실습하는 리눅스 시스템 관리 Vol.1> 등 총 1,304종 대표분야: 프로그래밍 언어 7위(브랜드지수 124,954점), 그래픽/멀티미디어 16위(브랜드지수 16,438점)

error: Content is protected !!