/var/log/messages에 다음 내용은 무엇입니까?
Feb 19 22:51:20 kernel: [ 187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0)
cron 작업이 실행되려고 할 때 발생합니다.
답변1
중요한 파일(/etc/passwd, /etc/shadow 등)에 대한 심볼릭 링크를 지정하면 권한 있는 프로세스가 파일을 덮어쓰도록 속일 수 있습니다. 예를 들어, 루트가 /tmp에 파일을 생성하는 프로그램을 실행한다는 것을 알고 있다면 파일 이름(보통 /tmp/fooXXX, 여기서 foo는 프로그램 이름이고 XXX는 프로세스 ID)을 추측하여 이를 수행할 수 있습니다. /etc/shadow를 가리키고 있습니다. /tmp를 채울 수 있는 후보가 있습니다. 나중에 루트가 /tmp에 있는 파일을 열고 /etc/shadow를 자르고 덮어쓰면 갑자기 아무도 시스템에 로그인할 수 없게 됩니다. 관련 공격은 임시 파일 존재 여부 확인과 파일 생성 사이의 경쟁 조건을 악용합니다.
mktemp() 및 mkstemp()를 주의 깊게 사용하는 것을 포함하여 이 문제를 피할 수 있는 방법이 있지만 모든 프로그래머와 사용자가 이 위험을 인식하는 것은 아닙니다. 그래서 최근에 리눅스 커널 패치가 제안되었고, 분명히 여러분이 사용하고 있는 커널에 적용된 것 같습니다. 이 패치는 악성 링크를 심을 수 있는 일반적인 시나리오 중 하나인 고정 비트 세트가 있는 전역적으로 쓰기 가능한 디렉터리(일반적으로 Unix 시스템에서 /tmp가 구성되는 방식)에서 다음 기호 링크의 사용을 방지합니다. 시도된 시스템 호출은 심볼릭 링크를 따르지 않지만 EACCES와 함께 실패하고 커널은 표시되는 메시지를 기록합니다.