Snímky systému

Majky

Re:Snímky systému
« Odpověď #15 kdy: 17. 01. 2016, 20:12:29 »
Napsal jsem to těd špatně to už si dohledám sám co se presněji změnilo v tom souboru nebo jestli už soubor neexistuje.
le já potřebuji tu informaci že ten a ta složka se změnila nebo se vytvořila nebo už neexituje.


Jenda

Re:Snímky systému
« Odpověď #16 kdy: 17. 01. 2016, 20:16:59 »
Ale hlavně že mě všetci budou psát jak se mám podívat na google usměvná ironie.
Rozdíl je v tom, že ty chceš něco po nás (a nejsme komerční podpora), ne opačně. Takže je ve tvém zájmu (a IMHO slušnosti) uvést v dotazu všechny relevantní informace. Naopak odpovídající může dát jenom odkaz do dokumentace nebo termíny do vyhledávače a očekávat, že si to najdeš.

PS: Potřebuji vidět co se změnilo presně
Zmíněný rekurzivní find + sha256 sum vyrobí soubor, kde bude vždycky název souboru a jeho kryptografický hash. Takže když ho pak spustíš znovu a pak uděláš diff (osobně používám grafický kdiff3), tak uvidíš, které soubory se změnily.

Možná bude potřeba vygenerované soubory ještě setřídit (příkaz sort), protože find podle mě negarantuje, že projde strom vždy ve stejném pořadí.

Neviditelný

Re:Snímky systému
« Odpověď #17 kdy: 17. 01. 2016, 21:48:51 »
Příslušný požadavek lze řešit např. následujícím skriptem:

Kód: [Vybrat]
#! /bin/bash

OUTFILE="${2}"
FROM_DIR="${1}"
TEMP_OUTPUT="fsprint_tmpout.txt"

printCheckSum() {
  if [ -f "${1}" ]; then
    sha256sum "${1}"
  fi
}

export -f printCheckSum

if [ -z "${FROM_DIR}" ]; then
  echo "Specify a directory to start from"
fi;

if [ -z "${OUTFILE}" ]; then
  echo "Specify a file to save the results to"
fi;

find "${FROM_DIR}" -type d \( -path /dev -o -path /proc -o -path /run -o -path /sys \) -prune -o -exec bash -c 'printCheckSum "{}"' \; 1>"${TEMP_OUTPUT}"
sort -k 2 -s ${TEMP_OUTPUT} 1>"${OUTFILE}"
rm "${TEMP_OUTPUT}"

Příklad použití jest třeba tento:
Kód: [Vybrat]
./fsprint.sh /home/madcat/VBoxShared fsout2.txt
kde první argument je adresář, od kterého dál se má fingerprint vytvořit. Druhý argument je soubor, kam se uloží výsledky.

Porovnání dvou výstupů se provede pomocí diffu
Kód: [Vybrat]
diff -u stary_vypis novy_vypis

Výsledek může vypadat následově:
Kód: [Vybrat]
4871aa90e699f3ad2182049e0a92d94592a2e9fb8c1c619721818d1b13c298d3  /home/madcat/VBoxShared/mpir.dll
 7b886f2b41010f9808fa5906a1221287e6eded005dfc8f6fb97f1746ab9ea3ca  /home/madcat/VBoxShared/nine_q.tar.xz
 f375feb1f51e92fc6bd4c004b72c76c81053a6e4cd35c23cf1481e6eb8a2ee9e  /home/madcat/VBoxShared/Peakmaster.dbc
-1c93005f404468457df2230e1918e75e3028bc60cc579845b528a14ab118d1d1  /home/madcat/VBoxShared/Peakmaster 5.3 Complex.exe
 7739b98386e2d12486687f36b43c95a14cca14f4c241214b5babfc48fced76d0  /home/madcat/VBoxShared/plot_hvl.gp
 07f67e35875d50b5c0357f52288de6ad806873356e9e1effcf953dac8fe3f362  /home/madcat/VBoxShared/qwt-6.1/admin/svn2package.sh
 2342b1e6a9a5b2aa1e672122e909d458db76d79853ccb1aa8335acbde9f03183  /home/madcat/VBoxShared/qwt-6.1/build/designer/Makefile
