본문 바로가기

소프트웨어 개발(SW Dev)79

CERT C - ENV 규칙 목록 ENV Environment (ENV) - 환경 프로그램의 환경과 관련된 내용을 다루는 카테고리입니다. 특정 함수의 반환 값으로 참조된 객체를 수정하지 말 것과 같은 프로그램의 안전성과 신뢰성을 높이기 위한 규칙이 포함되어 있습니다.  RuleNumberRule Definition설명ENV32-C모든 종료 핸들러(exit handler)는 정상적으로 반환해야 합니다.C 표준은 응용 프로그램을 정상적으로 종료시키는 3가지 함수를 제공합니다. _Exit(), exit(), quick_exit(). 이러한 함수들은 종합적으로 종료 함수라고 불립니다.exit() 함수가 호출되거나 main() 진입점 함수에서 제어가 전달될 때, atexit()에 등록된 함수들이 호출됩니다(at_quick_exit()은 호출되지 .. 2024. 11. 15.
CERT C - FIO 규칙 목록 FIO Input Output (FIO) - 입출력 파일 입출력에 관련된 내용을 다루는 카테고리입니다.  파일 조작 시의 안전한 접근 방법과 오류 처리에 대한 규칙이 포함되어 있습니다.  RuleNumber Rule Definition 설명 FIO08-C열려 있는 파일에서 remove() 함수를 호출할 때 주의하세요.열린 파일에 대해 remove() 함수를 호출하는 것은 구현에 따라 정의됩니다.공격받기 쉬운 임시 파일의 이름을 숨기기 위해 열려 있는 파일을 제거하는 것이 권장되는 경우도 있습니다. (FIO21-C를 참고하세요. 공유 디렉터리에 임시 파일을 생성하지 마세요.)열린 파일을 제거해야 하는 경우 POSIX unlink() 함수와 같이 보다 강력하게 정의된 함수를 고려해야 합니다.엄격하게 준수.. 2024. 11. 14.
CERT C - 규칙 목록 MEM Memory Management (MEM) - 메모리 관리 메모리 할당과 해제에 관련된 내용을 다루는 카테고리입니다.  동적 메모리 할당 시의 안전한 사용 방법과 메모리 누수 방지에 대한 규칙이 포함되어 있습니다.  Rule NumberRule Definition설명MEM01-Cfree() 바로 뒤에 포인터에 새 값을 저장합니다.Dangling 포인터는 악용 가능한 double-free 및 access-freed 메모리 취약점으로 이어질 수 있습니다.Dangling 포인터를 제거하고 많은 메모리 관련 취약점을 방지하는 간단하면서도 효과적인 방법은 포인터가 해제된 후 포인터를 NULL로 설정하거나 다른 유효한 개체로 설정하는 것입니다.MEM30-C해제된 메모리에 액세스하지 마십시오.포인터 역참조, .. 2024. 11. 13.
CERT C - STR 규칙 목록 STRCharacters and Strings (STR) - 문자와 문자열 문자열 조작에 관련된 내용을 다루는 카테고리입니다.  문자열 조작 함수의 안전한 사용과 버퍼 오버플로우(buffer overflow) 방지에 대한 규칙이 포함되어 있습니다.  Rule NumberRule Definition설명STR03-C실수로 문자열을 자르지 마십시오.버퍼 오버플로 취약성을 완화하기 위해 복사된 바이트 수를 제한하는 대체 기능이 권장되는 경우가 많습니다. strncpy() instead of strcpy()strncat() instead of strcat()fgets() instead of gets()snprintf() instead of sprintf() 이러한 함수는 지정된 제한을 초과하는 문자열을 자릅니다... 2024. 11. 12.
728x90