» »

Remote Contol Over Mail -RCM

Remote Contol Over Mail -RCM

Yacked2 ::

Pozdravljeni,

zadnji razpleti v zadevi s Hacking Teamom so me motivirali, da bi preveril kako lahko je zgraditi trojanca, ki lahko deluje skrito, in je popolnoma skrit pred antivirusnimmi programi, ter ostalimi programi, kot je požarni zid itd...

Idejo sem razvijal kakšen teden, da sem izpopolnil in poenotil mehanizme. Končna ideja je najbolje razvidna iz spodnje slike:

ideja projekta



Do sedaj sem testiral na Win7, Win8.1 in Win10, na vseh je program tekel brez problemov. Izkušnje glede antivirusov pa so slabe (kar se tiče zaščite), kar je razvidno iz spodnjega loga:
http://r.virscan.org/report/a253a61bf9a...

V praksi mi je edino Avast odprl obvestilo, da je preveril poslano epošto in mi dodal svoj podpis pri odposlanem outputu.

Opis ideje: moja aplikacija posluša na mail računu in na interval preveri, če je v prispela nova e-pošta, če je v zadevi skrivna beseda, potem vsebino obdela kot ukaz, ki ga izvrši na računalniku, ter vrne izpis če je le ta zahtevan.

Do sedaj je bug le to, da bere maile v nasprotni smeri (obniti bi bilo treba for zanko). Pa tudi vsi exceptioni verjetno niso pohandlani.

Gre za proof of concept, kako lahko je narediti zlonamerno aplikacijo, ki lahko služi kot vratar, da odpre porte oz. doda izjemo v AV.

Moja implementacija ideje pa je dostopna tukaj: https://github.com/andrazjelenc/Remote-...



Nad rezultati sem negativno presenečen, saj sem mislil, da antivirusi svoje delo opravljajo bolje, a očitno zaznajo samo tisto najbolj očitno navlako.
Ideja in implementacija je bila narejena zgolj za izobraževalne namene in ni namenjena za zlonamerne aktivnosti.
!Za svoje dejanje odgovarjate sami!

Komentaji in vaša mnenja so zaželjena.

Have a nice day,
Yacked2
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
  • zavaroval slike: bluefish ()

Flippo ::

zanimiva ideja in potrudil si se tudi implementirati :)
dva vprasanja se mi pojavita:

1. po kodi izgleda da je tole konzolna aplikacija. Virusi pa so ponavadi skriti. Je mogoce da antivirusni sklepajo da je program legitimen ker imajo za eno od hevristik da so skriti programi sumljivi? Si poskusil razsiriti program da se skrije v ozadje?

2. Ce zbuildas c# kodo dobis executable ki vsebuje vmesno .NET kodo, si preveril ce antivirusni razumejo ze tisto vmesno kodo v binariju? kaj se zgodi ce imas antivirusni dejansko namescen ko pozenes program?

Yacked2 ::

Končno malo odziva :)

1. Res je, ko zaženeš se ti prižge konzolna aplikacija.

Dober predlog, zaradi same gradnje implementacije nisem skrival okna, da sem videl kaj se dogaja. Bom dodal še skrivanje in poiskusil ponovno.

2. Na rVirus scan sem objavil executable datoteko, tako da je zgornji log že vezan na delujočo aplikacijo. Dejansko delovanje aplikacije sem testiral na ESET Smart Security ter Avastu. Nihče se ni pritoževal, Avast mi je še podpisal izhodno pošto :D
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Flippo ::

Yacked2 je izjavil:

2. Na rVirus scan sem objavil executable datoteko, tako da je zgornji log že vezan na delujočo aplikacijo. Dejansko delovanje aplikacije sem testiral na ESET Smart Security ter Avastu. Nihče se ni pritoževal, Avast mi je še podpisal izhodno pošto :D

executable ki si ga objavil na rVirus ne vsebuje dejanske kode ampak vmesno kodo CIL (nekaj je dejanskih ukazov ampak tvoj program je v CIL obliki). CIL se poslje .net jit in ta potem izvede prave procesorske ukaze s pomocjo .net framework.
Executable ki si ga objavil ima torej neko cudno juho noter ki jo zna .net izvajat. Nisem preprican da antivirusni ta CIL razumejo. Bolj verjetno bi zaznali cudno obnasanje ce bi se koda dejansko izvajala, ker bi videli sumljive sistemske klice in podobno.

Upam da sem bolse razlozil :)

Zgodovina sprememb…

  • spremenilo: Flippo ()

Yacked2 ::

Mhm dojamem ja. Hvala za ralago, kaj pa če bi to vso ostalo .net kodo napisal zraven, da bi program tekel tudi na sistemih, brez .net frameworkov.

Če bi program prepisal tako, da bi delovala kot service in ne kot sama aplikacija, bi bilo njeno delovanje še bolj skrito.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Flippo ::

Yacked2 je izjavil:

Mhm dojamem ja. Hvala za ralago, kaj pa če bi to vso ostalo .net kodo napisal zraven, da bi program tekel tudi na sistemih, brez .net frameworkov.

Če bi program prepisal tako, da bi delovala kot service in ne kot sama aplikacija, bi bilo njeno delovanje še bolj skrito.

Ce bi bil to standalone program bi antivirusni res imeli vec moznosti da ugotovijo da je fishy...eno plast manj vsaj. Ampak ce ga hoces tajno poganjati na racunalniku ki ima .NET pa je seveda boljse uporabiti kot je :). V tvojem primeru se smart security in avast nista niti javila.

Service lahko naredis iz vsakega .exe z uporabo "sc create"...me zanima ce bi kateri antivirusni imel tak klic za sumljiv...

Yacked2 ::