@@ -21572,7 +21571,7 @@
 0dfeefdcc20b80e9b35590d358699b8416c0e0ad5b57f47cb79e0521acb53f5f  /home/madcat/VBoxShared/qwt-6.1/textengines/mathml/qwt_mml_document.h
 521081001bea8f59b081c7e0078ca6dc3a4a7c733670f624d2bbd3977125bd15  /home/madcat/VBoxShared/qwt-6.1/textengines/textengines.pri
 679386002ae6f9a0693bc6ac97c7f441e9c17ba487d8af793d9390a5c9b9043c  /home/madcat/VBoxShared/qwt-6.1/textengines/textengines.pro
-1193112a469b14aa5c26a8cdeb3f2f7e80dcf3432cca2579ed155dabb12884dc  /home/madcat/VBoxShared/recovery.evd
+25eddc393137556dbf4c7670678fcebf14544194a8839d6693c4e32ddd8cdfb3  /home/madcat/VBoxShared/recovery.evd
 13a469804e5c6f6cd8fcb4d9b9f7186dd8bb0cd4873ee6afeeda39c654774441  /home/madcat/VBoxShared/usb_skelswitch.c
 4f74cc1462729aa764a6746e2164abfb724acec26b1ae2652783a7a348dfabfb  /home/madcat/VBoxShared/uuid.cpp
 1af6946028ab7f932c2ede9c114c16ff746df4a83413653276b2119f1ef60f18  /home/madcat/VBoxShared/.vimrc

Z výstupu je vidět, že byl smazán soubor "Peakmaster 5.3 Complex.exe" a změněn obsah souboru "recovery.evd"

Skriptík je vymyšlen tak, aby neprohledával adresáře /dev, /proc, /run a /sys protože jejich obsah se generuje dynamicky, neukládá se nikam na disk a závisí třeba na tom, jaké jsou k počítači připojené periferie atp.

Stačí toto řešení?

VK

Re:Snímky systému
« Odpověď #18 kdy: 17. 01. 2016, 21:51:33 »
Jak zde bylo řečeno, pořízení seznamu souborů a adresářů a jejich metadat jde nejlépe pomocí kombinace příkazů příkazové řádky (find, stat, sha256sum...) viz man a Google, na to není potřeba žádná grafika. Dva takto vytvořené seznamy jde pak snadno porovnat v jakémkoliv programu typu Kompare, případně jen pomocí diff.

Majky

Re:Snímky systému
« Odpověď #19 kdy: 19. 01. 2016, 01:17:02 »
Na porovnání souborů jsem si oblíbil Meld vážně příznivé GUI.

Ten skript funguje ale je pro mě nepoužitelný (SHA256 Hash je pro celý systém prostě šnek)
Našel jsem "xxHash" https://github.com/Cyan4973/xxHash (Který se chlubí opravdu velkou rychlostí)
Bohužel nejsem schopný vytvořit deb balík který bych následně nainstaloval na Linux Mint.

Tento postup nefunguje:
Kód: [Vybrat]
./configure
make

sudo checkinstall -D -y --install


Může se na to někdo mrknout jak vytvořit deb balík?


Jenda

Re:Snímky systému
« Odpověď #20 kdy: 19. 01. 2016, 01:36:49 »
SHA256 Hash je pro celý systém prostě šnek
Mám dnes už spíš low-end notebook (i3-2350M) a sha256sum mi dává 100 MB/s. Takže 5GB systém by to spočetlo pod minutu. Podle mě problém bude v seekování nebo forkování nových procesů (schválně si místo sha256 zkus dát třeba cat > /dev/null), ne v rychlosti počítání hashe.


Tento postup nefunguje:
Kód: [Vybrat]
./configure
make

sudo checkinstall -D -y --install


Může se na to někdo mrknout jak vytvořit deb balík?
Nemůže, když nenapíšeš, co "nefunguje" znamená za chybu.

Majky

Re:Snímky systému
« Odpověď #21 kdy: 19. 01. 2016, 01:44:53 »
Nemůžu napsat chybu když to žádnou chybu nepíše :-D

Si to zadej do terminálu a uvidíš :-D

Majky

