• turvallisuus
  • identiteetti
  • tarkistuslista
  • autentikointi

Käyttäjän identiteetin olennaiset turvallisuustarkistuslistat

Käyttäjän identiteetin rakentaminen on sovelluksen kriittinen osa. Käyttäjänimien ja salasanojen tarkistaminen saattaa vaikuttaa yksinkertaisimmalta lähestymistavalta, mutta on monia muita tekijöitä, jotka tulee huomioida.

Gao
Gao
Founder

Johdanto

Käyttäjän identiteetin rakentaminen on sovelluksen kriittinen osa. Se mahdollistaa personoidut kokemukset, parantaa tiedon laatua ja lisää käyttäjien sitoutumista.

Käyttäjänimien ja salasanojen tarkistaminen saattaa vaikuttaa yksinkertaisimmalta lähestymistavalta, mutta on monia muita tekijöitä, jotka tulee huomioida. Aloitetaanpa!

Infrastruktuuri

Pakota HTTPS

Aloitetaan perusasioista. Käytä aina HTTPS:iä (Hypertext Transfer Protocol Secure) suojaamaan tiedonsiirron internetissä. HTTPS varmistaa, että käyttäjän laitteen ja palvelimen välinen tieto pysyy luottamuksellisena ja muuttumattomana.

HTTPS:n käyttöönotto voi tuntua haastavalta, mutta siihen on olemassa monia työkaluja ja palveluita:

  • Jos isännöit itse, Let's Encrypt tarjoaa ilmaisia SSL/TLS-sertifikaatteja, joita voi käyttää HTTPS:n mahdollistamiseen verkkosivustollasi.
  • Jos käytät pilvipalveluntarjoajaa, kuten AWS:ää, Azurea tai Google Cloudia, voit käyttää heidän hallitsemiaan palveluita HTTPS:n asettamiseksi.

Älä salli julkista tietokantayhteyttä, rajaa vain luotettuihin lähteisiin

Vaikka se saattaa vaikuttaa perusasialta, on tapahtunut lukuisia tietoturvaloukkauksia sallimalla julkisen pääsyn tietokantoihin. Siksi se on mainitsemisen arvoinen.

Muista aina, että et koskaan saa sallia julkista pääsyä tietokantaasi. Aseta tietokantasi yksityiseen verkkoon ja salli pääsy vain luotetuista lähteistä.

Yksityisten tunnisteiden turvallinen hallinta

Yksityisiä tunnisteita, kuten pääsytunnisteita tai API-avaimia, käytetään usein ohjelmalliseen todentamiseen ja valtuutukseen. Näiden tunnisteiden turvalliseen hallintaan:

  • Käytä lyhytkestoisia tunnisteita ja uusimistunnisteita minimoidaksesi luvattoman pääsyn riskin.
  • Käytä turvallista tunnisteiden tallennusmekanismia, kuten avainten säilyttämistä, suojellaksesi tunnisteita luvattomalta käytöltä.
  • Vaihda tunnisteita säännöllisesti estääksesi niiden vaarantumisen. Jotkut protokollat, kuten OAuth 2.0, tarjoavat mekanismin tunnisteiden vaihdolle.
  • Säilytä hallinta tunnisteiden peruuttamisesta tietoturvaloukkauksen tapahtuessa.

Valitse salasanojen hash-algoritmi viisaasti

Jos sinulla on kokemusta salasanojen hajautuksesta, saatat tietää, että algoritmeista on saatavilla monia, mutta kaikki eivät ole enää turvallisia, kuten MD5, SHA-1 ja SHA-2.

Joihinkin yleisiin syihin niiden turvattomuudelle kuuluvat:

  • Ne eivät ole erityisesti suunniteltu salasanojen hajautukseen, ja niiden laskennallinen nopeus on liian suuri, mikä helpottaa brute force -hyökkäyksiä.
  • Ne eivät käytä suolaa, mikä helpottaa sateenkaaritaulukkojen luomista.
  • Ne ovat alttiita yhteentörmäyshyökkäyksille, jolloin hyökkääjät voivat luoda erilaisia salasanoja, joilla on sama hash-arvo.

