다음 커널 메시지는 무엇을 의미합니까? [ 187.819487]

다음과 같은 / 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)

크론 작업이 실행 되려고 할 때 발생합니다.



답변

권한있는 프로세스는 중요한 파일 (/ etc / passwd, / etc / shadow 등)을 심볼릭 링크로 가리켜 덮어 쓰도록 속일 수 있습니다. 예를 들어, root가 / tmp에 파일을 작성하는 프로그램을 실행한다는 것을 알고 있다면 파일 이름이 무엇인지 추측하여 (일반적으로 / tmp / fooXXX, foo는 프로그램 이름이고 XXX는 프로세스 ID)와 / tmp를 채우고 / etc / shadow를 가리키는 후보로 채 웁니다. 나중에 root는 / tmp에서 파일을 열고 / etc / shadow를 자르고 덮어 씁니다. 갑자기 아무도 더 이상 시스템에 로그인 할 수 없습니다. 임시 파일의 존재 여부 확인과 파일 생성 사이의 경쟁 조건을 악용하는 관련 공격이 있습니다.

mktemp () 및 mkstemp ()의 신중한 사용을 포함하여이 문제점을 피할 수있는 방법이 있지만 모든 프로그래머와 사용자가이 위험을 인식하지는 않습니다. 결과적으로 Linux 커널 패치가 최근에 제안되었으며 사용중인 커널에 적용된 것 같습니다. 이 패치는 악의적 인 링크가 생성되었을 수있는 일반적인 상황 중 하나 인 고정 비트가 설정된 세계 기록 가능 디렉토리 인 Unix 시스템에서 / tmp가 일반적으로 구성되는 방식으로 심볼릭 링크를 따르지 못하게합니다. 심볼릭 링크를 따르는 대신 시도한 시스템 호출이 EACCES로 실패하고 커널은 사용자가 본 메시지를 기록합니다.

리눅스 커널 메일 링리스트의 일부 관련 대화


답변