at(1) 버퍼오버플로우 취약점과 대책
2021.02.14 01:31
설명
- at(1) 프로그램의 버퍼오버플로우를 이용하여 일반 사용자가 관리자(root) 권한으로 임의의 명령을 실행시킬 수 있는 보안 취약점이 발견되었다.
- at(1) 프로그램은 원하는 시간에 실행시킬 명령들의 일정을 설정하는데 쓰인다.
- at(1) 프로그램은 이 명령을 실행시킨 사용자 권한으로 실행되며 일반적으로 그 사용자를 scheduling 사용자라고 한다.
- 수행할 명령들의 목록은 다른 사용자들이 쓸 수 없는 디렉토리의 파일에 저장하고 파일소유는 scheduling 사용자의 소유가 된다. 그리고 그 정보는 지정된 시간에 명령들을 수행시키는 프로세스를 구별하는데 쓰인다. 이것은 다른 사용자들이 scheduling 사용자의 명령 목록을 변경하거나 새로운 목록을 만드는 것을 방지하기 위한 것으로 이를위해 at에는 setuid root bit가 지정되어 있다.
- 하지만, 여러 at(1) 프로그램에서 버퍼오버프로우 취약성이 있어 관리자(root)의 권한으로 임의의 명령을 실행시킬 수 있다.
해결책
- at(1) 프로그램의 버퍼오버플로우를 이용하여 일반 사용자가 관리자(root) 권한으로 임의의 명령을 실행시킬 수 있는 보안 취약점이 발견되었다.
- at(1) 프로그램은 원하는 시간에 실행시킬 명령들의 일정을 설정하는데 쓰인다.
- at(1) 프로그램은 이 명령을 실행시킨 사용자 권한으로 실행되며 일반적으로 그 사용자를 scheduling 사용자라고 한다.
- 수행할 명령들의 목록은 다른 사용자들이 쓸 수 없는 디렉토리의 파일에 저장하고 파일소유는 scheduling 사용자의 소유가 된다. 그리고 그 정보는 지정된 시간에 명령들을 수행시키는 프로세스를 구별하는데 쓰인다. 이것은 다른 사용자들이 scheduling 사용자의 명령 목록을 변경하거나 새로운 목록을 만드는 것을 방지하기 위한 것으로 이를위해 at에는 setuid root bit가 지정되어 있다.
- 하지만, 여러 at(1) 프로그램에서 버퍼오버프로우 취약성이 있어 관리자(root)의 권한으로 임의의 명령을 실행시킬 수 있다.