Re:Snímky systému
« Odpověď #22 kdy: 19. 01. 2016, 02:07:10 »
Ve skriptu jsem nahradil sha256 za cat > /dev/null ve výpisu nic není a trvá to taky dlouho co mám podle toho poznat ?

Nebo kde je zakopanej pes ?

Neviditelný

Re:Snímky systému
« Odpověď #23 kdy: 19. 01. 2016, 08:27:34 »
Ve skriptu jsem nahradil sha256 za cat > /dev/null ve výpisu nic není a trvá to taky dlouho co mám podle toho poznat ?
Že problém není v rychlosti výpočtu hashe. Nevím, na čem to spouštíš, ale problém vidím jednak v rychlosti disku, protože se musí v podstatě stylem random access přečíst každý soubor, co se v počítači nachází a těch mohou být stovky tisíc. Navíc se každý soubor pro výpočet hashe musí komplet přečíst. Další problém je s rychlostí shellových skriptů obecně, pro každý soubor se musí spustit instance bashe a z ní sha256sum a echo. U desítek tisíc souborů se ten overhead projeví. To spouštění celého bashe by se ze skriptu nejspíš dalo odstranit, doopravdy by pomohlo přepsat ten skript do nějakého primárního jazyku.

Majky

Re:Snímky systému
« Odpověď #24 kdy: 19. 01. 2016, 10:14:43 »
Neviditelný: Takhle tomu už rozumím :-)

Tak to jsem tam kde jsem byl :-D

System Explorer na Windows to má za chvilku to vážně není nic na linuxu co to dokáže :-D
Jako 20 sekund a 3 hodiny je rozdíl no :-D

Neviditelný

Re:Snímky systému
« Odpověď #25 kdy: 19. 01. 2016, 16:13:45 »
Největší overhead způsobí "exec" ve findu. Skript jsem zkusil spustit na cca 5 let staré i7 v práci Cygwinem pod Windows. Projít 124 GB ve 297079 souborech trvalo několik vteřin, totéž s "echo {} > /dev/null" v exec parametru nedoběhlo ani přes oběd. Pokud nepotřebuejš checksumy, stačí řádek, kde se volá find nahradit tímto:

Kód: [Vybrat]
find "${FROM_DIR}" -type d \( -path /dev -o -path /proc -o -path /run -o -path /sys \) -prune -o -print 1>"${TEMP_OUTPUT}"

O něco rychlejší verze s checksumy se dá vymyslet třeba takto:
Kód: [Vybrat]
find "${FROM_DIR}" -type d \( -path /dev -o -path /proc -o -path /run -o -path /sys \) -prune -o -print0 | xargs -0 -r sha256sum 1>"${TEMP_OUTPUT}" 2>/dev/null
Na stejný zkušební vzorek potřeboval něco přes půl hodiny.

Pro cokoliv rychlejšího by se skript asi musel přepsat v něčem jiném, v Pythonu nebo PHP by to bylo na pár řádek.

VK

Re:Snímky systému
« Odpověď #26 kdy: 19. 01. 2016, 19:40:42 »
to vážně není nic na linuxu co to dokáže :-D

Ono to s největší pravděpodobností existuje, a já jsem si vzpomněl, že jsem chtěl jednou něco takového také použít, ale teď se nějak nedokážu správně zeptat Googla. V každém případě to ale bylo pro příkazovou řádku, nic klikacího. Já bohužel nic podobného nepoužívám, jen občas inotifywatch, ale to je na sledování práce se soubory (statistiky) v "reálném čase". Ještě zkusím trochu pohledat...

VK

Re:Snímky systému
« Odpověď #27 kdy: 19. 01. 2016, 20:18:30 »
Tak asi to bylo AIDE. Umí kontrolovat integritu a atributy. Případně Samhain či Tripwire.

okur_pytel

Re:Snímky systému
« Odpověď #28 kdy: 19. 01. 2016, 22:42:23 »

VK

Re:Snímky systému
« Odpověď #29 kdy: 19. 01. 2016, 22:58:44 »
Teď jsem ještě našel http://ossec.github.io . Je to trochu off topic vzhledem k původnímu dotazu, ale přijde mi to zajímavé - kontrola integrity souborů a dalšího ve formě klient(agent)/server...