Вы можете попытаться использовать auditd для регистрации доступа к файлам (и более), но если злоумышленник получит доступ к вашей машине как суперпользователь, то возможно, что все журналы и трассировки будут стерты без какого-либо способ обнаружить это.
Одним из возможных смягчающих факторов является включение удаленной регистрации (по сети) или использование другого оборудования, которое позволяет добавлять данные только без возможности перезаписи материала.
Если вы подозреваете компромисс и хотите его расследовать, вы попадаете в область судебной экспертизы. В зависимости от разгильдяйства атакующего это может быть успешным или неудачным. Примеры включают в себя забвение удаления .bash_history
или файлов журналов и удаление файлов без их уничтожения.
Вы упоминаете «подпись файла», но «касание» только изменяет метаданные файла. Они хранятся в специфичном для файловой системы формате на базовом дисковом устройстве. Обычно непривилегированные программы не могут напрямую изменять базовое дисковое устройство. Вместо этого они взаимодействуют с ядром с помощью системных вызовов и запрашивают изменения в файловой системе (которые затем распространяют изменения на базовый диск). Чтобы узнать, какая система вызывает использование программы, вы можете использовать программу strace . Например, strace touch x
дает мне:
...
open("x", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0) = 0
close(3) = 0
utimensat(0, NULL, NULL, 0) = 0
...
Здесь вы можете видеть, что системному вызову open
передается путь и возвращается дескриптор файла. Позже этот файловый дескриптор используется при вызове системного вызова utimensat
, который изменяет временную метку файла. Все эти действия могут регистрироваться демоном аудита, описанным ранее, и, конечно, результаты могут наблюдаться из-за изменений в файловой системе. Если вы будете копать достаточно глубоко, вы можете найти доказательства этой деятельности, но тогда вы действительно полагаетесь на креативность криминалистов.