본문 바로가기

System Security/Theory

Chapter 10. Race Condition Attack

Chapter 10. Race Condition Attack

1. Race Condition

 - Computer 내에서 한정된 자원을 동시에 이용하려는 여러 Process가 자원의 이용을 위해 경쟁을 벌이는 현상을 말한다.
 - Process가 여러 개 실행되게 되면 운영체제에서 할당하는 자원(권한, CPU etc.)를 서로 사용하려 하는데 이 과정에서 Process 하나를 끝마치고 다른 Process가 실행되는 것이 아닌 동시에 실행시켜 자원 할당이 고루고루 이루어지기 때문에 발생하는 현상이다.
 - Race Condition 공격은 Process들이 경쟁 하는 것과 SetUID와 같은 권한 상승을 이용해 권한을 얻어내는 공격방법이다.


2. Race Condition Attack
 - Race Condition 현상을 이용해 공격하기위한 조건
  · Program이 SetUID와 같은 권한 상승을 시켜줄 수 있는 권한이 주어져 있어야한다.
  · 해당 Program이 임시 File을 해당 Program의 관리자 권한으로 생성해야한다.
  · 임시 File이 생성되는 위치를 알아야한다.
 - Race Condition 공격 방법
  · 생성될 임시 File과 같은 File을 생성
  · 임시 File에 대한 Symbolic Link를 생성
  · 원본 File을 지운 후 취약 Program이 Symbolic Link를 건 File과 같은 File을 생성할 때까지 기다린다.
  · 생성 후 Symbolic File을 이용해 File의 내용을 변경한다.
  · System은 변경된 File을 자신이 생성한 임시 File로 생성하고 Process를 진행시킨다.
  · 공격자는 관리자 권한으로 실행되는 Program에 끼어들어 공격자가 행위를 할 수 있는 여지를 만들어 공격한다.



'System Security > Theory' 카테고리의 다른 글

Chapter 12. Format String Attack  (0) 2015.08.18
Chapter 11. Shared Memory  (0) 2015.08.18
Chapter 9. 취약점 분석  (0) 2015.08.18
Chapter 7. BOF(Buffer OverFlow) III  (0) 2015.08.18
Chapter 6. BOF(Buffer OverFlow) II  (0) 2015.08.18