Skelbimas

Bendras priegloba. Tai pigiausias pasirinkimas, ar ne? O didžiuliam gyventojų skaičiui reikia visko, ko jiems prireiks priglobti savo svetainę ar žiniatinklio programą. Kai gerai padaryta, pasidalijamąjį prieglobą galima pritaikyti, greitai ir saugiai.

Bet kas nutinka, kai tai nėra gerai padaryta?

Na, būtent tada pradeda slinkti pavojingos saugumo problemos. Tai yra tada, kai rizikuojate, kad jūsų svetainė bus pažeista ar nutekės jūsų turimi privatūs duomenys. Bet nesijaudink. Didžioji dauguma žiniatinklio prieglobų turi tinkamas saugumo priemones. Turite būti atsargūs tik skraidančios nakties, rūsio, pagrindinio namo šeimininkai.

Mes rekomenduojame Bendroji „InMotion Hosting“ priegloba su SSD saugykla.

„sharehosting-hacker“

Mes ketiname ištirti saugumo problemas, susijusias su bendru hostingu. Bet pirmiausia pakalbėkime apie tai, kas bendro naudojimo prieglobos platformą daro saugią.

Kas daro saugų žiniatinklio prieglobą

Yra keletas išskirtinių saugumo sumetimų, kuriuos reikėtų atkreipti į dalijamąjį prieglobą.

instagram viewer
  • Kiekvienas serverio vartotojas turėtų būti atskirtas nuo kitų vartotojų ir neturėtų turėti prieigos prie kitų vartotojų failų ar jų modifikuoti.
  • Apsaugos pažeidžiamumas serverio priglobtos svetainės logikoje neturėtų turėti įtakos kitiems vartotojams.
  • Serveris yra reguliariai pataisomas, atnaujinamas ir stebimas, siekiant išspręsti architektūros saugumo problemas.
  • Kiekvienas vartotojas turėtų turėti savo atskirą prieigą prie duomenų bazės ir jam neturėtų būti leidžiama keisti saugomų įrašų ar kitų vartotojų lentelių leidimų.

Vėlgi, dauguma žiniatinklio prieglobos dalyvių atitinka šiuos reikalavimus dėl savo bendro pasiūlymo. Bet jei ieškote prieglobos kelioms svetainėms viename serveryje ar norite sužinoti, kaip susideda jūsų prieglobos įmonė, ar net galvojate įkurti savo prieglobos įmonę ir nekantraujate išsiaiškinti, kaip apsaugoti vartotojus, tada perskaitykite apie.

Bet pirmiausia, atsisakymas

Prieš pradėdamas mąstyti apie bendrus išpuolius, prilygstančius bendram prieglobai, aš tiesiog noriu pareikškite, kad šis įrašas nebus išsamus galimo saugumo sąrašas (ir neturėtų būti jo laikomas kaip) Problemos.

Saugumas, žodžiu, didelis. Galite kelti pavojų svetainei daugybe būdų. Tai taikoma dvigubai daugiau už bendrą prieglobą. Jų apdengimas vienu straipsniu niekada nebuvo ant kortelių.

„sharehosting-disclaimer“

Jei esate paranojiškas dėl savo saugumo, įsigykite VPS arba tam skirtą serverį. Tai yra aplinka, kurioje jūs (didžiąja dalimi) galite visiškai valdyti tai, kas vyksta. Jei nesate tikri dėl įvairių žiniatinklio prieglobos rūšių, patikrinkite šį įrašą Paaiškintos įvairios interneto svetainių talpinimo formos [paaiškintos technologijos] Skaityti daugiau iš mano kolegos Jameso Bruce'o.

Taip pat turėčiau pabrėžti, kad šis įrašas neturi būti aiškinamas kaip pasidalijamojo prieglobos išpuolis. Greičiau tai yra grynai akademinis žvilgsnis į saugumo problemas, susijusias su šia interneto prieglobos kategorija.

Aplanko aplankas

Pradėkime nuo katalogų perėjimo (dažnai vadinamų kelio perėjimu) atakų. Tokio tipo išpuoliai leidžia pasiekti failus ir katalogus, kurie yra laikomi ne žiniatinklio šaknyje.

Kalbant paprastai? Na, įsivaizduokime, kad Alisa ir Bobas naudoja tą patį serverį savo svetainėms priglobti. Alisos failai saugomi aplanke / var / www / alice, o Bobo dokumentus galima rasti aplanke / var / www / bob. Be to, apsimeskime, kad serveryje yra dar vienas aplankas (/ usr / crappyhosting / myfolder) kuriame yra nešifruotas paprasto teksto failas (mes jį vadinsime pwd.txt), kuriame yra sistemos vartotojo vardai ir slaptažodžiai.

„hosthosting-server“

Su manimi iki šiol? Gerai. Dabar įsivaizduokime, kad Bobo svetainė teikia PDF failus, kurie generuojami vietoje, o vietinis failas nurodomas URL. Kažkas kaip:

http://example.com/file?=report.pdf

Kas nutiktų, jei „report.pdf“ pakeičiau kai kuriais UNIX parametrais, kurie keičia katalogą?

http://example.com/file?=../alice/

Jei serveris sukonfigūruotas neteisingai, tai leis jums pamatyti Alisos dokumento šaknį. Įdomu, bet mus daug labiau domina tas sultingų pasų failas. Accio slaptažodžiai!

http://example.com/file?=../../../usr/crappyhosting/myfolder/pwd.txt

Tai tikrai taip paprasta. Bet kaip su tuo susidoroti? Tai lengva.

Kada nors girdėjote apie mažai žinomą „Linux“ programą, vadinamą chroot? Jūs tikriausiai jau spėjote, ką tai daro. Jis nustato „Linux / UNIX“ šaknį į savavališką aplanką, todėl vartotojams neįmanoma išeiti iš jo. Veiksmingai tai sustabdo katalogų perėjimo prie jų takelių atakas.

bendroji chroot

Sunku pasakyti, ar jūsų šeimininkas tai turi, nepažeisdamas įstatymų. Galų gale, norėdami tai išbandyti, turėsite prieigą prie sistemų ir failų, prie kurių neturite leidimo. Turint tai omenyje, galbūt būtų protinga pasikalbėti su savo žiniatinklio priegloba ir paklausti, kaip jie izoliuoja savo vartotojus.

Ar naudojate savo bendrojo serverio serverį ir nenaudojate „chroot“, kad apsaugotumėte savo vartotojus? Reikia pripažinti, kad sunku aprašyti jūsų aplinką. Laimei, yra daugybė papildinių, kurie palengvina tai. Visų pirma atkreipkite dėmesį į mod_chroot.

Komandinė injekcija

Grįžkime prie Alisos ir Bobo. Taigi, mes žinome, kad Bobo žiniatinklio programoje yra keletas... Ahem... Saugumo problemų. Vienas iš jų yra komandos įpurškimo pažeidžiamumas, leidžiantis paleisti savavališkos sistemos komandos Trumpas vadovas, kaip pradėti naudotis „Linux“ komandine eiluteSu „Linux“ komandomis galite padaryti daug nuostabių dalykų, ir to tikrai nėra sunku išmokti. Skaityti daugiau .

„Bobo“ svetainė leidžia vykdyti Whois užklausą kitoje svetainėje, kuri tada rodoma naršyklėje. Yra standartinis HTML įvesties laukelis, kuris priima domeno vardą ir paleidžia „Whois“ sistemos komandą. Ši komanda vykdoma iškviečiant sistemos () PHP komandą.

Kas nutiktų, jei kas nors įvestų šią vertę?

pavyzdys.com &&cd ../alice/ &&rm index.html

Na, suskaidykime tai. Dalis to jums gali būti pažįstama, jei perskaitėte mūsų „Darbo pradžios vadovas su„ Linux “ Darbo su „Linux“ ir „Ubuntu“ pradžiaJus domina perėjimas prie „Linux“... bet kur pradėti? Ar jūsų kompiuteris suderinamas? Ar jūsų mėgstamos programos veiks? Čia yra viskas, ką reikia žinoti norint pradėti naudotis „Linux“. Skaityti daugiau el. knyga, kurią anksčiau išleidome 2010 m., arba apžvelgėme „Linux“ komandos eilutės apgauti lapas.

Pirmiausia ji vykdys Whois užklausą svetainėje example.com. Tuomet dabartinis darbinis katalogas būtų pakeistas į Alisos dokumento šaknį. Tada jis pašalins failą, pavadintą „index.html“, kuris yra jos svetainės rodyklės puslapis. Tai nėra gerai. Ne sere.

„sharedhosting-linux“

Taigi, kaip sistemos administratoriai, kaip tai sušvelninti? Na, grįždami prie ankstesnio pavyzdžio, mes visada galime kiekvieną vartotoją sudėti į savo izoliuotą, dezinfekuotą, chrootinę aplinką.

Į tai taip pat galime kreiptis kalbų lygmeniu. Galima (nors tai gali sugadinti dalykus) visuotinai pašalinti funkcijų deklaracijas iš kalbų. Tai reiškia, kad įmanoma pašalinti funkcijas iš kalbų, kuriomis vartotojai gali naudotis.

Visų pirma žvelgdami į PHP, galite pašalinti funkcijas naudodami „Runkit“ - oficialų PHP įrankių rinkinį kalbos funkcionalumui modifikuoti. Čia yra daugybė dokumentų. Perskaitykite.

Taip pat galite modifikuoti PHP konfigūracijos failą (php.ini), kad išjungtumėte funkcijas, kuriomis dažnai piktnaudžiauja įsilaužėliai. Norėdami tai padaryti, atidarykite savo serverio terminalą ir atidarykite savo php.ini failą teksto rengyklėje. Man patinka naudotis VIM, tačiau taip pat priimtina NANO.

Suraskite eilutę, kuri prasideda invalid_functions, ir pridėkite funkcijų apibrėžimus, kuriuos norite uždrausti. Tokiu atveju tai būtų „exec“, „shell_exec“ ir sistema, nors verta paminėti, kad yra ir kitų įmontuotų funkcijų, kurias gali panaudoti įsilaužėliai.

Disable_functions = Exe, „shell_exec“, sistema

Kalbos ir vertėjų išpuoliai

Taigi, pažvelkime į PHP. Tai kalba, įgalinanti stulbinantį skaičių svetainių. Tai taip pat būdinga daugybe savitumų ir keisto elgesio. Kaip šitas.

PHP paprastai naudojamas kartu su „Apache“ žiniatinklio serveriu. Iš esmės neįmanoma įkelti kelių kalbos versijų su šia konfigūracija.

pasidalijimas-phpelephant

Kodėl tokia problema? Na, įsivaizduokime, kad Bobo žiniatinklio programa iš pradžių buvo sukurta 2002 m. Tai jau seniai. Tuo metu, kai Michelle Branch vis dar virė topus, Michaelas Jordanas vis dar grojo „Washington Wizards“, o PHP kalba buvo daug kitokia.

Tačiau Bobo svetainė vis dar veikia! Jis naudoja visą krūvą nutrauktų ir nebenaudojamų PHP funkcijų, tačiau veikia! Naudojant modernią PHP versiją būtų galima efektyviai sunaikinti Bobo svetainę, ir kodėl Bobas turėtų perrašyti savo svetainę, kad patenkintų savo interneto prieglobos užgaidas?

Tai turėtų suteikti jums supratimo apie dilemą, su kuria susiduria kai kurie interneto pavaduotojai. Jie turi išlaikyti pusiausvyrą išlaikydami architektūriškai patikimą ir saugią paslaugą, kartu užtikrindami, kad mokantys klientai būtų patenkinti.

Todėl nėra reta, kai mažesni, nepriklausomi prieglobos įrankiai naudoja senesnes PHP (arba bet kuria kalba) vertėjo versijas.

Neretai matote, kad mažesni, nepriklausomi prieglobos įrankiai naudoja senesnes PHP versijas, todėl vartotojams gali kilti saugumo pavojų.

