You are here: TUTWiki>Tietoturva/Tutkielmat>TalvitieT?>2008-27
-- TuireTalvitie? - 23 Sep 2009

Tuire Talvitie:

Ohjelmistoturvallisuus, esimerkkinä Visual Studio 2005

1. Johdanto

Ohjelmistoturvallisuus on keskeinen osa tietoturvallisuutta. Tekniikan nopean kehittymisen myötä ohjelmistoturvallisuus on tullut yhä ajankohtaisemmaksi.

Työssä käsitellään Visual Studio 2005:n tietoturvaominaisuuksia suhteutettuna TLT-3201 Tietoturvallisuuden jatkokurssilla esitettyihin periaatteisiin. Visual Studio 2005 on Microsoftin valmistama ohjelmankehitysympäristö, joka tukee useita ohjelmointikieliä. Visual Studio 2005 -välineellä voidaan tehdä mm. Windows-, web- ja mobiilisovelluksia [1].

Tutkielma koostuu neljästä osasta. Toisessa kappaleessa määritellään, mitä ohjelmistoturvallisuus pitää sisällään. Kolmannessa osiossa käsitellään sitä, mistä ohjelmistoturvallisuuden voi ajatella muodostuvan, ja valitaan näkökulma, jolla harjoitustyön aihetta tarkastellaan. Neljännessä osiossa käsitellään Visual Studio 2005:n tietoturvaominaisuuksia. Lopuksi on lyhyt yhteenveto käsitellyistä asioista ja mahdolliset päätelmät.

2. Ohjelmistoturvallisuus

Koskisen mukaan tietoturvaongelmien ”kuorma” aiheutuu siitä, että tietokoneohjelmat tekevät jotain, mitä niiden ei pitäisi tehdä, ja siksi ohjelmistoturvallisuudeksi voidaankin kutsua niitä pyrkimyksiä, joilla tällaisilta vääryyksiltä voitaisiin välttyä [2]. Sassali opinnäytetyössään laskee ohjelmistoturvallisuuteen kuuluvaksi käytössä olevat käyttöjärjestelmät ja sovellusohjelmistot ja määrittelee tavoitteeksi varmistumisen ohjelmistojen laillisuudesta ja toimintavarmuudesta [4]. Sassalin käsityksiä vahvistaa myös Kajava, jonka mukaan ohjelmistoturvallisuudessa tarkastellaan yrityksen käyttämien tietokoneohjelmien suojaamiseen ja ohjelmien lisensointiin ja rekisteröintiin liittyviä asioita, ja sitä voidaan tarkastella joko ohjelmistojen sisäisten suojausominaisuuksien avulla tai erityisesti suojaamiseen tarkoitetulla ohjelmistolla [3].

Helanderin [7] mukaan ohjelmistoturvallisuudessa tarkastellaan asioita, jotka liittyvät yrityksen käyttämien tietokoneohjelmien suojaamiseen, lisensointiin ja rekisteröintiin. näkökulma voi olla joko
  • 1. ohjelmiston sisäiset suojausominaisuudet (esim. salasanojen automaattinen vanhentuminen)
  • 2. erityisesti suojaamiseen tarkoitetut ohjelmistot (esim. tietojen varmuuskopiointiohjelmistot, tietokonevirusten torjuntaohjelmistot)

Tavoitteena ohjelmistoturvallisuudella on:
  • 1. yrityksen ohjelmistot ovat luvallisia ja lisensoituja
  • 2. yrityksen ohjelmistot tarjoavat yrityksen käyttöön sen tarvitsemat ohjelmalliset suojausominaisuudet [7]

Helanderin [7] mukaan suojauskeinoja ovat:
  • ohjelmistojen pääsynvalvonta
  • ohjelmistojen tapahtumatietojen seuranta
  • varmuuskopiointi
  • asianmukainen ohjelmistodokumentaatio
  • asianmukaisesti laaditut ylläpito- ja huoltosopimukset
  • rekisteröityjen ohjelmistojen käyttö

3. Valittu näkökulma ohjelmistoturvallisuudesta

Ohjelmistoturvallisuuden voidaan katsoa muodostuvat seuraavista:
  • ohjelmistojen ja tietokonearkkitehtuurin muodostamasta hierarkkisesta koneesta ja sen turvallisuudesta
  • sovelluksista ja niiden muodostamista ohjelmistoturvallisuuden eri osatekijöistä kuten käyttöjärjestelmistä ja niiden turvallisuudesta
  • kääntäjistä, tulkeista ja niiden turvallisuudesta
  • sovellusten omista tietoturvaominaisuuksista
  • tietokoneviruksista
  • ohjelmistojen sisältämistä salaporteista. [5]

