Turvallista tiedostojen käyttöä

Seuraavaan luetteloon on koottu tiedostoille käyttöjärjestelmän (KJ) avulla tehtäviä operaatioita ja niihin liittyviä turvakysymyksiä:

  • Nimeäminen ja jäsentely hakemistojen avulla:
    • Hyvillä nimillä voi edistävää saatavuutta ("löytyvyyden" kautta).
    • (Nimeämiseen liittyy silti piilokanavan vaara).
    • KJ etsii ohjelmia ja tiedostoja lisäksi ympäristömuuttujana olevan ns. hakupolun avulla. Oma hakemistomme ei välttämättä ole puhdas hyökkääjän asentamista harhauttavan nimisistä ohjelmista. Jotta emme vahingossa käynnistäisi tarkoittamamme varusohjelman sijasta jotain Troijan hevosta, kotihakemistomme (eikä nykyhakemisto eli '.') ei saa olla suoritettavien tiedostojen hakupolussa.
  • Oikeuksien määrittely:
    • Yleisohje on tietenkin antaa mahdollisimman rajatut oikeudet.
    • Jos joku muu meidän lisäksemme tarvitsee oikeuksia tiedostoon, pitääkö samalla antaa muille vai antaako KJ mahdollisuuden täsmälliseen ACL:ään eli pääsylistaan?
  • Automaattisesti asettuvia tiedosto-oikeuksia (kannattaa ottaa huomioon myös sovellusohjelmien tuottamissa tiedostoissa)
    • Kun tiedosto luodaan, mitkä ovat oletusoikeudet ja miten niitä voi säätää? Unixissa tätä varten on umask, joka vaikuttaa ympäristömuuttujaan. KJ voi myös toteuttaa oikeuksien ja muiden ominaisuuksien periyttämistä hakemistoittain.
    • Kopioinnissa ja siirrossa,
      • häviääkö entinen samanniminen ilman varoitusta?
      • mitkä oikeudet uusi saa, jos entinen oli jo olemassa tai ei ollut?
      • kummasta operaatiosta oikeastaan on kyse? Unixin cp ja mv ovat selviä, graafisessa KJ:ssä raahaus voi olla siirto saman levyosion sisällä mutta kopiointi, jos se ylittää osion rajan.
  • Omistus:
    • Vaikka muilla olisi w-oikeuden turvin mahdollisuus muuttaa sisältö, oikeuksien asetteluun on oikeudet tyypillisesti vain sillä, joka on merkitty tiedoston omistajaksi. Millä oikeuksilla voi vaihtaa omistajaa? Vastaava kysymys esim. Unixissa koskee ryhmää.
    • Ohjelmatiedoston omistus- ja ajo-oikeuksien suhteeseen liittyvät käsitteet suid ja sgid, joista on lisää jäljempänä.
  • Tuhoaminen:
    • Oliko aiottu operaatio tiedoston tuhoaminen, oliko kohde se mikä tarkoitettiin, tarjoaako KJ varoituksen ja ehditäänkö tai jaksetaanko se lukea?
    • Useita tiedostoja tuhottaessa on oltava tarkka, ettei mene liikaa. Esimerkiksi rm *.tmp tuottaa hyvin erilaisen tuloksen kuin rm * .tmp (tähden jälkeen välilyönti)
    • Pitää tietää mikä tuhotaan, linkki vai itse tiedosto. Jos tiedosto on kopioitu jonnekin toisaalla linkittämällä (Unixin ln), niin alkuperäisen hävittäminen ei hävitä itse tiedostoa, vaan vain ensimmäisen linkin ja sitä kautta merkinnän alkuperäisessä hakemistossa.
    • Häviääkö tiedosto vai tarvitaanko erikseen "purge" tai roskakorin tyhjennys? (Häviääkö itse tieto, on sitten vielä eri kysymys .)
  • Tarjoaako KJ myös tiedostokohtaista salasanasuojausta tai kryptausta? (Jos sovellusohjelma tarjoaa näitä, niitä ei voi ohittaa KJ:n tasolla, mutta ovathan työtiedostotkin suojattuja?)

Yksi suosittu keino yrittää päästä käyttämään konetta luvattomin valtuuksin on suid- ja sgid-ohjelmien hyödyntäminen. Tavallinen ohjelma käynnistyy käyttäjänsä mukaisin oikeuksin. Suid-ohjelma on sellainen, että sen käynnistämällä prosessilla on ohjelmatiedoston omistajan oikeudet (eli prosessin uid, user-id, on sama kuin omistajan uid). Tällainen menettely on varsin hyödyllinen. Esimerkiksi salasanan vaihto-ohjelma pystyy suid-ohjelmana kenen tahansa ajamana kirjoittamaan /etc/passwd-tiedostoon, johon vain root-käyttäjällä on kirjoitusoikeus. Sgid on muuten vastaava kuin suid, mutta koskee ryhmää. Sekä suid että sgid ovat yksi bitti kunkin tiedoston pääsynvalvontatiedoissa ja ne näytetään x- eli suoritusoikeuden tilalla, jos ne on asetettu. Esimerkkejä näistä biteistä Lintulan kiuru-koneen hakemistossa /usr/bin/:


s--s--x 3 root sys 99844 Apr 21 08:11 passwd
x--s--x 1 bin sys 50712 Oct 6 1998 netstat
s--x--x 1 root bin 29292 Oct 6 1998 login

Esimerkiksi tietokoneverkon tilasta raportoiva netstat on tämän mukaan sgid-ohjelma, jonka omistajana on bin ja joka kuuluu ryhmään sys. Omistajan root suid-ohjelmia samassa hakemistossa ovat mm. chkey, crontab, newgrp, su sekä etäkomennot rcp, rlogin ja rsh. (Sittemmin, 2006, samannimisen koneen /usr/bin/passwd:n oikeusbitit ovat ----------, mikä kertoo vain, että salasanan vaihtoon käytetään muuta mekanismia).

Suid- tai sgid-ohjelmat eivät ole turvallisuusongelma, kunhan mitään ohjelmaa ei tarpeettomasti eikä vahingossa määritellä sellaiseksi eikä näiden ohjelmien kautta pääse tekemään mitään muuta kuin oli tarkoitettu.

-- JukkaKoskinen?

SivuTiedotLaajennettu edit

Vaativuus Perus
Valmius Valmis
Tyyppi Ydin
Luokitus Toimet
Mitä Useita
Miltä Useita
Missä Useita
Kuka Tite-maallikko
Milloin Päivittäin
Miksi Hyvä tapa

This topic: Tietoturva > Sisällysluettelo? > TurvallistaTiedostojenKäyttöä
Topic revision: r2 - 22 Apr 2010 - 11:38:53 - MaijuLehtonen?
 
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback