🔐 소프트웨어 개발 보안 구축 #10 - 시간 및 상태

2020. 7. 14. 16:59컴퓨터언어/소프트웨어공학

728x90
반응형

 

👍 시간 및 상태란?

 

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

 

다음은 시간 및 상태의 점검 미비로 발생할 수 있는 보안약점이다.

TOCTOU 경쟁조건
(Time Of Check, Time Of Use)
❗️ 검사시점과 사용시점의 격차를 고려하지 않고 코딩한다면, 사용이 가능했던 자원이 사용할 수 없게 되거나, 프로세스가 가진 자원 정보가 실제 자원 상태와 일치하지 않는 동기화 오류, 교착상태 등이 발생하는 현상

✅ 코드 내에 동기화 구문을 사용하여 해당 자원에는 한 번에 하나의 프로세스만 접근 가능하도록 구성함으로써 방지. 단, 동기화 구문은 성능감소를 동반하기 때문에, 반드시 필요한 부분에 한정하여 사용해야 한다.
종료되지 않는 반복문 또는 재귀함수 ❗️ 반복문이나 재귀함수에서 종료 조건을 정의하지 않았거나 논리 구조상 종료될 수 없는 경우, 시스템 자원이 끊임없이 사용되어 자원고갈로 인한 서비스 장애 또는 시스템 장애가 발생하는 현상
✅ 모든 반복문이나 재귀함수의 수행 횟수를 제한하는 설정을 추가하거, 종료 조건을 점검하여 반복 또는 호출의 종료 여부를 확인함으로써 방지
728x90
반응형