Mainos

Jaettu hosting. Se on halpa vaihtoehto, eikö niin? Ja valtavan väestömäärän kannalta on kaikki mitä he koskaan tarvitsevat isännöidäkseen verkkosivustoaan tai verkkosovellustaan. Ja kun se on tehty hyvin, jaettu hosting on skaalautuva, nopea ja turvallinen.

Mutta mitä tapahtuu, kun se ei ole menestynyt hyvin?

No, silloin vaaralliset turvallisuuskysymykset alkavat hiipiä. Tällöin sivustosi on vaarassa väärinkäyttää tai yksityiset tiedot, joita pidät, ovat vuotaneet. Mutta älä raivota. Suurimmalla osalla verkkoisäntäjä on kunnolliset turvatoimenpiteet. Sinun on oltava varovainen vain lentoteitse yöhintaan sopivassa kellarissa.

Suosittelemme InMotion Hostingin jaettu isäntä SSD-tallennuksen kanssa.

sharedhosting-hakkeri

Aiomme tutkia jaettuun isännöintiin liittyviä turvallisuuskysymyksiä. Mutta ensin puhutaan siitä, mikä tekee jaetusta isännöintijärjestelmästä turvallisen.

Mikä tekee turvallisesta verkkoisäntästä

On olemassa muutamia erillisiä turvallisuusnäkökohtia, jotka tulisi ottaa huomioon jaetun isäntän suhteen.

instagram viewer
  • Jokaisen palvelimen käyttäjän tulee olla erillään muista käyttäjistä, eikä hänen pitäisi voida käyttää tai muokata muiden käyttäjien tiedostoja.
  • Palvelimella isännöidyn verkkosivuston logiikan suojaushaavoittuvuus ei saisi vaikuttaa muihin käyttäjiin.
  • Palvelinta korjataan säännöllisesti, päivitetään ja valvotaan arkkitehtonisten tietoturvaongelmien ratkaisemiseksi.
  • Jokaisella käyttäjällä tulisi olla oma eristetty tietokantaoikeus, eikä hänellä tulisi olla lupaa tehdä muutoksia muiden käyttäjien tallennettuihin tietueisiin tai taulukkoihin.

Useimmat verkkoisäntäkoneet täyttävät jälleen nämä vaatimukset jaetulle tarjonnalle. Mutta jos aiot isännöidä useita verkkosivustoja yhdellä palvelimella tai olet kiinnostunut näkemään, kuinka isäntäyrityssi kerääntyy, tai jopa ajatellut perustaa omaa hosting-yritystäsi ja etsit innokkaasti kuinka suojata käyttäjät, lue sitten päällä.

Mutta ensinnäkin vastuuvapauslauseke

Ennen kuin pääset tutustumaan yhteisiin hyökkäyksiin, jotka on tasattu jaetulle isännöinnille, haluan vain toteaa, että tämä viesti ei ole tyhjentävä luettelo mahdollisesta turvallisuudesta (eikä sitä pidä lukea siihen) kysymyksiä.

Turvallisuus on sanalla sanoen suuri. Sivusto voi vaarantua monella tapaa. Tämä menee kaksinkertaiseksi jaetussa isännöinnissä. Niiden peittäminen yhdeksi artikkeliksi ei ollut koskaan korteilla.

sharedhosting-vastuuvapauslauseke

Jos olet paranoidinen tietoturvasi suhteen, hanki VPS tai oma palvelin. Nämä ovat ympäristöjä, joissa sinulla on (suurimmaksi osaksi) ehdoton hallinta siitä, mitä tapahtuu. Jos et ole varma erilaisista web-hosting-palveluista, tarkista tämä viesti Verkkosivuston ylläpidon erilaisia ​​muotoja selitetty [tekniikka selitetty] Lue lisää kollegaltani James Bruceltä.

Haluan myös korostaa, että tätä viestiä ei tule tulkita hyökkäykseksi jaetulle isännöinnille. Pikemminkin se on puhtaasti akateeminen tarkastelu tämän luokan web-hosting-palveluihin liittyvistä turvallisuuskysymyksistä.

Hakemiston läpikulku

