본문 바로가기

해봐야 안다.OTL/Linux

레이스 컨디션_개념

<레이스컨디션>

레이스 컨디션은 일종의 바꿔치기다.

"톰과 제리" 라는 만화를 보면 제리는 톰이 집으려는 물건 대신 폭탄으로 바꿔치는 장난을 자주 한다.

 하지만 톰은 폭탄을 손으로 잡고는 자신이 잡은 물건이 당연히 자신이 예상했던 것이라고 생각하며, 하던 일을 계속하다 폭탄이 터져 낭패를 보곤한다.

 

 레이스 컨디션도 이와 비슷하다. 관리자의 권한으로 실행되는 프로그램의 중간에 끼어 들어 자신이 원하는 작업을 하는 것이다.

중간에 끼어 든다는 게 타이밍이 중요하지만 타이밍을 맞추는 게 아니라 "될 때까지 한다." 라는 생각으로 하는 것이다

<참고: 정보보안 개론과 실습_시스템 해킹과 보안>

참고로 "/tmp"가 sticky bit 가 붙은 이유는 레이스 컨디션 떄문이다.

 

* 임시 파일에 대한 레이스 컨디션 공격의 기본

  1. 취약 프로그램이 생성하는 임시 파일의 이름을 파악
  2. 생성될 임시 파일과 같은 이름의 파일을 생성
  3. 이에 대한 심볼릭 링크를 생성
  4. 원본 파일을 지운 채 취약 프로그램이 심볼릭 링크를 건 파일과 같은 파일을 생성할 때를 기다린다.
  5. 생성되었을 때, 심볼릭 링크를 이용해 파일 내용을 원하는대로 변경
  6. 시스템은 변경된 파일을 자신이 생성한 임시 파일로 생각하고 프로세스를 진행시킬 것이고, 공격자는 관리자 권한으로 실행되는 프로그램에 끼어들어 무언가를 할 수 있는 여지를 만든다.

 

 

실습은 다음 기회에 …………