Sådan sikres REST API-sikkerhed

API ‘er (API’ er) giver bagenden til moderne Internet-og mobilapplikationer. API-opkald tegner sig for over 80% af al internettrafik, og cyberkriminelle er i stigende grad rettet mod API ‘ er, så det er afgørende at sikre API-sikkerhed på nettet. REST API ‘ er er den mest almindelige type API til internettjenester. Lad os se, hvad du kan gøre for at sikre REST API-sikkerhed.

REST API security

Hvad er en REST API?

REST (forkortelse for REpresentational State Transfer) er en arkitekturstil for internetudvikling, der normalt bruges sammen med HTTP-kommunikation. RESTful API ‘er (eller blot REST API’ er) er applikationsprogrammeringsgrænseflader, der følger REST-principper, så internetklienter og servere kan interagere med et stort udvalg af internetressourcer. REST API ‘ er bruger standard HTTP-verb (metoder) og statuskoder til at give et vist niveau af standardisering. De er tilgængelige via HTTP-URL ‘ er og bruges i vid udstrækning til internettjenester.

Bemærk: REST API ‘ er er statsløse som selve HTTP-protokollen, hvilket betyder, at de ikke gemmer nogen oplysninger om aktuelle forbindelser eller sessioner. RESTful internettjenester giver måder at få adgang til og manipulere ressourcer på, mens sessionsstyring skal håndteres af applikationen.

to niveauer af REST API sikkerhed

før vi kommer ind i de tekniske detaljer, er der en vigtig ting at bemærke. En API udsætter en grænseflade for en internetapplikation, så du skal tænke på sikkerhed på to niveauer: adgang til API ‘ en og derefter adgang til applikationen.

på API-niveau har du brug for den korrekte godkendelse, autorisation, adgangsrettigheder osv.for at sikre, at kun tilladte klienter kan bruge grænsefladen og kun udføre tilladte handlinger. På applikationsniveau skal du sikre dig, at dine applikationsendepunkter (de URL ‘ er, der bruges til at få adgang til grænsefladen) ikke er sårbare over for angreb, der kommer gennem grænsefladen eller omgår den.

lad os se, hvordan du kan sikre REST API-sikkerhed på disse to niveauer. For en detaljeret diskussion af bedste praksis for API-sikkerhed, se Cheat Sheet.

sikring af sikker API-adgang

de fleste API ‘ er er udsat for internettet, så de har brug for passende sikkerhedsmekanismer for at forhindre misbrug, beskytte følsomme data og sikre, at kun godkendte og autoriserede brugere kan få adgang til dem.

forbindelsessikkerhed

sikkerhed starter med selve HTTP-forbindelsen. Secure REST API ‘ er bør kun levere HTTPS-slutpunkter for at sikre, at al API-kommunikation krypteres ved hjælp af SSL/TLS. Dette giver kunderne mulighed for at godkende tjenesten og beskytter API-legitimationsoplysninger og overførte data.

API adgangskontrol

mange API ‘ er er kun tilgængelige for godkendte brugere, for eksempel fordi de er private eller kræver registrering eller betaling. Da REST API ‘ er er statsløse, håndteres adgangskontrol af lokale slutpunkter. De mest almindelige REST API-godkendelsesmetoder er:

  • HTTP Basic-godkendelse: legitimationsoplysninger sendes direkte i HTTP-overskrifter i Base64-kodning uden kryptering. Dette er den enkleste godkendelsesmetode og den nemmeste at implementere. Det er også den mindst sikre, da fortrolige data overføres som almindelig tekst, så det bør kun bruges i kombination med HTTPS.
  • JSON-Tokens: legitimationsoplysninger og andre adgangsparametre sendes som JSON-datastrukturer. Disse adgangstokens kan underskrives kryptografisk og er den foretrukne måde at kontrollere adgangen til REST API ‘ er på. Se Cheat Sheet for et hurtigt overblik over JSON-Tokens og RFC 7519 for den fulde specifikation.
  • OAuth: standard OAuth 2.0-mekanismer kan bruges til godkendelse og godkendelse. OpenID Connect tillader sikker godkendelse over OAuth 2.0. For eksempel bruger Googles API ‘ er OAuth 2.0 til godkendelse og autorisation.

brugertilladelse med API-nøgler

API-nøgler giver en måde at kontrollere adgangen til offentlige HVILETJENESTER. Operatører af offentlige internettjenester kan bruge API-nøgler til at håndhæve hastighedsbegrænsning for API-opkald og afbøde denial-of-service-angreb. For tjenester, der tjener penge, kan organisationer bruge API-nøgler til at give adgang baseret på den købte adgangsplan.

API-Klientbegrænsninger

for at minimere sikkerhedsrisici bør REST-serviceoperatører begrænse tilslutningsklienter til de minimale funktioner, der kræves til tjenesten. Dette starter med at begrænse understøttede HTTP-metoder for at sikre, at fejlkonfigurerede eller ondsindede klienter ikke kan udføre handlinger ud over API-specifikationen og det tilladte adgangsniveau. For eksempel, hvis API kun tillader GET-anmodninger, skal POST og andre anmodningstyper afvises med svarkode 405-metoden ikke tilladt.

beskyttelse af applikationer, der udsætter API ‘ er

når klienten har legitim adgang, skal du beskytte den underliggende internetapplikation mod misdannede og ondsindede input. REST API-opkald og svar kan også omfatte fortrolige data, der skal kontrolleres.

følsomme Data i API-kommunikation

API-opkald indeholder ofte legitimationsoplysninger, API-nøgler, sessionstokens og andre følsomme oplysninger. Hvis de er inkluderet direkte i URL ‘ er, kan disse oplysninger gemmes i serverlogfiler og lækkes, hvis der er adgang til logfilerne af cyberkriminelle. For at undgå at lække fortrolige oplysninger, bør altid sende det i HTTP-anmodningsoverskrifter eller anmodningsorganet (til POST-og PUT-anmodninger).

validering af indholdstype

fortsat temaet API-klientbegrænsninger bør REST-tjenester præcist definere tilladte indholdstyper og afvise anmodninger, der ikke har de korrekte erklæringer i deres HTTP-overskrifter. Dette betyder omhyggeligt at specificere tilladte typer i både Content-Type og Accept header sammen med tegnsættet (hvor det er muligt). Hvis tjenesten indeholder JavaScript (eller anden scriptkode), skal den sikre, at indholdstypen i overskriften er den samme som i anmodningsorganet, for eksempel application/javascript. Dette hjælper med at forhindre headerinjektionsangreb.

Svarsikkerhedsoverskrifter

yderligere HTTP-sikkerhedsoverskrifter kan indstilles til yderligere at begrænse typen og omfanget af anmodninger. Disse inkluderer X-Content-Type-Options: nosniff for at forhindre angreb baseret på MIME-sniffing og X-Frame-Options: deny for at forhindre clickjacking-forsøg hos ældre bro.sere.

hvis tjenesten ikke understøtter opkald på tværs af domæner, skal den deaktivere CORS (Cross-origin resource sharing) i svaroverskrifterne. Hvis sådanne opkald forventes, skal CORS-overskrifterne præcist angive den tilladte Oprindelse.

Input validering

API ‘ er er designet til automatisk adgang uden brugerinteraktion, så det er især vigtigt at sikre, at alle input er gyldige og forventede. Eventuelle anmodninger, der ikke er i overensstemmelse med API-specifikationen, skal afvises. Typiske retningslinjer for bedste praksis for validering af input gælder:

  • behandl alle parametre, objekter og andre inputdata som upålidelige.
  • Brug indbygget valideringsfunktionalitet, hvor den er tilgængelig.
  • kontroller anmodningens størrelse og indholdslængde og type.
  • brug stærk indtastning til API-parametre (hvis understøttet).
  • for at forhindre indsprøjtning af kvadratkilometer skal du undgå at oprette forespørgsler manuelt – brug parameteriserede forespørgsler i stedet.
  • hvidlisteparameterværdier og strengindgange, hvor det er muligt.
  • Log alle input validering fejl at opdage legitimationsoplysninger stuffing forsøg.

hvorfor REST API-sikkerhed er vigtig

API ‘ er er rygraden i moderne Internet-og mobiludvikling. De giver applikationer og tjenester mulighed for at kommunikere og udveksle data på tværs af maskinel-og programmelplatforme. Mens andre API-formater også stadig er i brug (for eksempel sæbe), er REST API ‘er nu den dominerende type og tegner sig for over 80% af alle offentlige API’ er. De giver bagenden til de fleste mobile applikationer og IoT-enheder og muliggør nem integration på tværs af systemer og applikationer.

da de bruger de samme teknologier som internetapplikationer, kan REST API ‘ er være sårbare over for de samme angreb. Samtidig er API ‘ er ikke designet til manuel adgang, så de kan være vanskelige at teste, især hvis nogle slutpunkter og funktioner er udokumenterede. API – sikkerhedstest kræver nøjagtige automatiserede værktøjer for at sikre fuldstændig dækning. Netsparker giver fuld støtte til REST API sårbarhedsscanning med en række godkendelsesmetoder og automatisk URL-omskrivning.

se Netsparker REST API test site dokumentation for komplette tekniske detaljer og læse vores fulde artikel om scanning REST API ‘ er for sårbarheder med Netsparker.

Banach

om forfatteren

se Banach

teknisk indholdsforfatter hos Netsparker. På baggrund af sin erfaring som IT-journalist og teknisk oversætter gør han sit bedste for at bringe internetsikkerhed til et bredere publikum på Netsparker blog og hjemmeside.

Hold dig opdateret om internetsikkerhedstendenser

You might also like

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.