Simbolinių nuorodų ypatumai Apache HTTP serveryje
Kęstas Gudinavičius, 2008-02-25 23:00:00

Atliekant web saugumo auditą Unix šeimos operacinėse sistemose su įdiegtu Apache HTTP serveriu, dažnai pastebima klaidinga konfigūracija, leidžianti nesudėtingai „apeiti“ egzistuojantį web serverio saugumo modelį, paremtą tokiais mechanizmas kaip: suEXEC, PHP SafeMode, ar net FastCGI su aplinkos izoliavimu. Pamirštama apie pagrindinio komponento, paties Apache serverio, tinkamą konfigūravimą, kuris nulemia likusių komponentų darnų ir saugų darbą.

Simbolinės nuorodos - tai failai, kurie veikia kaip rodyklės į kitus failus. Jos gali būti traktuojamos ir kaip atskiri failai ir kaip objektai, pasiekiami per nuorodą. Apache turi direktyvą „Options“, kurios parametras „FollowSymlinks“ nustato, kaip bus elgiamasi su simbolinėmis nuorodomis.

Standartiniame serverio konfigūracijos faile šis parametras pagal nutylėjimą yra įjungtas.

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
<Directory>

Daugiavartotojiškoje aplinkoje „AllowOverride“ direktyvos parametras beveik visada yra „All“, kas leidžia vartotojams patiems nustatyti kai kuriuos Apache nustatymus, pavyzdžiui, įjungti autentifikaciją. Norint sėkmingai įvykdyti šią ataką, reikia sukurti „.htaccess“ failą su tokiu turiniu:

Options +Indexes +FollowSymLinks
AddType text/plain .php

Antra eilutė reikalinga tam, kad nebūtų interpretuojami PHP failai. To reikia šių failų tipų turinio peržiūrai, pavyzdžiui, ieškant prisijungimo prie duomenų bazės duomenų. Belieka sukurti simbolinę nuorodą į šakninę direktoriją, tai galima padaryti pasinaudojus CGI, SSI, turint SSH prisijungimą, arba PHP priemonėmis, įkeliant tuščią PHP konfigūracinį failą „php.ini“ ir taip panaikinant „SafeMode“ režimą, jei naudojamas FastCGI. Perl scenarijaus pavyzdys:

#!/usr/bin/perl
symlink(“/”,”xxx”);

Rezultatą puikiai iliustruoja ši ekrano nuotrauka:


Komentarai

Vardas:
Komentaras:

Copyright © 2005 - 2010, UAB „Critical Security“