기록공간

5-3-5장. 시간 및 상태 - C 본문

자격증공부/정보처리기사_필기

5-3-5장. 시간 및 상태 - C

입코딩 2020. 9. 22. 22:59
반응형

시간 및 상태는 동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하여 시스템이 원할하게 동작되도록 하기 위한 보안 검증 항목들이다.

 

  • 이를 점검하지 않은 코딩이 유발하는 보안 약점에는 TOCTOU 경쟁 조건, 잘못된 반복문 재귀함수 등이 있다.

  • 시간 및 상태의 점검 미비로 발생하는 각종 오류들은 공격자에 의해 악용될 수 있다.

TOCTOU 경쟁 조건

TOCTOU 경쟁 조건은 검사 시점(Time Of Check)과 사용 시점(Time Of Use)을 고려하지 않고 코딩하는 경우 발생하는 보안 약점이다.

 

  • 검사 시점에는 사용이 가능했던 자원이 사용 시점에는 사용할 수 없게 된 경우에 발생한다.

  • 프로세스가 가진 자원 정보와 실제 자원 상태가 일치하지 않는 동기화 오류, 교착상태 등이 발생할 수 있다.

  • 코드 내에 동기화 구문을 사용하여 해당 자원에는 한 번에 하나의 프로세스만 접근 가능하도록 구성함으로써 방지할 수 있다.

  • 동기화 구문은 성능 감소를 동반하기 때문에 반드시 필요한 부분에 한정하여 사용해야 한다.

종료되지 않는 반복문 또는 재귀함수

반복문이나 재귀함수에서 종료 조건을 정의하지 않았거나 논리 구조상 종료될 수 없는 경우 발생하는 보안 약점이다.

 

  • 반복문이나 재귀함수가 종료되지 않을 경우 시스템 자원이 끊임없이 사용되어 자원고갈로 인한 서비스 장애 또는 시스템 장애가 발생한다.

  • 모든 반복문이나 재귀함수의 수행 횟수를 제한하는 설정을 추가하거나, 종료 조건을 점검하여 반복 또는 호출의 종료 여부를 확인함으로써 방지할 수 있다.

반응형
Comments