Aloitetaan hakemiston läpi kulkevilla hyökkäyksillä (joita kutsutaan usein polun kulkemiseksi). Tällainen hyökkäys antaa sinun käyttää tiedostoja ja hakemistoja, jotka on tallennettu verkkojuuren ulkopuolelle.

Selvästi englanniksi? Oletetaanpa, että Alice ja Bob käyttävät samaa palvelinta verkkosivustojensa isäntänä. Alice-tiedostot tallennetaan hakemistoon / var / www / alice, kun taas Bobin asiakirjat löytyvät hakemistosta / var / www / bob. Oletetaan lisäksi, että palvelimella on toinen kansio (/ usr / crappyhosting / myfolder) jossa on salaamaton selkeä teksti (jota kutsutaan nimellä pwd.txt), joka sisältää järjestelmän käyttäjänimet ja salasanoja.

sharedhosting-palvelin

Kanssani toistaiseksi? Hyvä. Oletetaan nyt, että Bobin verkkosivusto tarjoaa paikallisesti tuotettuja PDF-tiedostoja, ja paikalliseen tiedostoon viitataan URL-osoitteessa. Vähän niin kuin:

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

Mitä tapahtuisi, jos korvan 'report.pdf' joillakin UNIX-parametreilla, jotka muuttavat hakemistoa?

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

Jos palvelin on määritetty väärin, tämä antaa sinun nähdä Alice-asiakirjan juuri. Mielenkiintoista, mutta meitä kiinnostaa paljon enemmän tuo mehukas passitiedosto. Accio-salasanat!

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

Se on todella helppoa. Mutta miten käsittelemme sitä? Se on helppoa.

Oletko koskaan kuullut vähän tunnetusta Linux-apuohjelmasta nimeltään chroot? Olet todennäköisesti jo arvannut, mitä se tekee. Se asettaa Linux / UNIX-juurin mielivaltaiseen kansioon, jolloin käyttäjien on mahdotonta poistua siitä. Käytännössä se pysäyttää hakemistojen läpi kulkevat hyökkäykset niiden kappaleissa.

Jaettu-chroot

On vaikea sanoa, onko isäntälläsi tämä paikkansa rikkomatta lakia. Loppujen lopuksi testataksesi sitä käytät järjestelmiä ja tiedostoja, joita sinulla ei ole käyttöoikeutta. Tätä silmällä pitäen olisi ehkä järkevää puhua web-isäntällesi ja kysyä kuinka he eristävät käyttäjänsä toisistaan.

Käytätkö omaa jaetun palvelimen palvelinta etkä käytä chrootia käyttäjien suojelemiseen? On totta, että ympäristösi chrostointi voi olla vaikeaa. Onneksi siellä on runsaasti laajennuksia, jotka tekevät tämän helpoksi. Katso erityisesti mod_chroot.

Komento injektio

Palataan takaisin Aliceen ja Bobiin. Joten tiedämme, että Bobin verkkosovelluksessa on muutama... Ahem... Turvallisuusongelmat. Yksi näistä on komennon injektioheikkous, jonka avulla voit suorittaa mielivaltaiset järjestelmän komennot Pikaopas Linux-komentorivin käytön aloittamiseenVoit tehdä paljon uskomattomia juttuja komennoilla Linuxissa, ja se ei todellakaan ole vaikea oppia. Lue lisää .

Bobin verkkosivuston avulla voit suorittaa whois-kyselyn toisella verkkosivustolla, joka sitten näytetään selaimessa. Siellä on tavallinen HTML-syöttöruutu, joka hyväksyy verkkotunnuksen ja suorittaa sitten whois-järjestelmän komennon. Tämä komento suoritetaan kutsumalla järjestelmän () PHP-komentoon.

Mitä tapahtuisi, jos joku antaisi seuraavan arvon?

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

Hajotamme sen. Jotkut näistä voivat olla sinulle tuttuja, jos olet lukenut 'Aloitusopas Linuxiin' Linuxin ja Ubuntun käytön aloittaminenOlet kiinnostunut siirtymisestä Linuxiin... mutta mistä aloitat? Onko tietokoneesi yhteensopiva? Toimivatko suosikkisovelluksesi? Tässä on kaikki mitä sinun täytyy tietää aloittaaksesi Linux. Lue lisää e-kirja, jonka julkaisimme aiemmin vuonna 2010, tai olemme katselleet sitä Linuxin komentorivin huijaussivu.

