监视计算机上的活动。


16

所以最近我发现有人未经允许使用我的计算机,浏览文件夹等。

我可以立即更改所有密码,但我对入侵者正在寻找的东西感到好奇。因此,我想设置一个陷阱(邪恶的笑容)。

什么软件可以监视我的计算机上的任何活动?虽然我知道捕获我的屏幕将在这里工作。我宁愿使用日志文件。

例如:

/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
[8月3日2010 02:34] / usr / bin / thunderbird已运行
[2010年8月3日03:33]从12.32.132.123传入ssh会话

我要记录的活动是:

  • 访问文件系统上的文件和文件夹
  • 命令运行(从控制台或其他方式)
  • 用户会话(登录,ssh会话和失败的尝试)

/var/log/auth.log应该涵盖您的第三个要点。其他的将变得不那么琐碎。
卡斯卡贝尔

@jefromi我的auth.log仅记录sudo和su命令尝试...无登录信息:(
Stefan 2010年

Answers:


8

您可以使用内核内机制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其中的配置选项显示可以同时监视多少个文件。默认值(对于Gentoo)不是很高,因此,如果将watcher设置为/home/您可能会超出限制。您可以使用echo(需要root访问权限)来增加限制。

echo 524288 > /proc/sys/fs/inotify/max_user_watches

但在此之前,您应该阅读一下这种变化的后果

您可能感兴趣的选项:

  • -d =守护程序模式
  • -o file =输出到文件
  • --format =用户指定的格式,有关更多信息 man inotifywait
  • -e EVENT=什么事件应该被监控(例如accessmodify等,在更多信息man

要使设置在系统重置之间保持最后状态,可以在Debian上进行echo 524288 >> /etc/sysctl.conf && service procps restart。Gentoo的等效功能是什么?
tshepang 2010年

我的意思是你的意思echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf。在Gentoo中,您可以使用相同的方法,但是它sysctl.conf是由/etc/init.d/bootmiscinit脚本提供的。
pbm 2010年

1
实际上是/etc/init.d/sysctl。
OneOfOne 2010年

7

另一个人在你身边吗?如果他具有物理访问权限或root用户访问权限,则他可以清除所有痕迹,甚至可以植入一个bug来监视。另一方面,有些痕迹很难消除,很难想一想。

各种事物已经记录在系统日志中,通常记录在/var/log(某些系统使用其他位置,例如/var/logs/var/adm)。在正常配置下,所有登录和挂载都会被记录下来。如果您担心日志会被删除,则可以设置远程日志记录(如何执行此操作取决于syslog的实现,但是在发送者和接收者上的配置文件中更改通常需要一两行)。

如果您或您的发行版尚未禁用此功能,则每个文件都有一个访问时间(“ atime”),该访问时间在每次读取文件时都会更新。(如果使用noatimerelatime选项挂载文件系统,则不会更新atime。)可以使用伪造atime touch -a,但这会更新ctime,因此留下了痕迹。(即使root无法直接删除此跟踪,也需要绕过文件系统代码。)

各种程序都有会话历史记录。如果入侵者记得这样做,则很容易删除或伪造。Bash保持不变~/.bash_history,浏览器倾向于在其个人资料目录中写很多东西,依此类推。你也可能会发现,报告在错误或警告~/.xsession-errors/var/log/Xorg.0.log或其他系统相关的位置。

许多联合国机构都具有流程核算 ¹功能。例如,参见GNU记帐实用程序手册FreeBSD手册中的条目或Linux howtoSolaris指南。启用后,它会记录用户何时启动了哪个进程(它记录execve呼叫),甚至更多。有很多有趣的信息不会记录下来,例如进程访问的文件。

如果要监视对文件系统的所有访问,则可以通过loggingfs提供它。如果这个家伙想看,很容易注意到。

有更全面的日志记录程序,但它们可能需要其他内核支持。在Solaris,FreeBSD,NetBSD和Mac OS X上,有dtrace(正在进行Linux端口,但我不知道它是否已达到可用阶段)。您还可以通过ptrace系统调用的界面来跟踪特定的进程,例如strace在Linux上。它可能会导致明显的减速。

¹ 维基百科中没有的内容?不,那是个疯狂的话题。



1

这并不是您要找的东西,但是某些应用程序保留了最近访问的文件的列表。同样,GNOME保留该列表,可以从其面板访问该列表。

另一个修复方法是使用GNOME活动日志,尽管我上次检查时没有保留CLI活动的记录,而只对文件相关的活动(读取,编辑)感兴趣,却忽略了其他活动。

您还可以在/var/log目录中查看一堆程序存储其日志的目录。


1

假设攻击者方面有足够的天赋,则只需将其script -qft $USER-$$ 2> $USER-$$-time放入适当的登录脚本中即可监视其终端交互,并使用适当的scriptreplay命令进行重放。

为了监视文件级别的访问,我建议strace -fe open在sshd上附加一个带有适当日志记录的日志,并过滤登录会话(或者最好是从进行此操作。警告:输出巨大,因为在现代系统上执行任何操作都会触摸很多文件如果只想监视特定的文件,请查看已审核及其支持基础结构。

会话和登录尝试可以根据其他答案从syslog收集。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.