Teollisuuden standardien mukaiset salasanojen hajautusalgoritmit, kuten bcrypt ja Argon2, on suunniteltu ratkaisemaan nämä ongelmat. Tämän artikkelin rajoitetun laajuuden vuoksi emme käsittele niitä yksityiskohtaisesti. Katso lisätietoja Salasanojen hajautuksen kehitys.

Opettele ja noudata tiukasti avoimia standardeja

Avoimet standardit kuten OAuth 2.0 ja OpenID Connect (OIDC) tarjoavat turvallisia ja standardoituja lähestymistapoja käyttäjän todentamiseen ja valtuutukseen. Niitä on testattu perusteellisesti ja ne ovat laajalti hyväksytty teollisuudessa.

Kuitenkin, niiden väärin toteuttaminen voi aiheuttaa tietoturvaongelmia, jopa suurille tiimeille, joilla on kokeneita kehittäjiä. Äskettäinen esimerkki on Expo:ssa havaittu OAuth-haavoittuvuus, suosittu kehys mobiilisovellusten rakentamiseen. Se toimii hyvänä esimerkkinä siitä, miten pieni virhe voi johtaa tietoturvaloukkaukseen.

Salaa tiedot levossa

Levossa olevat tiedot, kuten tallennetut käyttäjätiedot tai tietokantavarastot, tulee salata vahvalla salausalgoritmilla. Tämä varmistaa, että vaikka tiedot vaarantuisivat, niitä ei voi lukea ilman salausavainta. Kaksoistarkista, tukeeko pilvipalveluntarjoajasi tätä ominaisuutta, koska se vaaditaan usein noudattamistarkoituksiin.

Aseta palomuurit

DDoS-hyökkäykset (Distributed Denial of Service), vaikka ovatkin vanhoja, pysyvät merkittävänä uhkana. Cloudflaren DDoS-uhkaraportin 2022 Q4 mukaan HTTP DDoS-hyökkäysliikenne lisääntyi 79 % edellisvuodesta. Oman ratkaisun rakentamisen sijaan on hyvä ajatus asettaa hallitut palomuurit ja käyttää ilmoituksia riskin vähentämiseksi.

Sovellukset ja asiakkaat

Lisää turvallisuustasoa julkisille asiakkaille

Julkiset asiakkaat, kuten mobiilisovellukset tai yksisivuiset sovellukset, ovat alttiimpia tietoturva-aukoille. Vaikka tarjoatkin niitä, sinun pitäisi käsitellä niitä luottamattomina lähteinä tietoturvamallissasi. Esimerkiksi:

Älä koskaan luota julkisiin syöttötietoihin

Käyttäjän syöttö voi olla merkittävä tietoturva-aukkojen lähde, jota usein aliarvioidaan. Jotkin yleiset aliarvioidut haavoittuvuustyypit ovat Cross-Site Scripting (XSS) ja SQL Injection. Varmista, että validoit ja puhdistat kaiken käyttäjän syöttötiedon ennen sen käyttöä.

Seuraa toimintoja

Käyttäjätoimintojen auditointijäljen ylläpitäminen auttaa havaitsemaan ja tutkimaan tietoturvauhkatilanteita. Kirjaa ja valvo käyttäjän toimenpiteitä, kuten kirjautumisyrityksiä, salasanamuutoksia tai herkkiä toimenpiteitä. Näiden lokien analysointi voi tarjota arvokkaita tietoja mahdollisista tietoturvaloukkauksista tai epäilyttävistä toiminnoista.

Toteuta vahva todentaminen

Toteuta vahva todentamismekanismi käyttäjien henkilöllisyyden varmistamiseksi. Kuten aiemmin mainittiin, harkitse turvallisten protokollien, kuten OAuth 2.0 tai OpenID Connect, käyttöä todentamiseen. Lisätietoa saat viittaamalla CIAM 101: Authentication, Identity, SSO.

Rakenna vahva valtuutus (esim. toteuta roolipohjainen pääsynvalvonta)

Todentamisen lisäksi asianmukaiset valtuutusmekanismit tulisi ottaa käyttöön. Toteuta roolipohjainen pääsynvalvonta (RBAC) varmistaaksesi, että käyttäjillä on pääsy vain resursseihin ja toimintoihin, joihin heillä on lupa. Lisätietoa saat viittaamalla CIAM 102: Authorization & Role-based Access Control.

Toteuta todennus monella tavalla (MFA)

