Erraty w EuroLinux 8

Erraty w EuroLinux 8, czyli o bezpieczeństwie operacyjnym systemu

Erraty w EuroLinux oraz w innych Linuksach Enterprise wiążą się z aktualizacją pakietu oprogramowania. Są wygodnym sposobem na likwidację podatności tam, gdzie najważniejsze jest bezpieczeństwo operacyjne systemu, a gdzie nie chcemy wprowadzać nowych funkcji do już poprawnie działającego oprogramowania. Jak dzielimy erraty i co zawierają ich poszczególne rodzaje?

Słowo errata pochodzi z języka łacińskiego i potocznie odnosi się do poprawki opublikowanego tekstu, zazwyczaj z powodu błędu w procesie wydawniczym. Errata w EuroLinux oraz w innych systemach Linux klasy Enterprise, jest związana z aktualizacją pakietu oprogramowania.

Erraty w systemie EuroLinux dzielimy na trzy rodzaje:

  • ELSA (EuroLinux Security Advisory) – zawierają jedną lub więcej poprawek bezpieczeństwa i mogą również zawierać poprawki błędów lub ulepszeń. ELSA to najważniejszy rodzaj erraty, który jest klasyfikowany według stopnia ważności: niski, umiarkowany, ważny lub krytyczny, w zależności od wagi luki
  • ELBA (EuroLinux Bug Advisory) – zawsze zawierają jedną lub więcej poprawek błędów i mogą zawierać ulepszenia, ale nie zawierają poprawek bezpieczeństwa. Ponieważ ELBA są wydawane w celu usunięcia błędów, często są uważane za ważniejsze od ELEA
  • ELEA (EuroLinux Enhancement Advisory) – zawierają jedno lub więcej ulepszeń, lub nowych funkcji i nie zawierają poprawek błędów ani poprawek bezpieczeństwa.

Ocena wagi problemów bezpieczeństwa jest dokonywana za pomocą wspomnianej, czterostopniowej skali ważności (ang. Critical, Important, Moderate, Low), a także za pomocą oddzielnego wyniku bazowego. Te systemy punktacji zapewniają ocenę ryzyka z uwzględnieniem priorytetów, co pomaga zrozumieć i zaplanować aktualizacje systemów, umożliwiając podejmowanie świadomych decyzji dotyczących ryzyka, jakie każdy problem stanowi dla danego środowiska.

Skala ocen

Critical Ocena jest przyznawana błędom, które mogą być łatwo wykorzystane przez zdalnego, nieuwierzytelnionego agresora i prowadzić do przejęcia kontroli nad systemem bez konieczności interakcji z użytkownikiem.
Important Ocena jest przyznawana błędom, które mogą łatwo zagrozić poufności, integralności lub dostępności zasobów. Są to typy błędów, które umożliwiają lokalnym lub uwierzytelnionym użytkownikom uzyskanie dodatkowych przywilejów, dają możliwość nieuwierzytelnionym użytkownikom zdalnym przeglądania zasobów, które w przeciwnym razie powinny być chronione przez uwierzytelnienie lub inne mechanizmy kontroli oraz umożliwiają uwierzytelnionym użytkownikom zdalnym wykonanie dowolnego kodu.
Moderate Ocena jest przyznawana błędom, które w pewnych okolicznościach mogą prowadzić do naruszenia poufności, integralności lub dostępności zasobów. Są to typy luk, które mogłyby być oznaczone jako Critical lub Important, ale są trudniejsze do wykorzystania na podstawie technicznej oceny luki lub dotyczą mało prawdopodobnych konfiguracji.
Low Ocena jest przyznawana wszystkim innym problemom, które mogą mieć wpływ na bezpieczeństwo. Są to typy błędów, które uważa się za mało prawdopodobne, aby mogły zostać wykorzystane lub takie, których udane wykorzystanie miałoby minimalne konsekwencje.

Jak korzystać z errat w systemie EuroLinux

