Szerver biztonság – Hogyan fektethette volna meg egyetlen ember az Imgurt?

08
aug
2016
Kategória: Egyéb

Amikor a hackerek munkájáról beszélünk, mindig csak általános utalásokból indulhatunk ki: a munkájuk többnyire megérzés, fontos képességük az intuíció, egyik hiba után keresik a másikat, hogy egy komplett megsemmisítést véghez vigyenek, és így tovább. De most végre az elejétől a végéig elolvashatjuk, hogyan törte fel egyetlen ember az Imgur népszerű képmegosztóját, ami után az igazgató személyesen írt neki levelet, és küldött mellé 5000 dollárt (1,4 millió forintot).

A teljes sztori itt olvasható angolul, a legjobb részeket kivonatolom.

Nathan Malcolm biztonsági kutató egy nap úgy döntött, hogy megpróbál fogást találni az Imguron. Azért ezt a platformot választotta, mert jól ismerte már a működését felhasználóként. Gyors ujjgyakorlatok után talált is nem egy biztonsági rést: XSS, clickjacking, és CSRF problémák egész hada tárult elé. Jelentette az Imgurnak az összeset, meg is köszönték, repiajándékokat felajánlva a megtalálónak.

Ez 2015-ben volt. Nem sokkal később az Imgurt feltörték, feltöltöttek egy HTML fájlt egy ártalmas Javascript kóddal, ami nagyon megijeszthette a vezetőséget. Azonnal kiírták a bug-fejvadász programjukat, aminek keretében pénzt kínálnak a biztonsági hibák megtalálóinak. Hirtelen fontos lett a szerver biztonság.

Nathan újra jelentett hibákat, 20-nál többet is, a végén 50 dollárt kapott a munkájáért. Nem volt kimondottan motiváló.

Aztán a biztonsági szakértő egyszer csak rábukkant erre a kódrészletre az oldal forráskódjában:

$(function() {
 if(!/^([^:]+:)\/\/([^.]+\.)*imgur(-dev)?\.com(\/.*)?$/.test(document.referrer)) {
 Imgur.Util.jafoLog({ event: ‘galleryDisplay’, meta: { gallerySort: ‘viral’, galleryType: ‘hot’ }});
 }
 });

Innen jött az ötlet, hogy utánamenjen az imgur-dev.com oldalnak, amiről kiderült: az Imgur belső fejlesztői aloldala. Egy szimpla Google keresés után (“site:imgur-dev.com”) kiderült, hogy a Google indexálta az alan.imgur-dev.com aldomaint is. Ez az Imgur egy teljes fejlesztői verzióját tartalmazta. A szerver azonban akkor épp ki volt kapcsolva, csak egy cache-elt verziót tudott átnézni a támadó.

Novemberben aztán visszanézett Nathan, és bumm: az alan.imgur-dev.com oldal éles volt, simán tudott kapcsolódni. Az Imgur egy tesztverziója futott rajta, pár tesztposzttal és felhasználóval, meg persze egy rakás fejlesztői plusszal: helyenként belelátott az Imgur forráskódjába, PHP értesítéseket is felfedezett, adatbázis lekérdezéseket, valamint a konfigurációs fájlok komplett elérését látta.

shutterstock_62355721

A férfi jelentette a hibát, aztán visszanézett pár nap múlva. Továbbra is nyitva volt a kapu, ezért továbbment.

Ráküldte az oldalra a SubBrute programot, ami aldomainek után kutat. Ekkor fedezte fel az es.alan.imgur-dev.com aldomaint, ami egy Elasticsearch szerver volt. Jó ideje nem frissítették, így tele volt biztonsági résekkel. Nathan úgy gondolta, ha most jelenti a hibát, megint lerázzák 50 dolcsival, és egy pöttyös bögrével. Így elkezdte tesztelni, melyik Elasticsearch biztonsági rés van nyitva: talált is egyet, és elkezdte olvasni azokat a fájlokat, amikre a fejlesztők úgy gondolták, senki sem talál rá.

Az egyik ilyen a keys.php volt, ami API kulcsokat tartalmazott, sőt, a lokális és távoli MySQL szerver hozzáféréseit is. Hoppá. Mivel a lokális adatbázishoz nem fér hozzá, egyetlen esély volt továbbmenni: megtudni a távoli MySQL szerver elérhetőségét.

Nathan visszanézte az aldomaineket, amiket korábban listázott neki a SubBrute. Talált egy ilyet: sql.alan.imgur-dev.com. Bingó. Már csak ki kellett másolnia a felhasználónevet és jelszavat a keys.php-ből. A belépés sikeres volt, innentől kezdve gyakorlatilag bármit meg tudott volna tenni, akár óriási pusztítást is végezhetett volna. Azonban itt megállt: még csak teszt szintjén sem futtatta le a lehetőségeket, mire lett volna képes. Gyorsan bejelentette a problémát.

Decemberben megítélték neki a jutalmat: 500 dollárt kapott az összes addigi bejelentésért, amiben a fenti problémacsomag is benne volt. Nathan nem volt elégedett. Úgy döntött, hogy levelet ír a vezetőnek. Ezt:

“A bug-jutalmak olyanok, mintha zsoldossereget fogadnál. Olcsóbb, mint hadsereget fenntartani. De ne panaszkodj, ha időközben átállnak a másik oldalra, ahol több arany vár rájuk.”

Alan, az igazgató egy héttel később válaszolt. Megköszönte a munkát, és úgy döntött, hogy 5000 dollárral megtoldja az eddigi jutalmat. És boldog új évet kívánt.

Nathan azóta is segíti az Imgurt, és máshol is részt vesz hibafeltárásban. Az ilyen emberek azok, akik  miatt a szerver biztonság napról napra erősebb mindenhol, és ők azok, akik miatt igenis érdemes pénzzel jutalmazni ezeket az erőfeszítéseket. Mert ha az ellenségeinknek többet ér a saját biztonságunk, mint magunknak, akkor nagy baj van.