socialgekon.com
  • Tärkein
  • Muu
  • Web-Käyttöliittymä
  • Työn Tulevaisuus
  • Suunnittelu
Taustaa

10 Yleisimmät verkkoturvan haavoittuvuudet

Liian monille yrityksille se on vasta jälkeen turvallisuusrikkomus on tapahtunut että verkkoturvallisuuden parhaista käytännöistä tulee etusijalla. Työskennellessäni tietoturva-alan ammattilaisena olen nähnyt yhä uudestaan ​​ja uudestaan, kuinka hämärä verkkokehityksen turvallisuuskysymykset voivat olla niin monille minun muita ohjelmoijia .

Tehokkaan lähestymistavan verkkoturvauhkiin on määritelmänsä mukaan oltava ennakoivaa ja puolustavaa. Tätä tarkoitusta varten tämän viestin tarkoituksena on herättää tietoturva-ajattelutapa, toivottavasti pistämällä lukijalle terveellinen annos paranoa.

Tässä oppaassa keskitytään erityisesti kymmeneen yleiseen ja merkittävään verkkoturvallisuuden karhaan, joista on oltava tietoisia, mukaan lukien suositukset niiden lieventämiseksi. Painopiste on 10 parasta verkkohaitaa tunnistettu Avoin verkkosovelluksen suojausprojekti (OWASP) , kansainvälinen voittoa tavoittelematon organisaatio, jonka tavoitteena on parantaa ohjelmistojen turvallisuutta kaikkialla maailmassa.



Esimerkki yleisistä verkkohaavoittuvuuksista, joita kukaan ei halua kohdata.

Pieni kyberturvallisuusalusta ennen aloittamista - todennus ja valtuutus

Puhuessani muiden ohjelmoijien ja IT-ammattilaisten kanssa kohtaan usein hämmennystä valtuutuksen ja todennuksen eron suhteen. Ja tietysti tosiasia lyhenne todennut käytetään usein molempiin, mikä voi pahentaa tätä yleistä sekaannusta. Tämä hämmennys on niin yleistä, että ehkä asia pitäisi sisällyttää tähän viestiin nimellä 'Common Web Vulnerability Zero'.

Joten ennen kuin jatkamme, selvennetään ero näiden kahden termin välillä:

  • Todennus: Sen varmistaminen, että henkilö on (tai ainakin näyttää olevan) tietty käyttäjä, koska hän on antanut oikein käyttäjätunnuksensa (salasana, vastaukset turvakysymyksiin, sormenjälkien skannaus jne.).
  • Valtuutus: Vahvistetaan, että tietyllä käyttäjällä on pääsy tiettyyn resurssiin tai että hänelle myönnetään lupa suorittaa tietty toiminto.

Totesi toisella tavalla, todennus tietää, kuka entiteetti on lupa on tieto siitä, mitä tietty yksikkö voi tehdä. Tässä mielessä päästään kymmenen parhaan Internet-tietoturvakysymyksen joukkoon.

Yleinen verkkoturvallisuusvirhe # 1: Injektiovirheet

Injektiovirheet johtuvat epäluotettavan syötteen suodattamisen klassisesta epäonnistumisesta. Se voi tapahtua, kun välität suodattamattomia tietoja SQL-palvelimelle (SQL-injektio), selaimelle (XSS - puhumme tästä myöhemmin ), LDAP-palvelimelle (LDAP-injektio) tai mihin tahansa muuhun. Ongelmana on, että hyökkääjä voi injektoida komentoja näille yhteisöille, mikä johtaa tietojen menetykseen ja kaapata asiakkaiden selaimet.

Kaikki, mitä sovelluksesi saa epäluotettavista lähteistä, on suodatettava, mieluiten sallittujen luettelon mukaan. Sinun ei pitäisi melkein koskaan käyttää mustaa listaa, koska oikeuden saaminen on erittäin vaikeaa ja yleensä helppo ohittaa. Virustentorjuntaohjelmistotuotteet tarjoavat tyypillisesti erinomaisia ​​esimerkkejä epäonnistuneista mustista listoista. Kuvion sovitus ei toimi.

