GNU/Linux >> Znalost Linux >  >> Linux

Detekujte zastaralé sdílené knihovny v paměti pomocí UChecker

Tento tutoriál vysvětluje, co je UCecker a jak zjistit zastaralé sdílené knihovny v paměti pomocí UChecker v operačních systémech Linux.

Úvod

IT organizace, které se spoléhají na svobodný a otevřený software (FOSS), čelí neustálému boji se zpracováním neopravených sdílených knihoven. Je to netriviální problém, protože sdílené knihovny jsou široce cílenou útočnou plochou. Výzkum například naznačuje, že OpenSSL je nejvíce cílený software na světě, který představuje 19 % nepřátelské aktivity na celém světě .

Pokud jste odpovědní za knihovny OpenSSL a GNU C (glibc), mezi mnoha srovnatelnými kódovými sadami s otevřeným zdrojovým kódem, jste povinni provádět včasné aktualizace a správu oprav. Tradiční přístup k aktualizaci knihoven zahrnuje restartování celého serveru nebo restartování všech procesů, pokud neexistuje způsob, jak zjistit, které procesy stále používají zastaralé knihovny. Restartování systému však způsobuje komplikace a vlastní rizika. Díky KernelCare týmu, můžeme tento problém snadno vyřešit pomocí jednoduchého skriptu s názvem UCecker .

Co je UChecker

UChecker, zkratka pro Kontrola uživatelského prostoru , je bezplatný a open source skener, který identifikuje, které z vašich procesů stále používají zastaralé knihovny a potřebují restart. Byl vytvořen během vývoje živého záplatování pro sdílené knihovny od KernelCare. Pomocí Uchecker můžete identifikovat zranitelné knihovny FOSS a opravit je. Budete muset restartovat postižené procesy (pokud nepoužíváte služby aktualizace knihoven bez restartu), ale skenováním zranitelností můžete určit, které procesy vyžadují pozornost a které ne.

V důsledku toho se vyhnete zbytečnému restartování serveru, které má za následek zhoršení služeb a/nebo výpadky, stejně jako vytváření oken zranitelnosti, protože knihovny zůstanou neopravené, dokud nebude možné naplánovat restart. Ve skutečnosti možná ani nevíte, které služby používají které knihovny, takže je lákavé restartovat celý server a aktualizovat je všechny nebo restartovat hlavní služby. I tato praxe může být stejně rušivá jako restart.

Jak UChecker funguje

Uchecker funguje se všemi moderními linuxovými distribucemi počínaje 6. verzemi. Je to svobodný software, vytvořený pomocí JSON a otevřený k redistribuci a/nebo úpravám podle podmínek GNU General Public License. Uchecker detekuje procesy, které používají staré (tj. neopravené) sdílené knihovny. Detekuje a hlásí neaktuální sdílené knihovny, které jsou používány běžícími procesy. Jeho detekční schopnosti jsou založeny na porovnání BuildID. V důsledku toho jsou si vědomi smazaných nebo nahrazených souborů.

Následující grafická ilustrace ukazuje, jak Uchecker funguje.

Nástroj Uchecker je schopen detekovat ID a název procesu a také názvy sdílených knihoven, které nejsou opraveny, spolu s jejich ID sestavení. Uchecker získává nejnovější BuildID ze zdrojů KC. To pak trvá běžící proces iterací přes /proc/ a získá propojenou sdílenou knihovnu z /proc/<pid>/maps . V tu chvíli se Uchecker zeptá, zda sdílená knihovna nebyla nahrazena nebo odstraněna. V závislosti na odpovědi software buď analyzuje ELF ze systému souborů, nebo analyzuje ELF z namapované paměti. Poté Uchecker shromáždí BuildID z .note.gnu.build-id .

Detekce zastaralých sdílených knihoven v paměti pomocí UCecker

Není nutná žádná instalace! Stačí spustit skript Uchecker a najít neopravené knihovny na vašem linuxovém serveru:

# curl -s -L https://kernelcare.com/checker | python

Výše uvedený příkaz prohledá vaše servery Linux, zda neobsahují zastaralé sdílené knihovny propojené s pythonem zpracovává a uvádí je ve standardním výstupu.

Tyto neopravené knihovny pak můžete aktualizovat pomocí výchozího správce balíčků vašeho systému.

Podívejte se na vizuální ukázku toho, jak Uchecker funguje v následujícím videu:

Závěr

Uchecker vám umožňuje udržovat vaše knihovny FOSS opravené a aktuální. Můžete se vyhnout běžnému problému s restartováním serverů, protože nevíte, které procesy je třeba restartovat. To je relevantní mimo jiné pro knihovny OpenSSL a GNU C (glibc). S technologiemi, jako je KernelCare+, je nyní dokonce možné provádět živou opravu zranitelností v základních knihovnách uživatelského prostoru kromě těch v linuxovém jádře. Aplikace můžete aktualizovat, aniž byste ovlivnili jejich provozní stav. Nejsou vyžadovány žádné restarty ani restarty.


Linux
  1. Chyba při načítání sdílených knihoven libcrypto.so.1.1 – OpenSSL [Oprava]

  2. Free Command v Linuxu vysvětleno s příklady

  3. Úvod do sdílených knihoven Linuxu (Jak vytvořit sdílené knihovny)

  1. Příklady příkazů ipcs v Linuxu

  2. Doporučení pro meziprocesovou komunikaci

  3. Manipulace s pamětí pomocí struktury epoll_event

  1. Odebrat sdílenou paměť posix, když se nepoužívá?

  2. Proč je sdílená paměť jádra na Ubuntu 12.04 0?

  3. rkhunter:Podezřelé segmenty sdílené paměti