728x90
반응형
SMALL

SW개발보안가이드중 구현단계에서의 점검항목은 크게 7가지 이다.  (입보시에코캡아)
  1. 입력데이터 검증 및 표현
  2. 보안기능
  3. 시간 및 상태
      3-1. 경쟁조건: 검사시점과 사용시점 (TOCTOU)
      3-2. 종료되지 않은 반복문 또는 재귀함수
  4. 에러처리

  5. 코드오류
  6. 캡슐화
  7. API 오용

이 장에서는 "3.시간 및 상태" 에 대한 점검항목을 설명한다.



3-1. 경쟁조건: 검사시점과 사용시점 (TOCTOU)

구분 설명
원인/영향 병렬실행환경에서 자원을 검사하는 시점(TOC)과 사용하는 시점(TOU)의 상태가 
달라서 교착상태에 빠지거나 동기화오류가 발생할 수 있다.
대응 ① 공유자원에 대해서는 여러 스레드의 접근을 위해서 동기화 구문을 적용한다.
② 동기화는 성능에 영향을 미치므로 최소한의 임계코드 주변에만 적용한다.
    (SYNCHRONIZED)



3-2. 종료되지 않은 반복문 또는 재귀함수

구분 설명
원인/영향 재귀함수의 순환횟수 또는 귀납조건을 설정하지 않아 무한루프에 빠지게 되어 자원을 고갈

취약) int factorial (int i) {
        return I * factorial(ii-1);
    }

안전) int factorial (int i) {
        if (I <= 1) {     
           return I;
        }
        return I * factorial(ii-1);
    }
대응 ① 재귀함수 사용시 재귀호출횟수를 제한하거나, 초기값을 설정하여 재귀호출을 제한한다

 

728x90
반응형
LIST

+ Recent posts