Атака руткитов путем добавления новых двоичных форматов

Некоторые атаки руткитов работают путем вставки нового двоичного формата в список форматов и предоставления ядру вредоносного обработчика, который возвращает код ошибки 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, но если ваш компьютер атакован руткитом, несмотря на знание количества форматов, вы ничего не можете сделать. В статье, которую вы прочитали, предлагается метод обнаружения атаки руткитов при попытке добавить новый формат (нарушение инварианта).

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