Ensinnäkin se suorittaa whois-kyselyn esimerkki.com-sivustossa. Sitten se muuttaisi nykyisen työhakemiston Alicen asiakirjajuureksi. Sitten se poistaisi tiedoston nimeltä index.html, joka on hänen verkkosivustonsa hakemistosivu. Tuo ei ole hyvä. Ei Herra.

sharedhosting-linux

Joten miten järjestelmänvalvojina voimme lieventää tätä? No, palaamalla edelliseen esimerkkiin, voimme aina laittaa jokaisen käyttäjän omaan eristettyyn, desinfioituun, chrooted-ympäristöönsä.

Voimme lähestyä tätä myös kielitasolta. On mahdollista (vaikka tämä voi rikkoa asiat) poistaa toimintojen ilmoitukset globaalisti kielistä. Toisin sanoen on mahdollista poistaa toiminnallisuus kielistä, jolla käyttäjät pääsevät käyttämään.

Erityisesti PHP: ssä voit poistaa toiminnallisuuden Runkitilla - PHP: n virallisella työkalupakilla, jolla muutetaan kielen toimintoja. Siellä on runsaasti dokumentaatiota. Lue se.

Voit myös muokata PHP: n määritystiedostoa (php.ini) estääksesi toiminnot, joita hakkerit usein väärinkäyttävät. Voit tehdä tämän avaamalla päätteen palvelimellasi ja avaa php.ini-tiedostosi tekstieditorissa. Nautin VIM: n käytöstä, mutta NANO on myös hyväksyttävä.

Etsi rivi, joka alkaa Disable_functions ja lisää kiellettävät funktiomääritelmät. Tässä tapauksessa se olisi exec, shell_exec ja system, vaikkakin on syytä huomata, että on myös muita sisäänrakennettuja toimintoja, joita hakkerit voivat hyödyntää.

Disable_functions = exec, shell_exec, system

Kieli- ja tulkkipohjaiset hyökkäykset

Katsotaanpa siis PHP: tä. Tämä on kieli, joka saa yllättävän määrän verkkosivustoja. Siihen sisältyy myös joukko ominaispiirteitä ja outoja käyttäytymismalleja. Kuten tämä.

PHP: tä käytetään yleensä yhdessä Apache-verkkopalvelimen kanssa. Suurimmaksi osaksi on mahdotonta ladata useita kieliversioita tällä kokoonpanolla.

sharedhosting-phpelephant

Miksi tämä on ongelma? Oletetaanpa, että Bobin verkkosovellus rakennettiin alun perin vuonna 2002. Se on kauan sitten. Takaisin, kun Michelle Branch oli vielä kärjessä kaavioita, Michael Jordan soitti edelleen Washington Wizardsille ja PHP oli paljon eri kieli.

Mutta Bobin verkkosivusto toimii edelleen! Se käyttää koko joukko lopetettuja ja vanhentuneita PHP-toimintoja, mutta se toimii! Nykyaikaisen PHP-version käyttö rikkoisi tehokkaasti Bobin verkkosivuston, ja miksi Bob kirjoittaisi verkkosivustonsa uudelleen Web-isännänsä mielialaan?

Tämän pitäisi antaa sinulle käsitys dilemmasta, jota jotkut verkkoisäntäkoneet kohtaavat. Heidän on tasapainotettava säilyttäen arkkitehtonisesti hyvä ja turvallinen palvelu pitäen samalla sopusoinnussa sen kanssa, että maksavat asiakkaat ovat tyytyväisiä.

Tämän seurauksena ei ole harvinaista, että pienemmät riippumattomat isännät käyttävät vanhempia PHP (tai mikä tahansa kieli) tulkin versioita.

Ei ole harvinaista, että pienemmät riippumattomat isännät käyttävät vanhempia PHP-versioita, mikä saattaa altistaa käyttäjät tietoturvariskeille.

