티스토리 뷰
반응형
가. 원인
- 재귀함수의 순환횟수를 제어하지 않아 자원을 과다하게 사용하는 경우
나. 영향
- 귀납조건 없이 재귀함수를 호출하여 무한루프에 빠짐
- 자원고갈을 유발하여 정상 서비스 불가
다. 보안대책
- 재귀함수 사용 시 호출횟수를 제한
라. 안전한 코드
1. 재귀함수 종료조건
int factorial( int num ) { // 팩토리얼 계산을 위한 재귀함수의 종료조건 적용 if ( num <= 1 ){ return 1; } return num * factorial( num - 1 ); }
|
마. 진단방법
<재귀함수 종료조건 확인>
1. 재귀함수의 사용여부를 확인
2. 재귀함수 내의 제어문을 통해 종료가 가능한지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 함수명, 파라미터 갯수, 파라미터 자료형이 일치하는 자신을 호출하는 경우
<오탐 케이스>
1. 재귀함수가 아닌 다른 종류의 파라미터 갯수, 파라미터 자료형의 동일 함수를 호출할 경우
2. 제어조건이 존재하여 제어가 되는 재귀인 경우
반응형
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 에러처리 02 - 오류 상황 대응 부재 (0) | 2019.10.07 |
---|---|
[구현보안] 에러처리 01 - 오류 메시지를 통한 정보 노출 (0) | 2019.10.07 |
[구현보안] 시간 및 상태 01 - 경쟁조건: 검사시점과 사용시점(TOC-TOU) (0) | 2019.10.06 |
[구현보안] 보안기능 16 - 반복된 인증시도 제한 기능 부재 (0) | 2019.10.06 |
[구현보안] 보안기능 15 - 무결성 검사없는 코드 다운로드 (0) | 2019.10.06 |
댓글
반응형
최근에 올라온 글
- Total
- Today
- Yesterday