Как узнать, что приложение делало в фоновом режиме?

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

5
задан 20 December 2012 в 16:06

1 ответ

Короче говоря (сводка ниже):

ИСПОЛЬЗУЙТЕ AppArmor

По-моему, один из Ваших лучших выборов видеть, что делает программа, AppArmor. AppArmor один из [LSM][1] (Модули безопасности Linux) в ядре и в случае Ubuntu "предпочтительный LSM", который уже установлен в Вашей системе :)

некоторые предпосылки к AppArmor + LSM

(можно пропустить эту часть объяснения и перейти к recipie/solution ниже непосредственно),

В резюме и скорее всего "слишком упрощающих" словах: AppArmor LSM. LSM находится в ядре и таким образом идеально подходящий для контроля материала. Альтернативы в "пространстве пользователя" (не в ядре) не могли, например, быть так экс-кошкой и защищенный от несанкционированного использования как LSM как AppArmor. AppArmor в ядре консультируется относительно всех запросов, которые программы имеют на ресурсах. В некотором роде просят относительно "допуска/доступа" к ресурсам, чтобы программы сделали. Если программа хочет получить доступ /path/to/somefile.txt AppArmor/LSM уведомляется, и может главный или отклонять это. AppArmor настроен при помощи Профилей так, чтобы он мог знать, какие вещи программа может или не может получить доступ. На самом деле, если нет "никакого Профиля" AppArmor, просто предоставляет весь доступ и не делает очень многого. Таким образом, так как наша цель состояла бы в том, чтобы "контролировать" или "рассмотреть" программу, относительно которой у Вас есть сомнения, мы должны установить немного временного профиля, так, чтобы AppArmor действительно заботился. Normaly цель такого профиля должен на самом деле ограничить программу. Мы "только" хотим "контролировать" его. В AppArmor это называют "жаловаться" режимом Профиля. В этом "жалуются, что режим" программа может все еще сделать все, но AppArmor зарегистрирует все те вещи в файле журнала в /var/log/syslog

AppArmor представляет для установки приложения /usr/bin/programXYZ в жалуются, что режим (=monitor это) является текстовым файлом в /etc/apparmor.d/ каталог, который был бы похож на это:

/usr/bin/XYZ flags(complain) {
#empty
}

С таким профилем для /usr/bin/programXYZ в жалуются, что режим AppArmor контролирует его и пишет всю информацию в /var/log/syslog. Это, например, походит на это.

Dec 21 11:13:44 ubuntu kernel: [23726.684803] type=1400 audit(1356084824.937:1445): apparmor="STATUS" operation="profile_load" name="/usr/bin/programXYZ" pid=17517 comm="apparmor_parser"
Dec 21 11:13:55 ubuntu kernel: [23737.312157] type=1400 audit(1356084835.589:1446): apparmor="ALLOWED" operation="open" parent=17446 profile="/usr/bin/programXYZ" name="/etc/ld.so.cache" pid=17518 comm="df" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Dec 21 11:13:55 ubuntu kernel: [23737.312176] type=1400 audit(1356084835.589:1447): apparmor="ALLOWED" operation="getattr" parent=17446 profile="/usr/bin/programXYZ" name="/etc/ld.so.cache" pid=17518 comm="df" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Dec 21 11:13:55 ubuntu kernel: [23737.312225] type=1400 audit(1356084835.589:1448): apparmor="ALLOWED" operation="open" parent=17446 profile="/usr/bin/programXYZ" name="/lib/i386-linux-gnu/libc-2.15.so" pid=17518 comm="df" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Dec 21 11:13:55 ubuntu kernel: [23737.312250] type=1400 audit(1356084835.589:1449): apparmor="ALLOWED" operation="getattr" parent=17446 profile="/usr/bin/programXYZ" name="/lib/i386-linux-gnu/libc-2.15.so" pid=17518 comm="df" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Dec 21 11:13:55 ubuntu kernel: [23737.312269] type=1400 audit(1356084835.589:1450): apparmor="ALLOWED" operation="file_mmap" parent=17446 profile="/usr/bin/programXYZ" name="/lib/i386-linux-gnu/libc-2.15.so" pid=17518 comm="df" requested_mask="mr" denied_mask="mr" fsuid=1000 ouid=0

Как Вы видите, существует запись всего /usr/bin/programXYZ получил доступ (файл) и сделал (т.е. обрабатывает, запустился).

Решение / устанавливает для такого временного профиля (recepie)

комментарий: это кажется "сложным" (много шагов) действительно, это не. Я просто хотел объяснить это вполне хорошо, incoperating и объяснение его хорошо для понимания.

  1. Будьте рады, что AppArmor уже установлен на Вашем поле Ubuntu :)
  2. Узнайте путь программы, которой Вы интересуетесь. В Терминальном типе which programXYZ и Вы будете, скорее всего, видеть что-то как /path/to/programXYZ. Давайте примем здесь, это было бы /usr/bin/programXYZ.
  3. Генерируйте профиль Apparmor для установки программы в, жалуются режим (помните, что это - то, что заставляет AppArmor заботиться о нем. Принятие Вас не является корнем, это было бы сделано этим так или иначе изворотливым (все еще корректный) команда: sudo bash -c " echo -e \"/usr/bin/programXYZ flags=(complain) {\n #enpty\n}\" >/etc/apparmor.d/myTempProfile". Конечно, необходимо измениться /usr/bin/programXYZ к пути Вы узнали на шаге прежде.
  4. Затем можно проверить, был ли профиль сгенерирован правильно sudo cat /etc/apparmor.d/myTempProfile который должен распечатать что-то вроде этого:
/usr/bin/programXYZ flags(complain) {
#empty
}
  1. Знайте, что мы должны установить недавно созданный Профиль (в файле /etc/apparmor.d/myTempProfile) активный. Сделанный этой командой: sudo apparmor_parser -r /etc/apparmor.d/myTempProfile"
  2. Теперь, в конце концов, установка. Необходимо запустить программу недавно. Если программа уже работает, это еще не получено AppArmor. Таким образом, любой, которым можно управлять вручную, уничтожает перезапуск программа. Или если это своего рода "автоматически запускается" deamon, необходимо перезагрузить систему.
  3. Поздравляю: Вы знаете, может изучить/var/log/syslog для наблюдения что журналы AppArmor относительно Вас porgamXYZ. Хороший способ сделать так мог быть в терминале этой командой: sudo cat /var/log/syslog | grep "/usr/bin/programXYZ"

Если существуют некоторые сомнения, или Вы испытываете затруднения при реализации, комментируете здесь, таким образом, я могу выручить Вас!

Комментарий: Следование этим инструкциям, Вы получите "довольно включающий" обширный список вещей программа, делает. Легко может быть 100 + вещи, которые программа делает, которые зарегистрированы AppArmor. После того, как весь любой доступ (т.е. загрузка общей библиотеки) всегда является чем-то тот AppArmor записи. Если Ваша программа имеет много зависимостей и использует достаточное количество общих объектов затем, список может легко стать довольно длинным. Я говорю это так, чтобы Вы не боялись большим количеством informaiton, что использование AppArmor жалуется, генерирует для Вас. Это может быть проблема видеть через все это. Зато Вы не рискнете наблюдать за чем-либо это /usr/bin/programXYZ делает.

3
ответ дан 20 December 2012 в 16:06

Другие вопросы по тегам:

Похожие вопросы: