Zjištění otevíraných nebo vytvářených souborů

x x

Zjištění otevíraných nebo vytvářených souborů
« kdy: 05. 06. 2024, 19:11:50 »
Potřeboval bych radu jak snadno zjistit jaké soubory vytváří či otevírá spouštěná aplikace. Mělo by mi stačit ke spokojenosti jen co se odehrává v podadresářích domovského účtu. Poradíte někdo jak to udělat??


Logik

  • *****
  • 1 029
    • Zobrazit profil
    • E-mail
Re:zjištění otevíraných nebo vytvářených souborů
« Odpověď #1 kdy: 05. 06. 2024, 19:36:08 »
Na Linuxu hledáš strace.

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #2 kdy: 05. 06. 2024, 20:41:22 »
Používám na to iwatch, co používá inotify. V Debianu je to v balíčku iwatch https://packages.debian.org/bookworm/iwatch

Příklad, rekurzivně projede všechny soubory v aktuálním adresáři a zobrazuje všechny eventy nad soubory. Pokud je toho ve výpisu dost, tak --help a eventy nebo sledované soubory/adresáře vybrat podle zájmu.
Kód: [Vybrat]
iwatch -e all_events -r ./
Edit: Aha, teď koukám, že je požadavek na "co dělá spouštěná aplikace"... Tam je opravdu vhodný nástroj strace. iwatch je vhodný nástroj pro "k jakým souborům se přístupuje/čte/zapisuje v nějakém adresáři".
« Poslední změna: 05. 06. 2024, 20:43:29 od Vantomas »

z_sk

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #3 kdy: 05. 06. 2024, 22:11:07 »
inotify

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #4 kdy: 05. 06. 2024, 22:28:29 »
nepíšeš distribuci a ani filesystem. Kromě rad výše mrkni i na auditd, pokud ho máš.


Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #5 kdy: 05. 06. 2024, 22:36:39 »
Ono by mohlo stačit sledovat /proc/PID/... a tam by měli být filedescriptory otvíraných souborů

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #6 kdy: 06. 06. 2024, 09:26:02 »
Ono by mohlo stačit sledovat /proc/PID/... a tam by měli být filedescriptory otvíraných souborů

to dělá spousta monitorovacích nástrojů (vč. lsof), ale je to pořád snapshot v čase, když je zápis velmi rychlý a soubor se po zápisu zavře, nemusíš nic spozorovat. To je právě i problém ochrany před viry/malwery či jak to nazvat. Na to jsou lepší tracovací či injectovací nástroje na úrovni kernelu.

Pak tady máme samozřejmě celou řadu jiných cest, jak zapsat data bez syscallu a viditelnosti konkrétní cesty.


x x

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #7 kdy: 06. 06. 2024, 11:42:08 »
Děkuji za náměty jak na to. Jinak distribucí je Ubuntu v předposlední LTS verzi, filesystem ext4.
Jinak zcela určitě ten přístup či vytvoření souboru bude velmi rychlý.

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #8 kdy: 06. 06. 2024, 12:42:46 »
takže asi strace, ale dělá to hodně výstupu, zase tam bude všechno

Re:Zjištění otevíraných nebo vytvářených souborů
« Odpověď #9 kdy: 06. 06. 2024, 14:56:57 »
Jak už zmiňovali ostatní, tak nejjednodušší jsou asi nástroje z inotify-tools (fsnotifywatch, inotifywatch..). Případně strace, což je obecnější nástroj na monitorování různých syscallů. Obojí je fajn, pokud chcete dělat jen ad-hoc interaktvní monitoring.

Jestli jde o nějaké dlouhodobější sledování, tak je na to vhodnější použít auditd. Ten se obecně hodí pro monitorování jak třeba filesystému, tak i síťových spojení atp. Na některých distribucích je rovnou v základní instalaci, do Ubuntu se, mysím, přidá instalací balíčku auditd, jestli je to stejné jak na Debianu.
Běží to jako služba a můžete vytvořit docela mocná pravidla na monitoring. Jak persistentní do nějakého .rules souboru, tak i ad-hoc interaktivní přes auditctl.
Nějaké intro je pak třeba tady:
https://www.linux.com/topic/desktop/customized-file-monitoring-auditd/