Ero sivun ”Tietoturva” versioiden välillä

Siirry navigaatioon Siirry hakuun
360 merkkiä poistettu ,  18. lokakuuta 2007
Suuria muutoksia: liitteet ja autorun, asennus; pienempiä: hosts.allow, ssh
(pari sanaa lisää päivittämisestä ja säädöistä roottina; muokattu rootiksi kirjautumista)
(Suuria muutoksia: liitteet ja autorun, asennus; pienempiä: hosts.allow, ssh)
Rivi 50: Rivi 50:
==Käynnistettävät tiedostot ja "autorun"==
==Käynnistettävät tiedostot ja "autorun"==


GNU/Linux on myös suojautunut tehokkaasti muilta ehkä hieman perinteisemmiltä [[virus|virusten]] levitystavoilta. Hyvinä esimerkkinä toimivat ns. piilotetut tiedostoformaatit ja oletusformaatit käynnistettäville tiedostoille. [[Windows|MS Windows]] [[käyttöjärjestelmä|käyttöjärjestelmät]] pitävät oletuksena kaikkia [[.exe]], [[.bat]], [[.com]], [[.pif]], [[.vbs]] sekä [[.scr]] tiedostoja käynnistyvinä, tämä tarkoittaa sitä että käyttäjä voi suoraan käynnistää ohjelman vain tuplaklikkaamalla. GNU/Linux käyttöjärjestelmä taas käsittelee kaikkia tiedostoja suoraan tekstitiedotoina ja niille täytyy ensin antaa käynnistysoikeus ennen kuin ne pystytään ajamaan. Tämä käytännössä lisää yhden kynnyksen lisää tiedostojen käynnistämiseen hieman tottakai vaikeuttaen tiedostojen käynnistämistä, mutta antaen käynnistäjälle harkinta-aikaa ja miettimistä sen suhteen että onko ohjelma varmasti oikein käynnistettävä. Tottakai paketeissa voidaan toimittaa jo valmiita binääripaketteja jotka ovat käynnistettävissä, mutta jos joku lähettää sinulle [[sähköposti|sähköpostissa]] .exe-tiedoston, et voi sitä ajaa ennen kuin olet antanut sille ajo-oikeudet.
GNU/Linuxissa sähköpostiohjelmia ei yleensä ole säädetty ajamaan liitteenä tulevia ohjelmia, vaikka liitettä klikattaisiinkin.


Muita GNU/Linuxissa huomioituja ongelmia tiedostoihin liittyen ovat mm. tunnettujen tiedostojen piilotetut päätteet. Esimerkkinä ottakaamme tästä vaikka virus.jpg.exe-tiedosto, jossa on kaksiosainen tiedostopääte. Jos MS Windows-käyttöjärjestelmässä on päällä "piilota tunnetut tiedostomuodot" niin käyttäjälle näkyviin jää vain virus.jpg. Tämä monelle peruskäyttäjälle kertoo sen että kyseessä on pelkkä kuvatiedosto vaikka todellisuudessa sen käynnistyttyä lähtisi virus leviämään. Todellisuudessahan tiedosto on .exe-tiedosto, mutta Windows piilottaa loppuosan tiedostomuodosta. GNU/Linuxissa ei automaattista tiedostomuotojen tunnistusta ole viety näin pitkälle, joten voimme katsoa puutteen vain omaksi eduksemme. Ongelmaa ei myöskään ole [[CD-levy|CD-levyjen]] automaattikäynnistyksen kanssa, joka mahdollistaa useiden ohjelmien ajamisen kysymättä käyttäjältä mitään. Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin on silti tärkeää että käyttäjältä edes kysyttäisi että ajetaanko pyydetyt ohjelmat automaattisesti.
Kun tiedosto on tallennettu tiedostojärjestelmään, se, tulkitaanko se ohjelmaksi, määräytyy [[Tiedoston_oikeudet|tiedoston oikeuksiin]]
sisältyvien suoritusoikeusbittien, ei tiedostopäätteen tai edes tiedoston sisällön perusteella. Näin ohjelmaa ei tallennuksen jälkeenkään pääse vahingossa ajamaan. Käyttäjä voi niin halutessaan erikseen asettaa tiedostolle suoritusoikeudet.
 
Sähköpostiohjelma tai tiedostoselain voidaan toki ohjelmoida niinkin, että ohjelmia pääsee klikkaamalla ajamaan, mutta tämä olisi turhaa tietoturvan vaarantamista.
 
Sama koskee [[CD-levy|CD-levyjen]] ja muitten irrotettavien medioitten autorun-ohjelmia: niitä ei yleensä ajeta ellei käyttäjä erikseen sitä pyydä.
Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin automaattikäynnistys on helppo tapa tehdä CD:stä [[troijan hevonen]] (katso [[wikipedia:en:2005_Sony_BMG_CD_copy_prevention_scandal|Sonyn rootkit]]).




===Binäärien ajaminen ja pakettien kautta leviävät virukset===
===Binäärien ajaminen ja pakettien kautta leviävät virukset===


Entä jos lataat jostain paketin jossa on sisällä haittaohjelma nimeltä "su", sama millä kirjaudutaan sisään toisella käyttäjällä. Purat paketin kotihakemistoon jonka jälkeen siellä löytyy käynnistettävä ohjelma nimeltä "su", teet normaalit [[lähdekoodi|lähdekoodin]] kääntämiseen liittyvät "./configure && make" toiminnot ja kun olet asentamassa pakettia järjestelmään ja vaihtamassa root-käyttäjäksi komennolla "su"... Mitä tapahtuu ? Vastaus on yksinkertainen, GNU/Linux järjestelmä ajaa binäärit oletuksena [[PATH]]-ympäristömuuttujan sisältämistä hakemistopoluista. Käytännössä tämä tarkoittaa sitä että jos pitää ajaa erillinen tiedosto tietystä hakemistosta pitää siihen eteen liittää merkintä "./", jos siis meidän su-viruksemme kirjoittaja haluaisi ohejlmansa tulevan ajetuksi niin se tulisi ajaa komennolla "./su" eikä "su". Komento "su" ajetaan ennaltamääritellyistä binääripolkujen sisältämistä paikoista – riippumatta siitä olisiko samanniminen ohjelma käynnistyksen aikaisessa hakemistossa.
Mitä siis tehdä, jos netistä löytyy (tai sähköpostissa tulee) ohjelma, jonka haluaa ajaa. Jos kyseessä on valmis ajettava tiedosto, riittää että tallettaa sen jonnekin, asettaa suoritusoikeudet ja ajaa sen:
chmod a+x trojan_hevonen
./trojan_hevonen
 
Ohjelmalla on yleensä kaikki samat oikeudet kuin sen käynnistäjälläkin, eli ellei ohjelmaan luota, se pitää vähintään ajaa tähän tarkoitukseen erikseen luodulla tunnuksella, mieluiten ei ollenkaan.
 
Etuliite ./ tarvitaan, jollei ohjelmaa ole asennettu ohjelmille tarkoitettuun hakemistoon (jotka on lueteltu PATH-muuttujassa). Tällä järjestelyllä estetään (pää)käyttäjää vahingossa ajamasta ohjelmaa, jolle on annettu jonkin toisen ohjelman nimi (tai sellaisen väärinkirjoitettu muoto).
 
Jos ohjelma tulee paketoituna (tar, rpm, deb tms.), paketin asentaminen asentaa tiedostot paketoijan määräämään paikkaan, mahdollisesti ylikirjoittaen muita tiedostoja (varsinkin jos paketin asentaa pääkäyttäjänä) ja asettaen tiedosto-oikeudet kohdalleen. Pakettiin saattaa kuulua myös asennuksessa ajettavia skriptejä. Pakettia ei siis pidä asentaa epämääräisistä lähteistä ja hiukankin epävarmoissa tapauksissa se pitäisi asentaa tarkoitukseen erikseen luodulla tunnuksella (jolle annetaan vain tarvittavat oikeudet asennuksen ajaksi).




Rivi 78: Rivi 92:
Säännöt rakentuvat niin, että ensin pitää kieltää kaikki <tt>hosts.deny</tt> tiedostossa ja sitten sallia yhteyksiä <tt>hosts.allow</tt> tiedostossa.
Säännöt rakentuvat niin, että ensin pitää kieltää kaikki <tt>hosts.deny</tt> tiedostossa ja sitten sallia yhteyksiä <tt>hosts.allow</tt> tiedostossa.


Esimerkki perussäädöistä, joissa sallitaan vain .fi verkko-osoitteiden yhteydenotto SSHD-palvelinohjelmistoon.
Esimerkki perussäädöistä, joissa sallitaan vain .omalafka.fi verkko-osoitteiden yhteydenotto SSHD-palvelinohjelmistoon.


/etc/hosts.deny:
/etc/hosts.deny:
Rivi 84: Rivi 98:


/etc/hosts.allow:
/etc/hosts.allow:
  SSHD: .fi
  SSHD: .omalafka.fi
 
Nimien käyttö ip-osoitteiden sijaan aiheuttaa turvallisuusreiän: se, joka itse hallitsee omat nimipalvelimensa, voi asettaa koneen nimen haluamakseen. Ylläolevat säännöt kuitenkin riittävät automaattisten hyökkäysten torjumiseen, ainakin jollei omalafka.fi ole arvattavissa koneen oman nimen tms. perusteella.


== Palomuuri ==
== Palomuuri ==
Rivi 95: Rivi 111:


==SSH==
==SSH==
Jos ajat [[SSH]]-palvelinta, kannattaa tarkistaa että soveltuvat [[SSH-turvatoimet]] on tehty.
Jos ajat [[SSH]]-palvelinta, kannattaa tarkistaa että soveltuvat [[SSH-turvatoimet]] on tehty. sshd käyttää yleensä sekä omia asetuksiaan, että pam-kirjastoa ja normaaleja unix-salasanoja. Asetusten yhteisvaikutus ei ole intuitiivinen, joten asiaa koskevien varoitusten lukeminen on hyvin suotavaa. Parasta on rajoittaa yhteydet muutamaan luotettavaan ip-osoitteeseen.


==Katso myös==
==Katso myös==
Rekisteröitymätön käyttäjä

Navigointivalikko