경쟁 상태
A state in which two or more processes are in a race condition to use the resource and can not predict its outcome.
두개 이상의 프로세스가 동이 자원을 사용하기 위해 경쟁 상태(race condition)에 놓여 그 수행 결과를 예측할 수 없는 상태.
For example, program A creates and uses a temporary file, some of which are assumed like below...
예를 들어, 프로그램 A는 임시파일을 만들어 사용하는데, 그 과정 중 일부는 이렇다고 가정합니다.
1. Create a temporary file info.txt.
2. Record important information in info.txt.
3. Remove info.txt.
1. 임시파일 info.txt 생성.
2. info.txt에 주요 정보 기록.
3. info.txt 제거.
However, if the malicious program B wants to leak information contained in info.txt, it may do like this below.
그런데 악의를 가진 프로그램 B가 info.txt에 담긴 정보를 유출시키고자 한다면 중간에 이런 행위를 할 수도 있습니다.
0. [B] Create a shortcut info.txt of abc.txt.
1. [A] Create a temporary file info.txt(It is failed because of the same filename).
2. [A] Record important information in info.txt.
3. [A] Remove info.txt.
0. [B] abc.txt의 바로 가기 info.txt 생성.
1. [A] 임시파일 info.txt 생성(동일 파일명이 있으므로 실패).
2. [A] info.txt에 주요 정보 기록.
3. [A] info.txt 제거.
Normally, program B can't predict when to create and delete info.txt, so program B repeats shortcut creation indefinitely.
보통은 프로그램 A가 언제 info.txt를 생성하고 삭제하는지 예측할 수 없으므로, 프로그램 B는 바로 가기 생성을 무한 반복합니다.
In other words, the two programs will compete for preempting info.txt.
즉, info.txt를 누가 선점하느냐를 두고 경쟁을 벌이게 됩니다.
And if the attack succeeds at some point, the important information will be recorded in abc.txt.
그리고 어느 순간 공격이 성공한다면, abc.txt에 주요 정보가 기록되어 있을 것입니다.