W najnowszej wersji systemu EuroLinux moduły obsługi errat zostały zintegrowane w poleceniu dnf. Przykładowo, wpisując dnf updateinfo list wylistujmy wszystkie erraty obecne w niezaktualizowanym, testowym systemie EuroLinux 8:

[eurolinux@el8 ~]$ dnf updateinfo list 
Last metadata expiration check: 0:12:54 ago on Sun 27 Mar 2022 11:34:55 PM CEST.
ELSA-2022:0188              Important/Sec. bpftool-4.18.0-348.12.2.el8_5.x86_64
ELSA-2022:0825              Important/Sec. bpftool-4.18.0-348.20.1.el8_5.x86_64
ELEA-2022:0352              enhancement    buildah-1:1.23.1-2.module+el8.5.0+13436+9c05b4ba.x86_64
ELEA-2022:0352              enhancement    conmon-2:2.0.32-1.module+el8.5.0+13852+150547f7.x86_64
ELEA-2022:0352              enhancement    container-selinux-2:2.173.0-1.module+el8.5.0+13852+150547f7.noarch
ELEA-2022:0352              enhancement    containernetworking-plugins-1.0.1-1.module+el8.5.0+13436+9c05b4ba.x86_64
ELEA-2022:0352              enhancement    containers-common-2:1-8.module+el8.5.0+13954+1b78b731.noarch
ELSA-2022:0370              Moderate/Sec.  cryptsetup-2.3.3-4.el8_5.1.x86_64
ELBA-2022:0371              bugfix         libipa_hbac-2.5.2-2.el8_5.4.x86_64
ELBA-2022:0900              bugfix         libsmbclient-4.14.5-10.el8_5.x86_64
ELSA-2022:0332              Critical/Sec.  libsmbclient-4.14.5-9.el8_5.x86_64
(...)

Możemy ograniczyć listing tylko do poprawek bezpieczeństwa, dodając na końcu poprzedniego polecenia słowo security:

[eurolinux@el8 ~]$ dnf updateinfo list security
Last metadata expiration check: 0:10:18 ago on Sun 27 Mar 2022 11:34:55 PM CEST.
ELSA-2022:0188 Important/Sec. bpftool-4.18.0-348.12.2.el8_5.x86_64
ELSA-2022:0825 Important/Sec. bpftool-4.18.0-348.20.1.el8_5.x86_64
ELSA-2022:0370 Moderate/Sec.  cryptsetup-2.3.3-4.el8_5.1.x86_64
ELSA-2022:0370 Moderate/Sec.  cryptsetup-libs-2.3.3-4.el8_5.1.x86_64
ELSA-2022:0658 Important/Sec. cyrus-sasl-2.1.27-6.el8_5.x86_64
ELSA-2022:0658 Important/Sec. cyrus-sasl-gssapi-2.1.27-6.el8_5.x86_64
ELSA-2022:0332 Critical/Sec.  samba-client-libs-4.14.5-9.el8_5.x86_64
ELSA-2022:0332 Critical/Sec.  samba-common-4.14.5-9.el8_5.noarch
ELSA-2022:0332 Critical/Sec.  samba-common-libs-4.14.5-9.el8_5.x86_64
ELSA-2022:0894 Moderate/Sec.  vim-minimal-2:8.0.1763-16.el8_5.12.x86_64
ELSA-2022:0366 Moderate/Sec.  vim-minimal-2:8.0.1763-16.el8_5.4.x86_64
(...)

Poleceniem dnf updateinfo info security możemy wyświetlić szczegółowe informacje o erratach, ale nadal z zawężeniem wyłącznie do łatek bezpieczeństwa:

[eurolinux@el8 ~]$ dnf updateinfo info security
Last metadata expiration check: 0:16:41 ago on Sun 27 Mar 2022 11:34:55 PM CEST.
===============================================================================
  Critical: samba security and bug fix update