Tämä harjoitustyö on rajattu keskittymään sovelluksen tai pikemminkin ohjelmankehitysympäristön tietoturvallisuutta parantaviin ominaisuuksiin, jotka on integroitu kokonaisuuteen.

4. Tietoturvaominaisuudet Visual Studio 2005:ssä

Tietoturvaominaisuudet on jäsennelty käyttöoikeuksiin, tarkistuksiin ja virheisiin ja testauksiin liittyviin sekä muihin tietoturvaominaisuuksiin hahmottamisen helpottamiseksi.

4.1 Käyttöoikeuksiin liittyvät tietoturvaominaisuudet

Tietokoneiden käyttäjät voivat estää haittaohjelmia vaikuttamasta järjestelmiinsä pienentämällä ohjelmien suorittamisen käyttöoikeustasoa. Järjestelmänvalvojan oikeuksilla haittaohjelma pystyy käyttämään kaikkia tietokoneen osia. Yleisen tietoturvan näkökulmasta järjestelmänvalvojan oikeuksia edellyttävää suorittamista tulee välttää. Lisäksi järjestelmänvalvojan oikeuksin kirjautuneet kehittäjät eivät huomaa ongelmia, jotka rajoitetumpia käyttöoikeuksia käyttävät käyttäjät kohtaavat suorittaessaan sovelluksen. Visual Studio 2005 on muutettu niin, että se toimii hyvin peruskäyttäjän käyttöoikeuksin. [1]

Muitakin käyttöoikeusominaisuuksia on lisätty Visual Studio 2005:een. ClickOnce on Visual Studio 2005:een rakennettu tekniikka, jonka avulla kehittäjien on helppo luoda sovelluksia otettavaksi käyttöön sellaisille käyttäjille, joiden tilien käyttöoikeudet ovat rajoitetut. Debug in Zone -ominaisuuden avulla kehittäjät voivat määrittää sovelluksen tarvitseman luottamuksen määrän suunnitellessaan sovellusta ja tehdessään sen virheenkorjauksen, mikä mahdollistaa sovelluksen testaamisen niin kuin se otettaisiin käyttöön verkkosijainnista eri luottamustasoja käyttäen. PermCalc on taas erillinen sovellus, jonka avulla kehittäjät analysoivat hallitun sovelluksen onnistuneeseen suorittamiseen vaadittavia käyttöoikeuksia. [1]

4.2 Tarkistuksiin ja virheisiin liittyvät tietoturvaominaisuudet

Safe CRT Libraries -kirjastot parantavat käännettyjen sovellusten tietoturvaa lisäämällä asianmukaiset puskurin tarkistukset hyökkäyksille tunnetusti alttiina oleville funktioille sekä heikentämällä tai poistamalla alttiina olevia suorituksenaikaisia funktioita. [1]

AppVerifier on joukko suorituksenaikaisia analysointitestejä, jotka auttavat tunnistamaan ohjelmien suoritusvirheitä. Toiminnon tunnistamat virheet liittyvät yleensä sovellusten yhteensopivuuden, vakauden ja tietoturvan ongelmiin. [1]

Buffer Security Check -kääntäjäasetus (/GS) auttaa estämään haitalliseksi suunniteltua koodia hyödyntämästä puskurin ylivuotoja sovelluksissa. Suuri osa koodin heikkouksista on puskurin ylivuotoja. Asetus asettaa salatun arvon (testiarvon) puskurin loppuun. Tämä arvo tarkistetaan koodin suorittamisen aikana. Jos arvo on muuttunut, ohjelman suoritus keskeytetään ja tehdään tietoturvapoikkeus. [1]

Code Analysis on ohjelmistokehittäjille suunniteltu ominaisuus. Koodin analysointi ei suorita koodia eikä pysty löytämään kaikkia mahdollisia virheitä, mutta se saattaa löytää sellaisia virheitä, jotka kääntäjä voi jättää huomiotta. [1]

FxCop tekee analyysin jäsentämällä MSIL-komentovirran ja etsimällä kutsugraafista käyttäjän määrittämien sääntöjen rikkomuksia. Näitä sääntöjä ovat muun muassa tietoturvasäännöt, kirjaston suunnittelusäännöt sekä globalisoinnin, yhteen toimivuuden, ylläpidettävyyden, nimeämisen, suorituskyvyn, luotettavuuden ja käytön säännöt. [1]

4.3 Testauksiin liittyvät tietoturvaominaisuudet

Tietoturvaongelmien testaaminen on erittäin tärkeä osa sellaisen sovelluksen luomista, joka on tarkoitettu käytettäväksi verkkoon yhteydessä olevissa ympäristössä. Visual Studio 2005 sisältää useita testaustyökaluja. [1]