Če predpostavimo, da povprečen uporabnik ne čekira registrov, prometa itd.. je tale RCM programček nemogoče odkriti ? Če napadalec ne izvaja kakšnih zelo opaznih zadev (npr. odpiranje notepada itd...). V bistvu gre za malo bolj dodelan odjemalec elektronske pošte. Na kakšen način bi lahko sploh preprečili tovrstne napade v splošnem, torej blokiranje vsega razen dovoljenega ne pride v poštev, saj bi uporabnikom šlo na živce in bi verjetno zadevo izbrisali.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Yacked2 ::

Novi source je posodobljen na githubu, nov scan pa je tukaj: https://www.virustotal.com/en/file/64c7...

Pri projektu sem samo zamenjal Console Application v Windows Application in terminal je izginil. Zanimivo je to, da virustotal kot podatke o datoteki najde tole:

Copyright (C) Microsoft 2015
Publisher Microsoft

Verjetno prav zaradi .net okolja.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

Ne vem, kaj pričakuješ od navadnega antivirusnega programa. To, kar bi ti želel, bi dosegel kvečjemu preko sandbox analize executable datoteke, kar pa ni domena običajnih AV programov.

Ko se gre za malware, je običajno vprašanje, kako ga spraviti na napadeni sistem. Kasnejše upravljanje je potem trivialna zadeva in prepuščeno domišliji programerja - seveda lahko tudi preko pop3/smtp, kot v tvojem primeru (dolgo časa so se uporabljali IRC kanali, danes pa vse bolj https).

Tu se potem lepo pokaže pomen varnostne politike, če govorimo o poslovnih omrežjih. Zakaj bi dovolil uporabnikom dostop do nenadzorovanih zunanjih mail serverjev? Za poslovno rabo se uporablja interni mail server podjetja (ali server pri ponudniku), vse ostale pa blokira. S tem se že v osnovi onemogoči 'command channel' preko pop3/imap/smtp. Problem pa so vsi ostali možni kanali, pri čemur verjetno ravno https predstavlja največjo težavo za nadziranje. Po eni strani moraš računalnikom dovoliti dostop do spleta preko https, po drugi strani pa večinoma nimaš nadzora, kaj se skriva znotraj https prometa.

Yacked2 ::

Ne pričakujem čudežev, ali pač.

Kako ga spraviti na tarčin sistem: glede na to, da moje .exe ni zaznal noben AV ga lahko predstavim kot crack, keygen, kateri koli program. Moja zadeva najprej pogleda, če se izvaja iz C:/Users/Uporabnik/AppData/Local... torej, če bi se aplikacija zagnala iz te lokacije, bi delovala skrito (pomeni, da se je prižgala s start upom), drugače pa bi odprla neko okno, ki bi izvajalo aktivnost za katero se je aplikacija predstavila, da je. Kar pomeni, da bi odprla okno, prikazala serijske številke,... med tem pa bi kopirala samega sebe v to "varno" mapo iz katere bi se nato prižgala v stealth mode.

Za kasnejše upravljane, pa večino požarnih zidov zazna običajen promet in ga filtrira. Nihče pa ne blokira pop3/smtp protokolov, razen v primeru, kot si že omenil, poslovnih omrežij, kjer je varnostla politika dovolj stroga.

Glede na to, da pri moji aplikaciji ne gre za ozko usmerjeno tarčo (Win personal računalniki), lahko pričakujemo, da večina uporabnikov nima ne znanja in ne opreme, ki bi tovrsten napad preprečila. Za napade na poslovna omrežja pa bi bilo treba verjetno poznati stukturo sistema ? O tem lahko kaj več poveš, saj to presega moje trenutno znanje.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

Maš kje prevedeno izvršljivo datoteko za dol potegniti? Me zanima, kaj bi meni javilo, če jo skušam prenesti...

'Home User-ji' se lahko pred takimi zadevami vsaj deloma ščitijo z Windows firewall-om - pač dovoliš pop3/smtp izključno svojemu mail klientu. Res pa je, da redko kdo res blokira glede na aplikacije, ki želijo komunicirati po omrežju. Če pa zna malware še izključiti Windows firewall ali vanj dodati exception, pa ta zadeva seveda odpove na celi črti.

Pri poslovnih omrežjih pa bi rekel, da jih cca. 80% ne uporablja kakšnega resnejšega filtriranja proti ven, ravno tako varnostne politike niso definirane pretirano strogo, še manj pa potem striktno implementirane na požarnih pregradah.

Če bi šel po terenu in delal analizo konfiguracij požarnih pregrad na poslovnih omrežjih, bi verjetno kmalu ugotovil, da jih več kot 50% ni zaščiteno nič bolje, kot tvoje domače omrežje. (bo treba enkrat narest eno konkretno anketo na to temo)

Yacked2 ::

https://www.dropbox.com/sh/624no8fjg6jt...

Skompajlal sem brez pravega maila, tako da se bo zgodilo naslednje:
-zaženeš program (v isti mapi mora bit kot knjižnica)
-program ugotovi, da si za zagnal iz kr ene lokacije
-program skopira sebe in knjižnico v C:/Users/.../AppData/Local/RCM/
-program doda ključ v Software/Microsoft/Windows/CurrentVersion/Run
-nato ubije sebe in zažene skopirano verzijo
-ta zazna da je na varni lokaciji
-želi pogledat za maile
-se sesuje ker je pisan napačen username/password

edit: link posodobljen 21:19

Z tem programom napadalec dobi dostop do cmdja, verjetno se da preko cmdja zalaufat powershell oz. kar direkt izklopit FW/AV dodati izjemo, in naložiti kakšne bolj razširjene verzije (DarkComet itd...).

Kar se tiče poslovnih omrežij pa se tudi meni zdi, da bi bil negativno presenečen nad rezultati kar se tiče varnosti.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Zgodovina sprememb…

  • spremenil: Yacked2 ()

Yacked2 ::