Kodėl tai blogas dalykas? Na, visų pirma, vartotojams gali kilti daugybė pavojų saugumui. Kaip ir dauguma pagrindinių programinės įrangos paketų, PHP yra nuolat atnaujinamas, siekiant pašalinti daugybę saugos pažeidžiamumų, kurie nuolat atrandami (ir atskleidžiami).

Be to, tai reiškia, kad vartotojai negali naudoti naujausių (ir didžiausių) kalbos funkcijų. Tai taip pat reiškia, kad funkcijos, kurios dėl priežasties buvo pasenusios, išlieka. Jei tai yra PHP programavimo kalba Išmokite kurti naudodamiesi PHP: avarijos kursasPHP yra kalba, kuria „Facebook“ ir Vikipedija naudoja aptarnauti milijardus užklausų kasdien; de-facto kalba, naudojama mokant žmones naudotis interneto programomis. Tai nuostabiai paprasta, bet nepaprastai galinga. Skaityti daugiau , tai apima juokingai baisias (ir neseniai pasenusias) „mysql_“ funkcijas, kurios naudojamos sąveikai su „MySQL Reliacinių duomenų bazių sistema“ ir dl (), leidžiančiais vartotojams importuoti savo kalbą plėtiniai.

Kaip vartotojas turėtumėte pamatyti, kokia vertėjo versija veikia jūsų tarnyboje. Jei jis pasenęs arba jame yra keletas saugos spragų, susisiekite su savo kompiuteriu.

O kaip sysadminai? Čia turite keletą variantų. Pirmasis (ir perspektyviausias) yra naudoti „Docker“ kiekvienam savo vartotojui. „Docker“ leidžia vienu metu paleisti kelias atskiras aplinkas, panašiai kaip tai daro virtualioji mašina, nors ir nereikia paleisti kitos operacinės sistemos. Dėl to tai vyksta greitai. Tikrai, tikrai greitai.

Kalbant paprastai? Daugumai savo vartotojų, o tuo pačiu ir klientams, galite paleisti naujausią ir geriausią vertėją kurie naudojasi senomis programomis, kurios naudoja senovinius, pasenusius vertėjus, kad nepadarytų pavojaus kitiems vartotojų.

Tai taip pat turi pranašumą, nes kalba yra agnostinė. PHP, Python, Ruby. Nesvarbu. Tai viskas tas pats.

Neturėk košmarų.

Šis įrašas buvo skirtas padaryti pora dalykų. Pirma, tai turėjo atkreipti jūsų dėmesį į daugybę saugumo problemų, su kuriomis susiduria žiniatinklio prieglobos įmonės, norėdamos užtikrinti savo klientų ir jų duomenų saugumą.

Taip pat buvo siekiama parodyti, kaip tame pačiame serveryje esančios svetainės gali paveikti viena kitą. Norite į tai įkišti dantį? Pradėkite laikytis gerų, saugių kodavimo standartų. Visų pirma, pradėkite dezinfekuoti savo įvestis tiek priekiniame, tiek ir galiniame gale.

Gera pradžia yra naujoji HTML5 formos patvirtinimo funkcija. Apie tai jau kalbėjome anksčiau HTML5 vadove. Kartu galime padaryti svetaines saugesnes, būdami geresni, sąmoningesni programuotojai.

Kaip visada, laukiu jūsų minčių. Pameskite man komentarą žemiau.

Nuotraukų kreditas: Visiems reikia piratų (Alexandre Dulaunoy), Lipdukas ant taksi lango (Cory Doctorow), Serverio kambarys („Torkild Retvedt“), „Linux“ knygos ir žurnalai (Library_mistress), PHP dramblys (Markusas Tackeris)

Matthew Hughes yra programinės įrangos kūrėjas ir rašytojas iš Liverpulio, Anglijos. Jis retai randamas be stiprios juodos kavos puodelio rankoje ir absoliučiai dievina savo „Macbook Pro“ ir fotoaparatą. Jo dienoraštį galite perskaityti http://www.matthewhughes.co.uk ir sekite jį „Twitter“ adresu @matthewhughes.