===============================================================================
  Update ID: ELSA-2022:0332
       Type: security
    Updated: 2022-01-31 16:40:41
       Bugs: 2046146 - CVE-2021-44142 samba: Out-of-bounds heap read/write vulnerability in VFS module vfs_fruit allows code execution (Source: Red Hat)
           : 2046160 - [smb] Segmentation fault when joining the domain [rhel-8.5.0.z] (Source: Red Hat)
           : 2046174 - Failed to authenticate users after upgrade samba package to release samba-4.14.5-7x [rhel-8.5.0.z] (Source: Red Hat)
       CVEs: CVE-2021-44142
   Severity: Critical

===============================================================================
  Important: kernel security and bug fix update
===============================================================================
  Update ID: ELSA-2022:0188
       Type: security
    Updated: 2022-01-19 14:59:09
       Bugs: 2034813 - CVE-2021-4155 kernel: xfs: raw block device data leak in XFS_IOC_ALLOCSP IOCTL (Source: Red Hat)
           : 2040358 - CVE-2022-0185 kernel: fs_context: heap overflow in legacy parameter handling (Source: Red Hat)
       CVEs: CVE-2021-4155
           : CVE-2022-0185
   Severity: Important

===============================================================================
  Important: kernel security, bug fix, and enhancement update
===============================================================================
  Update ID: ELSA-2022:0825
       Type: security
    Updated: 2022-03-10 15:43:03
       Bugs: 2031930 - CVE-2021-0920 kernel: Use After Free in unix_gc() which could result in a local privilege escalation (Source: Red Hat)
           : 2034514 - CVE-2021-4154 kernel: local privilege escalation by exploiting the fsconfig syscall parameter leads to container breakout (Source: Red Hat)
           : 2042404 - CVE-2022-0330 kernel: possible privileges escalation due to missing TLB flush (Source: Red Hat)
           : 2044809 - CVE-2022-22942 kernel: failing usercopy allows for use-after-free exploitation (Source: Red Hat)
           : 2048738 - CVE-2022-0435 kernel: remote stack overflow via kernel panic on systems using TIPC may lead to DoS (Source: Red Hat)
           : 2050237 - CVE-2022-0516 kernel: missing check in ioctl allows kernel memory read/write (Source: Red Hat)
           : 2051505 - CVE-2022-0492 kernel: cgroups v1 release_agent feature may allow privilege escalation (Source: Red Hat)
           : 2060795 - CVE-2022-0847 kernel: improper initialization of the "flags" member of the new pipe_buffer (Source: Red Hat)
       CVEs: CVE-2021-0920
           : CVE-2021-4154
           : CVE-2022-0330
           : CVE-2022-0435
           : CVE-2022-0492
           : CVE-2022-0516
           : CVE-2022-0847
           : CVE-2022-22942
   Severity: Important
(...)
===============================================================================
  Moderate: cryptsetup security update
===============================================================================
  Update ID: ELSA-2022:0370
       Type: security
    Updated: 2022-02-01 21:13:30
       Bugs: 2032401 - CVE-2021-4122 cryptsetup: disable encryption via header rewrite (Source: Red Hat)
       CVEs: CVE-2021-4122
   Severity: Moderate

Posiadając wylistowane informacje o poszczególnych CVE, możemy zaktualizować system wyłącznie dla pojedynczego CVE poleceniem: sudo dnf update --cve CVE-XXXX-XXXXX, np.

[eurolinux@el8 ~]$ sudo dnf update --cve CVE-2022-22763
Last metadata expiration check: 0:25:31 ago on Sun 27 Mar 2022 11:07:18 PM CEST.
Dependencies resolved.
===============================================================================================================================================================
 Package                           Architecture                     Version                                  Repository                                   Size
===============================================================================================================================================================
Upgrading:
 firefox                           x86_64                           91.7.0-3.el8_5                           certify-appstream                           106 M

Transaction Summary
===============================================================================================================================================================
Upgrade  1 Package

