Race Condition
경합 조건
- 두 개 이상의 Operation이 같은 System Resource에 Access할 때,
그들사이의 경쟁에 의해 수행 결과를 예측할 수 없게 되는 상태를 의미한다.
- Security Process는 Atomic하게 이루어지는 것이 이상적이며,
Security-Critical Process가 Stage별로 진행될 때(즉, Atomic하게 진행되지 않을 때) Race Condition이 발생될 수 있고,
공격자는 Process Stage를 무단으로 넘나들며 Authentication 및 Authorization 과정을 우회할 수 있다.
Example. Race Condition of \(\texttt{mkdir}\) Linux Command
mkdir Operation | Attack on mkdir Race Condition |
- mkdir 명령에서는 Authorization Process를 거친 다음, Ownership을 건네받게 되는데,
이러한 일련의 절차가 Atomic하지 않아 Race Condition이 발생할 수 있다.
- 공격자는 mkdir 과정에서 발생될 수 있는 Race Condition을 악용할 수 있는데,
mkdir 명령을 통해 Memory Space가 할당되고 Ownership이 이전되기 전에
외부에서새로 할당된 Memory Space에 접근할 수 있는 Link를 생성하여
Ownership 없이도 해당 Memory Space에 접근할 수 있게 된다.
Example. Event Anomaly in Android System
- 안드로이드 시스템의 Asynchronous한 성질을 이용해 악의적인 Intent를 삽입하여
공격자가 프로그램을 조작할 수 있다.
Reference: Information Security: Principles and Practice 2nd Edition
(Mark Stamp 저, Pearson, 2011)
Reference: Computer Security: Principles and Practice 3rd Edition
(William Stallings, Lawrie Brown, Pearson, 2014)
Reference: 2022학년도 1학기 홍익대학교 네트워크 보안 강의, 이윤규 교수님