Miksi tämä on huono asia? Ensinnäkin, se altistaisi käyttäjät useille tietoturvariskeille. Kuten useimmat tärkeät ohjelmistopaketit, myös PHP: tä päivitetään jatkuvasti useiden tietoturva-aukkojen korjaamiseksi, joita jatkuvasti löydetään (ja paljastetaan).

Lisäksi se tarkoittaa, että käyttäjät eivät voi käyttää uusinta (ja suurinta) kielitoimintoa. Se tarkoittaa myös, että toiminnot, jotka on poistettu syystä, säilyvät. Jos kyseessä on PHP-ohjelmointikieli Opi rakentamaan PHP: llä: Crash CoursePHP on kieli, jota Facebook ja Wikipedia käyttävät palvelemaan miljardeja pyyntöjä päivittäin. ihmisten verkko-ohjelmoinnin opettamiseen käytetty tosiasiallinen kieli. Se on kauniisti yksinkertainen, mutta loistavan voimakas. Lue lisää , tämä sisältää naurettavan hirvittävät (ja äskettäin vanhentuneet) mysql_-toiminnot, joita käytetään vuorovaikutuksessa MySQL-relaatiotietokantajärjestelmällä ja dl (): lla, jonka avulla käyttäjät voivat tuoda oman kielensä laajennuksia.

Käyttäjänä sinun pitäisi voida nähdä, mikä tulkin versio on palvelussasi. Jos se on vanhentunut tai sisältää useita suojausheikkouksia, ota yhteyttä isäntään.

Entä sysadminit? Sinulla on täällä muutama vaihtoehto. Ensimmäinen (ja lupaavin) on käyttää Dockeria jokaiselle käyttäjällesi. Docker antaa sinun suorittaa useita erillisiä ympäristöjä samanaikaisesti, aivan kuten virtuaalikone tekee, vaikka joutumatta käyttämään toista käyttöjärjestelmää. Seurauksena on, että tämä on nopeaa. Todella, todella nopeasti.

Selvästi englanniksi? Voit suorittaa uusimman ja parhaan verenvuototulkin suurimmalle osalle käyttäjistä, samalla kun asiakkaat jotka käyttävät vanhoja sovelluksia, jotka käyttävät vanhoja, vanhentuneita tulkkeja tekemättä niin vaarantamatta muita käyttäjille.

Tällä on myös se etu, että se on kielen agnostiikka. PHP, Python, Ruby. Aivan sama. Ihan sama.

Älä tee painajaisia.

Tämän viestin oli tarkoitus tehdä muutama asia. Ensinnäkin se oli tuoda huomionne joukko tietoturvaongelmia, jotka web-hosting-yritysten on kohdattava varmistaakseen asiakkaidensa ja heidän tietojensa turvallisuuden.

Sen tarkoituksena oli myös näyttää sinulle, kuinka samalla palvelimella isännöidyt sivustot voivat vaikuttaa toisiinsa. Haluatko laittaa hampaan tähän? Alkaa noudattaa hyviä, turvallisia koodausstandardeja. Erityisesti alkaa puhdistaa tuloja sekä etu- että takaosassa.

Hyvä alku on uuden HTML5-lomakkeen validointitoiminnon avulla. Olemme puhuneet tästä aiemmin HTML5-oppaassamme. Yhdessä voimme tehdä verkkosivustoista turvallisempia olemalla parempia, tunnollisempia ohjelmoijia.

Kuten aina, olen valmis kuulemaan ajatuksesi. Pudota minulle kommentti alla.

Kuvaluotto: Kaikille tarvitaan hakkereita (Alexandre Dulaunoy), Tarra taksi-ikkunassa (Cory Doctorow), Palvelinhuone (Torkild Retvedt), Linux-kirjat ja -lehdet (library_mistress), PHP Elephant (Markus Tacker)

Matthew Hughes on ohjelmistokehittäjä ja kirjailija Liverpoolista, Englannista. Hän on harvoin löydetty ilman kuppia vahvaa mustaa kahvia kädessään ja ihailee ehdottomasti MacBook Prota ja kameraansa. Voit lukea hänen bloginsa osoitteessa http://www.matthewhughes.co.uk ja seuraa häntä twitterissä osoitteessa @matthewhughes.