Difference between revisions of "Top 10 2007 Finnish"

From OWASP
Jump to: navigation, search
m (Kooste)
m (Tavoitteet)
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Johdanto==
 
==Johdanto==
  
'''Huom! Tämä sivu on täysin työn alla. Tavoitteena on aluksi saada työtä valmiiksi sitä mukaa kuin suomennostyöhön osallistuvilla on aikaa. Suomennostyöhön saavat osallistua kaikki.'''
+
'''Huom! Tätä sivua työstetään edelleen. Tältä sivulta linkittyvien alasivujen suomennostyöhön saa osallistua kuka tahansa.'''
  
Tervetuloa OWASP Top 10 2007 suomennettuun versioon! Top 10:n 2007 versio on uudelleenkirjoitettu alkuperäisestä vuoden 2004 versiosta, ja kuvaa hyvin niitä tyypillisiä haavoittuvuuksia, joita nykypäivän web-sovelluksista havaitaan.  
+
Tervetuloa OWASP Top 10 2007 -dokumentin suomennettuun versioon! Top 10 2007 kuvaa kymmentä tyypillisintä nykyään käytettävistä web-sovelluksista havaittua haavoittuvuutta. Dokumentti on uudelleenkirjoitettu alkuperäisestä vuoden 2004 versiosta.  
  
