답변:
chkrootkit에 버그가 있기 때문에 이것은 오 탐지 일 가능성이 높습니다. 분명히 chkrootkit은 엄격한 검사를 수행하지 않습니다.
참조 : https://bugs.launchpad.net/ubuntu/+source/chkrootkit/+bug/454566
또한 chkrootkit과 유사한 rkhunter를 사용해 볼 수 있습니다.
더 자세한 정보 : 다행히도 `chchrootkit` 파일을 실행 하면 chkrootkit이 쉘 스크립트이므로 직접 검사 할 수 있습니다.
Searching for Suckit in the file /usr/sbin/chkrootkit we find:
### Suckit
if [ -f ${ROOTDIR}sbin/init ]; then
if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME || \
cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
then
echo "Warning: ${ROOTDIR}sbin/init INFECTED"
else
if [ -d ${ROOTDIR}/dev/.golf ]; then
echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
else
if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
fi
fi
fi
핵심은 다음과 같습니다.
cat ${ROOTDIR}/proc/1/maps | ${egrep} "init."
최신 버전의 Ubuntu부터 해당 명령을 실행하면 일부 출력이 생성됩니다 (루트 또는 sudo로 실행해야 함).
# sudo cat /proc/1/maps | egrep "init."
b78c2000-b78db000 r-xp 00000000 08:02 271571 /sbin/init (deleted)
b78db000-b78dc000 r--p 00019000 08:02 271571 /sbin/init (deleted)
b78dc000-b78dd000 rw-p 0001a000 08:02 271571 /sbin/init (deleted)
그러나 이것은 루트킷에 의한 감염이 아닙니다. 나는 또한 rkhunter 코드를 살펴 보았고 검사는 훨씬 더 엄격합니다 (루트 키트에 의해 설치된 모든 종류의 추가 파일 테스트).
chkrootkit 파일에서 1003,1004 행을 변경하여 / proc / 1 / maps 검사를 수행하지 않도록 확인했습니다 (먼저 복사해야 함)
if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME ) \
>/dev/null 2>&1
Kubuntu 13.04에서 2013-07-31 기준
달리는:
cat /sbin/init | egrep HOME
생산 :
Binary file (standard input) matches
과
달리는:
cat /proc/1/maps | egrep "init."
NO 출력을 생성합니다.
참고 : 마침표를 제거하면 출력이 생성됩니다 ( "init."에서 "init"로 변경)
b7768000-b779f000 r-xp 00000000 08:02 399192 /sbin/init
b779f000-b77a0000 r--p 00036000 08:02 399192 /sbin/init
b77a0000-b77a1000 rw-p 00037000 08:02 399192 /sbin/init
그래서 HOME을 확인하는 부분이 문제인 것 같습니다.
rkhunter가 유효한 검사를 가지고 있다고 가정 할 수 있다면 쉬운 경로는 chkrootkit 에서이 섹션을 제거하고 rkhunter와 chkrootkit을 모두 실행하는 것입니다.
strings /sbin/init | grep HOME
내가 얻을 XDG_CACHE_HOME and XDG_CONFIG_HOME
이 여전히 거짓 긍정적인가? / sbin / init에서 문자열 "HOME"을 검색하는 목적은 무엇입니까? 왜 긍정적이어야합니까?