최근에 누군가가 동의 없이 내 컴퓨터를 사용하고 폴더를 탐색하는 등의 행위를 하고 있다는 사실을 발견했습니다.
모든 비밀번호를 즉시 변경할 수 있는데 침입자가 무엇을 찾고 있는지 궁금합니다. 그래서 함정을 걸고 싶어요(사악한 미소).
내 컴퓨터의 활동을 모니터링할 수 있는 소프트웨어는 무엇입니까? 내 화면 캡처가 여기에서 작동한다는 것을 알고 있지만. 차라리 로그 파일을 사용하고 싶습니다.
예를 들어:
/var/log/activity.log
[2010년 8월 1일 20:23] /usr/bin/thunar 액세스 /multimedia/cctv-records/
[2010년 8월 1일 20:25] /usr/bin/mplayer 액세스 /multimedia/cctv-records/ 00232.avi
[ 2010년 8월 3일 02:34] /usr/bin/thunderbird running
[2010년 8월 3일 03:33] 12.32.132.123에서 들어오는 SSH 세션
내가 기록하고 싶은 활동은 다음과 같습니다.
- 파일 시스템의 파일 및 폴더에 액세스
- 실행할 명령(콘솔 또는 기타 방법)
- 사용자 세션(로그인, SSH 세션 및 실패한 시도)
답변1
커널 메커니즘을 사용하여 inotify
액세스된 파일을 모니터링할 수 있습니다.
inotify
먼저 커널에서 열려 있는지 확인해야 합니다 .
pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
다음으로 할 일은 설치입니다 inotify-tools
. 다음 사이트에서 다양한 배포에 대한 지침을 찾을 수 있습니다.프로젝트 페이지- 모든 주요 배포판의 저장소에 있어야 합니다.
그런 다음 inotify가 작업을 시작할 수 있습니다.
inotifywait /dirs/to/watch -mrq
( m
= 이벤트 발생 후 종료하지 않음, r
= 재귀적, q
= 조용함)
예를 들어 - 출력 후ls /home/pbm
pbm@tauri ~ $ inotifywait /bin /home/pbm -mq
/bin/ OPEN ls
/bin/ ACCESS ls
/bin/ ACCESS ls
/home/pbm/ OPEN,ISDIR
/home/pbm/ CLOSE_NOWRITE,CLOSE,ISDIR
/bin/ CLOSE_NOWRITE,CLOSE ls
감시 디렉터리를 올바르게 설정하는 것이 중요합니다.
- 반복적으로 시청 하지 마세요 . 읽기/ 쓰기
/
가 많고/dev
/proc
- 홈 디렉터리를 반복적으로 검색하지 마세요. 애플리케이션을 사용할 때 애플리케이션 구성 디렉터리와 브라우저 구성 파일 디렉터리에 대한 읽기/쓰기 작업이 많이 있습니다.
/proc/sys/fs/inotify/max_user_watches
동시에 볼 수 있는 파일 수를 보여주는 구성 옵션이 있습니다 . (젠투의 경우) 기본값은 그다지 높지 않으므로 watcher를 0으로 설정하면 /home/
제한을 초과할 수 있습니다. echo
(루트 액세스 필요)를 사용하여 제한을 늘릴 수 있습니다 .
echo 524288 > /proc/sys/fs/inotify/max_user_watches
하지만 그 전에 읽어야 할 것변화의 결과.
관심을 가질 만한 옵션:
-d
= 데몬 모드-o file
= 파일로 출력--format
= 사용자 지정 형식, 자세한 내용은 참조man inotifywait
-e EVENT
= 모니터링해야 하는 이벤트(예:access
등modify
, 자세한 내용은 참조man
)
답변2
상대방이 당신에게 관심이 있나요? 물리적 액세스 또는 루트 액세스 권한이 있는 경우 모든 추적을 삭제하고 모니터링할 버그를 심을 수도 있습니다.너. 반면에 어떤 흔적은 지우기가 고통스럽고 모든 것을 기억하기 어렵습니다.
일반적으로 시스템 로그에는 다양한 내용이 이미 기록되어 있습니다 (일부 시스템은 또는 /var/log
등의 다른 위치를 사용함 ). 일반 구성에서는 모든 로그인 및 설치가 기록됩니다. 로그 삭제가 걱정된다면 원격 로깅을 설정할 수 있습니다. 이를 수행하는 방법은 syslog 구현에 따라 다르지만 일반적으로 발신자와 수신자의 구성 파일에서 한두 줄만 변경하면 됩니다./var/logs
/var/adm
귀하 또는 귀하의 배포판이 이 기능을 비활성화하지 않은 경우 각 파일에는액세스 시간("atime") 파일을 읽을 때마다 업데이트됩니다. ( noatime
또는 옵션으로 파일 시스템을 마운트 하면 relatime
atime이 업데이트되지 않습니다.) 가짜 atime을 사용할 수도 있지만 touch -a
이렇게 하면 ctime이 업데이트되어 흔적이 남습니다. (루트조차도 이 추적을 직접 제거할 수 없으므로 파일 시스템 코드를 우회해야 합니다.)
모든 프로그램에는 하나의세션 기록. 침입자가 기억하고 있는 경우 삭제하거나 위조하기 쉽습니다. Bash는 ~/.bash_history
브라우저가 프로필 디렉토리 등에 많은 내용을 작성하는 경향이 있습니다. 시스템 내부나 다른 곳에서 명백한 오류나 경고를 발견 할 수도 있습니다 ~/.xsession-errors
./var/log/Xorg.0.log
많은 대학에 하나가 있습니다.프로세스 회계¹ 기능. 예를 들어GNU 회계 유틸리티 매뉴얼, 항목FreeBSD 매뉴얼또는리눅스 가이드또는솔라리스 가이드. 활성화되면 사용자가 어떤 프로세스를 시작할 때( execve
호출을 기록하는지) 등을 기록합니다. 프로세스에서 액세스하는 파일과 같은 흥미로운 정보는 많이 기록하지 않습니다.
파일 시스템에 대한 모든 액세스를 모니터링하려면 다음을 통해 수행할 수 있습니다.로깅 파일 시스템. 그 사람이 보고 싶어 하는지 알아보는 것은 쉽습니다.
보다 포괄적인 로깅 프로그램이 있지만 추가 커널 지원이 필요할 수 있습니다. Solaris, FreeBSD, NetBSD 및 Mac OS X에는 다음이 있습니다.길(작업 중인 Linux 포트가 있지만 아직 사용 가능한 단계에 도달했는지는 알 수 없습니다.) Linux ptrace
와 같은 시스템 호출 인터페이스를 통해 특정 프로세스를 추적할 수도 있습니다. 이로 인해 상당한 속도 저하가 발생할 수 있습니다.strace
¹Wikipedia에 없는 것은 무엇 입니까? 아니, 그건 미친 얘기야.
답변3
답변4
공격자가 충분히 순진하다고 가정하면 적절한 로그인 스크립트를 삽입하여 script -qft $USER-$$ 2> $USER-$$-time
터미널 상호 작용을 모니터링하고 적절한 scriptreplay 명령을 사용하여 재생할 수 있습니다.
파일 수준 액세스를 모니터링하려면 sshd에 적절한 로깅을 연결하고 로그인 세션을 필터링하는 것이 좋습니다 strace -fe open
(또는 에서 수행하는 것이 더 좋습니다. 경고: 최신 시스템에서 작업을 수행하면 엄청난 출력이 발생하므로많은파일 수. 특정 파일만 모니터링하려면 다음을 확인하세요.심사그리고 그 지원 인프라.
세션 및 로그인 시도는 다른 답변을 기반으로 시스템 로그에서 수집될 수 있습니다.