Перейти к содержимому

Ubuntu

Использует тот же механизм SSH, credentials и проверку ключа хоста, что и семейство SSH-проб для определения ОС, но — начиная с 1.1.1 — больше не относится к общему механизму osReleaseFamilyProbe, описанному на той странице; см. ниже.

targets:
- id: ubuntu-host
product: ubuntu
address: host.example.com
credentials: linux-host-ssh

Собственная проба, а не общая os-release, начиная с 1.1.1

Заголовок раздела «Собственная проба, а не общая os-release, начиная с 1.1.1»

Поле VERSION_ID в /etc/os-release у Ubuntu намеренно никогда не меняется после выхода релиза — подтверждено вживую (от 14.04 до 24.10): полностью пропатченный хост 22.04, пережив несколько point-релизов и новых установочных образов, всё равно сообщает VERSION_ID="22.04", а не 22.04.5. Point-релиз существует только в поле VERSION того же файла (VERSION="22.04.5 LTS (Jammy Jellyfish)"), и только для LTS-релиза, у которого таких point-релизов вышло больше одного — у не-LTS релиза поле VERSION не несёт дополнительного сегмента вообще (подтверждено вживую: VERSION="24.10 (Oracular Oriole)", полностью совпадает с VERSION_ID). Эта проба предпочитает число из VERSION значению VERSION_ID, если оно строго точнее и имеет тот же префикс major.minor — второй файл читать не нужно, в отличие от того, как для той же самой проблемы устроен Debian: точность уже есть в том же файле, просто в другом поле. Все остальные продукты общего семейства os-release были проверены по той же схеме; такого пробела больше ни у кого нет.

Подтверждено вживую на ubuntu:24.04: ID=ubuntu, VERSION_ID="24.04".

  • version — точный point-релиз, если он есть в VERSION, например 22.04.5; иначе голый VERSION_ID
  • extra.codename — VERSION_CODENAME из os-release
  • extra.kernelRelease, extra.arch, extra.kernelVersion — uname -r, -m, -v
  • packages — установленные бинарные пакеты и их версии (см. ниже)
  • extra.hostKeyVerified

Сверяется по каждому установленному пакету с OVAL Canonical для релиза хоста (com.ubuntu.<codename>.usn.oval.xml.bz2 в cve.oval.path), а не по релизу. В том же SSH-обращении проба ещё перечисляет установленные бинарные пакеты (dpkg-query) и читает uname -r/-m/-v — это сохраняется в поле наблюдения packages и в extra.kernelRelease, extra.arch, extra.kernelVersion. Версия работающего ядра дополняется номером загрузки из uname -v, так что ядро с исправлением не принимается за ещё не исправленное; находки по ядру называются kernel <flavour> (<uname -r>). Сообщаются только CVE с исправлением новее установленного, одна находка на пакет, со ссылкой на USN. См. Сопоставление с CVE.

endoflife:ubuntu — без изменений.