Web application programming interfaces (API) tarjoaa loppupään nykyaikaisille web-ja mobiilisovelluksille. Web API-puhelujen osuus on yli 80% kaikesta verkkoliikenteestä, ja verkkorikolliset kohdistavat yhä enemmän ohjelmointirajapintoja, joten web API-tietoturvan varmistaminen on ratkaisevan tärkeää. REST-sovellusliittymät ovat yleisin www-sovellusliittymä verkkopalveluille. Katsotaan, mitä voit tehdä REST API-turvallisuuden varmistamiseksi.
- mikä on REST API?
- kaksi REST API Security-tasoa
- turvallisen API-liittymän varmistaminen
- yhteyden suojaus
- API Access Control
- KÄYTTÄJÄLUPA API-avaimilla
- API-Asiakasrajoitukset
- sellaisten sovellusten suojaaminen, jotka altistavat API: n
- API-viestinnän arkaluonteiset tiedot
- Content Type Validation
- Vastausturvaotsikot
- Input Validation
- miksi REST API Security Is Important
- tekijästä
mikä on REST API?
REST (lyhenne sanoista REpresentational State Transfer) on web-kehityksen ohjelmistoarkkitehtuurityyli, jota käytetään yleensä HTTP-viestinnässä. RESTful API (tai yksinkertaisesti REST API) ovat sovellusrajapintoja, jotka noudattavat REST-periaatteita, joiden avulla web-asiakkaat ja palvelimet voivat olla vuorovaikutuksessa valtavan määrän web-resursseja. REST-sovellusliittymissä käytetään tavanomaisia HTTP-verbejä (menetelmiä) ja tilakoodeja, jotka tarjoavat jonkin tason standardointia. Niitä käytetään HTTP-URL-osoitteiden kautta, ja niitä käytetään laajalti verkkopalveluissa.
Huom.: REST API: t ovat valtiottomia, kuten HTTP-protokolla itse, mikä tarkoittaa, että ne eivät tallenna mitään tietoja nykyisistä yhteyksistä tai istunnoista. Rauhalliset verkkopalvelut tarjoavat tapoja käyttää ja manipuloida resursseja, kun taas istunnon hallinta tulisi hoitaa sovelluksella.
kaksi REST API Security-tasoa
ennen kuin pääsemme teknisiin yksityiskohtiin, on huomattava yksi tärkeä asia. Web API altistaa käyttöliittymän web-sovellus, joten sinun täytyy ajatella turvallisuutta kahdella tasolla: pääsy API ja sitten pääsy sovellukseen.
API-tasolla tarvitset oikean todennuksen, valtuutuksen, käyttöoikeudet ja niin edelleen varmistaaksesi, että vain sallitut asiakkaat voivat käyttää rajapintaa ja suorittaa vain sallittuja toimintoja. Sovellustasolla sinun on varmistettava, että sovelluksen päätepisteet (URL-osoitteet, joita käytetään käyttöliittymän käyttämiseen) eivät ole alttiita hyökkäyksille, jotka pääsevät käyttöliittymän läpi tai ohittavat sen.
Katsotaanpa, miten voit varmistaa REST API: n turvallisuuden näillä kahdella tasolla. Yksityiskohtaista keskustelua API-tietoturvan parhaista käytännöistä on OWASP REST Security-Lunttilapussa.
turvallisen API-liittymän varmistaminen
useimmat Verkkoliittymät altistuvat Internetille, joten ne tarvitsevat sopivia turvamekanismeja väärinkäytösten estämiseksi, arkaluonteisten tietojen suojaamiseksi ja sen varmistamiseksi, että vain todennetut ja valtuutetut käyttäjät voivat käyttää niitä.
yhteyden suojaus
suojaus alkaa itse HTTP-yhteydestä. Suojattujen REST-sovellusliittymien tulisi tarjota vain HTTPS-päätepisteitä sen varmistamiseksi, että kaikki API-viestintä on salattu SSL/TLS-järjestelmällä. Näin asiakkaat voivat todentaa palvelun ja suojata API-tunnukset ja lähetetyt tiedot.
API Access Control
monet Verkkoliittymät ovat käytettävissä vain todennetuille käyttäjille esimerkiksi siksi, että ne ovat yksityisiä tai vaativat rekisteröitymistä tai maksamista. Koska REST API: t ovat kansalaisuudettomia, kulunvalvonta hoidetaan paikallisilla päätepisteillä. Yleisimmät REST API-todennusmenetelmät ovat:
- HTTP Basic Authentication: valtakirjat lähetetään suoraan HTTP-otsakkeissa Base64-koodauksessa ilman salausta. Tämä on yksinkertaisin todennusmenetelmä ja helpoin toteuttaa. Se on myös vähiten turvallinen, koska salassapidettävät tiedot välitetään pelkkänä tekstinä, joten niitä tulee käyttää vain HTTPS: n kanssa.
- JSON Web Tokens (JWT): valtakirjat ja muut pääsyparametrit lähetetään JSON-tietorakenteina. Nämä access tokens voidaan allekirjoittaa Kryptografisesti ja ovat ensisijainen tapa valvoa pääsyä REST API. Katso OWASP JWT lunttilappu saadaksesi nopean yleiskuvan JSON Web Tokeneista, ja RFC 7519 saadaksesi täyden erittelyn.
- OAuth: standardin OAuth 2.0 mekanismeja voidaan käyttää autentikointiin ja valtuutukseen. OpenID Connect mahdollistaa turvallisen todennuksen OAuth 2.0: ssa. Esimerkiksi Googlen sovellusliittymät käyttävät OAuth 2.0: aa todennukseen ja valtuutukseen.
KÄYTTÄJÄLUPA API-avaimilla
API-avaimet tarjoavat tavan valvoa pääsyä julkisiin LEPOPALVELUIHIN. Julkisten verkkopalvelujen operaattorit voivat käyttää API-avaimia SOVELLUSRAJOITUSTEN täytäntöönpanoon API-puheluissa ja palvelunestohyökkäysten lieventämiseen. Monetisoiduissa palveluissa organisaatiot voivat käyttää API-avaimia tarjotakseen pääsyn ostettuun pääsysuunnitelmaan perustuen.
API-Asiakasrajoitukset
tietoturvariskien minimoimiseksi REST-palvelun ylläpitäjien tulisi rajoittaa asiakkaiden liittäminen palvelun vaatimiin vähimmäisominaisuuksiin. Tämä alkaa rajoittamalla tuettuja HTTP-menetelmiä varmistaaksesi, että väärin määritetyt tai haitalliset asiakkaat eivät voi suorittaa mitään toimia API-määrittelyn ja sallitun käyttöoikeustason ulkopuolella. Esimerkiksi jos API sallii vain GET-pyynnöt, POST – ja muut pyyntötyypit tulee hylätä siten, että vastauskoodi 405-menetelmää ei sallita.
sellaisten sovellusten suojaaminen, jotka altistavat API: n
kun asiakkaalla on laillinen pääsy, sinun on suojattava taustalla oleva verkkosovellus epämuodostuneilta ja haitallisilta syötöiltä. REST API-puhelut ja-vastaukset voivat sisältää myös salassapidettäviä tietoja, joita on valvottava.
API-viestinnän arkaluonteiset tiedot
API-puhelut sisältävät usein tunnistetietoja, API-avaimia, istuntosalakkeita ja muita arkaluonteisia tietoja. Jos nämä tiedot sisältyvät suoraan URL-osoitteisiin, ne voidaan tallentaa web-palvelimen lokeihin ja vuotaa, jos verkkorikolliset käyttävät lokeja. Luottamuksellisten tietojen vuotamisen välttämiseksi levolliset verkkopalvelut lähettäisivät ne aina HTTP-pyyntöjen otsakkeissa tai pyyntöelimessä (POST-ja PUT-pyynnöt).
Content Type Validation
jatkaen API-asiakasrajoitusten teemaa, REST Servicesin tulisi määritellä tarkasti sallitut sisältötyypit ja hylätä pyynnöt, joiden HTTP-otsikoissa ei ole oikeita ilmoituksia. Tämä tarkoittaa, että sekä Content-Type
: n että Accept
: n otsikon sallitut tyypit on tarkoin eriteltävä yhdessä merkistön kanssa (mahdollisuuksien mukaan). Jos palvelu sisältää JavaScriptin (tai muun komentosarjakoodin), sen tulee varmistaa, että sisällöntyyppi otsikossa on sama kuin pyyntöelimessä, esimerkiksi application/javascript
. Tämä auttaa estämään header injektio hyökkäyksiä.
Vastausturvaotsikot
LISÄOTSAKKEITA voidaan asettaa rajoittamaan pyyntöjen tyyppiä ja laajuutta. Näitä ovat X-Content-Type-Options: nosniff
MIME-nuuskintaan perustuvien XSS-hyökkäysten estäminen ja X-Frame-Options: deny
klikkausyritysten estäminen vanhemmissa selaimissa.
jos palvelu ei tue verkkotunnusten välisiä puheluita, sen pitäisi poistaa Cors (cross-origin resource sharing) vastausotsikoissaan. Jos tällaisia pyyntöjä on odotettavissa, CORS-otsakkeissa olisi täsmennettävä sallitut alkuperät.
Input Validation
API-rajapinnat on suunniteltu automaattiseen käyttöön ilman käyttäjän vuorovaikutusta, joten on erityisen tärkeää varmistaa, että kaikki syötteet ovat voimassa ja odotettuja. Kaikki pyynnöt, jotka eivät ole API-spesifikaation mukaisia, on hylättävä. Syöttötietojen validoinnissa sovelletaan tyypillisiä parhaita käytäntöjä koskevia ohjeita:
- käsittele kaikki parametrit, oliot ja muut syöttötiedot epäluotettavina.
- käytä sisäänrakennettua validointitoimintoa, jos se on käytettävissä.
- Tarkista pyynnön koko ja sisällön pituus ja tyyppi.
- käytä vahvaa konekirjoitusta API-parametreille (jos tuettu).
- SQL-injektion estämiseksi Vältä rakennuskyselyjä manuaalisesti – käytä parametroituja kyselyjä sen sijaan.
- Whitelist parametriarvot ja merkkijonosyötteet mahdollisuuksien mukaan.
- kirjaa kaikki syöttötietojen validointivirheet tunnistaaksesi tilitietojen täyttöyritykset.
miksi REST API Security Is Important
Web API: t ovat nykyaikaisen web-ja mobiilikehityksen selkäranka. Niiden avulla sovellukset ja palvelut voivat kommunikoida ja vaihtaa tietoja laitteisto-ja ohjelmistoalustojen välillä. Vaikka myös muita API-formaatteja on edelleen käytössä (esimerkiksi SOAP), REST-sovellusliittymät ovat nyt hallitseva tyyppi, ja niiden osuus kaikista julkisista Verkkoliittymistä on yli 80%. Ne tarjoavat takapään suurimmalle osalle mobiilisovelluksia ja IoT-laitteita ja mahdollistavat helpon integraation järjestelmien ja sovellusten välillä.
koska ne käyttävät samaa teknologiaa kuin verkkosovellukset, REST API: t voivat olla alttiita samoille hyökkäyksille. Ohjelmointirajapintoja ei kuitenkaan ole suunniteltu manuaalista käyttöä varten, joten niiden testaaminen voi olla vaikeaa, varsinkin jos jotkin päätepisteet ja ominaisuudet ovat paperittomia. API-tietoturvatestaus vaatii tarkat automatisoidut työkalut täydellisen kattavuuden varmistamiseksi. Netsparker tarjoaa täyden tuen REST API haavoittuvuuden skannaus erilaisia todennusmenetelmiä ja automaattinen URL uudelleenkirjoitus.
Katso täydelliset tekniset tiedot netsparker REST API test site-dokumentaatiosta ja lue koko artikkelimme REST API-sovellusliittymien skannaamisesta netsparkerin haavoittuvuuksien varalta.
tekijästä
teknisen sisällön kirjoittaja netsparkerissa. Hyödyntäen kokemustaan IT-toimittajana ja teknisenä kääntäjänä, hän tekee parhaansa tuodakseen verkkoturvallisuuden laajemmalle yleisölle netsparkerin blogissa ja verkkosivuilla.