Ehkäisy: Hyvä uutinen on, että suojaus injektiota vastaan ​​on 'yksinkertaisesti' suodattaa syötteesi oikein ja miettiä, voidaanko syötteeseen luottaa. Mutta huono uutinen on se kaikki panos on suodatettava kunnolla, ellei siihen voida kiistatta luottaa (mutta sanonta 'älä koskaan sano koskaan' ei tule mieleen tässä).

Esimerkiksi järjestelmässä, jossa on 1 000 tuloa, 999: n onnistunut suodattaminen ei riitä, koska tämä jättää vielä yhden kentän, joka voi toimia Achilles-parantumana järjestelmän kaatamiseksi. Ja saatat ajatella, että SQL-kyselytuloksen sijoittaminen toiseen kyselyyn on hyvä idea, koska tietokantaan luotetaan, mutta jos kehä ei ole, tulo tulee epäsuorasti kavereilta, joilla on väärinkäyttäjiä. Tätä kutsutaan Toisen asteen SQL-injektio jos olet kiinnostunut.

Koska suodatusta on melko vaikea tehdä oikein (kuten salausta), suosittelen yleensä, että luotat kehyksen suodatustoimintoihin: ne ovat osoittautuneet toimiviksi ja tutkitaan perusteellisesti. Jos et käytä kehyksiä, sinun on todella mietittävä kovasti ei niiden käyttäminen on todella järkevää palvelimesi suojauskontekstissa. 99% ajasta ei.

Yleinen verkkoturvallisuusvirhe # 2: Virheellinen todennus

Tämä on kokoelma monista ongelmista, joita saattaa ilmetä rikkinäisen todennuksen aikana, mutta ne kaikki eivät johdu samasta perimmäisestä syystä.

Olettaen, että kukaan haluaa edelleen käyttää omaa todennuskoodiaan vuonna 2014 (mitä ajattelet ??), suosittelen sitä vastaan. On äärimmäisen vaikeaa saada oikeaksi, ja on olemassa lukemattomia mahdollisia kaatumisia, vain muutamia mainitakseni:

  1. URL-osoite saattaa sisältää istunnon tunnuksen ja vuotaa sen viittausotsikossa jollekin muulle.
  2. Salasanoja ei ehkä salata tallennustilassa tai siirrettäessä.
  3. Istuntotunnukset voivat olla ennakoitavissa, joten pääsy on triviaalia.
  4. Istunnon korjaaminen voi olla mahdollista.
  5. Istunnon kaappaus voi olla mahdollista, aikakatkaisuja ei toteuteta oikein tai käytetään HTTP: tä (ei SSL-suojausta) jne.

Ehkäisy: Selkein tapa välttää tämä verkkoturva-aukko on käyttää kehystä. Saatat pystyä toteuttamaan tämän oikein, mutta edellinen on paljon helpompaa. Jos haluat kääntää oman koodisi, ole erittäin paranoidi ja kouluta itseäsi sudenkuoppia. Niitä on melko paljon.

Yleinen verkkoturvallisuusvirhe # 3: Cross Site Scripting (XSS)

Tämä on melko laajalle levinnyt epäpuhtauksien syöttövirhe (lähinnä yleinen virhe # 1 ). Hyökkääjä antaa verkkosovelluksellesi JavaScript-tunnisteet syötteeksi. Kun tämä syöte palautetaan käyttäjälle sanattomana, käyttäjän selain suorittaa sen. Se voi olla yhtä yksinkertaista kuin luoda linkki ja suostutella käyttäjä napsauttamaan sitä, tai se voi olla jotain paljon pahempaa. Sivun latauksessa komentosarja suoritetaan ja sitä voidaan käyttää esimerkiksi evästeiden lähettämiseen hyökkääjälle.

Ehkäisy: On olemassa yksinkertainen verkkoturvaratkaisu: älä palauta HTML-tunnisteita asiakkaalle. Tällä on lisäetuna puolustaminen HTML-injektiota vastaan, samanlainen hyökkäys, jossa hyökkääjä ruiskuttaa tavallista HTML-sisältöä (kuten kuvia tai kovaa, näkymättömiä flash-soittimia) - ei kovin vaikuttavaa, mutta varmasti ärsyttävää ('tee se lopetettavaksi!'). Yleensä kiertotapa on yksinkertaisesti muuntaa kaikki HTML-entiteetit , joten se palautetaan muodossa