Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > Перехват запуска приложений |
Автор: ky0x5a 17.5.2011, 13:22 |
Доброе время суток. Мне для диплома нужно реализовать такую веСЧ: Необходимо перехватывать запуск приложений, при этом получать данные о запускаемом файле stat(), так же md5 сумму, если сумма md5 совпадает с базой, то делать kill pid. Этакий антивирус, но не совсем. Главная задача, как научиться перехватывать вызов приложений??? Подскажите к какой области обратиться, или может есть готовые реализации? ps: Через месяц сдача диплома |
Автор: GrayCardinal 17.5.2011, 16:57 |
ky0x5a, Простите за хамство, но Вы хотите за месяц сделать диплом ? Чтобы мы за Вас сделали ? ![]() PS Копать надо ядро, выносить кое-какой функционал в юзер-спэйс и с этим уже работать. |
Автор: 500mhz 17.5.2011, 19:44 |
ну так пишем LKM и все, естественно рут нужен для загрузки |
Автор: svlary 23.5.2011, 05:09 |
Может - не так все страшно ? Как вариант : попробовать мониторить, с помощью inotify каталог /proc. И, при возникновении новой поддиректории, лезем в /proc/<PID>/cmdline достаем оттуда имя файла процесса и считаем его MD5.... |
Автор: GrayCardinal 23.5.2011, 08:42 |
svlary, Так, кончено, можно, но ИМХО, слишком просто для диплома ![]() |
Автор: ky0x5a 23.5.2011, 09:20 |
GrayCardinal пишите по существу! в моем посте о просьбе написать мне диплом ничего не сказано. 500mhz ну конечно рут, тут не стоит вопрос о каком то взломе и еще чего та. Вариант с моном /proc не подходит, ведь я хочу запретить запуск приложения если оно по md5 есть в моем списке. Добавлено @ 09:26 Нашел такую софтину http://clamfs.sourceforge.net - An user-space anti-virus protected file system . Попробую разобрать ее, ну если у кого есть какая мысля, прошу поделиться. |
Автор: GrayCardinal 23.5.2011, 15:49 |
ky0x5a, По существу, так по существу... Лично я бы начал с переноса кода MD5 суммы под ядро. На сколько помню, там только CRC. А дальше от этого и плясать. Хачим системный вызов exec, считаем MD5, при нужде блокируем. Я так понимаю блокировать надо один процесс (правильно понимаю ?), всвязи с чем эту MD5 можно и прошить в ядро (не заморачиваться с вводом MD5 из юзер-спэйса). |
Автор: svlary 24.5.2011, 05:16 |
Если серьезно, то ПО СУЩЕСТВУ, сама идея тащить виндовозные принципы безопасности в Linux представляется мне полной ахинеей... Они принципиально разные !!! Надо тебе обеспечить безопасность на 101% ? Ну тогда - SELinux настраивать. Этот монстр может все.... Я его плохо знаю, но вполне допускаю, что можно его так настроить, что на запуск любого исполняемого модуля, он будет вызывать программу контроля целостности.... |
Автор: MAKCim 24.5.2011, 10:02 |
раз диплом, значит ни selinux, ни еще что-нибудь не подходят человеку нужен свой велосипед если не важно, как идет работа с ядром: в виде LKM или патча, то сделать в виде последнего ОЧЕНЬ просто вот здесь http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/fs/exec.c#L1211 читаешь весь файл в буфер, считаешь md5 и возвращаешь -EPERM если не совпадает |
Автор: 500mhz 25.5.2011, 01:31 |
MAKCim ТС хочет отловить execv |