Моніторинг активності на моєму комп’ютері.


16

Нещодавно я виявив, що хтось користується моїм комп’ютером без згоди, переглядає папки тощо ...

Я могла змінити всі свої паролі відразу, але мені цікаво, що шукала втручається сторона. Тож я хотів би встановити пастку (злий усмішку).

Яке програмне забезпечення буде контролювати будь-яку активність на моєму комп’ютері? Поки я знаю, що захоплення мого екрана працюватиме тут. Я вважаю за краще використовувати логінфайл.

Наприклад:

/var/log/activity.log

[1 серпня 2010 20:23] / usr / bin / thunar accessed / multimedia / cctv-records /
[1 серпня 2010 20:25] / usr / bin / mplayer accessed /multimedia/cctv-records/00232.avi
[3 серп. 2010 02:34] / usr / bin / thunderbird запускався
[3 серпня 2010 03:33] вхідний ssh ​​сеанс від 22.12.132.123

Діяльність, яку я хотів би зареєструвати:

  • Доступ до файлів і папок файлової системи
  • Команди виконуються (з консолі чи іншим чином)
  • Сеанси користувача (вхід, ssh сесії та невдалі спроби)

/var/log/auth.log повинен охоплювати вашу третю точку кулі. Інші будуть трохи менш тривіальними.
Каскабель

@jefromi мій auth.log реєструє лише судові та су командні спроби ... немає входу :(
Стефан

Відповіді:


8

Ви можете використовувати механізм в ядрі inotifyдля моніторингу доступних файлів.

Спочатку слід перевірити, чи inotifyввімкнено ядро:

pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y

Наступне, що потрібно зробити - це встановити inotify-tools. Інструкції для різних дистрибутивів, які ви можете знайти на сторінці проекту - вони повинні бути у сховищах усіх основних дистрибутивів.

Після цього інотифікація готова до роботи:

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
  • не дивіться домашній dir рекурсивно - коли ви користуєтеся програмами, багато що читає / записує в режимі конфігурації додатків і режими веб-переглядачів.

В /proc/sys/fs/inotify/max_user_watchesє опція конфігурації , яка показує , скільки файлів можна спостерігати одночасно. Значення за замовчуванням (для Gentoo) приблизно не таке високе, тому, якщо встановити вахту, /home/ви можете перевищити ліміт. Ви можете збільшити ліміт за допомогою echo(потрібен кореневий доступ).

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?
thepang

Я те, що ти маєш на увазі echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. У Gentoo ви могли використовувати той самий метод, але sysctl.confвін отриманий /etc/init.d/bootmiscскриптом init.
пбм

1
насправді це /etc/init.d/sysctl.
OneOfOne

7

З тобою інший хлопець? Якщо у нього є фізичний доступ або доступ до кореня, він може стерти всі свої сліди і навіть посадити помилку, щоб шпигувати за вами . З іншого боку, деякі сліди - це стерти біль, і важко все придумати.

У системних журналах вже записано різні речі, як правило, у /var/logдеяких системах (наприклад, /var/logsабо /var/adm). У нормальній конфігурації всі входи та кріплення записуються, серед інших. Якщо ви турбуєтесь про те, щоб журнали були стерті, ви можете налаштувати віддалений журнал (як це зробити, залежить від реалізації syslog, але зазвичай у файлі конфігурації відправника та на приймачі потрібно змінити один-два рядки).

Якщо ви або ваш дистрибутив не відключили цю функцію, кожен файл має час доступу ("atime"), який оновлюється щоразу, коли файл читається. (Якщо файлова система змонтована з параметром noatimeабо relatime, atime не оновлюється.) Atime може бути підробленим touch -a, але це оновить ctime, тому воно залишає слід. (Навіть root не може безпосередньо видалити цей слід, вам потрібно обійти код файлової системи.)

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

Багато уніцій мають accounting особливість обліку процесів . Дивіться, наприклад, посібник з бухгалтерських служб GNU , запис у посібнику FreeBSD або інструкцію з Linux або посібник Solaris . Після ввімкнення він записує, який користувач запустив який процес, коли (він реєструє execveдзвінки) і, можливо, трохи більше. Існує багато цікавої інформації, до якої вона не входить, наприклад файли, до яких отримує доступ процес.

Якщо ви хочете контролювати всі доступ до файлової системи, ви можете надати їх через loggedfs . Це дуже легко помітити, якщо хлопець думає подивитися.

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

¹ Щось, чого немає у Вікіпедії? Ні, це божевільна розмова.


1

Погляньте на Fail2ban та DenyHØsts .


1
Fail2ban розглядає журнали доступу, щоб зробити певні дії (наприклад, заборона ip), але він не генерує такі види журналів доступу. DenyHosts покладаються на TCP Wrappers, щоб заборонити ip, знову ж таки, це не пов'язано з ОП.
Barthelemy

1

Це не зовсім те, що ви шукаєте, але деякі додатки зберігають список файлів, які нещодавно отримували доступ. Також GNOME зберігає цей список, до якого можна отримати доступ з його панелі.

Ще одне виправлення полягає у використанні журналу активності GNOME , хоча останній раз, коли я перевіряв, він не записував активність CLI, а його цікавила лише діяльність, пов'язана з файлами (читання, редагування), ігнорування інших заходів.

Ви також можете заглянути всередині /var/logкаталогу, де купа програм зберігає свої журнали.


1

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

Щоб контролювати доступ до файлового рівня, я рекомендую приєднати strace -fe openвідповідний журнал до sshd та фільтрувати для сеансів входу (або, можливо, це краще зробити саме з цього пункту . Попередження: Величезні результати, оскільки будь-яка робота в сучасній системі стосується багатьох файлів Якщо ви просто хочете контролювати конкретні файли, перегляньте аудит та його інфраструктуру підтримки.

Сесії та спроби входу можна зібрати з syslog згідно з іншими відповідями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.