Мониторинг активности на моем компьютере.

16

Так недавно я обнаружил, что кто-то использует мой компьютер без согласия, просматривая папки и т.д ....

Я мог бы поменять все свои пароли сразу, но мне любопытно, как то, что искала вторгшаяся сторона. Поэтому я хотел бы устроить ловушку (злобную усмешку).

Какое программное обеспечение будет контролировать любую активность на моем компьютере? Пока я знаю, что захват моего экрана будет работать здесь. Я бы лучше использовал файл журнала.

Например:

/var/log/activity.log

[1 августа 2010 20:23] / usr / bin / thunar access / multimedia / cctv-records /
[1 августа 2010 20:25] / usr / bin / mplayer доступ /multimedia/cctv-records/00232.avi
[3 августа 2010 02:34] / usr / bin / thunderbird был запущен
[3 августа 2010 03:33] входящий сеанс ssh от 12.32.132.123

Деятельность, которую я хотел бы войти это:

  • Доступ к файлам и папкам в файловой системе
  • Команды запускаются (из консоли или иным образом)
  • Сеансы пользователя (сеансы входа в систему, ssh и неудачные попытки)
Стефан
источник
/var/log/auth.log должен охватывать ваш третий пункт. Другие будут немного менее тривиальными.
Каскабель
@jefromi my auth.log только регистрирует попытки команды sudo и su ... никаких входов :(
Стефан

Ответы:

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= какое событие должно отслеживаться (например access, modifyи т. д., больше информации в man)
постоянный репер
источник
Чтобы настройки были последними между перезагрузками системы, в Debian вы можете это сделать echo 524288 >> /etc/sysctl.conf && service procps restart. Что эквивалентно в Gentoo?
Чепанг
Я имею в виду, что вы имеете в виду echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. В Gentoo вы можете использовать тот же метод, но sysctl.confисходный /etc/init.d/bootmiscкод скрипта инициализации.
РВМ
1
на самом деле это /etc/init.d/sysctl.
OneOfOne
7

Другой парень к тебе? Если у него есть физический доступ или root-доступ, он может стереть все свои следы и даже установить ошибку, чтобы шпионить за вами . С другой стороны, некоторые следы - это боль, которую нужно стереть, и трудно думать обо всем.

Различные вещи уже записаны в системные журналы, обычно в /var/log(некоторые системы используют другое местоположение, например /var/logsили /var/adm). При нормальной конфигурации все логины и монтирования записываются, среди прочего. Если вас беспокоит удаление журналов, вы можете настроить удаленное ведение журналов (как это сделать, зависит от реализации системного журнала, но обычно это одна или две строки для изменения в файле конфигурации на отправителе и на получателе).

Если вы или ваш дистрибутив не отключили эту функцию, у каждого файла есть время доступа («atime»), которое обновляется при каждом чтении файла. (Если файловая система смонтирована с опцией noatimeили relatime, atime не обновляется.) Atime можно подделать touch -a, но это обновляет ctime, поэтому оставляет след. (Даже root не может напрямую удалить эту трассировку, вам нужно обойти код файловой системы.)

Различные программы имеют историю сеансов . Его легко удалить или подделать, если злоумышленник вспомнил об этом. Bash сохраняет ~/.bash_history, браузеры, как правило, пишут много вещей в своей директории профиля и так далее. Вы также можете найти говорить об ошибках и предупреждения в ~/.xsession-errorsили /var/log/Xorg.0.logили иной системы в зависимости от местоположения.

Многие подразделения имеют функцию учета процессов . См., Например, руководство по учетным утилитам GNU , запись в справочнике FreeBSD, в руководстве по Linux или руководстве по Solaris . После включения он записывает, какой пользователь запустил какой процесс (когда он регистрирует execveвызовы), и, возможно, немного больше. В нем не содержится много интересной информации, например, файлы, к которым обращается процесс.

Если вы хотите отслеживать все обращения к файловой системе, вы можете предоставить ее через loggedfs . Это очень легко заметить, если парень думает посмотреть.

Существуют более полные программы регистрации, но они могут потребовать дополнительной поддержки ядра. В Solaris, FreeBSD, NetBSD и Mac OS X есть dtrace (порт Linux работает, но я не знаю, достиг ли он стадии использования). Вы также можете отслеживать конкретные процессы через интерфейс к ptraceсистемному вызову, например, straceв Linux; это может вызвать заметное замедление.

¹ Что-то, чего нет в Википедии? Нет, это безумный разговор.

Жиль "ТАК - перестань быть злым"
источник
1

Посмотрите на Fail2ban и DenyHØsts .

iamsid
источник
1
Fail2ban просматривает журналы доступа для выполнения определенных действий (например, запрет ip), но не генерирует журналы доступа такого типа. DenyHosts полагается на TCP Wrappers для запрета ip, опять же, это не связано с OP.
Бартелеми
1

Это не совсем то, что вы ищете, но некоторые приложения хранят список недавно открытых файлов. Кроме того, GNOME хранит этот список, к которому можно получить доступ из своей панели.

Другим исправлением является использование журнала активности GNOME , хотя в прошлый раз, когда я проверял, он не вел записи активности CLI, а интересовался только деятельностью, связанной с файлами (чтение, редактирование), игнорируя другие действия.

Вы также можете заглянуть в /var/logкаталог, где куча программ хранит свои журналы.

tshepang
источник
1

При условии, что на стороне вашего нападающего будет достаточно наивно, вы можете просто добавить script -qft $USER-$$ 2> $USER-$$-timeего / ваш соответствующий сценарий входа в систему, чтобы отслеживать его или ее взаимодействие с терминалом и воспроизводить его с помощью соответствующих команд сценария воспроизведения.

Чтобы контролировать доступ на уровне файлов, я рекомендую подключить strace -fe openк sshd соответствующий логинг и фильтрацию для сеансов входа в систему (или, может быть, лучше просто сделать это из. Предупреждение: огромные результаты, поскольку выполнение каких- либо действий в современной системе затрагивает много файлов Если вы просто хотите отслеживать конкретные файлы, посмотрите на audd и его инфраструктуру поддержки.

Сессии и попытки входа в систему могут быть собраны из системного журнала, как и в других ответах.

Томас Фемель
источник