You are here: TUTWiki>Tietoturva>Sisällysluettelo?>OhjelmienVirheistä (revision 1)

Ohjelmien virheistä

Seuraavat kolme ovat yleisimpiä ohjelmistoissa esiintyviä virheitä, joilla on vaikutuksia tietoturvaan:

  1. Puskurin ylivuoto Dataa on enemmän kuin sille on varattu tilaa, mutta ohjelma päästää ylimäärän vuotamaan yli, eli kirjoittumaan muulle alueelle. Tämä on erittäin yleinen ongelma, jonka useimmat aloittelevat ohjelmoijat tekevät indeksoidessaan taulukoita huolimattomasti. Jos puskurin ylivuoto ei kaada ohjelmaa testauksen aikana, virhe voi jäädä valmiiseen ohjelmaan ja sen voi löytää joku hyökkääjä, joka pahimmassa tapauksessa saa omalla syötteellään (esim. URL:ssä) muutetuksi ohjelman toimintaa pahalla tavalla. Ohjelman kaataminen on vain yksi tapa.
  2. Puutteellinen tiedonkulun hallinta ("incomplete mediation"). Ohjelma välittää jonkin tiedon, parametrin, toiselle ohjelmalle, joka jättää tekemättä sellaiset tarkistukset joihin se kykenisi. Vaarana ovat paitsi ensimmäisen ohjelman tekemät virheet myös se, että ensimmäinen ohjelma onkin hyökkääjän hallussa. Yksinkertainen esimerkki on selaimen lähettämä tilaus web-kauppaan. Vaikka tilaaja olisi autentikoitukin, vastaanottajan ei pidä uskoa esim. tilauksen mukana kerrottuun loppusummaan, vaan se pitää laskea itse ja ilmoittaa mahdollisesta virheestä.
  3. Tarkistuksen ja käytön välinen aika. Perinteinen esimerkki: "Jos asiakas laskee sinulle setelit ja joudut kääntymään toisaalle kirjoittaaksesi kuitin, niin lasketa tai laske itse uudestaan ennenkuin annat kuittia asiakkaalle." Tätä vastaava tilanne on yleisempi eheysongelma pääsynvalvonnan yhteydessä: oikeuksien tarkistaminen tehdään tietyllä hetkellä ja niiden mukainen operaatio jonkin verran myöhemmin. Jos oikeudet tällä välillä muuttuvat, voi tapahtua vahinkoja. Oikeuksia ei tarvitse ajatella tiedoston rwx-oikeuksina vaan yleisempinä perusteina toimen suorittamiseen. Tietokannan tapauksessa peruste tietyn arvon kirjoittamiselle johonkin kenttään voi häipyä, jos joku muu ehtii muuttaa tuon kentän arvoa ensin. Ajoitusongelma tulee esille myös PKI-yhteydessä, kun tarkistetaan varmenteiden voimassaoloa esim. peruutuslistalta. Sen vuoksi peruutuslistoja päivitetään melko tiuhaan. Vastaavasta syystä käyttöjärjestelmän on syytä sulkea tietyn aikaa käyttämättä ollut pääteistunto -- tai panna käyntiin salasanalla suojattu näytönsäästäjä.

-- JukkaKoskinen?

SivuTiedotLaajennettu edit

Vaativuus Perus
Valmius Valmisteilla
Tyyppi Ydin
Luokitus Uhkat
Mitä Luottamuksellisuus
Miltä Ihmisetön uhka
Missä Organisaatio
Kuka Tite-ammattilainen
Milloin Ennakolta
Miksi Hyvä tapa
Print version |  PDF  | History: r2 < r1 | 
Topic revision: r1 - 07 Mar 2010 - 19:10:59 - MaijuLehtonen?
 

TUTWiki

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