rpm katalogizalas

 ( wyx | 2019. február 27., szerda - 16:18 )

Skacok. Jo lenne valami best practice, vagy valami konnyen hasznalhato (ingyenes) tool, amely kepes a Linux-okon INSTALLALT rpm csomagokat katalogizalni (akar adatbazisban) es nehany fontos infot roluk eltarolni.

Pl ilyeneket:
package name___ version ___ from repo ___ checksum ___ builddate ___ packager ___ license ___ installed ___ Location (URL)
---

miert is kellene? kesobbiekben ossze akarjuk hasonlitani egy CVE-ben tarolt verzioval, hogy kidobjuk, melyik rendszer erintett.

Otlet?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A from repo kivételével mind elérhető az rpm -qi paranccsal, annak kimenetét meg úgy szűröd, ahogy szeretnéd.

Mint irtam , valami erre kihegyezett tool kellene, ami tobb gepet is katalogizal. Nem a kimenet a kerdes.

rpm kimenete "host" adattal betolni egy adatbázisba?

Ansible valszeg meg tudná futtatni több gépen, s dbbe is be lehetne dobni onnan tippre...

Az infrastruktúra nagyságától függően még a Spacewalk felé is lehetne keresgélni - igaz, ott azt kell force-olni, hogy a központi repóból érkezzen minden.
Egyébként meg a yum-utils csomagot is erősen javaslom, elég sok okosságot tud :-P

Mint irtam, keresek egy "tool"-t. Hackelni en is tudnam a rendszert, de erre nincs idom. (vagy jo lenne, ha nem lenne)
Nem letezik, hogy erre nincs valami, talan nem en talalom ki eloszor ezt a cuccot.

Nem hackelés, hanem a szükséges eszközök megvalósítása. Ilyesmit egyébként már tényleg csináltak, csak a legtöbb esetben a "másik irányból", azaz központi repó- és csomagkezelésből indul a dolog, ahonnan a kickstart-os telepítéstől kezdve kizárólagosan kapják a menedzselt gépek a csomagokat.

Satelite-re gondolsz?

Amire szükséges van, az valami ilyesmi:
-az egyes gépeken az rpm adatbázisában tárolt, számodra releváns adatok kinyerése.
-az előbbi adatoknak a hiosthoz kapcosltan adatbázisban rögzítése
-az adatbázisban történő keresgélés/szűrés lehetősége.

Az első lokálisan futó rpm/yum/dnf megfelelően felpimpelve, a kimenetét a következő lépésnek megfelelőre reszelni.
A második a DB frissítését végző komponens, első körben kell egy diff arról, hogy mi van a gépen és mit tud erről a DB, ami van/nem tud róla az insert, ami nincs/tud róla az delete - ha a legegyszerűbb, favágó megoldást nézzük.
A többi meg néhány jól irányzott sql select.

+1 - vénülök, nem jutott eszembe :-)

Van ebben valami RPM katalogizalas....mert nagyvonalakban atnezve minden van, csak mintha ezt nem latnam.

A Foreman+Katello+Pulp+Candlepin csomagból áll a Red Hat Satellite 6-os szériája. A komponensek a Foreman projekten belül készülnek.
System management with Foreman/Katello – Part 1: Introduction and installation

Jah latom. Ha ez valami agyuval verebre cucc lesz.

Van valamilyen "ertelmes" guideline arra, hogy sima katalogizalasra (esetleg CVE import) hogyan hasznalhatom?

Nem tudom, hogy ezt beüzemelni, vagy az rpm -qai -t átküldeni egy szűrőn a több idő :)

Ez kb. azt csinálja, amit szeretnél. Vagyis telepített csomagokat vet összeCVE adatbázisokkal.

https://vuls.io/

Nem igazán kiforrott cucc, de ígéretes.

Ejha, valami ilyet kerestem. Van tapoasztalatod, Redhat/Centos disztrokon? Vagy hazsnaltad mar? Miert nem kiforrott?

Ubuntun és RedHat-on tesztelem. A dokumentáció nem túl részletes, sok dolog hiányzik belőle.
Alapvetően működik, de eltart egy ideig mire az ember komponensenként felpakolja, meg kiismeri magát benne.

Használok fizetős szoftvert, ami RHEL és Suse disztrókon tökéletesen gui-ból tudja ezt a CVE audit funkciót (sok minden más mellett), viszont abba csak akkor kerül bele egy CVE, ha már vendor patch is van rá - ami szívás.
E mellé akarok valami olyan megoldást, ami akkor is jelez érintettséget, ha pl. RHEL-nél még csak Affected a státusz, de nincs errata.
Egyelőre nem egyértelmű, hogy erre alkalmas -e. Volt olyan cve, amire jelezte, hogy egy adott gép érintett, és nem volt még vendor patch, de olyan CVE-t is találtam, ami nem volt új de mégsem jelezte a szerver érintettségét, pedig kellett volna. Úgy tűnik, mintha RHEL-en szintén csak létező errata esetén jelez érintettséget.

Agent nem kell neki, kulcs alapú SSH-val elvan. Elég gyorsan végigment az 50 gépes tesztkupacon, 1-2 régebbi (őskövület) oprendszeren akadt csak fenn.
A generált riport 1-2 gépnél még okés, 50-100 esetén már kell valami amivel feldolgozza az ember a generált textfájlokat (a management számára is értelmezhető formába :) ).

Melyik fizetost hasznalod?