Total download size: 106 M
Is this ok [y/N]: y
Downloading Packages:
firefox-91.7.0-3.el8_5.x86_64.rpm                                                                                              5.0 MB/s | 106 MB     00:21    
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                          5.0 MB/s | 106 MB     00:21     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                       1/1 
  Upgrading        : firefox-91.7.0-3.el8_5.x86_64                                                                                                         1/2 
  Running scriptlet: firefox-91.7.0-3.el8_5.x86_64                                                                                                         1/2 
  Running scriptlet: firefox-91.4.0-1.el8_5.x86_64                                                                                                         2/2 
  Cleanup          : firefox-91.4.0-1.el8_5.x86_64                                                                                                         2/2 
  Running scriptlet: firefox-91.4.0-1.el8_5.x86_64                                                                                                         2/2 
  Running scriptlet: firefox-91.7.0-3.el8_5.x86_64                                                                                                         2/2 
  Running scriptlet: firefox-91.4.0-1.el8_5.x86_64                                                                                                         2/2 
  Verifying        : firefox-91.7.0-3.el8_5.x86_64                                                                                                         1/2 
  Verifying        : firefox-91.4.0-1.el8_5.x86_64                                                                                                         2/2 
Installed products updated.

Upgraded:
  firefox-91.7.0-3.el8_5.x86_64                                                                                                                                

Complete!

lub zaktualizować system dla konkretnego identyfikatora erraty poleceniem dnf update --advisory ELBA-XXXX:XXXX, np.

[eurolinux@el8 ~]$ sudo dnf update --advisory ELBA-2022:0893
Last metadata expiration check: 1:29:10 ago on Sun 27 Mar 2022 11:07:18 PM CEST.
Dependencies resolved.
===============================================================================================================================================================
 Package                                   Architecture                   Version                                 Repository                              Size
===============================================================================================================================================================
Upgrading:
 systemd                                   x86_64                         239-51.el8_5.5                          certify-baseos                         3.6 M
 systemd-container                         x86_64                         239-51.el8_5.5                          certify-baseos                         752 k
 systemd-libs                              x86_64                         239-51.el8_5.5                          certify-baseos                         1.1 M
 systemd-pam                               x86_64                         239-51.el8_5.5                          certify-baseos                         478 k
 systemd-udev                              x86_64                         239-51.el8_5.5                          certify-baseos                         1.6 M

Transaction Summary
===============================================================================================================================================================
Upgrade  5 Packages

Total download size: 7.4 M
Is this ok [y/N]: 

Możemy również ograniczyć wyświetlanie informacji o erratach np. tylko dla kategorii bugfix poleceniem dnf updateinfo list bugfix:

[eurolinux@el8 ~]$ dnf updateinfo list bugfix
Last metadata expiration check: 0:08:37 ago on Sun 27 Mar 2022 11:34:55 PM CEST.
ELBA-2022:0349 bugfix clevis-15-1.el8_5.1.x86_64
ELBA-2022:0349 bugfix clevis-luks-15-1.el8_5.1.x86_64
ELBA-2022:0367 bugfix cockpit-251.3-1.el8_5.x86_64
ELBA-2022:0367 bugfix cockpit-bridge-251.3-1.el8_5.x86_64
ELBA-2022:0367 bugfix cockpit-system-251.3-1.el8_5.noarch
ELBA-2022:0367 bugfix cockpit-ws-251.3-1.el8_5.x86_64
ELBA-2022:0898 bugfix device-mapper-8:1.02.177-11.el8_5.x86_64
ELBA-2022:0898 bugfix device-mapper-event-8:1.02.177-11.el8_5.x86_64
(...)

Poleceniem dnf updateinfo list --sec-severity=XXXXX możemy wyświetlić erraty ze wskazaniem stopnia ważności poprawek:

