This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Difference between revisions of "Top 10 2007 Finnish"

From OWASP
Jump to: navigation, search
(More translation)
m
Line 125: Line 125:
  
 
'''Tiivistelmä'''
 
'''Tiivistelmä'''
Haitallisen sovelluskutsun tekeminen käyttäjän oikeuksilla käyttäjän selaimen kautta
+
Haitallisen sovelluskutsun tekeminen toisen käyttäjän valtuuksilla pyyntöhuijauksen avulla
  
 
'''Kuvaus'''
 
'''Kuvaus'''

Revision as of 12:10, 24 September 2008

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.

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.

Java Enterprise Edition-kohtainen lista 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 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 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 Development Guide, mikä sisältää oleellista luettavaa kaikille nykypäivän web-sovelluskehittäjille.

Tämän dokumentin ensisijainen tarkoitus 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ä toisia projekteja. Liittymällä tai antamalla tukea näihin projekteihin tuet niiden edistymistä parhaiten.

Kiitokset avustajille

We thank MITRE for making Vulnerability Type Distribution in CVE data freely available for use. The OWASP Top Ten project is led and sponsored by Aspect_logo.gif.

Project Lead: Andrew van der Stock (Executive Director, OWASP Foundation)

Co-authors: Jeff Williams (Chair, OWASP Foundation), Dave Wichers (Conference Chair, OWASP Foundation)

We’d like to thank our reviewers:

  • Raoul Endres for help in getting the Top 10 going again and with his valuable comments.
  • Steve Christey(MITRE) for an extensive peer review and adding the MITRE CWE data
  • Jeremiah Grossman (WhiteHat Security) for peer reviewing and contributing information about the success (or otherwise) of automated means of detection.
  • Neil Smithline (OneStopAppSecurity.com) for comments and producing the Wiki version.
  • Sylvan von Stuppe for an exemplary peer review.
  • Colin Wong, Nigel Evans and Andre Gironda for e-mailed comments.

Tiivistelmä

A1 - Cross Site Scripting (XSS) XSS flaws occur whenever an application takes user supplied data and sends it to a web browser without first validating or encoding that content. XSS allows attackers to execute script in the victim's browser which can hijack user sessions, deface web sites, possibly introduce worms, etc.

Tiivistelmä Haitallisten komentojen (skriptin) välittäminen käyttäjän selaimeen toisen sivuston kautta

Kuvaus 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. Kaksi yleistä XSS-tyyppiä ovat pysyvä ja ei-pysyvä, joiden erona on että pysyvässä tapauksessa komento jää sovelluksen omaan tietokantaan.

Esimerkki 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 haku-kentässä on XSS-haavoittuvuus. Samalla hän saa hyökkääjältä viestin, joka kehoittaa katsomaan annettu linkki, mikä todellisuudessa ohjaakin osoitteeseen "http://community.example.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ä.

A2 - Injektio-ongelmat Injection flaws, particularly SQL injection, are common in web applications. Injection occurs when user-supplied data is sent to an interpreter as part of a command or query. The attacker's hostile data tricks the interpreter into executing unintended commands or changing data.

Tiivistelmä Haitallisen komennon välittäminen syötteessä osaksi taustajärjestelmäkyselyä

Kuvaus Injektio-ongelmat, erityisesti SQL-injektio, ovat tyypillisiä web-sovelluksissa. Injektio onnistuu, kun 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 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'"

Mikä sovellukselle näyttää 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.

A3 - Haitallisen tiedoston suoritus Code vulnerable to remote file inclusion (RFI) allows attackers to include hostile code and data, resulting in devastating attacks, such as total server compromise. Malicious file execution attacks affect PHP, XML and any framework which accepts filenames or files from users.

Tiivistelmä Haitallisen tiedoston välittäminen sovellukselle suoritettavaksi

Kuvaus 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.

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.

A4 - Turvaton suora objektiviittaus A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, database record, or key, as a URL or form parameter. Attackers can manipulate those references to access other objects without authorization.

Tiivistelmä Sovelluksen sisäisen objektiviittauksen väärinkäyttö

Kuvaus Sovellus paljastaa viittauksia sovelluksen sisäisesti käyttämiin objekteihin, kuten tiedostoihin, hakemistoihin tai tietokantatauluihin tai avaimiin. Viittaukset voivat paljastua esim. 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.

Esimerkki Verkkopankkisovelluksessa käytetään tiliin viittamiseen asiakkaan tilinumeroa. Hyökkääjä, yksi verkkopankin käyttäjä, huomaa että tilitietojen kyselyssä yhtenä parametrina välitetään hänen oma tilinumeronsa. Hän muuttaa tämän parametrin arvon toisen käyttäjän tilinumeroksi, ja sovellus paljastaa toisen käyttäjän tilitiedot.

Suositus Tarkasta jokaisen pyynnön kohdalla, että käyttäjällä on oikeus suoritettavaan toimintoon.

A5 - Cross Site Request Forgery (CSRF) A CSRF attack forces a logged-on victim's browser to send a pre-authenticated request to a vulnerable web application, which then forces the victim's browser to perform a hostile action to the benefit of the attacker. CSRF can be as powerful as the web application that it attacks.

Tiivistelmä Haitallisen sovelluskutsun tekeminen toisen käyttäjän valtuuksilla pyyntöhuijauksen avulla

Kuvaus CSRF hyökkäyksessä käyttäjä on ensin kirjautunut haavoittuvaan sivustoon. Hyökkääjä lähettää käyttäjälle tyypillisesti väärennetyn linkin, joka ohjaa käyttäjän selaimen suorittamaan jonkin sivuston tavallisen 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 sovellukseen, kun XSS:ssä hyödynnetään sovellusta suorittamaan komento käyttäjän selaimeen.

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.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 tehtävää.

Suositus Toteuta evästeissä kulkevan istuntotunnisteen lisäksi jokaiseen sovelluskutsuun yhtenä parametrinä satunnainen arvo, jota hyökkääjä ei voi etukäteen tietää.

A6 - Tiedon vuotaminen ja puutteelinen virheenkäsittely Applications can unintentionally leak information about their configuration, internal workings, or violate privacy through a variety of application problems. Attackers use this weakness to steal sensitive data, or conduct more serious attacks.

Kuvaus Sovellukset voivat tarkoituksettomasti vuotaa tietoja omista asetuksistaan, sisäisistä toteutustavoistaan tai jopa loukata yksityisyydensuojaa erilaisten hallistemattomien virhetilanteiden johdosta. Hyökkääjät voivat sovelluksen virheviesteistä paljastuvia tietoja joko suoraan tai apuna suunnitellessa 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.

A7 - Viallinen tunnistusmenettely ja istunnonhallinta Account credentials and session tokens are often not properly protected. Attackers compromise passwords, keys, or authentication tokens to assume other users' identities.

Kuvaus Käyttäjä- sekä istuntotunnisteet eivät 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.

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.

A8 - Kryptografisesti turvaton tiedon säilytys Web applications rarely use cryptographic functions properly to protect data and credentials. Attackers use weakly protected data to conduct identity theft and other crimes, such as credit card fraud.

Kuvaus Web-sovelluksissa käytetään vain harvoin asianmukaisia kryptografisia menetelmiä tiedon ja käyttäjätunnisteiden salaukseen esimerkiksi tietokannassa. Tietokantainjektion avulla tai jollain muulla keinolla tietoihin käsiksi pääsevä hyökkääjä voi tästä johtuen helposti selvittää esim. käyttäjien identiteettitietoja ja luottokorttinumeroita.

Suositus Käytä tiedon salaukseen asiantuntijoiden hyväksymiä kryptografisia menetelmiä.

A9 - Turvattomat tietoliikenneyhteydet Applications frequently fail to encrypt network traffic when it is necessary to protect sensitive communications.

Kuvaus Sovellukset eivät usein käytä asianmukaisesti salattuja tietoliikenneyhteyksiä. Tämä voi johtaa esimerkiksi liikenteen salakuunteluun.

Suositus Käytä riittävän vahvaa SSL/TLS-yhteyttä suojaamaan tietoliikenneyhteydet.

A10 - Rajoittamaton URL-tason pääsy Frequently, an application only protects sensitive functionality by preventing the display of links or URLs to unauthorized users. Attackers can use this weakness to access and perform unauthorized operations by accessing those URLs directly.

Kuvaus Sovellusten pääsynvalvonta perustuu monesti siihen, että valtuuttamattomalle käyttäjälle ei näytetä linkkejä niihin toimintoihin, joihin hänellä ei ole oikeuksia. Kuitenkin nämä osoitteet saattavat olla yleisesti tunnettuja tai helposti arvattavia, ja hyökkääjä pystyy suorittamaan valtuuttamattomia toimia siirtymällä näihin osoitteisiin suoraan.

Esimerkki 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.com/raisesalary?user=luser&raisesalaryby=10000".

Suositus Tarkasta jokaisen pyynnön kohdalla, että käyttäjällä on oikeus suoritettavaan toimintoon.

Table 1: Top 10 Web application vulnerabilities for 2007


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.

Top 10 2007 The main page for the document (this page). Besides providing an introduction, bookmarking the "Summary" section (this can be done by dragging this link to your browser's bookmarks) gives you quick access to the entire document.
Top 10 2007-Methodology A description of the methodology used to select the vulnerabilities for this document.
Top 10 2007-Where to Go From Here Some advice as to how to proceed once you have read this document.
Top 10 2007-References Recommendations for further reading.
Table 1a: Pages in the OWASP Top Ten 2007 document other than the vulnerability pages listed above.

A Note About The Different Versions

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 tutorial to get you started.

Downloadable Versions

You can download the Top 10 2007 (Final) here:

  • Looking for a version in another language? We could use your help translating. Contact Andrew van der Stock (vanderaj ...(@)... owasp.org) to help translating the OWASP Top 10 into your language.


    »»»»

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