Z tem programom napadalec dobi dostop do cmdja, verjetno se da preko cmdja zalaufat powershell oz. kar direkt izklopit FW/AV dodati izjemo, in naložiti kakšne bolj razširjene verzije (DarkComet itd...).

Kar se tiče poslovnih omrežij pa se tudi meni zdi, da bi bil negativno presenečen nad rezultati kar se tiče varnosti.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

Če malo logično pomisliš, boš hitro prišel do zaključka, da je teško kakšnemu avtomatizmu reči 'to je pa malware', saj bi to potem bil vsak software, ki kakorkoli uporablja pop3/smtp in/ali kopira datoteke.

Sploh je problem pri razni kodi, ki ostaja 'under the radar' - se tako redko pojavlja, da AV podjetja nanjo (še) niso postala pozorna, jo analizirala in na koncu kreirala signature zanjo. Skratka na AV ne računaj, da bo naredil paniko.

Sandbox rešitve so nekoliko bolj pregnane in datoteko pošljejo v analizo v peskovnik, kjer se jo dejansko skuša zagnati, pri tem pa spremlja, kaj se dogaja v ozadju. Tu je potem vprašanje, kaj bo neka sandbox rešitev že dojela kot nevarnost, kaj pa kot 'možno legitimno obnašanje'. Če je stvar preveč pikolovska (da npr. udari alarm pri vsaki stvari, ki skuša poslati kakšen mail), bomo hitro imeli opravka s celo kopico false positives, posledično se rezultate ne bo jemalo resno, na koncu pa spregledalo dejanske grožnje.

Mislim tudi, da današnje Sandbox rešitve bolj iščejo naprednejše grožnje, ki so nekoliko bolj prefrigane in skušajo malo bolj prikriti svoje delovanje, tako da jim morda kakšna zelo simplistična zadeva celo pobegne kot potencialno 'nevarna'. Poleg tega je tvoja koda razbita v exe in dll. Če analiziraš vsakega posebej, se ne bo zgodilo kaj dosti, saj eden brez drugega ne moreta delovati - analiza je lahko realna šele takrat, ko obe komponenti skupaj poženeš v peskovniku.
Od tod naprej pa vse zavisi od tega, kako dejansko definiraš, ali je neka koda škodoželjna ali legitimna. Če se želiš izogniti false positive alarmom, je takšna odločitev lahko dokaj teška, sploh če jo mora sprejeti nek avtomatiziran sistem.

Drugače pa distribucija tvojega programčka ni nujno prav trivialna. Gmail recimo ne bo hotel nič slišati o tem, da bi pošiljal z njim kakšno .exe datoteko in te bo zavrnil že v samem štartu. Sicer lahko zadevo zippaš, ampak to že lahko potem postane sumljivo.

Ampak gledano pod črto, bi lahko za potencialno nevarnega štel prav vsak program, ki ima autoupdate funkcijo. Distribuiraš osnovni program, ki je pridkan in nedolžen - razen kar ima možnost posodabljanja. Kateri program pa danes ni sposoben avtomatskega posodabljanja? Med posodobitve pa lahko potem podtakneš karkoli ti srce poželi. Če bi bilo preveč nevarno vse skupaj poslati v enem kosu, lahko škodoželjno kodo razbiješ na par kosov in jo zakriptiraš, razpakirati pa bo to znala le tvoja 'autoupdate procedura'.

Če imaš tak 'zanimiv programček' na nekaj tisoč računalnikih ti bo autoupdate potegnil malware 'ekstenzije' vsaj polovica teh računalnikov v roku 24ur. Tudi če kakšna AV firma postane pozorna in napiše signaturo, ta vsaj še naslednjih 24 ur ne bo na voljo in nameščena na računalnikih. Vmes pa se lahko zgodi marsikaj.

Če realno pogledaš, je vse skupaj kar resen problem. Večinoma se dejansko zanašamo na zaupanje v programerje, ki so napisali programe, ki jih nameščamo. AV in vse ostalo je že cool, ampak čudežev pa tudi ne morejo naresti.

Zgodovina sprememb…

Yacked2 ::

Se zavedam dejstva, da je težko ločiti med programi, ki delajo to kar bi morali in med tistimi, ki se zgolj pretvarjajo. In prav to je problem, saj ljudje vse preveč zaupamo programskim rešitvam in se tolažimo s tem, da če AV ni označil datoteke kot okužene, potem jo kar odprimo, tudi če smo jo dobili v priponki od neznanega pošiljatelja.

RCM deluje čist isto kot autoupdate funkcija pri Windowsih, antivirusu, VLCju itd... kaj če nam nekdo med vse posodobitve skrije tudi kakšno zlonamerno datoteko. V tem primeru iskanje lukenj s strani vohunjenja ni več zanimivo: zakaj bi se zafrkaval ter iskal luknje, če lahko enostavno namestimo novo. Vsi ti "buggi" od zadnjega najdenega na Androidu do luknje pri OpenSSLu, kaj če to niso bili bugi ampak benefit, v tem primeru je smiselno postaviti vprašanje kaj vse se dostavi na naš računalnik med posodobitvami zaprtokodnih programov (od Windowsa naprej). Načeloma tudi za antivirusne posodobitve ne vemo kaj se spreminja.

Meja med ozaveščenostjo in paranojo je ozka, za njo pa strm prepad.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

Mislim, da resni proizvajalci zaprtokodnih programov le dajo nekaj nase, da ne vgrajujejo razne backdoor-e, čeprav je autoupdate že sam po sebi neke vrste backdoor.

Kljub temu, se razni FBI, NSA, DEA in ostali nebi zabavali z odkupovanjem 0 day exploitov in 'policijskih trojancev', če bi imeli tako močan vpliv, da bi lahko npr. Microsoftu naročili, da naj npr. vsem kolumbijskim uporabnikom Windows-ov med update-om podtaknejo še en backdoor samo zanje, da bodo lažje sledili šefom narko kartelov.

