19. June 2009 15:35
/
Knaģis
/
miga.lv
Comments (2)
Pienācis laiks aprakstīt kādu drošības caurumu, kas bija viens no galvenajiem iemesliem, kāpēc atteicos no vecā miga.lv servera un Apache web servera. Šis raksts netika rakstīts ar domu, ka kāds šo caurumu nu sāks izmantot (ceru, ka lielajos hostinga serveros tas nav iespējams), bet, lai serveru administratoros raisītu pārdomas par to, kā, apvienojot dažas nekaitīgas funkcijas, var panākt sliktas lietas.
Problēma sastāvēja no vairākām, atsevišķi nekaitīgām, detaļām:
- uz servera bija atļauts .htaccess failā definēt MIME tipus;
- PHP moduli web serveris palaiž atkarībā no faila MIME tipa;
- uz servera bija iespējams veidot un lietot simboliskos linkus.
Katrs no šiem punktiem ir nepieciešams noteiktos scenārijos un pats par sevi neko sliktu nevar izdarīt.
Par caurumu tie pārvērtās sekojošā situācijā:
- servera ļaunais lietotājs izveido simbolisko linku uz kāda cita klienta direktoriju;
- ļaunais lietotājs direktorijā, kurā atrodas šis links, izveido .htaccess failu;
- .htaccess failā ļaunais lietotājs norāda, ka .php failiem MIME tips ir text/plain, papildus vēl ieslēdz arī direktoriju pārlūkošanu;
- ļaunais lietotājs caur pārlūkprogrammu piekļūst šim linkam, iegūstot pieeju visiem otra klienta .php failiem kā tekstam.
Tā kā .php failos parasti ir tīrā tekstā saglabātas datubāzes paroles, ļaunais lietotājs var piekļūt svešām datubāzēm. Papildus ļaunais klients iegūst pieeju cita lietotāja intelektuālajam īpašumam (lapas kodam).
Vienīgā aizsardzība, kas tika izveidota uz miga.lv vecā servera, bija regulāra pārbaude, vai kāds lietotājs neveido simboliskos linkus uz svešām direktorijām. Diemžēl, nesamazinot piedāvāto funkcionalitāti, ar izmantoto programmatūru šo caurumu izlabot nevarēja.
09f63240-5cf8-4fb7-9b02-daf2239c481f|1|5.0|015880aa-1e7c-4e05-a104-8c054d966a2e