Monivaiheinen todennus (MFA) lisää ylimääräisen suojauskerroksen vaatimalla käyttäjiä antamaan yhden tai useamman tunnistautumistavan, kuten salasanan ja kertakäyttökoodin, joka lähetetään heidän mobiililaitteelleen. Toinen hyvä esimerkki MFA:sta on, kun GitHub pyytää käyttäjiä syöttämään kertakäyttökoodin mobiilisovelluksestaan, joka näytetään verkkosivulla, suorittaessaan herkkiä toimenpiteitä, kuten varaston poistamista.

Kuitenkin MFA:n omistaminen ei ole välttämätöntä useimmille alkuvaiheen startup-yrityksille, varsinkin jos sinulla ei ole valmisratkaisua. Se voi olla liiallista ja vaikuttaa negatiivisesti käyttäjäkokemukseen.

Kulttuuri

Yllä annettuja neuvoja käsitellään pääasiassa "passiivisina" turvallisuustoimenpiteinä, jotka tunnetaan ennen tietoturvaloukkauksen tapahtumista. On kuitenkin myös "aktiivisia" turvallisuustoimenpiteitä, joita voit tehdä kokonaisvaltaisen tietoturvaposition parantamiseksi ja jotka ovat pitkäaikaisemmassa tehokkaampia.

Kouluta tiimiäsi ja käyttäjiäsi phishingistä ja sosiaalisesta suunnittelusta

Phishing-hyökkäykset ja sosiaalinen suunnittelu ovat kriittisiä, koska ne voivat tehdä monista edellä mainituista turvallisuustoimenpiteistä hyödyttömiä. Esimerkiksi, jos käyttäjä huijataan luovuttamaan salasanansa tai klikkaamaan näennäisesti viatonta kissakuvaa, joka sisältää haittaohjelman, salasanahajautusalgoritmin tai palomuurisääntöjen vahvuus muuttuu merkityksettömäksi.

Useimmat ihmiset kokevat tietoturvakoulutuksen tylsänä, ja usein se onkin. Joten, muuta tapaa, jolla koulutat tiimiäsi ja käyttäjiäsi. Voit esimerkiksi simuloida phishing-sähköposti ennen kuin todellinen hyökkääjä tekee sen ja näyttää, miten se tunnistetaan. Voit jopa tarjota palkintoja sähköpostin ilmoittamisesta tietoturvatiimille.

Ota käyttöön DevSecOps

Manuaalisten tietoturvatarkastusten lisäksi voit myös toteuttaa DevSecOps-käytäntöjä automatisoimaan tietoturvatarkastukset. Esimerkiksi voit perustaa CI/CD-putken ajamaan staattisia koodianalyysityökaluja kuten CodeQL ja suorittaa automaattisesti tunkeutumistestit työkalujen kuten OWASP ZAP avulla.

Omaksu kaikkein tiukin konfiguraatio ilman, että se vaikuttaa käyttäjäkokemukseen

Kun on kyse turvallisuudesta, valitse aina mahdollisimman turvallinen konfiguraatio, joka ei vaikuta negatiivisesti käyttäjäkokemukseen. Vältä oikopolkuja tai tinkimästä turvallisuudesta mukavuuden tähden. Turvallisuuden tulisi aina olla prioriteetti.

Startup-yrityksenä tai itsenäisenä kehittäjänä saatat tuntea, että sinulla ei ole tarvittavia resursseja näiden toimenpiteiden toteuttamiseen. Kuitenkin, on ammatillisia tietoturvapalveluita, jotka tarjoavat ilmaisia tai startup-ystävällisiä vaihtoehtoja. Käytä aikaa niiden arvioimiseen ja harkitse niiden hyödyntämistä.

Johtopäätökset

Turvallisuus on monimutkainen aihe, ja kaikkia asioita on mahdotonta käsitellä yhdessä artikkelissa. Toivomme, että tämä artikkeli on auttanut sinua tai tiimiäsi rakentamaan vahvemman turvallisuustietoisuuden. Jos rakennat uutta sovellusta, saatat myös haluta tutustua Logto-ohjelmaan, joka auttaa sinua kehittämään, hallitsemaan ja suojaamaan tuotteesi käyttäjäidentiteettejä minimaalisella vaivalla.