Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
Většinou bývá na začátku různých návodů deaktivace SELinuxu. Nebo v případě, že něco nejde, tak se jde a deaktivuje SELinux a dál už se to neřeší. Takže takto ne. Teď si ukážeme, jak problémy dohledat a řešit. Tento zápisek vznikl jako pokračování zápisku: Střípky z IT - (9) : Nagios : Uhádnete, kde byl problém?
Ve zmíněném zápisku to může chvilku vypadat beznadějně, ale ve skutečnosti je to celkem jednoduché.
Budeme si vše ukazovat na AlmaLinux 8.x. Když máme nějaký problém s oprávněními, tak šup se podívat do logu. Bezpečnostní věci se logují do audit logu, tj. do "/var/log/audit/audit.log". V případě zmíněného kvízu tam uvidíme něco jako toto:
tail -n 50 /var/log/audit/audit.log |grep -i AVC type=AVC msg=audit(1664983293.312:637187): avc: denied { getattr } for pid=1461003 comm="sh" path="/usr/bin/sudo" dev="dm-2" ino=20254 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:sudo_exec_t:s0 tclass=file permissive=0 type=AVC msg=audit(1664983293.312:637188): avc: denied { getattr } for pid=1461003 comm="sh" path="/usr/bin/sudo" dev="dm-2" ino=20254 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:sudo_exec_t:s0 tclass=file permissive=0
Co teď? Nu, evidentně je to problém SELinuxu. Můžeme si zkusit ho dočasně vypnout a ověřit funkčnost takto:
# deaktivace SELinux (logy se budou tvořit dále, ale politiky se nebudou uplatňovat) setenforce 0 # ověříme, že je deaktivováno getenforce # provedeme akci, která nám nešla # následně znovu povolíme SELinux (restarty apod. nejsou třeba, vše funguje hned) setenforce 1 getenforce
Systém není postaven hloupě, s SELinux se počítá. Proto existuje balíček "nrpe-selinux". Tento balíček by měl doplnit kompatibilitu nagios modulů s SELinux. Stačí jen nainstalovat balíček:
dnf install nrpe-selinux
Tento balíček nainstaluje SELinux politiku, takže pak v modulech uvidíme "nrpe_epel" :
emodule -l |grep nrpe nrpe_epel
Po instalaci tohoto modulu je potřeba zapnout ještě fci na povolení volání sudo:
# povolíme setsebool -P nagios_run_sudo on # ověříme nastavení getsebool -a |grep -i nagi logging_syslogd_run_nagios_plugins --> off nagios_run_pnp4nagios --> off nagios_run_sudo --> on nagios_use_nfs --> off
Problém je, že i tak nám to nebude fungovat. Důvod je ten, že tyto politiky nepočítají s moduly třetích stran. Jsou stavěny jen na moduly dodávané s ditribucí / repositářem apod. My ale chceme používat 3rd modul, který volá systemctl apod. Chybu, kterou v našem případě pak dostaneme bude:
# původní chyba (setsebool -P nagios_run_sudo off): NRPE: Unable to read output # aktuální chyba (setsebool -P nagios_run_sudo on) UNKNOWN: nagiosplugin.error.CheckError: [Errno 13] Permission denied: 'systemctl'
Na práci s SELinuxem máme nějaké nástroje, které nejsou by default součástí instalace (např. audit2allow), takže doinstalujeme:
dnf install setroubleshoot
Nyní si můžeme udělat přehledný výpis chyb z logu, ze kterých pak můžeme vyrobit SELinux politiku:
# vyhledání záznamů v logu ausearch -m AVC --start 02/04/2019 17:00:00 --end 02/04/2019 18:00:00 # konverze do čitelnějšího formátu ausearch -m AVC --start 02/04/2019 17:00:00 --end 02/04/2019 18:00:00 | audit2allow #============= nrpe_t ============== #!!!! This avc is allowed in the current policy allow nrpe_t chkpwd_exec_t:file { execute execute_no_trans map open read }; allow nrpe_t gconf_home_t:dir search; allow nrpe_t init_t:unix_stream_socket connectto; allow nrpe_t initrc_var_run_t:file { lock open read }; allow nrpe_t self:capability dac_read_search; #!!!! This avc is allowed in the current policy allow nrpe_t self:capability audit_write; #!!!! This avc is allowed in the current policy allow nrpe_t self:netlink_audit_socket { create nlmsg_relay }; #!!!! This avc has a dontaudit rule in the current policy allow nrpe_t shadow_t:file { getattr open read }; #!!!! This avc is allowed in the current policy allow nrpe_t sudo_exec_t:file { execute execute_no_trans getattr map open read }; #!!!! This avc can be allowed using the boolean 'domain_can_mmap_files' allow nrpe_t systemd_systemctl_exec_t:file map; allow nrpe_t systemd_systemctl_exec_t:file { execute execute_no_trans open read };
Znalý člověk SELinuxu si všiml, že výše je chyba. Tou chybou je vyhledávání logů ohledně AVC. Existuje totiž ještě USER_AVC. Takže celé by to mělo být (za přesnost výpisu neručím, jsou to starší poznámky, možná neúplné, je třeba to brát jako příklad, jak postupovat):
ausearch -m AVC,USER_AVC --start 10/05/2022 17:00:00 --end 10/05/2022 18:00:00 | audit2allow #============= nrpe_t ============== #!!!! This avc is allowed in the current policy allow nrpe_t chkpwd_exec_t:file { execute execute_no_trans map open read }; #!!!! This avc is allowed in the current policy allow nrpe_t gconf_home_t:dir search; allow nrpe_t init_t:system status; #!!!! This avc is allowed in the current policy allow nrpe_t init_t:unix_stream_socket connectto; #!!!! This avc is allowed in the current policy allow nrpe_t initrc_var_run_t:file { lock open read }; #!!!! This avc is allowed in the current policy allow nrpe_t self:capability { audit_write dac_read_search }; #!!!! This avc is allowed in the current policy allow nrpe_t self:netlink_audit_socket { create nlmsg_relay }; #!!!! This avc is allowed in the current policy allow nrpe_t shadow_t:file { getattr open read }; #!!!! This avc is allowed in the current policy allow nrpe_t sudo_exec_t:file { execute execute_no_trans getattr map open read }; #!!!! This avc is allowed in the current policy allow nrpe_t systemd_logind_t:dbus send_msg; #!!!! This avc can be allowed using the boolean 'domain_can_mmap_files' allow nrpe_t systemd_systemctl_exec_t:file map; allow nrpe_t systemd_systemctl_exec_t:file { execute execute_no_trans open read }; #!!!! This avc is allowed in the current policy allow nrpe_t systemd_unit_file_t:service status; #============= systemd_logind_t ============== #!!!! This avc is allowed in the current policy allow systemd_logind_t nrpe_t:dbus send_msg;
Vygenerujeme si policy pro SELinux a provedeme import
# vygenerování policy / modulu ausearch -m AVC,USER_AVC --start 10/05/2022 17:00:00 --end 10/05/2022 18:00:00 | audit2allow -a -M nrpe_systemd # výstupem jsou dva soubory: nrpe_systemd.te # čitelný, ze kterého se vyrábí nečitelný modul nrpe_systemd.pp # modul jako výstup z ".te" souboru # import modulu semodule -i nrpe_systemd.pp # ověření, že byl naimportován semodule -l |grep nrpe nrpe_epel nrpe_systemd
Po naimportování modulu začne fungovat i vzdálené volání "check_systemd" a vše šlape.
V zápisku jsme si ukázali, jak jednoduše najít, kde je problém, jaký je postup pro jeho řešení apod. Pokud použijeme předpřipravené nástroje, není to nic složitého.
Zdar Max
Tiskni
Sdílej:
policycoreutils-python-utils-2.9-19.el8.noarch : SELinux policy core python utilities Repo : baseos Matched from: Filename : /usr/bin/audit2whyCoz je mimochodem uplne ten samy balik, ktery obsahuje audit2allow. To s tim omezenim poctu radku nechapu - takhle, asi bych ev. grepoval primo ten proces, takze grep sudo /var/log/audit/audit.log, ale i tak davam prednost audit2why.