10 yleisintä Web-tietoturvahaavoittuvuutta
OWASP tai Open Web Security Project on voittoa tavoittelematon hyväntekeväisyysjärjestö, joka keskittyy ohjelmistojen ja verkkosovellusten turvallisuuden parantamiseen.
Organisaatio julkaisee luettelon tärkeimmistä verkkotietoturva-aukoista eri tietoturvaorganisaatioiden tietojen perusteella.
Verkkoturvallisuuden haavoittuvuudet priorisoidaan hyödynnettävyyden, havaittavuuden ja ohjelmistoihin kohdistuvan vaikutuksen mukaan.
- Hyödynnettävyys –Mitä tarvitaan tietoturva-aukkojen hyödyntämiseen? Korkein hyödynnettävyys, kun hyökkäys tarvitsee vain verkkoselaimen ja alhaisin on edistyksellistä ohjelmointia ja työkaluja.
- Havaitavuus - Kuinka helppoa uhan havaitseminen on? Korkein on URL-osoitteessa, lomakkeessa tai virheilmoituksessa näkyvä tieto ja alin lähdekoodi.
- Isku tai vahinko -Kuinka paljon vahinkoa tapahtuu, jos tietoturvahaavoittuvuus paljastetaan tai siihen hyökätään? Korkein on täydellinen järjestelmän kaatuminen ja alin on ei mitään.
OWASP Top 10:n päätavoitteena on kouluttaa kehittäjät, suunnittelijat, johtajat, arkkitehdit ja organisaatiot tärkeimmistä tietoturva-aukoista.
OWASP Top 10:n 10 suosituinta tietoturvahaavoittuvuutta ovat:
SQL Injection
Tuotetiedot
Injektio on tietoturvahaavoittuvuus, jonka avulla hyökkääjä voi muuttaa taustajärjestelmää SQL lausuntoja manipuloimalla käyttäjän toimittamia tietoja.
Injektio tapahtuu, kun käyttäjän syöte lähetetään tulkille osana komentoa tai kyselyä, ja se huijaa tulkin suorittamaan tahattomia komentoja ja antaa pääsyn luvattomiin tietoihin.
SQL-komento, joka web-sovelluksen suorittamana voi myös paljastaa taustatietokannan.
VAIKUTUS
- Hyökkääjä voi ruiskuttaa haitallista sisältöä haavoittuviin kenttiin.
- Tietokannasta voidaan lukea arkaluonteisia tietoja, kuten käyttäjätunnuksia, salasanoja jne.
- Tietokannan tietoja voidaan muokata (Lisää/Päivitä/Poista).
- Ylläpito Operavoidaan suorittaa tietokannassa
Haavoittuvia esineitä
- Syöttökentät
- URL-osoitteet, jotka ovat vuorovaikutuksessa tietokannan kanssa.
Esimerkkejä:
- SQL-injektio kirjautumissivulla
Kirjautuminen sovellukseen ilman kelvollisia tunnistetietoja.
Kelvollinen käyttäjätunnus on saatavilla, eikä salasana ole saatavilla.
Testin URL-osoite: http://demo.testfire.net/default.aspx
Käyttäjänimi: sjones
Salasana: 1=1′ tai pass123
SQL-kysely luotiin ja lähetettiin Interpreterille alla olevan mukaisesti
SELECT * FROM Käyttäjät WHERE Käyttäjänimi = sjones AND Salasana = 1=1′ tai pass123;
Suositukset
- Valkoinen luettelo syöttökentistä
- Vältä näyttämästä yksityiskohtaisia virheilmoituksia, joista on hyötyä hyökkääjälle.
Cross Site Scripting
Tuotetiedot
Cross Site Scripting tunnetaan lyhyesti myös nimellä XSS.
XSS-haavoittuvuudet kohdistuvat sivulle upotettuihin komentosarjoihin, jotka suoritetaan asiakaspuolella eli käyttäjän selaimessa palvelimen sijaan. Näitä virheitä voi ilmetä, kun sovellus ottaa epäluotettavaa tietoa ja lähettää ne verkkoselaimeen ilman asianmukaista vahvistusta.
Hyökkääjät voivat käyttää XSS:ää haitallisten komentosarjojen suorittamiseen käyttäjille, tässä tapauksessa uhriselaimille. Koska selain ei voi tietää, onko komentosarja luotettava vai ei, komentosarja suoritetaan ja hyökkääjä voi kaapata istunnon evästeet, turmella verkkosivustoja tai ohjata käyttäjän ei-toivotuille ja haitallisille verkkosivustoille.
XSS on hyökkäys, jonka avulla hyökkääjä voi suorittaa komentosarjoja uhrin selaimella.
Seuraamus:
- Hyödyntämällä tätä tietoturva-aukkoja, hyökkääjä voi syöttää skriptejä sovellukseen, varastaa istuntoevästeitä, turmella verkkosivustoja ja suorittaa haittaohjelmia uhrin koneilla.
Haavoittuvia esineitä
- Syöttökentät
- URL
Esimerkit
1. http://www.vulnerablesite.com/home?”<script>alert(“xss”)</script>
Kun yllä oleva komentosarja suoritetaan selaimessa, näyttöön tulee viestiruutu, jos sivusto on haavoittuvainen XSS:lle.
Vakavampi hyökkäys voidaan tehdä, jos hyökkääjä haluaa näyttää tai tallentaa istuntoevästeen.
2. http://demo.testfire.net/search.aspx?txtSearch <iframe> http://google.com leveys = 500 korkeus 500>
Kun yllä oleva komentosarja suoritetaan, selain lataa näkymätön kehyksen, joka osoittaa http://google.com.
Hyökkäys voidaan tehdä vakavaksi suorittamalla haitallinen komentosarja selaimessa.
Suositukset
- Valkoisen listan syöttökentät
- Tulo Lähdön koodaus
Rikkinäinen todennus ja istunnonhallinta
Tuotetiedot
Verkkosivustot luovat yleensä istuntoevästeen ja istuntotunnuksen kullekin kelvolliselle istunnolle, ja nämä evästeet sisältävät arkaluontoisia tietoja, kuten käyttäjätunnusta, salasanaa jne. Kun istunto päättyy joko uloskirjautumalla tai selaimen äkillisesti sulkeutuessa, nämä evästeet tulee mitätöidä eli jokaisen istunnon osalta. pitäisi olla uusi eväste.
Jos evästeitä ei mitätöidä, arkaluonteiset tiedot ovat järjestelmässä. Esimerkiksi, jos käyttäjä käyttää julkista tietokonetta (Cyber Cafe), haavoittuvan sivuston evästeet asettuvat järjestelmään ja altistuvat hyökkääjälle. Hyökkääjä käyttää samaa julkista tietokonetta jonkin ajan kuluttua, jolloin arkaluonteiset tiedot vaarantuvat.
Samalla tavalla julkista tietokonetta käyttävä käyttäjä sulkee selaimen äkillisesti uloskirjautumisen sijaan. Hyökkääjä käyttää samaa järjestelmää, kun selaat samaa haavoittuvaa sivustoa, uhrin edellinen istunto avautuu. Hyökkääjä voi tehdä mitä tahansa varastamalla profiilitietoja, luottokorttitietoja jne.
Tarkista todennuksen ja istunnonhallinnan vahvuus. Avaimet, istuntotunnukset ja evästeet tulee ottaa käyttöön oikein salasanoista tinkimättä.
Haavoittuvia esineitä
- URL-osoitteessa paljastetut istuntotunnukset voivat johtaa istunnon kiinnityshyökkäykseen.
- Istuntotunnukset ovat samat ennen ja jälkeen uloskirjautumisen ja sisäänkirjautumisen.
- Istunnon aikakatkaisuja ei ole toteutettu oikein.
- Sovellus määrittää saman istuntotunnuksen jokaiselle uudelle istunnolle.
- Sovelluksen todennetut osat on suojattu SSL:llä ja salasanat tallennetaan tiivistetyssä tai salatussa muodossa.
- Heikkokäyttöinen käyttäjä voi käyttää istuntoa uudelleen.
VAIKUTUS
- Hyödyntämällä tätä haavoittuvuutta, hyökkääjä voi kaapata istunnon ja päästä luvattomasti järjestelmään, mikä mahdollistaa luvattoman tiedon paljastamisen ja muokkaamisen.
- Istunnot voidaan jakaa käyttämällä varastettuja evästeitä tai istuntoja käyttämällä XSS:ää.
Esimerkit
- Lentoyhtiöiden varaussovellus tukee URL-osoitteiden uudelleenkirjoittamista ja istuntotunnusten lisäämistä URL-osoitteeseen:http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Lippujen myynti Malediiveille) Sivuston todennettu käyttäjä haluaa kertoa ystävilleen myynnistä ja lähettää sähköpostin. Ystävät saavat istuntotunnuksen, ja heitä voidaan käyttää luvattomien muutosten tekemiseen tai tallennettujen luottokorttitietojen väärinkäyttöön.
- Sovellus on haavoittuvainen XSS:lle, jonka avulla hyökkääjä pääsee käsiksi istuntotunnukseen ja sitä voidaan käyttää istunnon kaappaamiseen.
- Sovellusten aikakatkaisuja ei ole asetettu oikein. Käyttäjä käyttää julkista tietokonetta ja sulkee selaimen sen sijaan, että kirjautuisi ulos ja kävelee pois. Hyökkääjä käyttää samaa selainta jonkin ajan kuluttua, ja istunto todennetaan.
Suositukset
- Kaikki todennus- ja istunnonhallintavaatimukset on määriteltävä OWASP Application Security Verification Standard -standardin mukaisesti.
- Älä koskaan paljasta tunnistetietoja URL-osoitteissa tai lokeissa.
- Olisi myös pyrittävä välttämään XSS-puutteita, joita voidaan käyttää istuntotunnusten varastamiseen.
Epäturvalliset suorat objektiviitteet
Tuotetiedot
Se tapahtuu, kun kehittäjä paljastaa viittauksen sisäiseen toteutusobjektiin, kuten tiedostoon, hakemistoon tai tietokantaavaimeen URL-osoitteessa tai FORM-parametrina. Hyökkääjä voi käyttää näitä tietoja päästäkseen muihin objekteihin ja voi luoda tulevan hyökkäyksen päästäkseen käsiksi luvattomiin tietoihin.
VAIKUTUS
- Tämän haavoittuvuuden avulla hyökkääjä voi päästä käsiksi luvattomiin sisäisiin objekteihin, muokata tietoja tai vaarantaa sovelluksen.
Haavoittuvia esineitä
- URL-osoitteessa.
Esimerkkejä:
Käyttäjätunnuksen muuttaminen seuraavassa URL-osoitteessa voi saada hyökkääjän tarkastelemaan muiden käyttäjien tietoja.
http://www.vulnerablesite.com/userid=123 Muokattu muotoon http://www.vulnerablesite.com/userid=124
Hyökkääjä voi tarkastella muiden tietoja muuttamalla käyttäjätunnuksen arvoa.
Suositukset:
- Suorita kulunvalvontatarkistuksia.
- Vältä objektiviittausten paljastamista URL-osoitteissa.
- Tarkista kaikkien viiteobjektien käyttöoikeus.
Sivuston välinen väärentämispyyntö
Tuotetiedot
Cross Site Request Forgery on väärennetty pyyntö tuli cross site.
CSRF-hyökkäys on hyökkäys, joka tapahtuu, kun haitallinen verkkosivusto, sähköposti tai ohjelma saa käyttäjän selaimen suorittamaan ei-toivotun toiminnon luotetussa sivustossa, jota varten käyttäjä on tällä hetkellä todennettu.
CSRF-hyökkäys pakottaa sisäänkirjautuneen uhrin selaimen lähettämään haavoittuvaan verkkosovellukseen väärennetyn HTTP-pyynnön, joka sisältää uhrin istuntoevästeen ja kaikki muut automaattisesti sisällytetyt todennustiedot.
Hyökkääjä lähettää linkin uhrille, kun käyttäjä napsauttaa URL-osoitetta kirjautuessaan alkuperäiselle verkkosivustolle, tiedot varastetaan verkkosivustolta.
VAIKUTUS
- Tämän haavoittuvuuden käyttäminen hyökkääjänä voi muuttaa käyttäjäprofiilin tietoja, muuttaa tilaa, luoda uuden käyttäjän järjestelmänvalvojan puolesta jne.
Haavoittuvia esineitä
- Käyttäjäprofiilisivu
- Käyttäjätililomakkeet
- Liiketapahtumasivu
Esimerkit
Uhri on kirjautunut pankin verkkosivuille kelvollisilla tunnuksilla. Hän saa postia hyökkääjältä, jossa sanotaan: "Klikkaa tästä lahjoittaaksesi 1 dollari tarkoitukseen."
Kun uhri napsauttaa sitä, luodaan kelvollinen pyyntö lahjoittaa 1 dollari tietylle tilille.
http://www.vulnerablebank.com/transfer.do?account=cause&amount=1
Hyökkääjä kaappaa tämän pyynnön ja luo alla olevan pyynnön ja upottaa painikkeeseen, jossa lukee "Tuen syytä".
http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000
Koska istunto on todennettu ja pyyntö tulee pankin verkkosivuston kautta, palvelin siirtää 1000 dollaria hyökkääjälle.
Suositus
- Valtuuta käyttäjän läsnäolo suorittaessaan arkaluonteisia toimintoja.
- Toteuta mekanismeja, kuten CAPTCHA, uudelleentodennus ja yksilölliset pyyntötunnukset.
Turvallisuuden väärä määritys
Tuotetiedot
Suojauskokoonpano on määriteltävä ja otettava käyttöön sovellukselle, kehyksille, sovelluspalvelimelle, verkkopalvelimelle, tietokantapalvelimelle ja alustalle. Jos ne on määritetty oikein, hyökkääjällä voi olla luvaton pääsy arkaluonteisiin tietoihin tai toimintoihin.
Joskus tällaiset puutteet johtavat täydelliseen järjestelmän kompromissiin. Ohjelmiston ajan tasalla pitäminen on myös hyvä tietoturva.
VAIKUTUS
- Hyödyntämällä tätä haavoittuvuutta, hyökkääjä voi luetella taustalla olevan teknologian ja sovelluspalvelimen versiotiedot, tietokantatiedot ja saada tietoja sovelluksesta tehdäkseen muutaman hyökkäyksen lisää.
Haavoittuvia esineitä
- URL
- Lomakekentät
- Syöttökentät
Esimerkit
- Sovelluspalvelimen hallintakonsoli asennetaan automaattisesti, eikä sitä poisteta. Oletustilejä ei muuteta. Hyökkääjä voi kirjautua sisään oletussalasanoilla ja päästä luvatta.
- Hakemistoluetteloa ei ole poistettu käytöstä palvelimellasi. Hyökkääjä löytää ja voi yksinkertaisesti luetteloida hakemistoja löytääkseen minkä tahansa tiedoston.
Suositukset
- Vahva sovellusarkkitehtuuri, joka tarjoaa hyvän erottelun ja suojauksen komponenttien välillä.
- Vaihda oletuskäyttäjänimet ja salasanat.
- Poista hakemistolistaukset käytöstä ja ota käyttöön kulunvalvontatarkistuksia.
Turvaton kryptografinen tallennustila
Tuotetiedot
Epäturvallinen kryptografinen tallennus on yleinen haavoittuvuus, joka syntyy, kun arkaluontoisia tietoja ei tallenneta turvallisesti.
Käyttäjätunnukset, profiilitiedot, terveystiedot, luottokorttitiedot jne. kuuluvat arkaluontoisten tietojen alle verkkosivustolla.
Nämä tiedot tallennetaan sovellustietokantaan. Kun nämä tiedot tallennetaan väärin käyttämällä salausta tai hajautustoimintoa*, ne ovat haavoittuvia hyökkääjille.
(*Hashing on merkkijonomerkkien muuntamista lyhyemmiksi kiinteän pituisiksi merkkijonoiksi tai avaimeksi. Merkkijonon salauksen purkamiseksi avaimen muodostamiseen käytettävän algoritmin tulee olla käytettävissä)
VAIKUTUS
- Käyttämällä tätä haavoittuvuutta hyökkääjä voi varastaa, muokata tällaisia heikosti suojattuja tietoja suorittaakseen identiteettivarkauksia, luottokorttipetoksia tai muita rikoksia.
Haavoittuvia esineitä
- Sovellustietokanta.
Esimerkit
Yhdessä pankkisovelluksessa salasanatietokanta käyttää suolattomia tiivisteitä * kaikkien salasanojen tallentamiseen. SQL-injektiovirhe antaa hyökkääjälle mahdollisuuden noutaa salasanatiedoston. Kaikki suolattomat tiivisteet voidaan raa'asti pakottaa hetkessä, kun taas suolatut salasanat vievät tuhansia vuosia.
(*Suolattomat tiivisteet – Salt on satunnainen tieto, joka on liitetty alkuperäisiin tietoihin. Suola lisätään salasanaan ennen tiivistystä)
Suositukset
- Varmista asianmukaiset vahvat standardialgoritmit. Älä luo omia salausalgoritmeja. Käytä vain hyväksyttyjä julkisia algoritmeja, kuten AES, RSA julkisen avaimen salaus ja SHA-256 jne.
- Varmista, että ulkopuoliset varmuuskopiot ovat salattuja, mutta avaimia hallitaan ja varmuuskopioidaan erikseen.
URL-osoitteiden käytön rajoittaminen epäonnistui
Tuotetiedot
Verkkosovellukset tarkistavat URL-käyttöoikeudet ennen suojattujen linkkien ja painikkeiden näyttämistä. Sovellusten on suoritettava samanlaiset kulunvalvontatarkastukset joka kerta, kun näille sivuille avataan.
Useimmissa sovelluksissa etuoikeutettuja sivuja, sijainteja ja resursseja ei esitetä etuoikeutetuille käyttäjille.
Älykkäällä arvauksella hyökkääjä voi käyttää etuoikeussivuja. Hyökkääjä voi päästä arkaluonteisille sivuille, käynnistää toimintoja ja tarkastella luottamuksellisia tietoja.
VAIKUTUS
- Tämän haavoittuvuuden hyökkääjä voi päästä käsiksi luvattomiin URL-osoitteisiin kirjautumatta sovellukseen ja hyödyntää haavoittuvuutta. Hyökkääjä voi päästä arkaluonteisille sivuille, käynnistää toimintoja ja tarkastella luottamuksellisia tietoja.
Haavoittuvia esineitä:
- URL
Esimerkit
- Hyökkääjä huomaa, että URL-osoite osoittaa roolin muodossa "/user/getaccounts". Hän muuttaa muotoa "/admin/getaccounts".
- Hyökkääjä voi liittää URL-osoitteeseen roolin.
http://www.vulnerablsite.com voidaan muokata mm http://www.vulnerablesite.com/admin
Suositukset
- Ota käyttöön vahvat kulunvalvontatarkastukset.
- Todennus- ja valtuutuskäytäntöjen tulee perustua rooliin.
- Rajoita pääsyä ei-toivottuihin URL-osoitteisiin.
Riittämätön kuljetuskerroksen suojaus
Tuotetiedot
Käsittelee tiedonvaihtoa käyttäjän (asiakkaan) ja palvelimen (sovellus) välillä. Sovellukset lähettävät usein arkaluontoisia tietoja, kuten todennustietoja, luottokorttitietoja ja istuntotunnuksia, verkon kautta.
Jos käytät heikkoja algoritmeja tai käytät vanhentuneita tai virheellisiä varmenteita tai et käytä SSL:ää, tietoliikenne voi joutua alttiiksi epäluotetuille käyttäjille, mikä voi vaarantaa verkkosovelluksen ja/tai varastaa arkaluonteisia tietoja.
VAIKUTUS
- Hyödyntämällä tätä verkkotietoturvahaavoittuvuutta, hyökkääjä voi haistaa laillisen käyttäjän tunnistetiedot ja päästä sovellukseen.
- Voi varastaa luottokorttitietoja.
Haavoittuvia esineitä
- Tiedot lähetetään verkon kautta.
Suositukset
- Ota suojattu HTTP käyttöön ja pakota tunnistetietojen siirto vain HTTPS:n kautta.
- Varmista, että sertifikaattisi on voimassa eikä ole vanhentunut.
Esimerkkejä:
1. Sovellus, joka ei käytä SSL:ää, hyökkääjä yksinkertaisesti tarkkailee verkkoliikennettä ja tarkkailee todennettua uhriistunnon evästettä. Hyökkääjä voi varastaa evästeen ja suorittaa Man-in-the-Middle -hyökkäyksen.
Vahvistamattomat uudelleenohjaukset ja edelleenlähetykset
Tuotetiedot
Verkkosovellus käyttää harvoja tapoja ohjata ja ohjata käyttäjiä muille sivuille aiottuun tarkoitukseen.
Jos toisille sivuille ohjattaessa ei ole asianmukaista vahvistusta, hyökkääjät voivat hyödyntää tätä ja ohjata uhrit tietojenkalastelu- tai haittaohjelmasivustoille tai käyttää edelleenlähetyksiä luvattomille sivuille.
VAIKUTUS
- Hyökkääjä voi lähettää käyttäjälle URL-osoitteen, joka sisältää aidon URL-osoitteen, johon on liitetty koodattu haitallinen URL-osoite. Pelkästään näkemällä hyökkääjän lähettämän URL-osoitteen aidon osan käyttäjä voi selata sitä ja joutua uhriksi.
Esimerkit
1.http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com
Muokattu muotoon
http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com
Suositukset
- Vältä vain uudelleenohjauksia ja edelleenlähetyksiä sovelluksessa. Jos käytetään, älä käytä käyttäjän parametreja määränpään laskennassa.
- Jos kohdeparametreja ei voida välttää, varmista, että annettu arvo on kelvollinen ja valtuutettu käyttäjälle.