A leggyengébb láncszem, avagy a social engineeringről dióhéjban
Képzeljük el a következő helyzetet, akármennyire is valószerűtlennek tűnik elsőre. Egy meg nem nevezett cég központi számítógéptermében vagyok egy hétköznap valamely éjjeli órájában. Fizikailag itt üzemelnek a legfontosabb rendszereket (számlázás, ügyfélnyilvántartás, könyvelés) működtető szerverek. Hogy a legfontosabb körülményt tisztázzam, nyilvánvalóan semmi keresnivalóm nem lenne akkor az adott helyen.
Hogy személyemben kit tisztelhetnek egy esetleges későbbi kivizsgálás során, azt az általam megadott hamis névből, személyi igazolványszámból és kitalált cégnévből nem könnyű kideríteni.
Az általam behozott szervernek látszó eszközt már kényelmesen elhelyeztem, a hozzá tartozó hálózati kábelt a körülöttem felállított switchek egyikének szabad portjába csatlakoztatom, de csak a látszat kedvéért. Be sem kapcsoltam a gépet, még a gyanúját is el szeretném kerülni annak, hogy bármiféle technikai problémát okozhatok. Persze ha tényleg károkozás lenne a célom, a lehetőségek határtalanok ebben a helyzetben. Aki szabadon engedi a fantáziáját, a WIFI-routertől kezdve egy bombáig bármit helyettesíthet ide. A bomba hatását bárki el tudja képzelni, egy állandó vezeték nélküli kapcsolat a szerverek hálózati szegmenséhez mindig jól jön egy technikailag képzett támadónak.
A táskámból előveszem a fényképezőgépemet és kattintok párat, ugyanis később majd bizonyítanom kell, hogy tényleg itt jártam és a teszt sikeres volt. A nálam levő névjegykártyákból párat nem feltűnő helyekre rejtek, erre ideálisnak tűnnek az embernél magasabb rack-szekrények fedelei vagy a falhoz rögzített polcok mögötti szűk rések. Ezeket később meg tudom mutatni, ha valaki kételkedne ott jártamban.
Mindezt csak azért tehetem ennyire zavartalanul, mert a gépterembe bekísérő biztonsági őrnek fontosabb feladata is van: a főbejáratot kell őriznie.
Pár perccel korábbi kérdésére válaszolva legfeljebb negyed órában állapítottam meg a “bedöglött szerver kicseréléséhez” szükséges időt, így ő visszatért a főbejárat melletti “őrszobára”. Előbb azért kitámasztotta a biztonsági ajtókat pár papírkéztörlő gurigával, hogy könnyű kijutásomat segítse. Az előbbiek ismeretében kicsit túlzásnak tűnik a teljes tenyérlenyomat leolvasóval működő biztonsági ajtó, és a 24 órás őrszolgálat.
Na, de térjünk vissza az eseményekhez. Még egyszer körülnézek, végiggondolom, kihagytam-e valamit? Több alkalom nem valószínű a mulasztásaim pótlására… Nem jut eszembe más, elrakom a fényképezőgépet a táskámba és kisétálok. Átfut egy kósza gondolat az agyamon – mi lenne, ha most nem az őrökhöz és a bejárathoz mennék, hanem még körülnéznék az irodahelyiségekben, hátha távozás előtt találok még pár bizalmas dokumentumot kinyomtatva – de hamar elhessegetem. Az ajtókat nyitva tartó gurigákat kiveszem, hogy az ajtók rendesen becsukódjanak mögöttem. Az őröknek megköszönöm a segítséget és távozom. A találós kérdés a következő lenne: hogyan kerültem a szerverszobába?
Kb. fél órával korábban kiszálltam egy taxiból a meg nem nevezett cég igazgatóságának épülete előtt, hónom alatt egy kiszuperált szerverrel. Jó nehéz tud lenni egy ilyen dinoszaurusz, így hitelesebbnek látszik, hogy én is a “kialakult szükséghelyzet” szenvedő alanya vagyok. Ahogy közelebb érek a bejárathoz, úgy néz ki mintha “nem lennének otthon”, nem látok emberi jelenlétre utaló fényt kívülről. Az viszont jó jelnek tűnik, hogy a főbejárat ajtaja nyitva. Belépve meglátom a recepciós fülkét, ahol persze kéken villódzó fényekre leszek figyelmes, kitalálható, hogy a TV be van kapcsolva.
Odaköszönök az őröknek, az egyik láthatóan kicsit csodálkozva felém fordul, nyilván ritka a vendég ilyen késői órán. Röviden felvázolom az előre gondosan megtervezett “vészhelyzetet”, vagyis miszerint az “XY” rendszert működtető egyik központi szerver “bedöglött” (itt egyszerű okokból a szakzsargon mellőzendő), és azonnal ki kell cserélni. Ami a legfontosabb: az őrnek be kell engednie a szerverterembe, hogy eme kényes és nagy szakértelmet igénylő műveletet mihamarabb elvégezhessem. Kicsit csodálkozva, de úgy tűnik, elfogadja az általam elmondottakat, azért a biztonság kedvéért nyúlna az övén lógó CB-rádióért, hogy valakit értesítsen. Ekkor felemelem a kezem és megkérem, hadd beszéljek előbb én “Z”-vel, az IT-biztonsági vezetővel.
Hogy honnét tudom “Z” nevét, azon kívül, hogy ő rendelte meg magát a betörési tesztet? A Google tapasztalataim szerint soha nem hagy cserben: linkedin profilok, szakmai konferenciák, publikációk vagy újságcikkek szereplőiként szinte teljes bizonyossággal megkereshető egy adott cégnél az IT biztonsági vezető neve. Tehát a mobiltelefonomról felhívom azt a számot, amit előzőleg “Z” névvel mentettem el a telefonkönyvben, viszont “Z” helyett az egyik kollégám mobiljához tartozik, aki mellesleg beavatott, és részt vett a teszt forgatókönyvének kidolgozásában. Elmondom, hogy megérkeztem a helyszínre, és készen állok a szerver kicserélésére mihamarabb, a nagyon fontos “XY” rendszer helyreállításának ügyében. Végül közlöm a türelmesen várakozó őrrel: “Z” vele is beszélni szeretne, és átadom a mobiltelefonom. A kollégám barátságosan üdvözli, és megkéri, hogy segítsen engem a gördülékeny munkában.
Az őr kétségei itt már kezdenek eloszlani, hiszen a felelősség most már nem csak az övé. A naplóba beírja az általam mondott nevet, személyi igazolványszámot és cégnevet a személyi igazolványom tényleges elkérése(!) nélkül. Részéről már csak segíteni akarást és együttműködési szándékot érzékelek. Elvezet a gépterem bejáratához, tenyerét a leolvasóba helyezve és a PIN-kódot beütve kinyitja az ajtót. Bekísér, megkérdezi, mikor jöjjön vissza, a visszatérés gondolatát elvetve kitámasztja az összes útba eső ajtót, hogy egyedül is ki tudjak menni, miután végeztem.
Definícióval és a műfaj elemeinek száraz felsorolásával nem szeretném a karakterek számát feleslegesen növelni. Egy social engineering támadás alapulhat pszichológiai trükkökön, számítógépes vagy telefonos interakción. A fentiekben egy alapvetően pszichológiai eszközökön alapuló meggyőzéssel végrehajtott valódi teszt forgatókönyvét írtam le. Miért működik ez a gyakorlatban? Minden emberben különböző mértékben megvan a hajlam az együttműködésre, segítőkésznek/hasznosnak mutatkozásra, a bizalom kialakítására, a bajba kerüléstől való félelemre. A felelősség másokkal történő látszólagos megosztása (a megszemélyesített főnökkel történő telefonos beszélgetés) után az apróságnak tűnő előírások felett könnyebben átsiklik bárki, főként, ha ezzel akadékoskodó helyett barátságosnak mutatkozhat.
Mivel magyarázható az a tapasztalat, hogy a belépéskor kötelezően rögzítendő személyes adatokat bemondásra elfogadják, vagy egy nyakba akasztott fényképes belépőkártyát elfogadnak személyazonosító okmánynak? Ki szeretne akadékoskodni, miután megemlítjük, kinek (lehetőleg befolyásos emberre hivatkozva) az életét/munkáját nehezíti meg, ha nem működik együtt? Ki tud meggyőződni egy helyzet valódiságáról, ha megfelelően részletesen kidolgoztuk a félrevezetésre szolgáló forgatókönyvet (az őr hogyan tudná ellenőrizni az “XY” rendszer működését)? Vajon mennyire segítőkész például egy HelpDesk munkatárs, ha ez alapvetően a munkaköréhez tartozik? Csak alapos biztonságtudatossági felkészítés után várhatjuk el egy cég beosztottaitól, hogy a fenti technikák ne fogjanak ki rajtuk.
Mikor telefonon keresztül próbálunk valakit rávenni bizalmas adatok (jelszavak, nevek, beosztások) kiadására, a direkt kéréssel nem sokra megyünk. Elegendő információ birtokában viszont sikeresen tudunk megszemélyesíteni valakit a cégen belül, akit szinte mindenki ismerhet, de nincs vele közeli személyes kapcsolatban. A választás legjobb esetben egy magas beosztású vezetőre vagy egy informatikai üzemeltetőre esik. A megfelelő mesterséges szituációban könnyen elnyerhetjük a célszemély bizalmát (egy üzemeltető szájából legtöbbek számára hihetőnek tűnhet, ha jelszavak után érdeklődik műszaki problémák elhárításához), vagy együttműködési hajlandóságát (egy vezetővel általában együttműködik mindenki). Információkat könnyen gyűjthetünk például a közösségi oldalakról, a telefonközpontot/recepciót igénybe véve. Egy vezető hanghordozását és beszédstílusát tanulmányozhatja egy valódi támadó is bármilyen kitalált ürügy felhasználásával telefonbeszélgetést kezdeményezve. Azt mondják ezekhez hasonló telefonos trükköket fejvadászok és magánnyomozók sokkal gyakrabban alkalmaznak, mint azt egy naiv kétkedő feltételezné.
Szintén a témához tartozik a számítógép segítségével megvalósított social engineering. Itt a cél lehet egyszerűen adatok elkérése vagy testreszabott rosszindulatú program bejuttatása a cég belső hálózatába. A vicces fordításban Kínából küldött phishing próbálkozásoknak és a nigériai pénzátutalás ígéretének ma már valószínűleg a felhasználók csak egy nagyon szűk rétege dől be. Ezzel szemben egy professzionálisan végrehajtott célzott támadás meglepő eredményeket szokott produkálni. Egy néhány ezer fős vállalat elleni célzott támadás/teszt során százas nagyságrendben találhatjuk meg az alkalmazottak céges e-mail címeit közösségi oldalakon, cikkekben és egyéb publikációkban. A következő lépés egy olyan e-mail összeállítása, ami lehetőleg minél többeket meggyőz, hogy kövessék a leírt utasításokat, nyissák meg a csatolmányt vagy kattintsanak a beillesztett linkre.
A küldő e-mail címének meghamisítása során nem kell a valódi belső HR-es, IT-s vagy egyéb magas beosztású személyek címét felhasználni a sikerhez (már csak azért is, nehogy valaki ezekre válaszoljon), egy hangzásában hasonló cím ugyanannyira hatásos tud lenni. A levél tartalma szintén hihetőnek kell hogy tűnjön, ez akkor is elérhető, ha az e-mail megjelenése/stílusa nem egyezik a céges belső kommunikációkra jellemzővel. Például egy üzleti tevékenységekhez kapcsolódó kérdőívnek szakmailag hitelesnek kell lennie, ami adott esetben külön felkészülést igényel. De hatásos például a HR számára a fizetésemelési kategóriák/cafeteria juttatások felülvizsgálatához szükséges adatok összegyűjtésére vonatkozó Excel táblázat. Engedjük szabadjára a fantáziánkat nyugodtan, ugyanúgy működik az “XY egy képet küldött neked, kattints a következő linkre hogy megnyithasd” jellegű üzenet. Egy támadó rosszindulatú kód bejuttatására készíthet speciális tartalmú CD/DVD/pendrive adathordozókat, amiket az alkalmazottak által rendszeresen látogatott helyeken (pl. WC) “elhagy”. A “becsületes megtalálók” egy része nem tud ellenállni a kísértésnek, hogy megnyissa a tartalmukat.
A számítógéppel támogatott social engineering hasznos jellemzője, hogy a siker aránya automatizált eszközökkel mérhető. Mi a jó oldalon állunk, mielőtt még elfelejtenénk. Ezért az általunk összeállított e-mailek célja nem a tényleges visszaélés, csak a lehetőségek demonstrálása. Az e-mailben kérhetjük a kitöltött űrlap/kérdőív megadott e-mail címre való visszajuttatását. Mi magunk készítjük el a csatolmányokba rejtett “rosszindulatú kódot”, így az legrosszabb esetben pár alapinformációt gyűjt a felhasználó gépéről, és azokat egy általunk felállított szervernek elküldi.
Miután a tesztet lezártuk, számszerűsítve megkapjuk, hány felhasználó esett áldozatul a csapdánknak. Tapasztalataink szerint nagyvállalati környezetben a felhasználók átlagosan 40-50 százaléka pontosan követi a megtévesztő utasításokat. Ez meglepő módon abban az esetben is igaz, ha azok a Word/Excel dokumentumokban a Visual Basic makrók engedélyezésére szólítanak fel. Egy valódi támadó természetesen ennél tovább mehet, teljes ellenőrzést szerezhet az adott felhasználó számítógépe, és azt kiindulásként felhasználva további rendszerek felett. Megjegyezném, hogy a célzottan létrehozott rosszindulatú programok ellen a vírusirtók a gyakorlatban nagyon ritkán védenek. Saját tapasztalataink szerint a fejlesztés során kitesztelhető, hogy célzott kódunkat adott vírusirtók ne ismerjék fel.
Talán nem túlzás az a kijelentés hogy akármilyen sokat fordít egy cég a biztonságot növelő műszaki megoldások bevezetésére, a leggyengébb láncszem az ember marad. A cikkben leírtak a gyakorlatban kipróbált technikákon, valódi tapasztalatokon alapulnak. Aki kételkedik a leírtak valódiságában, annak javaslom egy professzionálisan kivitelezett social engineering teszt végrehajtását, a puding próbája az evés alapon.
Egy alkalommal külföldi (nem angol anyanyelvű) országbeli kollégát kellett igénybe venni a fizikai bejutás tesztelésére. A felkészítésre néhány óra állt rendelkezésre. A lényeg a következő: az őrök számára hihetőbb egy helyzet, ha saját nyelvükön beszélő honfitársuk adja azt elő. Miután minden részletet tisztáztunk, a kolléga megkérdezte: szerintem mennyi az esélye, hogy sikeresen bejut a szerverterembe? Én kilencven százalékot jósoltam neki, ő kételkedve csak annyit mondott: a kilencven százalék szerinte inkább a kudarcra vonatkozik. Miután két telephelyen ugyanúgy sikeresen teljesítette a feladatot, a véleménye gyökeresen megváltozott. Végül csak ennyit mondott: “Már látom, ha elég gonosz lennék, szinte korlátlan lehetőségeim lennének…”
Szerző: Major Marcell
A szerző
- Marcell jelenleg a Deloitte IT-biztonsági csapatának tagja. Több mint 5 éves tapasztalattal rendelkezik betörési tesztek és egyéb informatikai biztonsági vizsgálatok terén. Tanulmányait a szoftverfejlesztésre és az informatikai biztonságra fóku- szálva végezte. Tapasztalatokat szerzett az alkalmazások biztonsági tesztelése, a reverse engineering, a kriptográfiai algoritmusok és protokollok megvalósítása terén. Az előadók névsorában rendszeresen megtalálhatjuk hazai és külföldi hacker konferenciákon.