Seveda pa bi se lahko zgodba hitro spremenila, če vlada 'vojno stanje', ko pa dejansko lahko neka oblast čisto drugače vpliva na svoje proizvajalce programske opreme. Takrat tudi Linuxu nebi več zaupal, kaj šele Windows-om ali Androidu.

A_A ::

Yacked2 je izjavil:

Se zavedam dejstva, da je težko ločiti med programi, ki delajo to kar bi morali in med tistimi, ki se zgolj pretvarjajo. In prav to je problem, saj ljudje vse preveč zaupamo programskim rešitvam in se tolažimo s tem, da če AV ni označil datoteke kot okužene, potem jo kar odprimo, tudi če smo jo dobili v priponki od neznanega pošiljatelja.

RCM deluje čist isto kot autoupdate funkcija pri Windowsih, antivirusu, VLCju itd... kaj če nam nekdo med vse posodobitve skrije tudi kakšno zlonamerno datoteko. V tem primeru iskanje lukenj s strani vohunjenja ni več zanimivo: zakaj bi se zafrkaval ter iskal luknje, če lahko enostavno namestimo novo. Vsi ti "buggi" od zadnjega najdenega na Androidu do luknje pri OpenSSLu, kaj če to niso bili bugi ampak benefit, v tem primeru je smiselno postaviti vprašanje kaj vse se dostavi na naš računalnik med posodobitvami zaprtokodnih programov (od Windowsa naprej). Načeloma tudi za antivirusne posodobitve ne vemo kaj se spreminja.

Meja med ozaveščenostjo in paranojo je ozka, za njo pa strm prepad.



Tud sam imam čedalje več pomislekov, da ti bugi niso več le bugi...sploh tole z androidom..

xda develope ::

Na xp takoj ob zagonu javi napako.

takoj ob zagonu tistega po tem ko se razširi.

Zgodovina sprememb…

Yacked2 ::

xda develope je izjavil:

Na xp takoj ob zagonu javi napako.

takoj ob zagonu tistega po tem ko se razširi.


Na XP nisem testiral, saj ga nimam pri roki... Če imaš visual studio lahko Debuggaš napako... Poglej če se je v registru ustvaril nov ključ ter če se je kopiralo v AppData/Local/RCM mapo
Verjetno gre za napako, ker sem vpisal napačen username/password za mail :)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Yacked2 ::

@arhec: prav Android mi je najbolj sumljiv, saj ga imamo vedno pri sebi, naprava ima GPS, kamero na obeh straneh, mikrofon itd.. Dostop do vsakega android telefona bi pomenil veliko taktično prednost.

@SeMiNeSanja: Upam da imaš prav, toda pomisliti je treba, da je treba biti na vojno vedno pripravljen, kar pomeni, da imajo lahko vse naprave že ugrajene neke speče rootkile, ki čakajo na aktivacijo.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

xda develope ::

V appdata ni mape RCM je pa na namizju pa še to prazna

Yacked2 ::

xda develope je izjavil:

V appdata ni mape RCM je pa na namizju pa še to prazna


Očitno dela sistem na XP malo drugače. Če bi imel možnost razvijati na XP verjetno ne bi bilo nič drugače kot na Wini7 in novejše. Če boš kaj popravlal source, tako da bo preveril ali teče na WinXP ali na kakšni novejši verziji mi prosim sporoči da te dodam k projektu na GitHub, da boš lahko posodobil source.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Isotropic ::

to ni malware ja. dodaj še kakšen exploit za winse, šifriranje v ramu, da ti ga vsak newb ne sheka in boš videl, če bo kaj drugače.

Yacked2 ::

Isotropic je izjavil:

to ni malware ja. dodaj še kakšen exploit za winse, šifriranje v ramu, da ti ga vsak newb ne sheka in boš videl, če bo kaj drugače.


Zdi se mi, da je ravno to osnovna ideja, torej: če fašeš neko sranje, ki ti odpri oglase, blokira regedit ter task manengerja, ubije AV/FV bo vsak ugotovil, da nekaj ne štima in bo začel zadevo raziskovati. Po drugi strani pa se nihče ne bo ukvarjal z zadevo, za katero sploh ne ve, da obstaja oziroma, če dodam še šifriranje v ramu, exploite bi aplikacija verjetno postala preveč sumljiva, da bi jo AV spustil skozi.

Glede na to, da lahko pridobim nepooblaščen dostop do CMDja, je to isto, kot da bi sedel pred kišto prijavljen na trenutnega uporabnika. Z netsh lahko odprem port in dovolim vstop bolj attacker friendly programski opremi, kot je kakšen keylogger, ki ga pred tem dodam v izjemo pri AVju.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

konspirator ::

xda develope je izjavil:

Na xp takoj ob zagonu javi napako.

takoj ob zagonu tistega po tem ko se razširi.

Verjetno zato, ker je zbuildan app z .net fw 4.5 (win xp s to kombinacijo .net fw appa je nogo situacija).

Zgodovina sprememb…

Yacked2 ::

konspirator je izjavil:

xda develope je izjavil:

Na xp takoj ob zagonu javi napako.

takoj ob zagonu tistega po tem ko se razširi.

Verjetno zato, ker je zbuildan app z .net fw 4.5 (win xp s to kombinacijo .net fw appa je nogo situacija).


Nastavleno je na .net fw 2.0
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

poweroff ::

Sako kot ideja - kaj, če bi v mail headerje dodal poseben dodatenh header, s (kriptiranimi) navodili. V tem primeru bi lahko ukaze pošiljal preko "spama" ali preko povsem legitimne komunikacije.
sudo poweroff

SeMiNeSanja ::

poweroff je izjavil:

