threat-finder – atvērtā pirmkoda CVE skeneris aktīviem pakalpojumiem
OffSeq atvērtā pirmkoda rīki
threat-finder ir OffSeq izstrādāts atvērtā koda Rust komandrindas skeneris, kas atrod CVE ievainojamības programmatūrā, kura patiešām darbojas resursdatorā – nevis tajā, ko apgalvo manifests – un sarindo tās pēc tā, cik tīklā sasniedzams ir katrs skartais pakalpojums, tā ka operatori vispirms novērš to, ko uzbrucējs faktiski var aizsniegt.
2025 4 min lasīšanai
§ 01. Kas tas ir
threat-finder ir Rust valodā rakstīts komandrindas izpildlaika ievainojamību skeneris, ko OffSeq publicējis ar divkāršu MIT / Apache-2.0 licenci. Tā vietā, lai analizētu projekta manifestu vai bloķēšanas failu, tas pārbauda programmatūru, kas patiešām atrodas un darbojas resursdatorā, saista katru pakalpojumu ar precīzu pakotnes koordinātu un ziņo par CVE ievainojamībām, kas to skar.
Galvenais dizaina mērķis ir atbildēt uz šaurāku un praktiskāku jautājumu nekā vispārīgs skeneris: no visa, kas šajā mašīnā ir ievainojams, kuri atradumi ir piesaistīti pakalpojumiem, kas patiešām ir sasniedzami tīklā? Tas ir viens no publiskajiem rīkiem, ko OffSeq izstrādā un izmanto darbu laikā, un tiek piegādāts kā bibliotēkas crate (find_threats) ar plānu CLI apvalku, lai to varētu gan iegult, gan palaist tieši.
Tas darbojas operētājsistēmās Linux (systemd, SysV, OpenRC ar dpkg/rpm/pacman/apk), macOS (Homebrew), BSD sistēmās, Solaris/illumos un Windows (PowerShell ar reģistru, winget, Appx, Chocolatey, Scoop, npm, pip un dotnet kartēšanu). Instalēšana notiek caur Homebrew tap, cargo binstall, cargo install vai iepriekš sagatavotiem arhīviem.
§ 02. Kā tas darbojas
Pēc noklusējuma rīks uzskaita darbojošos pakalpojumus; ar --scope all tas papildus izstaigā katru instalēto OS pakotni. Katrs līdzeklis tiek pārveidots par precīzu Package-URL, kas satur pilnu versiju – ieskaitot epohu un distribūcijas revīziju – un distribūcijas kvalifikatoru, piemēram, pkg:deb/ubuntu/openssh-server@1:8.9p1-3ubuntu0.6?distro=jammy. Šis inventārs tiek salīdzināts ar OffSeq Radar katalogu, izmantojot ekosistēmai raksturīgus versiju noteikumus, tā ka atpakaļportēti drošības labojumi netiek sajaukti ar ievainojamiem būvējumiem – tas ir izplatīts kļūdaino trauksmju avots, kad skeneris naivi salīdzina versiju virknes.
Attiecībā uz sasniedzamību threat-finder katra darbojošos pakalpojuma procesu saista ar ligzdām, kurās tas klausās – /proc/net Linux sistēmā, lsof pārējās Unix sistēmās, Get-NetTCPConnection vai netstat Windows sistēmā – un klasificē sasniedzamību kā loopback, privātu vai publisku. Tas tiek darīts, nolasot lokālo stāvokli; novērtēšanas laikā netiek nosūtītas nekādas paketes, tāpēc tas nezondē un neskenē tīklu. Tādēļ ievainojams dēmons, kas piesaistīts 0.0.0.0, tiek uztverts pavisam citādi nekā tas pats dēmons, kas piesaistīts 127.0.0.1.
Pēc tam atradumi tiek novērtēti skalā 0–100 un iedalīti SSVC stila lēmumu joslās – act-now, soon, schedule, track –, apvienojot kritiskumu, EPSS varbūtību, CISA KEV zināmās izmantošanas statusu un līdzekļa izmērīto tīkla sasniedzamību. Rezultāts tiek izvadīts kā deterministisks JSON (apstiprināti atradumi, neapstiprinātas šķirošanas atbilstības, dati par katra līdzekļa sasniedzamību, apkopojumi pa CVE un kļūdas) un kā SARIF 2.1.0 koda skenēšanas saskarnēm.
§ 03. Kāpēc tas ir svarīgi
Lielākā daļa ievainojamību rīku ziņo par to, kas ir instalēts vai ko deklarē atkarību fails, radot garus sarakstus, kuros sajauktas dīkstāvē esošas pakotnes, ielāpotas, bet vēl neatjauninātas versijas un pakalpojumi, kas klausās tikai localhost. Rezultāts ir uzkrājums, ko grūti šķirot un viegli nepareizi novērtēt kā mazāk svarīgu.
threat-finder to sašaurina līdz tam, kas darbojas, un – kas ir būtiski – tam, kas ir sasniedzams. Katras CVE ievainojamības sasaiste ar konkrētu klausošos ligzdu un tās sasniedzamības klasi ļauj operatoram atšķirt kritisku kļūdu internetam pieejamā pakalpojumā no identiskas kļūdas tikai loopback palīgpakalpojumā. Apvienojumā ar KEV un EPSS signāliem sasniedzamību ņemoša sarindošana virza patiesi steidzamos, izmantojamos un ārēji sasniedzamos jautājumus uz saraksta augšu.
Ekosistēmai raksturīgā versiju salīdzināšana arī tieši mazina trauksmju nogurumu: distribūcijas regulāri atpakaļporto labojumus, nemainot augšupstraumes versijas numuru, un to atzīmēšana par ievainojamu ir biežs iemesls, kāpēc skeneri zaudē operatoru uzticību. Salīdzināšana pēc precīzām distribūcijas koordinātēm novērš šo kļūdaino trauksmju klasi.
§ 04. Kā to lietot
Iestatiet vides mainīgo OFFSEQ_API_KEY un palaidiet threat-finder; noklusējuma skenēšana aptver darbojošos pakalpojumus un ar tiem saistīto sasniedzamību. --scope all paplašina to līdz katrai instalētajai pakotnei (10–50 reižu vairāk analizējamo vienību), --severity filtrē pēc līmeņa, un --strict atmet neapstiprinātas atbilstības.
Automatizācijai --fail-on any|critical|high|medium|low|kev|exposed liek procesam iziet ar nenulles kodu (izejas kods 5), kad sasniegts slieksnis, kas der CI un plānotu resursdatoru pārbaudēm; citi izejas kodi atšķir kļūdu (1), trūkstošu atslēgu (2), neatbalstītu OS (3) un ātruma ierobežošanu (4). --json izdrukā pilno atskaiti uz stdout, un Windows sistēmā --windows-missing-updates uzskaita gaidošos drošības atjauninājumus.
--register iespējo nepārtrauktu uzraudzību: resursdatora koordinātes tiek reģistrētas Radar vienu reizi, tā ka jaunpublicētas CVE ievainojamības, kas tos skar, izraisa trauksmes – pa e-pastu un konsolē, sakārtotas pēc sasniedzamības – bez nepieciešamības skenēt atkārtoti, un resursdatora inventāra novirze tiek izsekota laika gaitā. Projekts ir strukturēts tā, lai turpmākajās versijās paplašinātos uz bloķēšanas failiem, konteineriem un SBOM.