[eurolinux@el8 ~]$ dnf updateinfo list --sec-severity=Moderate
EuroLinux certify BaseOS                         12 MB/s | 8.8 MB     00:00    
EuroLinux certify AppStream                      16 MB/s |  15 MB     00:00    
EuroLinux certify PowerTools                    7.0 MB/s | 3.2 MB     00:00    
ELSA-2022:0896 Moderate/Sec. glibc-2.28-164.el8_5.3.x86_64
ELSA-2022:0896 Moderate/Sec. glibc-common-2.28-164.el8_5.3.x86_64
ELSA-2022:0896 Moderate/Sec. glibc-devel-2.28-164.el8_5.3.x86_64
ELSA-2022:0896 Moderate/Sec. glibc-headers-2.28-164.el8_5.3.x86_64
ELSA-2022:0896 Moderate/Sec. glibc-langpack-en-2.28-164.el8_5.3.x86_64
ELSA-2022:0886 Moderate/Sec. qemu-guest-agent-15:4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64
ELSA-2022:0894 Moderate/Sec. vim-common-2:8.0.1763-16.el8_5.12.x86_64
ELSA-2022:0894 Moderate/Sec. vim-enhanced-2:8.0.1763-16.el8_5.12.x86_64
ELSA-2022:0894 Moderate/Sec. vim-filesystem-2:8.0.1763-16.el8_5.12.noarch
ELSA-2022:0894 Moderate/Sec. vim-minimal-2:8.0.1763-16.el8_5.12.x86_64

Zaktualizowania systemu wyłącznie łatkami bezpieczeństwa dokonamy poleceniem dnf update-minimal –security:

[eurolinux@el8 ~]$ sudo dnf update-minimal --security
Last metadata expiration check: 0:32:28 ago on Sun 27 Mar 2022 11:07:18 PM CEST.
Dependencies resolved.
===============================================================================================================================================================
 Package                                              Architecture     Version                                               Repository                   Size
===============================================================================================================================================================
Installing:
 kernel                                               x86_64           4.18.0-348.20.1.el8_5                                 certify-baseos              7.0 M
Upgrading:
 bpftool                                              x86_64           4.18.0-348.20.1.el8_5                                 certify-baseos              7.7 M
 cryptsetup                                           x86_64           2.3.3-4.el8_5.1                                       certify-baseos              189 k
 cryptsetup-libs                                      x86_64           2.3.3-4.el8_5.1                                       certify-baseos              473 k
(...)
Installing dependencies:
 kernel-core                                          x86_64           4.18.0-348.20.1.el8_5                                 certify-baseos               37 M
 kernel-modules                                       x86_64           4.18.0-348.20.1.el8_5                                 certify-baseos               29 M

Transaction Summary
===============================================================================================================================================================
Install   3 Packages
Upgrade  64 Packages

Total download size: 140 M
Is this ok [y/N]: 

Możemy też zastosować automatyczną, codzienną aktualizację systemu wyłącznie łatkami bezpieczeństwa, uruchamiając poniższy zestaw poleceń:

sudo crontab -l | tee syscron.conf && echo "15 3 * * * dnf update-minimal -y --security" >> syscron.conf && sudo crontab syscron.conf && rm syscron.conf

Podsumowanie każdej erraty jest przedstawione w postaci listy. Widok ten natychmiast informuje użytkownika o typie, stopniu ważności (w przypadku aktualizacji zabezpieczeń) i temacie erraty.

Podsumowanie

Podczas konfigurowania i użytkowania systemów linuksowych klasy Enterprise, bezpieczeństwo powinno być priorytetem. Erraty są wygodnym sposobem na likwidację podatności tam, gdzie najważniejsze jest bezpieczeństwo operacyjne systemu, a gdzie nie chcemy wprowadzać nowych funkcji do już poprawnie działającego zestawu oprogramowania. Istnieje wiele sposobów wykrywania i usuwania luk w zabezpieczeniach, ale to dzięki erratom administrator systemu jest w stanie szybko i sprawnie poradzić sobie z tym zadaniem, zachowując przy tym transparentność i świadomość zmian wprowadzanych do systemu.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.