Yksikkötestauksen käyttötarkoitus on varmistaa, että menetelmän palautusarvo on odotettu ja menetelmälle välitettyjen arvojen mukainen. Yksikkötestien avulla voi lähettää satunnaista tietoa funktiolle ja varmistaa, että sovellus käsittelee tiedot oikealla tavalla ja toimii odotetusti. Lisäksi yksikkötesteissä voidaan ottaa käyttöön koodikattavuus. Koodikattavuus auttaa varmistamaan, että sovelluksen koodi on testattu. Kuormituksen (suorituskyvyn) testaaminen on tärkeää, koska sen avulla voi tehdä virheenkorjauksen skenaarioille, kuten mahdollisille palvelunestohyökkäyksille. [1]

4.4 Muita tietoturvaominaisuuksia

Yleiskäyttöisen liittymän kautta on saatavissa myös turvapalveluita esim. API, application programming interface, jonka avulla ohjelmoijan on helpompi toteuttaa tietoturvallisempia ohjelmia [2]. Visual Studio 2005:ssä Security in Zone rajoittaa IntelliSensen? tarjoamat vaihtoehdot vain niihin API -liittymiin, jotka tietyllä alueella sallitaan, mikä auttaa osittaista luottamussuhdetta käyttävien sovellusten kehittäjiä valitsemaan vain ne API -liittymät, joiden tiedetään olevan sallittuja tietylle vyöhykkeelle. [1]

5. Yhteenveto

Harjoitustyö osoittaa, että ohjelmistoturvallisuutta voidaan parantaa huomattavasti erilaisten apuohjelmien ja työkalujen avulla. Erilaisten ominaisuuksien avulla voidaan hallita paremmin käyttöoikeuksia, tehostaa tarkistuksia ja esimerkiksi huomata helpommin virheet koodissa. Visual Studio 2005 on hyvä esimerkki toimivasta ohjelmankehitysympäristöstä, joka parantaa ohjelmien luotettavuutta, turvallisuutta ja edellisten myötä myös laadukkuutta. Microsoft on jo nyt julkistanut uusia Visual Studio 2005:n kaltaisia ohjelmankehitysympäristöjä, jotka ovat kehittyneempiä kuin aikaisemmat versiot. Lisäksi monien työkalujen ja parannusten käyttäminen helpottuu jatkuvasti. Edellisten perusteella voimme päätellä, että ohjelmankehitysympäristöjen kehitys ja luonti tulevaisuudessa todennäköisesti lisääntyvät entisestään. Meneillään onkin yhteisprojekti, jonka tarkoituksena on luoda maailmanlaajuinen synkronointistandardi liittyen ohjelmistokehitysympäristöihin [8].Tulevaisuuden näkymät ohjelmistokehityksen kannalta näyttävät hyviltä, mutta täydellistä ohjelmistoa tai ohjelmistokehitysympäristöä ei kuitenkaan koskaan voida luoda ainakaan turvallisuuden osalta.

Lähteet

  • [1] Visual Studio 2005:n uudet tietoturvaominaisuudet. Viitattu 2.10.2009. Saatavissa: msdn
  • [2] Koskinen, J. 2009. Tietoturvallisuuden jatkokurssi. Viitattu 2.10.2009. Rajoitettu saatavuus: Tietoturvallisuuden jatkokurssi. s.83-98.
  • [3] Kajava, J. 2001. Ohjelmistoturvallisuus verkkoympäristössä – valtapeliä vai mystiikkaa. Viitattu 28.9.2008. Saatavissa: Ohjelmistoturvallisuus verkkoympäristössä
  • [4] Sassali, H. Doing Business Safety in Russia – opinnäytetyö. Viitattu 28.9.2008.
  • [5]Teeriaho, J. Laitteistoturvallisuus, ohjelmistoturvallisuus.Viitattu 3.10.2009. Saatavissa: Ohjelmistoturvallisuus
  • [6] Koskinen, J. 2009. Tietoturvallisuuden perusteet. Viitattu 3.10.2009. Rajoitettu saatavuus: Tietoturvallisuuden perusteet. s.102
  • [7] Helander, N. 2005. TITA-5300 Tieturvallisuuden johtaminen -kurssin luentokalvo 2. Viitattu 16.11.2009. Saatavissa: Tietoturvallisuus.
  • [8] Lahti, J. Viitattu 16.11.2009. Saatavissa: Tietokone - ohjelmistokehitysympäristö.
Print version |  PDF  | History: r5 < r4 < r3 < r2 | 
Topic revision: r5 - 16 Nov 2009 - 17:22:09 - TuireTalvitie?
 

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