Java Enterprise Edition -kohtainen lista on ladattavissa [https://www.owasp.org/images/8/89/OWASP_Top_10_2007_for_JEE.pdf täältä].
+
Java Enterprise Edition -kohtainen lista dokumentista on ladattavissa [https://www.owasp.org/images/8/89/OWASP_Top_10_2007_for_JEE.pdf täältä].
  
 
==Tavoitteet==
 
==Tavoitteet==
Line 11: Line 11:
 
'''OWASP Top 10:n tärkein tavoite on kouluttaa sovelluskehittäjiä, suunnittelijoita, arkkitehtejä ja organisaatioita''' tyypillisimpien sovellushaavoittuvuuksien seurauksista. Top 10 tarjoaa perusmenetelmät näiltä haavoittuvuuksilta suojautumiseen - loistava ensiaskel turvalliseen ohjelmistokehitykseen.  
 
'''OWASP Top 10:n tärkein tavoite on kouluttaa sovelluskehittäjiä, suunnittelijoita, arkkitehtejä ja organisaatioita''' tyypillisimpien sovellushaavoittuvuuksien seurauksista. Top 10 tarjoaa perusmenetelmät näiltä haavoittuvuuksilta suojautumiseen - loistava ensiaskel turvalliseen ohjelmistokehitykseen.  
  
'''Tietoturvallisuutta ei saavuteta kerralla'''. Ei riitä, että sovellus tehdään turvalliseksi kerran. Esimerkiksi tämäkin lista on muuttunut vuosien varrella, ja muuttamatta sovelluksesi lähdekoodia uusien uhkien valossa, sovelluksesi voi olla turvaton. Lisätietoja ja tarkempia suosituksia on tarjolla englanninkielisessä dokumentissa [[Top_10_2007-Where to Go From Here|Where to Go From Here]].
+
'''Tietoturvallisuutta ei saavuteta kerralla'''. Ei riitä, että sovellus tehdään turvalliseksi kerran. Esimerkiksi nyt lukemasi lista on muuttunut vuosien varrella, ja sovelluksen lähdekoodin käsittely uusien uhkien valossa takaa sovelluksen turvallisuuden jatkossakin. Lisätietoja ja tarkempia suosituksia on tarjolla englanninkielisessä dokumentissa [[Top_10_2007-Where to Go From Here|Where to Go From Here]].
  
'''Turvallisen ohjelmoinnin periaatteet tulee olla mukana kaikissa sovelluksen elinkaaren vaiheissa.'''. Turvallinen web-sovellus on mahdollinen '''''vain''''' kun turvallisen ohjelmistokehityksen elinkaarimalli on mukana (secure SDLC). Tämän mallin tulee olla oletuksena mukana sekä suunnitteluvaiheessa, että kaikissa kehitysvaiheissa. Erilaisia web-sovellusten tietoturvallisuuteen vaikuttavia tekijöitä voidaan nimetä yli 300 kohtaa. Näistä tekijöistä on tarkempia kuvauksia englanninkielisessä dokumentissa [[OWASP_Guide_Project|OWASP Development Guide]], mikä sisältää oleellista luettavaa kaikille nykypäivän web-sovelluskehittäjille.
+
'''Turvallisen ohjelmoinnin periaatteita tulee noudattaa läpi koko sovelluksen elinkaaren.''' Turvallinen web-sovellus on mahdollinen '''''vain''''' kun turvallisen ohjelmistokehityksen elinkaarimalli (Secure SDLC - Software Development Life Cycle) on mukana. Tämän mallin tulee olla oletuksena mukana sekä suunnitteluvaiheessa että kaikissa kehitysvaiheissa. Kaiken kaikkiaan erilaisia web-sovellusten tietoturvallisuuteen vaikuttavia tekijöitä voidaan nimetä yli 300. Näistä tekijöistä on tarkempia kuvauksia englanninkielisessä dokumentissa [[OWASP_Guide_Project|OWASP Development Guide]], joka sisältää oleellista luettavaa kaikille web-sovelluskehittäjille.
  
'''Tämän dokumentin ensisijainen tarkoitus olla opetuksellinen, ei standardi'''. Älä käytä tätä dokumenttia tietoturvallisuuden ohjenuorana tai standardina ottamatta [mailto:owasp@owasp.org meihin yhteyttä] ensin! Jos tarvitset turvallisen ohjelmistokehityksen standardia, OWASPilla on käynnissä tähän liittyviä toisia projekteja. Liittymällä tai antamalla tukea näihin projekteihin tuet niiden edistymistä parhaiten.
+
'''Tämän dokumentin ensisijainen tarkoitus on olla opetuksellinen, ei standardi'''. Älä käytä tätä dokumenttia tietoturvallisuuden ohjenuorana tai standardina ottamatta [mailto:owasp@owasp.org meihin yhteyttä] ensin! Jos tarvitset turvallisen ohjelmistokehityksen standardia, OWASPilla on käynnissä tähän liittyviä muita projekteja. Liittymällä mukaan tai antamalla tukea näihin projekteihin tuet niiden edistymistä parhaiten.
  
 
==Kiitokset avustajille==
 
==Kiitokset avustajille==
Line 22: Line 22:
 
|-
 
|-
  
|We thank [http://www.mitre.org/ MITRE] for making ''Vulnerability Type Distribution in [http://cve.mitre.org/ CVE]'' data freely available for use. The OWASP Top Ten project is led and sponsored by [http://www.aspectsecurity.com https://www.owasp.org/images/d/d1/Aspect_logo.gif].   
+
|OWASP Foundation kiittää [http://www.mitre.org/ MITREä] CVE-tietokannan ''Vulnerability Type Distribution -osion'' [http://cve.mitre.org/docs/vuln-trends/index.html tietojen] saattamisesta yleiseen käyttöön. Kansainvälistä OWASP Top Ten -projektia vetää ja sen sponsorina toimii [http://www.aspectsecurity.com https://www.owasp.org/images/d/d1/Aspect_logo.gif].   
 
|}
 
|}
  
Line 31: Line 31:
 
OWASP Foundation kiittää osaltaan seuraavia avustajia ja kommentoijia:
 
OWASP Foundation kiittää osaltaan seuraavia avustajia ja kommentoijia:
  
*Raoul Endres for help in getting the Top 10 going again and with his valuable comments.
+
*Raoul Endres (hankkeen kommentointi)
*[mailto:coley...at...mitre.org Steve Christey] (MITRE) for an extensive peer review and adding the MITRE CWE data
+
*[mailto:coley...at...mitre.org Steve Christey] (MITRE) (aineiston perinpohjainen vertaisarviointi, MITRE CWE -datan lisääminen)
*[http://jeremiahgrossman.blogspot.com/ Jeremiah Grossman] ([http://www.whitehatsec.com/ WhiteHat Security]) for peer reviewing and contributing information about the success (or otherwise) of automated means of detection.
+
*Sylvan von Stuppe (aineiston perinpohjainen vertaisarviointi)
*[http://www.smithline.net/ Neil Smithline] ([http://www.OneStopAppSecurity.com/ OneStopAppSecurity.com]) for comments and producing the Wiki version.
+
*[http://jeremiahgrossman.blogspot.com/ Jeremiah Grossman] ([http://www.whitehatsec.com/ WhiteHat Security]) aineiston arviointi, automaattisten havaintomenetelmien arviointi
*Sylvan von Stuppe for an exemplary peer review.
+
*[http://www.smithline.net/ Neil Smithline] ([http://www.OneStopAppSecurity.com/ OneStopAppSecurity.com]) (kommentit ja Wiki-version luonti)
*Colin Wong, Nigel Evans and Andre Gironda for e-mailed comments.
+
*Colin Wong, Nigel Evans, Andre Gironda (sähköpostikommentointi)
*Työhön Suomessa osallistuneet:
+
 
 +
Dokumentin käännöstyöhön Suomessa ovat osallistuneet [http://www.owasp.org/index.php/Helsinki OWASP Helsinki -jaoksen] aktiivijäsenet.
  
 
==Kooste==
 
==Kooste==
Line 43: Line 44:
 
{| border='1' cellpadding='2'  
 
{| border='1' cellpadding='2'  
 
|-
 
|-
|[[Top_10_2007-A1|A1 - Cross Site Scripting (XSS)]] (Haitallisten komentojen välittäminen käyttäjän selaimeen toisen sivuston kautta)
+
|[[Top_10_2007-A1-Finnish|A1 - Verkkosivun rakenne ei säily (XSS)]]
 
|
 
|
Sovellus on haavoittuva XSS:lle, kun se välittää käyttäjän antaman syötteen selaimelle sellaisenaan tarkastamatta ja käsittelemättä sitä ensin. Tämä mahdollistaa hyökkääjältä tulevien komentojen suorittamisen sovelluksen alaisuudessa. Komennoilla voidaan muuttaa selaimessa esimerkiksi sivuston ulkoasua tai kaapata sivuston istuntotunnisteet.
+
Sovellus on haavoittuva verkkosivun rakenteen muutoshyökkäykselle (XSS), kun se välittää käyttäjän antaman syötteen selaimelle sellaisenaan tarkistamatta ja käsittelemättä sitä ensin asianmukaisesti. Tämä mahdollistaa hyökkääjältä tulevien komentojen suorittamisen sovelluksen alaisuudessa. Komennoilla voidaan muuttaa selaimessa esimerkiksi sivuston ulkoasua tai kaapata sivuston istuntotunnisteet.
|
+
'''Esimerkki'''
+
Kaksi yleistä XSS-tyyppiä ovat pysyvä ja heijastuva/ei-pysyvä, joiden erona on että pysyvässä tapauksessa komento jää sovelluksen omaan tietokantaan.
+
 
+
Pysyvä: Hyökkääjä muuttaa haavoittuvan yhteisösivuston nimimerkkinsä siten, että se sisältää komennon. Esim: "luser<script src="http://example.com/~luser/xss.js"></script>". Tiedostossa xss.js oleva komento lähettää sivuston istuntotunnisteen hyökkääjälle. Hän jättää sivustolle viestin, jolloin hänen nimimerkkinsä näkyy otsikossa. Viestin lukevan toisen käyttäjän selain suorittaa hänen tietämättään hyökkääjän komennon, minkä jälkeen hyökkääjällä on mahdollisuus käyttää sivustoa hänen tunnuksillaan.
+
 
+
Ei-pysyvä: Käyttäjä on kirjautunut haavoittuvaan yhteisösivustoon, jonka hakukentässä on XSS-haavoittuvuus. Samalla hän saa hyökkääjältä viestin, joka kehottaa katsomaan annetun linkin, mikä todellisuudessa ohjaakin osoitteeseen "http://community.example piste com/search?term=qwert<script....>". Tällöin hakumoottori ilmoittaa että hakutulos "qwert" ei tuottanut tuloksia, mutta samalla selain suorittaa myös hyökkääjän komennon. Lopputulos on sama.
+
 
+
'''Suositus'''
+
Tarkasta kaikki syötekentät ja koodaa niistä erikoismerkit toiseen muotoon. Tarkasta ja käsittele myös kaikki kentät, jotka liitetään osaksi vastausviestiä.
+
 
+
 
|-
 
|-
  
|[[Top_10_2007-A2|A2 - Injektio-ongelmat]] (Haitallisen komennon välittäminen syötteessä osaksi taustajärjestelmäkyselyä)
+
|[[Top_10_2007-A2-Finnish|A2 - Taustajärjestelmäkyselyn rakenne ei säily]]
|Injektio-ongelmat, erityisesti SQL-injektio, ovat tyypillisiä web-sovelluksissa. Injektio onnistuu, kun puutteellisen suodatuksen takia käyttäjän antama syöte istutetaan suoraan osaksi taustajärjestelmäkomentoa tai tietokantakyselyä. Tämä mahdollistaa hyökkääjälle komentojen ajamisen tai tiedon muuttamisen taustajärjestelmässä.
+
|
|'''Esimerkki'''
+
Taustajärjestelmäkyselyn rakenteen muutoshyökkäykset, erityisesti SQL-tietokantakyselyn rakenteen muutoshyökkäys (SQL-injektio), ovat tyypillisiä web-sovelluksiin kohdistuvia hyökkäysmenetelmiä. Kyselyn rakenteen muutos onnistuu, kun puutteellisen suodatuksen takia käyttäjän antama syöte istutetaan suoraan osaksi taustajärjestelmäkomentoa tai tietokantakyselyä. Tämä mahdollistaa hyökkääjälle komentojen ajamisen tai tiedon muuttamisen taustajärjestelmässä.
Haavoittuva sovellus etsii kirjautuessa käyttäjän kannasta seuraavalla tietokantakyselyllä:
+
 
+
"SELECT * FROM users WHERE username='" + ''username'' + "' AND password='" + ''password'' + "'"
+
 
+
Parametrit ''username'' ja ''password'' tulevat suoraan kirjautumislomakkeelta. Hyökkääjä antaa admin-käyttäjän salasanaksi: ' OR '1'='1
+
 
+
"SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1'"
+
 
+
Toimenpide näyttää sovellukselle onnistuneelta kirjautumiselta, vaikka oikea salasana ei ollut tiedossa.
+
 
+
'''Suositus'''
+
Tarkasta kaikki syötekentät ja koodaa tietokanta- tai muissa taustajärjestelmäkyselyissä käytettävät erikoismerkit toiseen muotoon.
+
 
+
 
|-
 
|-
  
|[[Top_10_2007-A3|A3 - Haitallisen tiedoston suoritus]]
+
|[[Top_10_2007-A3-Finnish|A3 - Haitallisen tiedoston suoritus]]
|Käyttäjän antama tiedosto tai tiedostonimi välitetään sovellukselle tarkistamatta tiedoston sisällön tai tiedostonimen oikeellisuutta. Tämä mahdollistaa käyttäjälle tavan liittää haitallista koodia tai haitallisia tiedostoja sovelluksen käyttöön.
+
|Käyttäjän antama tiedosto tai tiedostonimi välitetään sovellukselle tarkistamatta tiedoston sisällön tai tiedostonimen oikeellisuutta. Tämä mahdollistaa hyökkääjälle tavan liittää sovelluksen käyttöön haitallista koodia tai haitallisia tiedostoja, jotka suoritetaan palvelimella.
|
+
'''Esimerkki'''
+
Sovellus ottaa yhtenä parametrinaan osaksi sivuston generoivaa koodia sisältävän tiedoston nimen. Oletus on, että käytetään jotakin sivuston omista tiedostoista, mutta hyökkääjä vaihtaa nimen osoittamaan omalle palvelimelleen. Hyökkääjän tiedosto sisältää koodia, joka avaa hänelle pääsyn sovellusta isännöivään järjestelmään.
+
 
+
'''Suositus'''
+
Tarkasta, että syötteenä käytetyt tiedostot eivät sisällä suoritettavaa koodia tai että tiedostojen alkuperä on tunnettu.
+
 
+
 
|-
 
|-
  
|[[Top_10_2007-A4|A4 - Turvaton suora objektiviittaus]]
+
|[[Top_10_2007-A4-Finnish|A4 - Turvaton suora viittaus tietoalkioon]]
|Jos sovellus käyttää suoria viittauksia sovelluksen sisäisesti käyttämiin objekteihin, kuten tiedostoihin, tietokantatauluihin tai avaimiin, viittaukset voivat esimerkiksi paljastua käyttäjälle näkyvien parametrien arvona. Tämä mahdollistaa käyttäjälle valtuuttamattoman pääsyn sovelluksen sisäisiin objekteihin muuttamalla viittauksien arvoja toisiin.
+
|Jos sovellus käyttää suoria viittauksia sovelluksen sisäisesti käyttämiin tietoalkioihin, kuten tiedostoihin tai tietokantataulujen perusavaimiin, viittaukset voivat paljastua käyttäjälle esimerkiksi osoitekentässä näkyvien parametrien arvona. Tämä mahdollistaa hyökkääjälle pääsyn valtuuttamattomiin tietoalkioihin, esimerkiksi toisten käyttäjien salaisiin tietoihin, mikäli käytettyjen viittauksien vaihtamista toiseen ei ole estetty asianmukaisilla valtuutusten tarkistuksilla.
|
+
'''Esimerkki'''
+
Verkkopankkisovelluksessa käytetään tiliin viittaamiseen asiakkaan tilinumeroa. Hyökkääjä, yksi verkkopankin käyttäjä, huomaa tilitietojen kyselyssä oman tilinumeronsa välittyvän yhtenä parametrina. Hän muuttaa tämän parametrin arvon toisen käyttäjän tilinumeroksi, jolloin sovellus paljastaa toisen käyttäjän tilitiedot.
+
 
+
'''Suositus'''
+
Tarkasta jokaisen pyynnön kohdalla, että käyttäjällä on oikeus suoritettavaan toimintoon.
+
 
+
 
|-
 
|-
  
|[[Top_10_2007-A5|A5 - Cross Site Request Forgery (CSRF)]] (Haitallisen sovelluskutsun tekeminen toisen käyttäjän valtuuksilla pyyntöhuijauksen avulla)
+
|[[Top_10_2007-A5-Finnish|A5 - Puutteellinen pyynnön alkuperän tarkistus (CSRF)]]
 
|
 
|
CSRF-hyökkäyksessä hyökkääjä lähettää sovellukseen kirjautuneelle käyttäjälle esimerkiksi väärennetyn linkin, joka ohjaa käyttäjän selaimen suorittamaan hyökkääjän määräämän toiminnon käyttäjän valtuuksilla. Tämä voidaan tehdä täysin käyttäjän tietämättä, sillä kyseinen kutsu voidaan piilottaa esimerkiksi kuvaelementin sisään jollakin toisella sivustolla.
+
Pyyntöhuijauksessa hyökkääjä lähettää sovellukseen kirjautuneelle käyttäjälle esimerkiksi sähköpostissa väärennetyn linkin, joka ohjaa käyttäjän selaimen suorittamaan hyökkääjän määräämän toiminnon käyttäjän valtuuksilla. Tämä voidaan tehdä täysin käyttäjän tietämättä, sillä kyseinen kutsu voidaan piilottaa esimerkiksi kuvaelementin sisään jollakin toisella sivustolla.
 
+
''Verrattuna XSS:ään, tämä hyökkäys periaatteen tasolla toimii päinvastoin. Tässä hyökkääjä hyödyntää käyttäjän selainta suorittaakseen komennon sovelluksessa, kun XSS:ssä hyödynnetään sovellusta suorittamaan komento käyttäjän selaimessa.''
+
|
+
'''Esimerkki'''
+
Example.comin pääkäyttäjä saa viestin, jossa on linkki "Katso video". Linkin takana on sivusto, mikä näyttää videon, mutta lisäksi yksi kuva haetaan osoitteesta "https://internaladmin.example piste com/firewalladmin/dropallrules.cgi?confirm=yes". Käyttäjä on valmiiksi kirjautunut vain sisäverkossa näkyvään palomuurin hallintaliittymään, ja tämä kutsu poistaa kaikki example.com:in palomuurisäännöt, mikä helpottaa hyökkääjän toimia.
+
 
+
'''Suositus'''
+
Toteuta evästeissä kulkevan istuntotunnisteen lisäksi jokaiseen sovelluskutsuun yhtenä parametrina satunnainen arvo, jota hyökkääjä ei voi etukäteen tietää.
+
 
+
 
|-
 
|-
  
|[[Top_10_2007-A6|A6 - Tiedon vuotaminen ja puutteellinen virheenkäsittely]]
+
|[[Top_10_2007-A6-Finnish|A6 - Tiedon vuotaminen ja puutteellinen virheenkäsittely]]
 
|
 
|
Sovellukset voivat tarkoituksettomasti vuotaa tietoja omista asetuksistaan, sisäisistä toteutustavoistaan tai jopa loukata yksityisyydensuojaa erilaisten hallitsemattomien virhetilanteiden johdosta. Hyökkääjät voivat käyttää sovelluksen virheviesteistä paljastuvia tietoja joko suoraan tai apuna suunnitellessa vakavampia hyökkäyksiä.
+
Sovellukset voivat tarkoituksettomasti vuotaa tietoja omista asetuksistaan ja sisäisistä toteutustavoistaan tai jopa loukata yksityisyydensuojaa erilaisten hallitsemattomien virhetilanteiden johdosta. Hyökkääjät voivat käyttää sovelluksen virheviesteistä paljastuvia tietoja joko suoraan tai apuna suunnitellessaan vakavampia hyökkäyksiä.
|
+
'''Esimerkki'''
+
Tunnistuksen yhteydessä tapahtuu hallitsematon virhe, koska yhtä tunnistusparametria oli muutettu odottamattomasti. Poikkeuksen ajonaikaiset tiedot paljastuvat käyttäjälle. Tiedoista myös paljastuu, mikä käyttäjän salasanan pitäisi olla.
+
 
+
'''Suositus'''
+
Toteuta järjestelmällinen virheenkäsittely, joka käsittelee virhe- ja poikkeustilanteet hallitusti ilmoittamalla ainoastaan yleinen virheilmoitus.
+
 
+
 
|-
 
|-
  
|[[Top_10_2007-A7|A7 - Viallinen tunnistusmenettely ja istunnonhallinta]]
+
|[[Top_10_2007-A7-Finnish|A7 - Puutteellinen tunnistusmenettely ja istunnonhallinta]]
|Käyttäjä- sekä istuntotunnisteita ei usein ole suojattu riittävillä keinoilla. Tämä mahdollistaa hyökkääjille salasanojen, käyttäjä- tai istuntotunnisteiden keruun järjestelmästä, ja sitä kautta sovelluksen käyttämisen toisten valtuuksilla.
+
|Käyttäjä- ja istuntotunnisteita ei usein ole suojattu riittävillä keinoilla. Tämä mahdollistaa hyökkääjille salasanojen sekä käyttäjä- tai istuntotunnisteiden keruun järjestelmästä. Tätä kautta sovelluksen käyttämisen toisten valtuuksilla mahdollistuu.
|
+
'''Esimerkki'''
+
Sovelluksen istuntotunniste generoidaan liittämällä käyttäjän tunnus sekä päivämäärä ja kellonaika, ja tästä muodostetaan hash-arvo. Hyökkääjä pystyy helposti arvaamaan istuntotunnisteen, kun tietää käyttäjän nimen ja kirjautumisajan. Monesti myös käytetään heikkoja satunnaislukugeneraattoreita, joiden tuottamat satunnaisluvut ovat ennustettavia.
+
 
+
'''Suositus'''
+
Käytä riittävän vahvoja salasanoja sekä istuntotunnisteita.
+
 
|-
 
|-
  
|[[Top_10_2007-A8|A8 - Salauksellisesti turvaton tiedon säilytys]]
+
|[[Top_10_2007-A8-Finnish|A8 - Puutteellinen tietojen salaus]]
|Web-sovelluksissa käytetään vain harvoin asianmukaisia salausmenetelmiä tiedon ja käyttäjätunnisteiden salaukseen esimerkiksi tietokannassa. Tietokantainjektion avulla tai muilla keinoilla tietoihin käsiksi pääsevä hyökkääjä voi näin helposti selvittää esimerkiksi käyttäjien henkilökohtaisia tietoja ja luottokorttinumeroita.
+
|Web-sovelluksissa käytetään vain harvoin asianmukaisia salausmenetelmiä tiedon ja käyttäjätunnisteiden salaukseen esimerkiksi tietokannassa. Hyökkääjä voi tällöin helposti selvittää esimerkiksi käyttäjien henkilökohtaisia tietoja ja luottokorttinumeroita päästyään tietokantaan käsiksi esimerkiksi tietokantakyselyn rakennemuutos -hyökkäyksen avulla.  
|
+
'''Suositus'''
+
Käytä tiedon salaukseen asiantuntijoiden hyväksymiä salausmenetelmiä.
+
 
|-
 
|-
  
|[[Top_10_2007-A9|A9 - Turvattomat tietoliikenneyhteydet]]
+
|[[Top_10_2007-A9-Finnish|A9 - Turvattomat tietoliikenneyhteydet]]
|Sovellukset eivät usein käytä asianmukaisesti salattuja tietoliikenneyhteyksiä. Tämä voi mahdollistaa esimerkiksi liikenteen salakuuntelun.
+
|Sovellukset käyttävät harvoin asianmukaisesti salattuja tietoliikenneyhteyksiä. Tämä voi mahdollistaa esimerkiksi liikenteen salakuuntelun.
|
+
'''Suositus'''
+
Käytä riittävän vahvaa SSL/TLS-yhteyttä suojaamaan tietoliikenneyhteydet.
+
 
|-
 
|-
  
|[[Top_10_2007-A10|A10 - Rajoittamaton URL-tason pääsy]]
+
|[[Top_10_2007-A10-Finnish|A10 - Rajoittamaton URL-tason pääsy]]
|Sovellusten pääsynvalvonta perustuu monesti siihen, että valtuuttamattomalle käyttäjälle ei näytetä linkkejä niihin toimintoihin, joihin hänellä ei ole oikeuksia. Nämä osoitteet saattavat kuitenkin olla yleisesti tunnettuja tai helposti arvattavia, ja hyökkääjä pystyy suorittamaan valtuuttamattomia toimia yksinkertaisesti siirtymällä näihin osoitteisiin.
+
|Sovellusten pääsynvalvonta perustuu usein siihen, että valtuuttamattomalle käyttäjälle ei näytetä linkkejä niihin toimintoihin, joihin hänellä ei ole oikeuksia. Nämä osoitteet saattavat kuitenkin olla yleisesti tunnettuja tai helposti arvattavia, ja hyökkääjä pystyy suorittamaan valtuuttamattomia toimia yksinkertaisesti siirtymällä näihin osoitteisiin.
|
+
'''Esimerkki'''
+
Intranet-sovelluksen pääkäyttäjätoimintoja ei näytetä tavalliselle käyttäjälle. Käyttäjä kuitenkin voi suorittaa kyselyn intranet-osoitteeseen: "https://employees.example piste com/raisesalary?user=luser&raisesalaryby=10000", vaikka palkankorotuksen pitäisi olla mahdollista vain pääkäyttäjälle.
+
 
+
'''Suositus'''
+
Tarkasta jokaisen pyynnön kohdalla, että käyttäjällä on oikeus suoritettavaan toimintoon.
+
 
+
 
|}
 
|}
 
'''<center>Taulukko 1: Web-sovellusten Top 10 -haavoittuvuudet 2007</center>'''
 
'''<center>Taulukko 1: Web-sovellusten Top 10 -haavoittuvuudet 2007</center>'''
  
  
There are several pages in this document that are not dedicated to a specific vulnerability and hence are not listed in the table. Here is the list of them.
+
Tämä dokumentti sisältää myös muutamia sivuja, jotka eivät suoraan koske mitään tiettyä haavoittuvuutta. Nämä on listattu seuraavassa taulukossa.
Tämä dokumentti sisältää myös muutamia sivuja, jotka eivät suoraan kosketa mitään tiettyä haavoittuvuutta. Nämä on listattu seuraavassa taulukossa.
+
  
 
{| border='1' cellpadding='2'  
 
{| border='1' cellpadding='2'  
Line 170: Line 97:
 
|Dokumentin pääsivu (tämä sivu) tarjoaa johdannon ja mahdollisuuden lisätä kirjanmerkkeihin koosteosuuden jatkokäyttöä varten. (lisää [https://www.owasp.org/index.php/Top_10_2007_Finnish#Kooste tämä linkki] selaimesi kirjanmerkkeihin)
 
|Dokumentin pääsivu (tämä sivu) tarjoaa johdannon ja mahdollisuuden lisätä kirjanmerkkeihin koosteosuuden jatkokäyttöä varten. (lisää [https://www.owasp.org/index.php/Top_10_2007_Finnish#Kooste tämä linkki] selaimesi kirjanmerkkeihin)
 
|-
 
|-
|[[Top 10 2007-Methodology]]
+
|[[Top 10 2007-Methodology-Finnish]]
 
|Kuvaus tähän dokumenttiin valittujen haavoittuvuuksien valintamenetelmistä.
 
|Kuvaus tähän dokumenttiin valittujen haavoittuvuuksien valintamenetelmistä.
 
|-
 
|-
|[[Top 10 2007-Where to Go From Here]]
+
|[[Top 10 2007-Where to Go From Here-Finnish]]
 
|Vinkkejä siihen kuinka jatkaa tämän dokumentin lukemisen jälkeen.
 
|Vinkkejä siihen kuinka jatkaa tämän dokumentin lukemisen jälkeen.
 
|-
 
|-
|[[Top 10 2007-References]]
+
|[[Top 10 2007-References-Finnish]]
 
|Suositeltavaa luettavaa.
 
|Suositeltavaa luettavaa.
 
|}
 
|}
'''<center>Taulukko 1a: Sivut ''OWASP Top Ten 2007'' -dokumentissa, jotka eivät liity ylläoleviin haavoittuvuussivuihin.</center>'''
+
'''<center>Taulukko 1a: Sivut ''OWASP Top Ten 2007'' -dokumentissa, jotka eivät liity yllä oleviin haavoittuvuussivuihin.</center>'''
  
==A Note About The Different Versions==
+
==Eri versioihin liittyvä huomautus==
While the only official version of the ''OWASP Top Ten 2007'' list is the downloadable English PDF version, OWASP has put together this Wiki that initially contains the same content as the PDF. But OWASP hopes that will change with your help. OWASP encourages community involvement and wants your help to make the Wiki version even better. To aid in this they have put together a brief [[Editing:Top_10_2007|tutorial]] to get you started.
+
Vaikka ainut virallinen versio ''OWASP Top Ten 2007'' -listasta on englanninkielinen ladattava PDF-versio, OWASP on julkaissut tämän Wiki-sivun, joka sisältää PDF-dokumentin kanssa yhtenevät tiedot. Toivomme että vapaaehtoispanoksesi myötä tilanne voisi muuttua ja Wiki-versio voisi edelleen kehittyä. Tämän helpottamiseksi olemme julkaisseet englanninkielisen [[Editing:Top_10_2007|ohjesivun]].
  
 
==Ladattavat tiedostot==
 
==Ladattavat tiedostot==

Latest revision as of 17:20, 16 June 2009

Contents

Johdanto

Huom! Tätä sivua työstetään edelleen. Tältä sivulta linkittyvien alasivujen suomennostyöhön saa osallistua kuka tahansa.

Tervetuloa OWASP Top 10 2007 -dokumentin suomennettuun versioon! Top 10 2007 kuvaa kymmentä tyypillisintä nykyään käytettävistä web-sovelluksista havaittua haavoittuvuutta. Dokumentti on uudelleenkirjoitettu alkuperäisestä vuoden 2004 versiosta.

Java Enterprise Edition -kohtainen lista dokumentista on ladattavissa täältä.

Tavoitteet

OWASP Top 10:n tärkein tavoite on kouluttaa sovelluskehittäjiä, suunnittelijoita, arkkitehtejä ja organisaatioita tyypillisimpien sovellushaavoittuvuuksien seurauksista. Top 10 tarjoaa perusmenetelmät näiltä haavoittuvuuksilta suojautumiseen - loistava ensiaskel turvalliseen ohjelmistokehitykseen.

Tietoturvallisuutta ei saavuteta kerralla. Ei riitä, että sovellus tehdään turvalliseksi kerran. Esimerkiksi nyt lukemasi lista on muuttunut vuosien varrella, ja sovelluksen lähdekoodin käsittely uusien uhkien valossa takaa sovelluksen turvallisuuden jatkossakin. Lisätietoja ja tarkempia suosituksia on tarjolla englanninkielisessä dokumentissa Where to Go From Here.

Turvallisen ohjelmoinnin periaatteita tulee noudattaa läpi koko sovelluksen elinkaaren. Turvallinen web-sovellus on mahdollinen vain kun turvallisen ohjelmistokehityksen elinkaarimalli (Secure SDLC - Software Development Life Cycle) on mukana. Tämän mallin tulee olla oletuksena mukana sekä suunnitteluvaiheessa että kaikissa kehitysvaiheissa. Kaiken kaikkiaan erilaisia web-sovellusten tietoturvallisuuteen vaikuttavia tekijöitä voidaan nimetä yli 300. Näistä tekijöistä on tarkempia kuvauksia englanninkielisessä dokumentissa OWASP Development Guide, joka sisältää oleellista luettavaa kaikille web-sovelluskehittäjille.

Tämän dokumentin ensisijainen tarkoitus on olla opetuksellinen, ei standardi. Älä käytä tätä dokumenttia tietoturvallisuuden ohjenuorana tai standardina ottamatta meihin yhteyttä ensin! Jos tarvitset turvallisen ohjelmistokehityksen standardia, OWASPilla on käynnissä tähän liittyviä muita projekteja. Liittymällä mukaan tai antamalla tukea näihin projekteihin tuet niiden edistymistä parhaiten.

Kiitokset avustajille

OWASP Foundation kiittää MITREä CVE-tietokannan Vulnerability Type Distribution -osion tietojen saattamisesta yleiseen käyttöön. Kansainvälistä OWASP Top Ten -projektia vetää ja sen sponsorina toimii Aspect_logo.gif.

Projektipäällikkö: Andrew van der Stock (Executive Director, OWASP Foundation)

Työryhmä: Jeff Williams (Chair, OWASP Foundation), Dave Wichers (Conference Chair, OWASP Foundation)

OWASP Foundation kiittää osaltaan seuraavia avustajia ja kommentoijia:

  • Raoul Endres (hankkeen kommentointi)
  • Steve Christey (MITRE) (aineiston perinpohjainen vertaisarviointi, MITRE CWE -datan lisääminen)
  • Sylvan von Stuppe (aineiston perinpohjainen vertaisarviointi)
  • Jeremiah Grossman (WhiteHat Security) aineiston arviointi, automaattisten havaintomenetelmien arviointi
  • Neil Smithline (OneStopAppSecurity.com) (kommentit ja Wiki-version luonti)
  • Colin Wong, Nigel Evans, Andre Gironda (sähköpostikommentointi)

Dokumentin käännöstyöhön Suomessa ovat osallistuneet OWASP Helsinki -jaoksen aktiivijäsenet.

Kooste

A1 - Verkkosivun rakenne ei säily (XSS)

Sovellus on haavoittuva verkkosivun rakenteen muutoshyökkäykselle (XSS), kun se välittää käyttäjän antaman syötteen selaimelle sellaisenaan tarkistamatta ja käsittelemättä sitä ensin asianmukaisesti. Tämä mahdollistaa hyökkääjältä tulevien komentojen suorittamisen sovelluksen alaisuudessa. Komennoilla voidaan muuttaa selaimessa esimerkiksi sivuston ulkoasua tai kaapata sivuston istuntotunnisteet.

A2 - Taustajärjestelmäkyselyn rakenne ei säily

Taustajärjestelmäkyselyn rakenteen muutoshyökkäykset, erityisesti SQL-tietokantakyselyn rakenteen muutoshyökkäys (SQL-injektio), ovat tyypillisiä web-sovelluksiin kohdistuvia hyökkäysmenetelmiä. Kyselyn rakenteen muutos onnistuu, kun puutteellisen suodatuksen takia käyttäjän antama syöte istutetaan suoraan osaksi taustajärjestelmäkomentoa tai tietokantakyselyä. Tämä mahdollistaa hyökkääjälle komentojen ajamisen tai tiedon muuttamisen taustajärjestelmässä.

A3 - Haitallisen tiedoston suoritus Käyttäjän antama tiedosto tai tiedostonimi välitetään sovellukselle tarkistamatta tiedoston sisällön tai tiedostonimen oikeellisuutta. Tämä mahdollistaa hyökkääjälle tavan liittää sovelluksen käyttöön haitallista koodia tai haitallisia tiedostoja, jotka suoritetaan palvelimella.
A4 - Turvaton suora viittaus tietoalkioon Jos sovellus käyttää suoria viittauksia sovelluksen sisäisesti käyttämiin tietoalkioihin, kuten tiedostoihin tai tietokantataulujen perusavaimiin, viittaukset voivat paljastua käyttäjälle esimerkiksi osoitekentässä näkyvien parametrien arvona. Tämä mahdollistaa hyökkääjälle pääsyn valtuuttamattomiin tietoalkioihin, esimerkiksi toisten käyttäjien salaisiin tietoihin, mikäli käytettyjen viittauksien vaihtamista toiseen ei ole estetty asianmukaisilla valtuutusten tarkistuksilla.
A5 - Puutteellinen pyynnön alkuperän tarkistus (CSRF)

Pyyntöhuijauksessa hyökkääjä lähettää sovellukseen kirjautuneelle käyttäjälle esimerkiksi sähköpostissa väärennetyn linkin, joka ohjaa käyttäjän selaimen suorittamaan hyökkääjän määräämän toiminnon käyttäjän valtuuksilla. Tämä voidaan tehdä täysin käyttäjän tietämättä, sillä kyseinen kutsu voidaan piilottaa esimerkiksi kuvaelementin sisään jollakin toisella sivustolla.

A6 - Tiedon vuotaminen ja puutteellinen virheenkäsittely

Sovellukset voivat tarkoituksettomasti vuotaa tietoja omista asetuksistaan ja sisäisistä toteutustavoistaan tai jopa loukata yksityisyydensuojaa erilaisten hallitsemattomien virhetilanteiden johdosta. Hyökkääjät voivat käyttää sovelluksen virheviesteistä paljastuvia tietoja joko suoraan tai apuna suunnitellessaan vakavampia hyökkäyksiä.

A7 - Puutteellinen tunnistusmenettely ja istunnonhallinta Käyttäjä- ja istuntotunnisteita ei usein ole suojattu riittävillä keinoilla. Tämä mahdollistaa hyökkääjille salasanojen sekä käyttäjä- tai istuntotunnisteiden keruun järjestelmästä. Tätä kautta sovelluksen käyttämisen toisten valtuuksilla mahdollistuu.
A8 - Puutteellinen tietojen salaus Web-sovelluksissa käytetään vain harvoin asianmukaisia salausmenetelmiä tiedon ja käyttäjätunnisteiden salaukseen esimerkiksi tietokannassa. Hyökkääjä voi tällöin helposti selvittää esimerkiksi käyttäjien henkilökohtaisia tietoja ja luottokorttinumeroita päästyään tietokantaan käsiksi esimerkiksi tietokantakyselyn rakennemuutos -hyökkäyksen avulla.
A9 - Turvattomat tietoliikenneyhteydet Sovellukset käyttävät harvoin asianmukaisesti salattuja tietoliikenneyhteyksiä. Tämä voi mahdollistaa esimerkiksi liikenteen salakuuntelun.
A10 - Rajoittamaton URL-tason pääsy Sovellusten pääsynvalvonta perustuu usein siihen, että valtuuttamattomalle käyttäjälle ei näytetä linkkejä niihin toimintoihin, joihin hänellä ei ole oikeuksia. Nämä osoitteet saattavat kuitenkin olla yleisesti tunnettuja tai helposti arvattavia, ja hyökkääjä pystyy suorittamaan valtuuttamattomia toimia yksinkertaisesti siirtymällä näihin osoitteisiin.
Taulukko 1: Web-sovellusten Top 10 -haavoittuvuudet 2007


Tämä dokumentti sisältää myös muutamia sivuja, jotka eivät suoraan koske mitään tiettyä haavoittuvuutta. Nämä on listattu seuraavassa taulukossa.

Top 10 2007 Finnish Dokumentin pääsivu (tämä sivu) tarjoaa johdannon ja mahdollisuuden lisätä kirjanmerkkeihin koosteosuuden jatkokäyttöä varten. (lisää tämä linkki selaimesi kirjanmerkkeihin)
Top 10 2007-Methodology-Finnish Kuvaus tähän dokumenttiin valittujen haavoittuvuuksien valintamenetelmistä.
Top 10 2007-Where to Go From Here-Finnish Vinkkejä siihen kuinka jatkaa tämän dokumentin lukemisen jälkeen.
Top 10 2007-References-Finnish Suositeltavaa luettavaa.
Taulukko 1a: Sivut OWASP Top Ten 2007 -dokumentissa, jotka eivät liity yllä oleviin haavoittuvuussivuihin.

Eri versioihin liittyvä huomautus

Vaikka ainut virallinen versio OWASP Top Ten 2007 -listasta on englanninkielinen ladattava PDF-versio, OWASP on julkaissut tämän Wiki-sivun, joka sisältää PDF-dokumentin kanssa yhtenevät tiedot. Toivomme että vapaaehtoispanoksesi myötä tilanne voisi muuttua ja Wiki-versio voisi edelleen kehittyä. Tämän helpottamiseksi olemme julkaisseet englanninkielisen ohjesivun.

Ladattavat tiedostot

Valmiita Top 10 -dokumentteja on ladattavissa seuraavilla kielillä:

  • Etsitkö jollain muulla kielellä laadittua versiota? Otamme mielellämme vastaan panoksesi käännöstyöhön. Ota yhteyttä Andrew van der Stockiin (vanderaj ...(@)... owasp.org) lisätietojen saamiseksi.


    »»»»

© 2002-2007 OWASP Foundation This document is licensed under the Creative Commons Attribution-ShareAlike 2.5 license. Some rights reserved.