Ez a progi is jo lenne, de ha nincs hozza leiras, nem tudom, lesz e idom erre kitapasztalgatni...

Egyebkent ami megijeszt, az a japan nyelvu cucc, ami a kepeken van rajta. Mi ez a hulyeseg?

Nekem olyan progi kell, amiben meg is tudom nezni az installalt RPM-eket (par adattal, amiket felsoroltam), gepekre lebontva, nemcsak a CVE erintettseget.
Ez azt tudja?, azaz vegigmegy a gepeken es general egy (sajat) adatbazist roluk, vagy valami CVE-t.

A CVE-ket honnan toolti le? NIST?

Kb. 15 gepre kellene, tobbszor.

Suse Managert használok. RHEL és SLES menedzselhető vele (salt agentekkel). Pont mostanában olvastam, hogy van egy upstream projectje Uyuni néven, ami úgy tűnik ingyenes, de gyakorlatilag nulla dokumentációt találtam róla.

A japán nyelvű cucc azért van, mert főként japánok fejlesztik.
Úgy láttam ez json textfájlokat generál a szervereken levő csomagokról. (szerverenként egy fájl)
Igen, NIST-ről tölti le a cve-ket (nvd.nist.gov), meg még máshonnan is, (most nincs kéznél, hogy megnézzem pontosan honnan)

Aha.

Docker alatt ki akartam probalni....egy darabig okes (egeszen a scan-ig), aztan:

root@docker02:/tmp/vuls# docker run --rm -it -v ~/.ssh:/root/.ssh:ro -v $PWD:/vuls -v $PWD/vuls-log:/var/log/vuls vuls/vuls configtest -config=./config.toml

[Mar 4 14:41:06] ERROR [localhost] Error loading ./config.toml, c74 is invalid. keypath: /root/.ssh/id_rsa not exists
[Mar 4 14:41:06] ERROR [localhost] If you update Vuls and get this error, there may be incompatible changes in config.toml
[Mar 4 14:41:06] ERROR [localhost] Please check README: https://github.com/future-architect/vuls#configuration
-------------

Miert nem talalja ezt a kulcs file-t? Pedig ott van, az alap jogokkal.

root@docker02:/tmp/vuls# ll /root/.ssh/
total 20
drwx------ 2 root root 4096 Mar 4 15:11 ./
drwx------ 3 root root 4096 Mar 2 2018 ../
-rw------- 1 root root 1675 Mar 4 15:08 id_rsa
-rw-r--r-- 1 root root 395 Mar 4 15:08 id_rsa.pub

passz.
CentOS manual install -t próbáltam, az ment.

Hasznalsz password-ot a kulcshoz?

a tesztkörnyezetben nem használtam.

Es az a kulcs fajl latszodik a dockeren belulrol is? Olvashato is?
Tippre azt gondolnam, hogy a selinux vagy valami szepseg bekavar neked, es a dockeren belulrol nem latszodik.

Ubuntun futtattam, selinux nincs.
Viszont megneztem a kodot:

---------------
var keyPass string
var err error
if p.askKeyPassword {
prompt := "SSH key password: "
if keyPass, err = getPasswd(prompt); err != nil {
util.Log.Error(err)
return subcommands.ExitFailure
}
}

err = c.Load(p.configPath, keyPass)
if err != nil {
util.Log.Errorf("Error loading %s, %s", p.configPath, err)
util.Log.Errorf("If you update Vuls and get this error, there may be incompatible changes in config.toml")
util.Log.Errorf("Please check README: https://github.com/future-architect/vuls#configuration")
return subcommands.ExitUsageError
}
-------------

Nem vagyok egy go szakerto, de mintha hibat dobna, ha nincs keypass.

Sajna en is tapasztaltam olyat, hogy egy CVE (2015-os) erintett volt arendszeren, de nem jelezte, de ugyanarra a csomagra egy ujabbat viszont igen.
Elvileg mindegyikhez van errata.
Mi lehet ennek az oka?

A masik pedig az, hogy futtatasok kozott is kzlonbseg van.

Eloszor en letoltom a CVE-ket, majd lefuttatom a scan-t, majd report, utana a GUI feluleten nezem meg az eredmenyeket.
Az egyikben ott van a CRIT serulekenyseg, a masik futtatasban nincs.
Tapasztalat?

Wazuh: Open Source, Elasticsearchben tarolja az adatokat OSS-SEC agentet hasznal es Docker imagek is elerhetok hozza: Docker Hub vagy GitHub

Aha, jonak nez ki. Van tapasztalat rola?
Nem latom, hol van az RPM katalogizalas es CVE kezeles/osszehasonlitas benne.

Korabban PCI-DSS teruleten dolgoztam, ahol AlienVaultot hasznaltunk plusz penetration test.

Meg nem hasznaltam Wazuh-t, az AlienVault szinten OSS-SEC-et hasznal a linkelt oldalon megtalalod, csak fizetos termek.

Lista a tamogatott szolgaltatasokrol: https://documentation.wazuh.com/current/user-manual/capabilities/index.html
Itt pedig a serulkenyseg felterkepezes: https://documentation.wazuh.com/current/user-manual/capabilities/vulnerability-detection.html
Van egy vulnerability detector, ami kulonbozo adatbazisokat/forrasokat hasznal, Redhat/CentOS: Red Hat Security Data

Ismereteim szerint https://www.inspec.io/ pont megteszi mindezt kulonfele adatbazisos/gyujtogetos "kezi" effort nelkul is

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/