Sako kot ideja - kaj, če bi v mail headerje dodal poseben dodatenh header, s (kriptiranimi) navodili. V tem primeru bi lahko ukaze pošiljal preko "spama" ali preko povsem legitimne komunikacije.

Jaz radiram vse headerje, ki niso nujno potrebni. 'Poseben dodatni header' tako pri meni ne bo prišel skozi :) (še tisti 'Confirm reading' brišem - kaj koga briga, kdaj sem prebral njegov mail :P)

MrStein ::

Yacked2 je izjavil:


-program doda ključ v Software/Microsoft/Windows/CurrentVersion/Run

To bi moralo pri prevej security programov sprožiti alarm.
Vprašanje pa kako je z tipičnimi zastonj AVG, Avast, Avira,...

PS: Read notification, a to kdo uporablja? To je ja tak fail (v implementaciji), da ne veš, a je smešno ali žalostno...

PPS: Lukenj v AV softveru je itak malo morje.
Recimo način, kako znan(!) malware spraviš na disk in ga poganjaš, ne da bi AV-ji trznili.
Obstajal v skoraj vseh AV produktih pred leti, potem sem spet preveril in nekje dva-trije znani so še vedno to "omogočali". Po obvestilu in javni objavi so sicer hitro pofiksali.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

SeMiNeSanja ::

Read notification, a to kdo uporablja? To je ja tak fail (v implementaciji), da ne veš, a je smešno ali žalostno...


Če še kdo uporablja? 90+% poslane pošte mi vrne read notification.

Po moje niti ni stvar tega, da to kdo 'uporablja' - večinoma ljudjem gre na živce, če jih mail program sprašuje, ali sme potrditi, da je bilo sporočilo prebrano. Enega dne imajo dovolj in kliknejo na 'ne sprašuj več', od takrat naprej pa zadeva samodejno odgovarja, uporabnik pa je že zdavnaj pozabil, da mu program to počne.

Drugače pa v bistvu read notification niti ni nek fail sam po sebi. SMTP protokol ne jamči, da bo pošta dostavljena. Če ti naslovnik ne odgovori, bi lahko edino po telefonu poklical in preveril, če je pošiljko res dobil.
Kadar pošiljaš kakšno pomembno pošto (davkarija, carina,...) je read notification ponavadi edini dokaz, da si neko dokumentacijo uspešno dostavil.

MrStein ::

Ravno to je poanta, da ni.
Recimo program vpraša, user klikne Yes, potem pa se zruši.
Ti misliš, da je prejel in prebral, v resnici pa (efektivno) ni ne eno, ne drugo.
Ampak to je že druga tema...
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

SeMiNeSanja ::

V koliko primerih se tebi program za pošto zruši, ko klikneš Yes?

Za mene je to tako, kot če pošljem priporočeno pošto in naslovnik podpiše povratnico. To meni še vedno ne jamči, da ni pes naslovniku pismo iztrgal iz rok in ga razcefral - ampak na tej točki je to že naslovnikov problem in ne več moj.

Naslovnik ve, da je 'nekaj' od mene prejel in tudi če se mu vse sesuje, me še vedno lahko pokliče in preveri, kaj sem mu to pošiljal, eventuelno zaprosi, da mu pošljem ponovno, itd.

Država od nas zahteva neka periodična poročila, ki jih lahko pošljemo po elektronski pošti. Če poročilo ni dostavljeno do predvidenega roka, grozijo s sočnimi kaznimi. Kako se boš zavaroval drugače, kot s povratnico, da je nekdo tvoje sporočilo prebral? Lahko greš edino nazaj v analogne čase in pošlješ s priporočeno pošto.

Sicer je res, da bi državni organi, če že sprejemajo vloge po el. pošti, lahko stvar malo bolj profesionalno izpeljali. Uradnik, ki sprejema vloge, bi npr. lahko poslal posebno potrdilo o prejemu vloge, podpisano z njegovim certifikatom. Ampak to bi bilo očitno že preveč pričakovano od naših vrlih uradnikov.

Yacked2 ::

SeMiNeSanja je izjavil:

V koliko primerih se tebi program za pošto zruši, ko klikneš Yes?

Za mene je to tako, kot če pošljem priporočeno pošto in naslovnik podpiše povratnico. To meni še vedno ne jamči, da ni pes naslovniku pismo iztrgal iz rok in ga razcefral - ampak na tej točki je to že naslovnikov problem in ne več moj.

Naslovnik ve, da je 'nekaj' od mene prejel in tudi če se mu vse sesuje, me še vedno lahko pokliče in preveri, kaj sem mu to pošiljal, eventuelno zaprosi, da mu pošljem ponovno, itd.

Država od nas zahteva neka periodična poročila, ki jih lahko pošljemo po elektronski pošti. Če poročilo ni dostavljeno do predvidenega roka, grozijo s sočnimi kaznimi. Kako se boš zavaroval drugače, kot s povratnico, da je nekdo tvoje sporočilo prebral? Lahko greš edino nazaj v analogne čase in pošlješ s priporočeno pošto.

Sicer je res, da bi državni organi, če že sprejemajo vloge po el. pošti, lahko stvar malo bolj profesionalno izpeljali. Uradnik, ki sprejema vloge, bi npr. lahko poslal posebno potrdilo o prejemu vloge, podpisano z njegovim certifikatom. Ampak to bi bilo očitno že preveč pričakovano od naših vrlih uradnikov.


Kaj pa primer, ko malware avtomatično pošlje povratnico, orginalno sporočilo pa izbriše ? Rezultat: pošiljatelj je srečen, ker misli, da je prejemnik prebral sporočilo, prejemnik pa o sporočilu sploh ničesar ne ve.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

