제안(Recommendations)
PRE00-C. 함수형의 매크로보다는 인라인이나 정적 함수를 사용한다.
PRE01-C. 매크로에서는 매개변수에 괄호를 사용한다.
PRE02-C. 매크로로 치환될 영역은 반드시 괄호로 둘러싸야 한다.
PRE03-C. 타입 인코딩시 매크로 정의 대신 타입 정의를 사용한다.
PRE04-C. 표준 헤더 파일 이름을 재사용하지 않는다.
PRE05-C. 토큰들을 연결하거나 문자열 변환을 할때 매크로 치환을 고려한다.
PRE06-C. 헤더 파일에 항상 일클루전 가드를 둔다.
PRE07-C. 연속되는 물음표(?)를 사용하지 않는다.
PRE08-C. 중복된 헤더 파일 이름이 없는지가 보장되어야 한다.
PRE09-C. 안전한 함수를 덜 안전한 함수로 바꾸지 않는다.
PRE10-C. 복수 구문 매크로를 do-while 루프로 감싼다.
PRE11-C. 세미콜론으로 매크로 정의를 종료하지 않는다.
PRE12-C. 안전하지 않은 매크로를 정의하지 않는다.
PRE13-C. 버전 및 기능을 테스트하기 위해 표준 사전 정의 된 매크로를 사용한다.
규칙(Rules)
PRE30-C. 유니버셜 문자열 이름을 여러 문자열을 붙여서 만들지 않는다.
PRE31-C. 불안전한 매크로를 할당, 증가, 감소, 메모리 변수 접근, 함수 호출과 함께 사용하지 않는다.
PRE32-C. 매크로 인수에 내부 처리기 지시문을 사용하지 않는다.
위험평가요약
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
PRE00-C | Medium | Unlikely | Medium | P4 | L3 |
PRE01-C | Medium | Probable | Low | P12 | L1 |
PRE02-C | Medium | Probable | Low | P12 | L1 |
PRE03-C | Low | Unlikely | Medium | P2 | L3 |
PRE04-C | Low | Unlikely | Medium | P2 | L3 |
PRE05-C | Low | Unlikely | Medium | P2 | L3 |
PRE06-C | Low | Unlikely | Low | P3 | L3 |
PRE07-C | Low | Unlikely | Medium | P2 | L3 |
PRE08-C | Low | Unlikely | Medium | P2 | L3 |
PRE09-C | High | Likely | Medium | P18 | L1 |
PRE10-C | Medium | Probable | Low | P12 | L1 |
PRE11-C | Medium | Probable | Low | P12 | L1 |
PRE12-C | Low | Probable | Low | P6 | L2 |
PRE13-C | Low | Probable | Low | P6 | L2 |
PRE30-C | Low | Unlikely | Medium | P2 | L3 |
PRE31-C | Low | Unlikely | Low | P3 | L3 |
PRE32-C | Low | Unlikely | Medium | P2 | L3 |
출처: https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=1064
'보안 > 시큐어코딩' 카테고리의 다른 글
[CERT C 시큐어코딩표준-03] 표현식(EXP) (0) | 2013.12.13 |
---|---|
[CERT C 시큐어코딩표준-02] 선언과 초기화(DCL) (0) | 2013.12.13 |
[CERT C 시큐어코딩표준-00] 표준사용법 (0) | 2013.12.13 |
[CERT JAVA 시큐어코딩표준-17] 기타(MSC) (0) | 2013.12.10 |
[CERT JAVA 시큐어코딩표준-16] 런타임 환경(ENV) (0) | 2013.12.10 |