Атака руткитов путем добавления новых двоичных форматов
Некоторые атаки руткитов работают путем вставки нового двоичного формата в список форматов и предоставления ядру вредоносного обработчика, который возвращает код ошибки ENOEXEC каждый раз, когда он вызывается. Поскольку новый обработчик вставляется в начало списка форматов, вредоносный обработчик выполняется каждый раз, когда выполняется новый процесс. Размер списка остается постоянным после запуска системы и изменяется только при установке нового двоичного формата. Поскольку эта атака вставляет новый двоичный формат, она изменяет длину списка форматов. Я прочитал это в статье. Я хочу знать, правда ли это и в ядре 3? Если да, как я могу проверить длину списка форматов? Я нашел эту структуру в ядре 3.11.4:
/*
* This structuredefines the functions that are used to load the binary formats that
* linux accepts.
*/
struct linux_binfmt {
struct list_head lh;
struct module *module;
int (*load_binary)(struct linux_binprm *);
int (*load_shlib)(struct file *);
int (*core_dump)(struct coredump_params *cprm);
unsigned long min_coredump; /* minimal dump size */
};
Является lh
список, на который ссылались formats list
?
1 ответ
Я не знаю, как считать форматы в ядре 3, но если ваш компьютер атакован руткитом, несмотря на знание количества форматов, вы ничего не можете сделать. В статье, которую вы прочитали, предлагается метод обнаружения атаки руткитов при попытке добавить новый формат (нарушение инварианта).