In kateri mail klient ima takšno pomanjkljivost, da se bo READ confirmation (!= delivery confirmation) samodejno poslalo, samo sporočilo pa izbrisalo brez da bi ga kdo prebral?

Mislim, da mešaš med Delivery (dostavljeno na naslovnikov mail server) in Read (naslovnik odpre sporočilo) Confirmation. Delivery confirmation se dejansko samodejno vrne, čim je bilo sporočilo dostavljeno na strežnik. Lahko pa da ima uporabnik na svojem odjemalcu malo čudne filtre, pa ti tvoje sporočilo vrže v spam mapo, kjer ga ne bo nikoli opazil. Zato 'Delivery Confirmation' ni ravno zanesljiv - zanesljiv je v nasprotnem primeru, ko sporočilo ni možno dostaviti.

Yacked2 ::

Saj ne pravim, da bi to delal mail client, lahko to nek malware, ki pobere username in password ter nato pri mailih čekira za header, ki prosi za read confirmation, ter sam odpošlje confirmation.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Yacked2 ::

Prišel sem na novo idejo, kako bi izboljšal sistem upravljanja. RCM bi preimenoval v RCFTP - Remote Contol Over FTP, kjer bi na FTP strežnik nalagal .txt datoteke z ukazi, ime pa bi bil tak, da bi različni računalniki ločili kateri paket je za njih in kateri ni. Tako bi lahko vzpostavil sistem delujočih računalnikov (ko se RCFTP prižge na FTP strežniku popravi svojo vrednost iz 0 na 1), ko se program ugaša pa iz 1 na 0.

Tak sistem bi omogočal tudi izdelavo Master programa, kjer bi v tabelci imel vse aktivne računalnike in bi omogočalo pošiljanje komand itd... Ker bo prenos šel preko FTPja in ne SMTP/POP3 lahko prenašam tudi priponke kot so .exe in ostale, ki bi jih gmail zavrnil.

Edin problem pa bi bil, kako bi ločil računalnike (ime računalnika-ime uporabina bi šlo, ampak se lahko hitro ponovi). Zato bi moral naredit neko metodo zgoščevanja, ki iz specifikacij računalnika izračuna edinstven niz. Ta niz bi bil nato ime preko katerega bi ločil računalnike med seboj.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

Hmmm... FTP je bistveno bolj omejevan protokol, kot SMTP/POP3.

Če že...potem se raje posluži https protokola, ki 'zleze' praktično skozi vsak firewall, pa še kriptiran je - kar FTP promet ni.

Če bi npr. s tvojim 'orodjem' okužil moje omrežje, bi zelo hitro postal pozoren na nenavadno veliko število FTP sej - če bi bile blokirane ali ne.

Ker bi uporabljal navaden FTP, bi lahko sniffal username/password v komunikaciji med tvojim 'nadzornim centrom' in okuženim računalnikom. Morda bi s tem istim geslom lahko celo 'vdrl' v tvoj strežnik in mu nalagal lastne ukaze? Ali pa ti podtaknil kakšen okužen dokument, s katerim bi se TI okužil in potem izdal?

Skratka FTP ni ravno idealen način. Kritičen pa je https, kot sem že omenil. Strežnik ni problem postaviti, generiraš self-signed certifikat, ki ga tvoj 'odjemalec' smatra za trusted in imaš odprto pot.
Ko se klient prvič javi strežniku, se na njemu 'registrira', tako da ga ta doda v svojo bazo. Kasneje za kontakt lahko uporablja nek ID, ki se je kreiral ob tej 'registraciji'. Download datotek preko https je takointako standardna zadeva, upload pa je ravno tako omogočen.

Klasične požarne pregrade brez sposobnosti dekripcije https prometa tu odpovedo na celi črti. Tudi ne bo nihče postal pozoren na povečano število https povezav, saj se praktično že skoraj polovica prometa odvija preko https in bi se te tvoje povezavice 'izgubile' med ostalim prometom.

Za razliko od FTP lahko pri HTTPS zadaj navesiš poljubno logiko, saj lahko aplikacijo na web serverju programiraš z različnimi jeziki - kar pri FTP strežniku odpade.

Največji problem je še vedno izsledljivost. Ko se enkrat odkrije komunikacijo tvojega klienta (pri meni bi udaril alarm, če bi skušal prenašati .exe, .bat ali podobno 'rizično datoteko), bi se s tem tudi razkrila IP adresa strežnika, kjer gostuješ s svojim zlobnim nadzornim centrom. Če je to zdaj nek kompromitiran računalnik nič hudega slutečega uporabnika nekje v svetu, bo malo težje zaslediti nazaj, od kje ga ti upravljaš. Če pa boš to počel na svojem računalniku v svoji sobi, pa lahko kar kmalu pričakuješ, da ti bo kdo potrkal na vrata in si 'izposodil' tvoj računalnik za 'forenzično analizo'.

Jasno, da je potem še cel kup raznih tehnik, preko katerih se zadeve prikriva, ki jih barabini zelo uspešno izkoriščajo. Veliko vlogo tu igrajo DNS strežniki, razpršenost 'nadzornih centrov', nekateri uporabljajo TOR omrežje, itd. itd.

P.S. - saj se pogovarjamo zgolj o 'hipotetičnih variantah'? Nebi rad čez mesec dni bral kakšen članek, kako so spet ujeli enega 'slovenskega hackerja' ;)

Zgodovina sprememb…

Yacked2 ::

Najlepša hvala za obširen komentar. Glede na to, da tematiko očitno dobro poznaš, lahko predlagaš kakšno knjigo na to temo ? V ang ali slo jeziku. Zanima me samo hipotetično ja, upam pa da bom nekega dne zaposlen v podjetju, ki bi se ukvarjalo s računalniško varnostjo itd...
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

