Pro Whalebone je důležité získávat co nejaktuálnější informace o on-line hrozbách. Netypickým a zdánlivě překvapivým zdrojem těchto informací jsou Twitterové účty odborníků na hrozby, kteří zveřejňují nebezpečí, se kterým se setkali v online prostředí. Tyto tweety obvykle identifikují nejaktuálnější hrozby mnohem dříve, než se objeví ve standardních zdrojích a feedech. To činí jejich obsah nesmírně cenným. I přes to, tyto údaje nejsou ani strukturované ani harmonizované, ve Whalebone je automaticky zpracováváme, kontrolujeme naší pokročilou logikou ověření přesnosti a zařazujeme k blokaci. K jejich extrakci bylo nutné použít heuristické metody.
V tomto článku se popisujeme, jak přesně tato data z Twitteru získáváme a představujeme výzvy, kterým jsme čelili během implementace.
Existují dva způsoby, kterými tweeteři (uživatelé Twitteru z komunity zabezpečení sítě) sdílejí informace o hrozbách (takzvané indikátory zpronevěření, aglicky "indicators of compromise", dále "IOC"). V našem případě jsou IOC škodlivé webové adresy, které jsou buď odkazem na stránku v podobě pastebin.com nebo zahrnují IOC v tweetu s odkazem obsahujícím zástupné znaky.
Sdílení hrozeb tweetery
První z nich, využití pastebin.com, jsme řešili snadno. Zavedli jsme funkci, která se připojí k těmto odkazům a extrahuje e-text obsahující IOC (například pomocí algoritmu pro extrakci z tweetového textu). Ne všichni tweeteři ale sdílejí URL na pastebin, někteří z nich vkládají informaci pouze přímo do těla Twitter příspěvků a využívají různé formy znepřístupnění odkazu. Abychom se o tyto případy postarali, a nepřišli o tak užitečná data, sledujeme přímo i vybrané účty na Twitteru a analyzujeme obsah jejich příspěvků.
Získávání dat z Twitter příspěvků se zkraje zdálo těžkým úkolem, protože neexistuje přímý způsob jak říci, která URL adresa je opravdovým IOC, a která je jen legitimní adresou, kterou tweeter sdílet. Naštěstí jsou IOC vybaveny důležitou vlastností, kterou je "obfuskátor". Jeho účelem je zmást automatické převádění odkazů pomocí zástupných znaků a zabránit Twitteru v konverzi IOC do klikatelných odkazů, aby na ně jiné uživatelé nemohli kliknout a tak náhodou otevřít škodlivou webovou stránku.
Ale právě tato praxe při zveřejňování IOC nám umožňuje odfiltrovat legitimní odkazy. Jsme tak schopni automaticky jednoduše vyloučit všechny odkazy, na které lze bez problémů kliknout (což je prováděno blacklistem t.co domén, protože Twitte přesměrovává všechny odkazy přes tyto servery). Po ignorování domény t.co zůstávají v surovém tweetu pouze "obfuskovaná" IOC.
Zpětné získávání odkazů
Tweeteři používají různé způsoby znepřístupňování. Mezi běžné příklady patří "abd [.] Com" a "hxxp: //el_karls.com".
- První příklad obsahuje nejběžnější náhradu, kdy se místo '.' použije '[.]'. Takové nahrazení se dá jednoduše vrátit zpět tím, že jednoduše nahradíme '[.]' za '.', což ponechává adresy URL platné a mohou pak být analyzovány.
- Druhý příklad obsahuje jinou běžnou metodu: nahrazení "http" za "hxxp". Práce s takovými případy je ještě snadnější - jednoduše v pozdějších fázích analyzování textu ignorujeme protokol.
Ukázalo se, že pro většinu tweeterů je možné tuto logiku využít a tak snadno začít analyzovat pečlivě vybrané členy kyberbezpečnostní komunity jako zdroj informací o hrozbách. Jednoduše shromáždíme tweety ze sledovaného účtu, vyparsujeme kandidáty na domény, vrátíme zpět obfuskace a následně prověříme relevantnost takto získávaných dat. K ověření mimo Whalebone algoritmů využíváme i manuální kontroly.
Takto získáváme velmi cenné a aktuální kompromitované URL adresy, které odpovídají regulárnímu výrazu URL, který ignoruje protokol (k účtu "hxxp"). Na závěr je nutné porovnat tento regex (regulérní výraz) a zkontrolovat pomocí get_tld, zda je shodný text skutečně platnou doménou.
V produkčním prostředí jsme implementovali tento algoritmus s konfiguračním souborem obsahujícím třicet tweeterů a šest nahrazení. Pastebin byl sledován u 10 z nich. Do Whalebone díky tomu vstupuje každý týden asi 2500 IOC a od dubnového zavedení systému, jsme již zaznamenali 3000 incidentů zahrnujících tyto IOC.
I když je tento model užitečný, je stále poměrně nedokonalý a nevyužívá všechny informace dostupné v tweetu. Například většina tweeterů zahrnuje klasifikaci sdílených IOC ve svém tweetu (viz příklady tweetů, které obsahují tuto informaci), což je užitečný zdroj informací, který bychom v budoucnu chtěli do Whalebone zařadit.
Autor: Kryštof Kolář