Telegramista on tullut yksi korkeimmista signaaleista tiedonlähteistä reaaliaikaiseen kyberuhkatiedusteluun. Valtiollisesti suuntautuneet uhkatoimijat, haktivistiryhmittymät ja rikosryhmät, jotka hyökkäävät hallinto-, kriittisen infrastruktuurin ja puolustuskohteiden kimppuun, ilmoittavat operaatioistaan rutiinimaisesti ennen hyökkäystä tai välittömästi sen jälkeen – nimeävät uhrit, väittävät hyökkäysvektoreista ja julkaisevat todisteita. Ongelmana on volyymi ja rakenne: satoja kanavia, tuhansia viestejä päivässä, lähes kaikki jäsentämätöntä luonnollista kieltä, sekoitettuna häiriöihin, jakeluihin ja harhaanjohtamiseen.
Corvus.Sense on rakennettu ratkaisemaan tämä ongelma tuotantomittakaavassa. Sen ytimessä on monivaiheinen LLM-putkisto, joka kerää raakojen Telegram-viestisyötteiden dataa ja tuottaa rakenteellisia uhkatiedustelutietueita sektoriluokitteluineen, maantieteellisine attribuutioineen, hyökkäysvektoritageineen ja luottamuspisteytyksineen – alle 90 sekunnissa viestin julkaisusta. Tässä artikkelissa kuvataan, miten tämä putkisto on arkkitehtoitu ja miksi kukin suunnittelupäätös tehtiin.
Miksi LLM-mallit eikä sääntöpohjainen poiminta
Ensimmäinen suunnittelupäätös oli, käytetäänkö determinististä poimintaa (regex, avainsanojen täsmäytys, nimettyjen entiteettien tunnistaminen) vai generatiivista LLM-päättelyä luokitteluun. Arvioimme molempia lähestymistapoja laajasti merkityllä tietoaineistolla, joka sisälsi 12 000 vahvistettua hyökkäysilmoitusta 34 Telegram-kanavalta. Johtopäätökset olivat yksiselitteiset.
Sääntöpohjaiset järjestelmät saavuttivat hyväksyttävän tarkkuuden tunnetuille toimijaryhmille, joilla on yhtenäiset julkaisukuviot, mutta romahtivat uusien toimijoiden, koodinvaihdon (ukrainankielen, venäjän ja englannin sekoittavat viestit), lyhenteiden, tahallisen hämärtämisen ja tyylillisen vaihtelun kohdalla. Yli 30 %:n väärään negatiiviseen asteet uusien toimijoiden kanavilla tekivät sääntöpohjaisesta poiminnasta operatiivisesti riittämättömän – yksi kolmesta todellisesta hyökkäysilmoituksesta puuttuminen ei ole toimiva tiedustelutuote.
LLM-pohjainen luokittelu saavutti yli 91 %:n F1-tuloksen samalla arviointiaineistolla, mukaan lukien koodinvaihtoviesteissä ja uusien toimijoiden kanavilla, jotka eivät olleet mukana harjoitusdatassa. Kompromissi on viive ja kustannus viestiä kohti, joita molempia käsitellään alla kuvatussa putkistoarkkitehtuurissa.
Putkistovaiheen 1: keruu ja esikäsittely
Corvus.Sense muodostaa yhteyden Telegram-kanaviin Telegram API:n kautta käyttäen omistettuja palvelutilejä. Jokaista konfiguroitua kanavaa kysellään konfiguroitavalla välillä (oletus 30 sekuntia). Uudet viestit viimeisen kyselyaikaleiman jälkeen noudetaan, deduplikoidaan viesti-ID-indeksiä vasten ja lisätään käsittelyjonoon.
Esikäsittely korjaa useita datalaadun ongelmia ennen päättelyä. Alle 20 tokenin viestit hylätään – niissä ei ole riittävästi semanttista sisältöä luokitteluun. Edelleenvälitetyt viestit seurataan alkuperäiskanavan kanssa; jos alkuperäinen on jo käsitelty, edelleenvälitys merkitään kaksoiskappaleen ja ohitetaan, jotta sama ilmoitus ei tuota useita hälytysmerkintöjä. Pelkkä media -viestit (kuvat, video ilman kuvatekstiä) jonottuvat erikseen näköhavaintopohjaista putkistoa varten, joka ei kuulu tämän artikkelin piiriin.
Kielentunnistus suoritetaan jokaiselle viestille lähdekielen (ISO 639-1) merkitsemiseksi. Tämä tagi välitetään alajuoksuun LLM-kehotukseen, jotta luokittelukehotuksessa voidaan käyttää kielikohtaisia few-shot-esimerkkejä.
Putkistovaiheen 2: binaarinen relevanssikuokittelu
Täysi LLM-luokittelupuhelu on kallis suhteessa käsiteltyjen viestien volyymiin. Kevyt binaarinen luokitin toimii porttina ennen LLM-päättelyä suodattaakseen pois ei-operatiivisen sisällön. Tämä luokitin on hienosäädetty enkooderimallin (350 miljoonaa parametria) harjoittaa erottamaan operatiiviset hyökkäysilmoitukset kommentoinnista, uutisjakeluista, rekrytointiviesteistä, propagandasta ja yleisestä kanavan sisällöstä.
Binaarinen luokitin toimii alle 200 millisekunnin viiveellä viestiä kohti pelkällä CPU-päättelylaitteistolla. Tuotannon arviointiaineistossa se saavuttaa 94,3 %:n tarkkuuden ja 89,7 %:n palautusarvon. Palautusarvo ei ole tarkoituksella korkeampi – tässä vaiheessa väärän negatiivisen hinta (todellinen ilmoitus, joka ei etene LLM-luokitteluun) on korkea, joten kynnys on asetettu konservatiivisesti palautusarvon maksimoimiseksi. Väärät positiiviset tässä vaiheessa maksavat täyden LLM-päättelypuhelun, joka on kontrolloitu kompromissi.
Keskeinen havainto: Binaarinen portti ei ole tarkkuuden pullonkaula – se on kustannussuodatin. Tarkkuus toimitetaan LLM-vaiheessa. Portti on olemassa varmistaakseen, että LLM käsittelee vain ehdokkaita operatiivisia viestejä, vähentäen päivittäisiä LLM-puheluja noin 78 % verrattuna LLM-päättelyn ajamiseen koko viestivirrassa.
Putkistovaiheen 3: LLM-luokittelu ja rikastaminen
Binaarisen portin läpäisevät viestit siirtyvät LLM-luokitteluvaiheeseen. Corvus.Sense käyttää rakenteellista tulostuskehotusta, joka ohjaa mallia poimiman ja luokittelemaan seuraavat kentät viestin tekstistä:
Uhrin organisaatio. Nimetty tai implisiittinen kohdeorganisaatio, normalisoitu kanoniseen muotoon. Jos viesti nimeää tietyn organisaation (esim. ministeriön, laitoksen tai rahoituslaitoksen), nimi poimitaan sellaisenaan. Jos uhri on implisiittinen sektorin ja maantieteen perusteella ilman tiettyä nimeä, kenttä täytetään nullilla ja merkitään analyytikkotarkastelua varten.
Sektoriluokittelu. Yksi kahdeksasta kiinteän taksonomian nimikkeestä: kriittinen infrastruktuuri, rahoitus, hallinto, televiestintä, energia, puolustus, terveydenhuolto tai liikenne. Kiinteä taksonomia on tarkoituksellinen – avoin luokittelu tuottaa epäyhtenäisiä nimikkeitä, joita ei voida aggregoida luotettavasti. LLM:lle annetaan määritelmät jokaiselle kategorialle ja se ohjataan valitsemaan yksittäinen parhaiten sopiva nimike.
Maantieteellinen attribuutio. ISO 3166-1 alpha-2 -maakoodi uhrin toimintamaalle. Kun useita maita mainitaan kohteina, kaikki poimitaan taulukkona. Mallia ohjataan nimenomaisesti erottamaan uhrimaa toimijan oletetusta alkuperämaasta – yleinen virhe naiivin poiminnan lähestymistavoissa.
Hyökkäysvektori. Yksi kuudesta vektoriluokasta: DDoS, sivuston turmeleminen, tietojen suodattaminen, kiristysohjelma, tunnisteiden varkaus tai toimitusketjun murtaminen. Monivektori-hyökkäykset esitetään taulukkoina.
Luottamuspistemäärät. Jokaiselle poimitulle kentälle malli palauttaa luottamuspistemäärän välillä 0 ja 1. Kehote ohjaa mallia edustamaan aitoa episteemistä epävarmuutta – viesti, jossa sanotaan "hyökkäämme Ukrainan energiaan", antaa korkean luottamuksen maantieteelle (UA) ja sektorille (energia), mutta matalamman luottamuksen hyökkäysvektorille (ei määritelty) ja uhriorganisaatiolle (ei nimetty). Pisteet eivät ole jälkikäteiskalibrointia; ne johdetaan suoraan mallin epävarmuuden esityksestä generoinnin aikana.
LLM-kehote on rakenteellinen tuottamaan JSON-vastauksen tiukan skeeman mukaisesti. Vastauksen jäsentäminen validoi skeeman vastaanottamisessa; virheelliset vastaukset käynnistävät automaattisen uudelleenyrityksen lisäohjeella muotoiluvirheen korjaamiseksi. Uudelleenyrityslogiikka rajoittuu kahteen yritykseen; viestit, jotka tuottavat edelleen virheellisen tuloksen kahden yrityksen jälkeen, merkitään analyytikkotarkastelua varten ja poistetaan automaattisesta käsittelystä.
Keskeinen havainto: Sektori- ja hyökkäysvektoriluokittelun kiinteä taksonomia-rajoite on kriittinen operatiiviselle käytettävyydelle. LLM, joka jätetään tuottamaan vapaatekstisiä luokittelunimikkeitä, tuottaa epäyhtenäisiä synonyymejä – "sähköverkko", "sähköinfrastruktuuri" ja "hyödykesektori" viittaavat kaikki energiasektorin kohteisiin, mutta niitä ei voida aggregoida ilman normalisointivaihetta. Kiinteän nimikkeistön rajoittaminen päättelyn aikana eliminoi koko tämän datalaatua koskevien ongelmien luokan alajuoksulla.
Hyökkäysketjun graafin rakentaminen
Jokainen luokiteltu viestitietue kirjoitetaan hyökkäysketjun graafikantaan LLM-luokittelun jälkeen. Graafi mallintaa uhkaympäristöä ominaisuusgraafina kolmella solmutyypillä: uhkatoimijat, uhriorganisaatiot ja hyökkäystapahtumat. Reunat esittävät suhteita: "toteutti" (toimijasta tapahtumaan), "kohdisti" (tapahtumasta uhriin) ja "käytti vektoria" (tapahtumasta hyökkäysvektoritaksonomiasolmuun).
Kun uusi luokiteltu tietue saapuu, graafimoottori suorittaa entiteetin resoluution: tarkistaa, onko nimetty uhriorganisaatio jo olemassa solmuna (käyttäen epätarkkaa nimenvastaavuutta ja maakoodin erottelua) ja kartoittuuko lähdeTelegram-kanava tunnettuun toimijaprofiiliin. Jos molemmat ratkeavat, luodaan reuna, joka yhdistää toimijasolmun uhrisolmuun uuden hyökkäystapahtuman solmun kautta. Jos toimija on uusi (kanavaa ei ole vielä kartoitettu profiiliin), luodaan väliaikainen toimijasolmu analyytikkotarkastelua varten.
Graafi mahdollistaa kyselyitä, joita litteät tietuetietokannat eivät tue tehokkaasti. Esimerkkejä analyytikkotyönkuluista: "Näytä kaikki energiasektorin organisaatiot, joihin tämä toimija on kohdistunut viimeisten 90 päivän aikana, hyökkäysvektorijakaumineen." "Mitkä toimijat ovat kohdistuneet sekä puolustus- että rahoitussektorin organisaatioihin Puolassa tänä kuukautena?" "Mikä on tämän ryhmän hyökkäysten aikajakauma suhteessa kineettisiin tapahtumiin teatterissa?" Nämä kyselyt suoritetaan graafitraversaaleina, palauttaen tuloksia sekunteissa kymmenistätuhansista solmuista koostuvissa graafeissa.
OSINT-pohjainen uhkaseuranta tällä rakenteen tasolla ei ollut saavutettavissa ennen LLM-pohjaista poimintaa laajuudella ja tarkkuudella, jota tarvitaan graafin jatkuvaan täyttämiseen avoimista lähteistä. Aiemmissa lähestymistavoissa vaadittiin merkittävää manuaalista analyytikkotyötä tietuetta kohti, mikä rajoitti graafin tiheyttä ja tuoreutta.
Uhkatoimijaryhmien elämänmallianalyysi
Kun uhkatoimijaprofiiliin kertyy riittävästi historiaa graafissa (tyypillisesti 7 tai enemmän keräyspäivää), Corvus.Sense laskee elämänmallin metriikat. Nämä johdetaan toimijan hyökkäystapahtuman solmujen ajallisista ja rakenteellisista ominaisuuksista graafissa.
Aktiivisuustuntijakauma. Hyökkäystapahtuman aikaleimat jaotellaan UTC-tuntikohtaisesti ja viikonpäivän mukaan. Useimmat valtiollisesti suuntautuneet ryhmät toimivat kotiaikavyöhykkeensä toimistoaikoina; poikkeamat tästä mallista (epätavalliset myöhäisillan piikit, viikonlopun piikit) voivat viitata operatiivisen tempon muutoksiin tai useiden maantieteellisesti hajautettujen alaryhmien osallistumiseen. Aktiivisuustuntihistogrammi päivittyy päivittäin.
Kohdemieltymyslämpökartta. Hyökkäysten suhde sektorin ja maantieteen mukaan lasketaan koko toimijan tapahtumahistoriasta. Tämä tuo esiin johdonmukaiset kohdentamismieltymykset – toimija, joka on hyökännyt Ukrainan energiainfrastruktuuriin 73 %:ssa tapahtumista, on selvästi erikoistunut, ja uusien ilmoitusten energiakohteista tältä toimijalta tulisi saada korotettu prioriteetti luottamuspisteistä riippumatta.
TTP-kehityksen seuranta. Hyökkäysvektorijakaumat lasketaan pyörivien 30 päivän ikkunoiden yli ja verrataan toimijan historialliseen perusarvoon. Ryhmä, joka on historiallisesti toteuttanut DDoS-operaatioita ja luokitellaan nyt tietojen suodattamistapahtumiksi, edustaa TTP-muutosta – korkean arvon tiedustelua signaalina, joka osoittaa kykykehitystä tai muuttuneita tavoitteita.
Keskeinen havainto: Elämänmallianalyysi on arvokkain ei siksi, että vahvistaa sen, mitä jo tiedät uhkatoimijasta, vaan siksi, että se havaitsee, kun heidän käyttäytymisensä muuttuu. Vakaat kuviot ovat hyödyllisiä perusarvoja; poikkeamat näistä kuvioista ovat signaali, joka vaatii analyytikon huomiota ja mahdollista eskalointia vanhemmille tiedustelukuluttajille.
Automaattinen johtotiivistelmän tuottaminen
Corvus.Sense sisältää automaattisen tiivistelmien tuottamisputkiston, joka tuottaa ihmisluettavia tiedustelutuotteita rakenteellisista graafitiedoista. Tiivistelmät tuotetaan konfiguroitavalla aikataululla (päivittäin, viikoittain tai tarvittaessa) tai kynnysarvotapahtumien laukaisemana (seuratun toimijan hyökkäysmäärä ylittää konfiguroidun rajan tietyssä aikaikkunassa).
Tiivistelmäputkisto kyselee graafista raporttimallin määrittämän toimija-, sektori- tai maantieteellisen laajuuden, noutaa rakenteelliset tapahtumatietueet ja elämänmallin metriikat, ja välittää tämän rakenteellisen kontekstin generointimallille narratiivisen synteesin kehotteen kanssa. Tulos on proosamuotoinen tiedustelubrieffi sopivassa rekisterissä johtotason kuluttajille – ei JSONia, ei kenttänimikkeitä, ei luottamuspistemääriä ellei ne ole analyyttisesti merkittäviä.
Kriittisesti tiivistelmien tuottamismalli toimii graafikannasta noudettuja rakenteellisia tietoja, ei raakojen Telegram-viestien tekstejä, vasten. Tämä arkkitehtoninen ero estää hallusinaatiot epäselkeästä lähdemateriaalista: tuottamismalli voi viitata vain tapahtumiin, jotka ovat olemassa validoituina luokiteltuina tietueina graafissa. Jos väitetty hyökkäys ei ole läpäissyt luokittelun laaduntarkistuksia, se ei esiinny tiivistelmässä.
Luottamuspisteet ja epävarmuuden käsittely
Jokainen luokiteltu tietue Corvus.Sensessa sisältää kenttätason luottamuspistemäärät. Nämä pisteet kulkevat kaikkiin alajuoksun kuluttajiin: analyytikkokojelaudalla pisteet näytetään visuaalisesti, hälytyssäännöt voidaan konfiguroida laukaisemaan vain yli vähimmäiskynnyksen per kenttä, ja STIX-vienti kartoittaa luottamuspistemäärät STIX-luottamusominaisuuteen.
Tietueet, joissa mikä tahansa kriittinen kenttä (sektori, maantiede tai toimija-attribuutio) alittaa konfiguroidun kynnyksen, sijoitetaan analyytikkotarkastelujoukkoon automaattisten hälytysten tuottamisen sijaan. Kynnys on konfiguroitavissa per käyttöönotto: korkean herkkyyden asennukset, jotka seuraavat kriittistä infrastruktuuria, voivat alentaa kynnyksiä palautusarvon maksimoimiseksi; laajemmat seurantakäyttöönotot voivat nostaa kynnyksiä analyytikkojonon volyymin vähentämiseksi.
Kentille, joissa LLM:n luottamus on marginaalinen (oletuksena 0,65 ja 0,80 välillä), Corvus.Sense lähettää valinnaisesti viestin toiselle itsenäiselle LLM-ajolle käyttäen erilaista kehotemuotoilua. Kun molemmat ajot ovat samaa mieltä kentän arvosta, luottamuspistemäärä korotetaan; kun ne ovat eri mieltä, kenttä merkitään kiistanalaiseksi ja molemmat ehdokasarvot tuodaan analyytikon nähtäväksi.
Corvus.Sensen konfigurointi tietyn uhkatoimijan seurantaan
Seuraava sekvenssi kuvaa, miten Corvus.Sense asetetaan nimetyn hakkeriryhmän kohdennettuun seurantaan sen Telegram-kanavilla.
Vaihe 1 – Tunnista toimijan Telegram-kanavat. Kokoa numeeriset kanava-ID:t ja @käyttäjänimet kaikille kohteen ryhmän operoimille tai siihen liittyville tunnetuille kanaville, mukaan lukien peili- ja varmuuskanavat. Corvus.Sense hyväksyy molemmat muodot.
Vaihe 2 – Luo toimijaprofiili. Luo Actors-paneelissa uusi profiili kanonisella ryhmänimellä ja tunnetuilla aliaksilla. Määritä MITRE ATT&CK -tekniikka-ID:t, jotka heijastavat ryhmän tunnettuja TTPs:ää. Linkitä kanavan tunnisteet tähän profiiliin. Tästä hetkestä lähtien kaikki kyseisiltä kanavilta tulevat viestit yhdistetään tähän toimijasolmuun graafissa.
Vaihe 3 – Konfiguroi sektori- ja maantieteellinen laajuus. Valitse sektorit ja maakoodit, joita haluat seurata tälle toimijalle. Laajuuden ulkopuoliset hyökkäykset kerätään ja luokitellaan silti, mutta suljetaan pois toimijakohtaisesta hälytysten tuottamisesta. Tämä mahdollistaa laajan keruun samalla pitäen hälytysvolyymin kohdistettuna operatiivisesti relevantteihin tapahtumiin.
Vaihe 4 – Aseta luottamuskynnykset ja hälytyksen toimitus. Konfiguroi vähimmäisluottamuskynnykset kentän mukaan. Puolustus- ja kriittisen infrastruktuurin sektoreilla matalammat kynnykset (0,65) maksimoivat palautusarvon. Konfiguroi hälytyksen toimitus sähköpostiin, webhookiin tai SIEM-integraatiopisteeseen. Corvus.Sense tukee CEF- ja JSON-hälytysmuotoja SIEM-keräykseen.
Vaihe 5 – Tarkista ja korjaa alkuperäiset luokittelut. Ensimmäisten 72 tunnin aikana tarkista kaikki luokitellut tietueet tämän toimijan analyytikkotietuejonossa luottamuspisteistä riippumatta. Inline-korjaustyökalut mahdollistavat kenttätason muokkaukset. Korjaukset kirjataan ja voidaan lähettää parantamaan mallin kalibrointia tämän toimijan kielellisten mallien osalta ajan mittaan.
Vaihe 6 – Ota elämänmallianalyysi käyttöön. 7 päivän kertyneiden tapahtumatietojen jälkeen ota elämänmallinäkymä käyttöön. Aktiivisuustuntijakaumat, kohdemieltymyslämpökartat ja TTP-histogrammit lasketaan graafista ja päivitetään päivittäin. Tämä näkymä on ensisijainen syöte tulevan kohdentamiskäyttäytymisen ennakointiin.
Vaihe 7 – Vie rakenteellinen tiedustelu. Käytä toimijaprofiilin vientiä tiedustelutuotteiden tuottamiseen JSON-, PDF- tai STIX 2.1 -niputusmuodossa. STIX-vienti kartoittaa toimijaprofiilin tiedot STIX Threat Actor- ja Campaign-objekteihin jakamista TAXII:n kautta tai tuontia ulkoisiin CTI-alustoihin varten.