Kakšne konkretne knjige ti ne znam priporočiti, lahko pa na spletu najdeš en kup resursov, kjer lepo opisujejo, kako so posamezni napadi, vdori in zlorabe potekale. Če začneš pri enem verjetno najbolj znanih analitikov Brianu Krebsu, boš imel že več kot dovolj za naštudirat....

Ogromno altualnih zgodbic z analizo, kako so se zgodile najdeš tudi preko LinkedIn, kjer imaš en kup specifičnih uporabniških skupin z varnostno tematiko.

Trenutno zelo aktualno je tudi vse dogajanje okoli dveh največjih varnostnih konferenc: Blackhat in Defcon

Potem pa imaš še razne bloge, ki jih vzdržujejo številni proizvajalci varnostnih rešitev ali nekdo od njihovih zaposlenih, kot npr. Watchguard Security Center, kjer bolj ali manj redno objavljajo kratke video prispevke o zadnjih večjih varnostnih incidentih, skupaj z vrsto linkov, kjer lahko izveš več podrobnosti o posamezni tematiki.

poweroff ::

Stvar je v tem, da moraš za komunikacijo uporabljati nekaj, kar je razmeroma razširjeno in se zato ne blokira. Tipično sta to HTTP ali HTTPS protokol. Pri HTTPS je prednost v tem, da se uporablja šifriranje, kar zakrije sledi, čeprav bi lahko uporabljal tudi HTTP in prenašal slike v katerih bi bili steganografsko skriti ukazi.

Mogoče najbolj preprosta varianta je, da bi uporabil OpenVPN povezavo preko HTTPS porta, vendar OpenVPN zaradi port sharinga uporablja nek poseben kontejner, ki ga IDS zna zaznati.

Ampak glavni problem teh napadov je, da se ti vedno povezuješ na en IP. Kar pomeni, da je mogoče ta vzorec zaznati. Zato nekateri virusi uporabljajo povezovanje na Twitter, kjer iz slik vlečejo steganografsko zapisane ukaze.
sudo poweroff

SeMiNeSanja ::

Načinov in metod je neskončno. Bolj ko poznaš 'orodjarno', bolj vse skupaj postaja vprašanje domišlije.

Če si na strani 'ta dobrih', se dobesedno greš igro mačke z mišjo. Pokrpaš eno luknjo, se pokaže druga, na katero še nisi pomislil.

Največji problem pa tu niti ni toliko samo krpanje lukenj, kot pa spremljanje dogajanja. Kdo pa logira promet na domačem routerju? Pa tudi če ga, kdo potem še gleda tisto godljo na syslog serverju? Pozabi!

V podjetjih pa ista zgodba. Vsaka požarna pregrada zna logirat na syslog, vendar se kot prvo le redko logira čisto vse (kam pa prideš, če boš logiral vsak ping?).
Če imaš na voljo zgolj zapise iz syslog-a, lahko vanje buliš ure in ure, pa ne boš videl ničesar. Še tisto, kar bi lahko videl, boš spregledal. Syslog zapisi kot taki, so uporabni zgolj če točno veš, kaj iščeš. Ne moreš pa iz njih razbrati, da se je npr. nenavadno povečalo število povezav na FTP ali Twitter.

Tu potem pridejo v igro razna analitična orodja, ki podatke iz syslog-a (in drugih logov) zberejo skupaj, kih premeljejo in prezentirajo na način, ki ti omogoča razbrati, da se dogaja nekaj neobičajnega.
Ker pa takšna orodja ponavadi pridejo z zasoljeno ceno, jih povečini najdemo le v večjih podjetjih. Mala in srednje velika podjetja pa so (pre)pogosto povsem bosa na tem področju.

Najbolj žalostno je to, da rabiš samo Google nafutrat z 'Open Source SIEM', pa ti bo ponudil en kup variant, ki bi jih lahko vsaj za prvo silo implementiral, brez da bi obubožal.

Žal pa se potem izkaže, da tudi to, da imaš nek Log Management ali Analytics sistem postavljen, ne zadošča. Zadeva bo kreirala neka poročila, izobešala rdeče zastavice, morda te celo bombardirala z maili - ampak če maile preusmeriš v spam (ker jih je preveč?), poročila pa ne pogledaš niti tedensko, nisi nič naredil.

Kako je že bilo v primeru Target-a? Zunanje podjetje, ki je izvajalo monitoring, je odgovorne opozorilo, da se dogajajo nenavadne reči na mreži, ti pa niso reagirali.
Isto tudi jaz opažam v svojem vsakdanu. Delam kakšen vzdrževalni poseg pri stranki in jih opozorim, da se določen IP naslov na njihovem omrežju nenavadno obnaša, pa se ne zgodi nič. Teden dni kasneje še vedno nič.... po treh tednih potem ugotovijo, da je računalnik (strežnik!) okužen s Conflickerjem, ampak ker ga ne znajo sčistiti, tudi po enem mesecu še vidim, da se blokirajo povezave tega računalnika proti internetu, ko se poskuša povezat na nadzorni center.

poweroff ::

SeMiNeSanja je izjavil:

Tu potem pridejo v igro razna analitična orodja, ki podatke iz syslog-a (in drugih logov) zberejo skupaj, kih premeljejo in prezentirajo na način, ki ti omogoča razbrati, da se dogaja nekaj neobičajnega.
Ker pa takšna orodja ponavadi pridejo z zasoljeno ceno, jih povečini najdemo le v večjih podjetjih.

Problem je, ker so ta orodja precej primitivna. Znajo prikazat neke sumarne podatke, kakšnega resnega strojnega učenja pa ne obvladajo. Ne odprtokodna, ne komercialna.
sudo poweroff

Yacked2 ::

poweroff je izjavil:

SeMiNeSanja je izjavil:

