Information Security

레이스 컨디션 공격 본문

§IT/정보보안기사-시스템

레이스 컨디션 공격

Motie_FireWall 2020. 5. 13. 21:11

1) 개요

- 레이스 컨디션은 둘 이상의 프로세스나 스레드가 공유자원에 동시에 접근할 때 접근하는 순서에 따라 비정상적인 결과가 발생하는 조건/상황을 말한다. 

- 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 목적파일로 연결(심볼릭 링크) 악의적인 행위를 할 수 있는데 이를 레이스 컨디션 공격이라 한다.

- 만일, 프로세스가 setuid 설정이 되어 root 권한으로 실행된다면 권한 상승을 통한 중요 자원에 접근하는 심각한 문제가 발생할 수 있다.

 

2) 공격 원리 실습

① 첫 번째 매개변수로 파일명을 입력받고 두 번째 매개변수로 파일에 출력할 데이터를 입력받아 해당파일 생성 후 데이터를 출력하는 프로그램

② 소스파일을 컴파일 하여 실행파일 생성 후 setuid를 설정하여 프로그램 실행중인 동안에는 소유자의 권한(root)으로 파일에 접근하도록 설정

③ 공격자는 /etc/shadow 파일을 조작하기 위해 임시파일(/tmp/tmp.dat)에 심볼릭 링크를 생성한다.

④ 임시파일(/tmp/tmp.dat)은 프로그램 수행 중 일시적인 목적으로 생성하는 파일로 프로그램에서 임시파일로 출력하면 실제로는 심볼릭 링크를 통해 /etc/shadow 파일에 출력된다.

⑤ 프로그램을 통해 /tmp/tmp.dat에 조작된(빈 패스워드) 패스워드를 출력하고 있으며 심볼릭 링크를 통해 실제로는 /etc/shadow 파일이 변경된다.

⑥ 일반사용자 계정으로 실행하고 있지만 setuid가 설정되어 있기 때문에 root 권한으로 실행되어 /etc/shadow 파일의 내용이 변경 가능하다.

 

3) 대응방안

- 가능하면 임시파일을 생성하지 않는다.

- 파일 생성 시 이미 동일한 파일이 존재하는 경우 파일 생성 또는 쓰기를 금지한다.

- 사용하고자 하는 파일에 링크가 걸려있으면 실행을 중단한다.

- umask를 최하 022 정도로 유지하여 임시로 생성한 파일이 공격자에 의해 악의적으로 삭제되지 않도록 한다.

 

 

 

 

 

'§IT > 정보보안기사-시스템' 카테고리의 다른 글

멜트다운 & 스펙터  (0) 2020.05.26
포맷 스트링 공격  (0) 2020.05.13
버퍼오버플로우 공격  (0) 2020.05.12
PAM(장착형 인증 모듈)  (0) 2020.05.10
슈퍼 데몬(xinetd)  (0) 2020.05.10
Comments