우리는 Linux 서버(Google Compute Engine의 Debian wheezy 호스트)의 루트 폴더에서 짧은 시간 내에 임의의 6자 이름을 가진 이상한 파일이 다수 생성되었음을 발견했습니다.
모든 파일에는 루트/루트 및 0600 권한이 있습니다.
-rw------- 1 root root 0 Sep 20 06:29 0QOenG
-rw------- 1 root root 0 Sep 20 06:33 1z5U2y
-rw------- 1 root root 0 Sep 20 06:43 1zTOzN
-rw------- 1 root root 0 Sep 20 06:34 23XZoM
-rw------- 1 root root 0 Sep 20 06:32 27zsbT
-rw------- 1 root root 0 Sep 20 06:27 2Wm0aJ
-rw------- 1 root root 0 Sep 20 06:41 398ekH
-rw------- 1 root root 0 Sep 20 06:38 3dI8Es
-rw------- 1 root root 0 Sep 20 06:33 3kskdR
-rw------- 1 root root 0 Sep 20 06:37 3lWyRD
-rw------- 1 root root 0 Sep 20 06:33 3PX7Fx
-rw------- 1 root root 0 Sep 20 06:32 3RDbjb
-rw------- 1 root root 0 Sep 20 06:33 43yJsH
-rw------- 1 root root 0 Sep 20 06:27 4_Efvb
-rw------- 1 root root 0 Sep 20 06:30 4hAx0N
-rw------- 1 root root 0 Sep 20 06:43 4Oljiz
-rw------- 1 root root 0 Sep 20 06:33 4OR5Pi
-rw------- 1 root root 0 Sep 20 06:42 4TmJLl
-rw------- 1 root root 0 Sep 20 06:29 4YFfes
-rw------- 1 root root 0 Sep 20 06:31 5451XV
-rw------- 1 root root 0 Sep 20 06:30 569_O4
-rw------- 1 root root 0 Sep 20 06:37 57kOaP
-rw------- 1 root root 0 Sep 20 06:39 5Alljw
-rw------- 1 root root 0 Sep 20 06:42 5_ucGQ
-rw------- 1 root root 0 Sep 20 06:27 5x4ctz
-rw------- 1 root root 0 Sep 20 06:35 60nv0J
-rw------- 1 root root 0 Sep 20 06:32 68ir6n
-rw------- 1 root root 0 Sep 20 06:37 6BnyKZ
-rw------- 1 root root 0 Sep 20 06:41 6JOkrT
-rw------- 1 root root 0 Sep 20 06:38 6wFyZl
-rw------- 1 root root 0 Sep 20 06:41 6WW7nj
-rw------- 1 root root 0 Sep 20 06:33 6YYyta
-rw------- 1 root root 0 Sep 20 06:35 7N9JJU
-rw------- 1 root root 0 Sep 20 06:42 7uVRTI
-rw------- 1 root root 0 Sep 20 06:29 8r071y
-rw------- 1 root root 0 Sep 20 06:34 8yT2UG
-rw------- 1 root root 0 Sep 20 06:40 9e30rd
-rw------- 1 root root 0 Sep 20 06:35 9JvGnk
-rw------- 1 root root 0 Sep 20 06:32 9sJWOd
-rw------- 1 root root 0 Sep 20 06:30 9ud9NZ
-rw------- 1 root root 0 Sep 20 06:30 9yslgU
그런데 파일 생성 당시에는 로그 파일의 용량이 커서 부팅 디스크가 거의 꽉 차 있었습니다. 대용량 로그 파일을 삭제한 후에는 더 이상 이상한 파일이 생성되지 않습니다.
추신. 서버에서는 다음 서비스가 실행되고 있습니다.
mongodb, postgresql, redis, activemq, 유동적
누가 이 파일을 만들었는지 설명해 줄 수 있나요?
답변1
이 파일 이름 패턴은 표준입니다.mktemp
(또는mkstemp
) 함수, 가장 간단한 템플릿이 전달될 때( "XXXXXX"
루트 디렉터리에서 실행될 때). 따라서 이것은 거의 모든 프로그램이 될 수 있습니다.
프로그램이 이 작업을 중지하면 어떤 프로그램이 범인인지 완전히 판단하는 것이 불가능합니다. 그러나 프로그램이 여전히 이 작업을 수행하고 있을 가능성이 높으며, 만약 그렇다면 즉시 발견할 수 있습니다.
이 프로그램에는 분명히 버그가 있습니다. 생성되어서는 안되는 임시 파일을 많이 생성하기 때문입니다. 디스크가 꽉 찼을 때 파일이 나타나면 프로그램이 실제로 이러한 임시 파일을 자주 생성할 가능성이 높지만 일반적인 작업에서는 해당 파일을 콘텐츠로 채우고 처리한 후 최종적으로 삭제합니다. 디스크가 꽉 차면 채우기 단계가 실패하지만 프로그램이 오류를 제대로 복구할 수 없기 때문에 파일이 삭제되지 않습니다.
당신은 그것을 사용할 수 있습니다Linux용 감사 도구디렉터리의 활동을 관찰합니다. auditd
시계가 설치 및 설정되어 있는지 확인하세요.루트 디렉토리 자체에서(재귀적 시계가 아닙니다!):
auditctl -a exit,always -F path=/
/var/log/audit/audit.log
프로세스가 루트 디렉터리에 쓰는 동안 로그 메시지를 받게 됩니다. 정상적인 작동에서는 이런 일이 거의 발생하지 않으므로 문제가 있는 프로세스가 눈에 띕니다.