Tu potem pridejo v igro razna analitična orodja, ki podatke iz syslog-a (in drugih logov) zberejo skupaj, kih premeljejo in prezentirajo na način, ki ti omogoča razbrati, da se dogaja nekaj neobičajnega.
Ker pa takšna orodja ponavadi pridejo z zasoljeno ceno, jih povečini najdemo le v večjih podjetjih.

Problem je, ker so ta orodja precej primitivna. Znajo prikazat neke sumarne podatke, kakšnega resnega strojnega učenja pa ne obvladajo. Ne odprtokodna, ne komercialna.


Lahko bi štel število paketov določenega tipa, na določen naslov na teden in bi sprožil alarem, če bi se pojavil naval na nek nov IP.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

SeMiNeSanja ::

poweroff je izjavil:

Problem je, ker so ta orodja precej primitivna. Znajo prikazat neke sumarne podatke, kakšnega resnega strojnega učenja pa ne obvladajo. Ne odprtokodna, ne komercialna.

Sem zadnjič naletel na eno komercialno rešitev srbskega izvora, ki se že počasi približuje neki inteligenci izza vsega skupaj Aspen.

Druače pa imaš prav, večina rešitev je usmerjena v statistično obdelavo zbranih podatkov in njihovo prezentacijo na bolj ali manj posrečen način.
Naše stranke poleg požarne pregrade dobijo Dimension - brezplačen strežnik za zbiranje in analitiko podatkov, ki je v marsikaterem pogledu bolj učinkovit, kot večina plačljivih rešitev konkurentov. Toda 'varnost' ni samo požarna pregrada, drugih izvorov podatkov pa Dimension žal ne podpira.
Kljub temu, če govorimo o SMB okoljih, ti za 0,00$ nudi neverjetno veliko (preskoči prvih 13 min nakladanja):

SeMiNeSanja ::

Yacked2 je izjavil:

Lahko bi štel število paketov določenega tipa, na določen naslov na teden in bi sprožil alarem, če bi se pojavil naval na nek nov IP.

Problem 'navadnega preštevanja' je ogromno število false positives, ki jih takšna metoda generira. Preveč lažnih alarmov ima za posledico ignoriranje, na koncu pa s tem nisi nič dosegel.

Tak lažni alarm bi se ti namreč lahko že sprožil, če bi neko podjetje na spletu pričelo z novo marketing akcijo. Na raznoraznih spletnih straneh bi se pri tem pojavil njihov banner, ki bi ga stregli z lastnega strežnika. Recimo, da se predstavlja nek novi model VW-ja. Če je do včeraj morda le eden uporabnik tedensko zašel na spletno stran VW-ja, bi se ob zagonu kampanje nenadoma z njihovega strežnika prenašal banner na vseh mogočih straneh, prenašali pa bi ga praktično vsi računalniki v omrežju. Torej bi imeli že lažni alarm, če bi zgolj preštevali povezave.

Dokler takšno preštevanje ne združiš še z kakšno reputacijsko bazo, ki ti bo vedela povedati, da VW strežnik verjetno ni nek zlobni strežnik in ta alarm brisal še predenj se pojavi, bo stvar precej neuporabna. Pri tem pa potrebuješ neko 'živo' reputacijsko bazo, po možnosti takšno, ki gre še malo globlje od same domene, tja do reputacije posameznih URL-jev. Ker so podatki reputacijskih baz lahko zelo različni, je dobro, če imaš vključeno vsaj še eno dodatno.

Vendar je zgolj preštevanje uspešno vzpostavljenih povezav mnogo premalo. Potrebuješ dodatne 'senzorje'. Tu se potem izkažejo UTM požarne pregrade, pri katerih je vsaka od varnostnih storitev nekakšen senzor. Same storitve ti omogočijo blokiranje preko IPS, AV, spletnega filtra,..... te blokade pa se potem beležijo na log serverju.
Torej imaš na voljo še podatke o povezavah, ki so bile prekinjene, ker so bile na osnovi teh servisov okarakterizirane kot rizične.
Če si zdaj pogledaš statistiko, dobiš že čisto drugačno sliko. Določeno število povezav je povsem normalno, da se blokira. Vendar če se nekje nenadoma poveča to število, lahko dokaj hitro razbereš od kod to povečanje in ustrezno ukrepaš.

Takšno povečanje blokiranih povezav se lahko pokaže že, če si uporabnik namesti Dropbox, ki ga ti nisi dovolil uporabljati. Seveda pa se lahko pojavlja tudi, ker skuša računalnik vzpostavljati povezavo do spletne strani, ki je šteta kot rizična, prenašati izvršljivo datoteko, ki jo ne dovoljuješ,.....

Polne avtomatizacije pri tem po moje še lep čas ne bomo videli, vendar če ti analitika pokaže rezultate na primeren način, bi moral vsak admin vedeti, kdaj se dogaja nekaj neobičajnega.

poweroff ::

Deep machine learning bi morda znal pomagati.
sudo poweroff

SeMiNeSanja ::

Hudir je to, da ti na koncu vsega, največji idiot v hiši nekako uspe prelisičiti/sesuti/zaobiti tudi najbolj napredni varnostni sistem.

Je ni inteligence, ki bi bila dorasla človeškemu idiotizmu.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

Poštni odjemalci (strani: 1 2 3 4 5 6 7 8 )

Oddelek: Programska oprema
375265022 (9953) Matko
»

Nov kriptovirus Locky na pohodu, napada tudi bolnišnice (strani: 1 2 )

Oddelek: Novice / Kriptovalute
7932379 (28365) misek
»

Katera "odhodna" vrata na požarnem zidu za rsync

Oddelek: Omrežja in internet
324169 (3439) mojca
»

SMTP promet (strani: 1 2 3 4 )

Oddelek: Omrežja in internet
18117338 (15389) NeMeTko
»

E-mail limiti

Oddelek: Omrežja in internet
225396 (5145) Senitel

Več podobnih tem