Varför och hur säkrar jag API-slutpunkten?

Hur säkrar du ditt API?

Det är den digitala ekonomins explosionsålder och enorma databelastningar leds genom API:er. Affärer, spel, utbildning, väder, vetenskap, konst. . . namnge det; allt fungerar på API:er. För en värld som är så fundamentalt beroende av API:er är det förvånansvärt lite fokus på säkerhet.

För utvecklare räcker standardinställningarna för deras ramverk; eller ännu värre, när inga ramverk används, tror de att de följer säkerhetspraxis. För systemadministratörer är standardsäkerheten som erbjuds av deras infrastruktur eller tjänsteleverantör vad de litar på.

Ingen vacker syn alls, om du frågar mig.

Källa: developer.ibm.com

Det behöver inte sägas att det är mycket som står på spel, som vi inser först när något verkligen hemskt händer.

Men först till kvarn. 🙂

Varför säkra API-slutpunkter?

Det här måste vara enkelt, eller hur?

Vi måste säkra slutpunkter för, ja, det är vad verksamheten beror på.

Även om det är ett tillräckligt starkt argument i sig, vill jag vidga perspektivet lite och lyfta fram andra relaterade, men lika dödliga, konsekvenser.

Affärsförlust 📉

Detta är den uppenbara. Om någon lyckas krångla med dina API-slutpunkter kommer det att få allt att stanna. Säkerhetsintrång kan också ta lång tid att återhämta sig från, vilket översätts till självmord i affärsmässiga termer. Även om det är sant att de flesta företag förmodligen inte kommer att påverkas av en timme eller två av driftstopp, är det för vissa inte tillåtet.

Föreställ dig att en valutaväxling är nere i några minuter!

Överensstämmelsefrågor

Om du inte säkrar dina API:er ordentligt kan du hamna i allvarliga problem, beroende på vilken geografi eller bransch du har att göra med. Om du till exempel betjänar banksektorn (i synnerhet i EU), kommer kostnaden för att bli upptäckt med osäkra API:er att resultera i enorma juridiska problem och problem med efterlevnaden. Så mycket att det till och med kan innebära slutet på ditt företag.

Förlust av rykte

Att bli hackad är smärtsamt nog i sig, men om nyheter kommer ut offentligt kommer det att bli en oåterkallelig förlust för din varumärkesimage. Sony har till exempel blivit hackad några gånger mycket illa vid det här laget, och i säkerhetskretsar är företaget ett åtlöje av sorter.

Även om ingen faktisk förlust av data eller pengar uppstår, lycka till med att försöka övertyga dina smutsiga kunder. 🙂

Uppblåsta infrastrukturräkningar 💰

När ditt API körs på infrastruktur förbrukar det resurser (mest bandbredd, CPU och minne). Till exempel, där API:et inte är ordentligt säkrat och skadliga utomstående kan interagera med det, är det möjligt för dem att tvinga API:et att fortsätta göra mycket meningslöst arbete (t.ex. köra tunga databasfrågor), vilket kan skjuta öka dina räkningar av skäl.

På plattformar där automatisk skalning av resurser är aktiverad (som AWS), kan resultaten vara chockerande (off-topic, men om du någon gång fastnar i en soppa som denna på AWS, har de ganska förståelse för situationen och avstår omedelbart den uppblåsta sedeln – åtminstone i skrivande stund!).

Lagmoral

Så du kanske tänker att teamet som låter dessa kompromisser ske kommer att tappa moralen över dem. Tja, inte riktigt. Det är möjligt att kompromisserna berodde på svag infrastruktursäkerhet, vilket kommer att göra utvecklarna nedslående eller vice versa.

Skulle detta hända tillräckligt med tid, kommer du att ha en kultur på dina händer som du kommer att ångra att du lät utvecklas.

Konkurrentens vinster

Så låt oss säga att det var ett brott, men det var ingen faktisk förlust. Dina konkurrenter kommer dock att använda incidenten för att skapa sitt eget API och hävda hur mycket säkrare deras är (även om det inte är det!). Återigen, lycka till med att försöka övertyga marknaden. 🙂

Sammantaget finns det konsekvenser för säkerhetsintrång som går utöver att förlora pengar.

Bästa metoder för att säkra API-slutpunkter

Tack och lov finns det vissa lätta att implementera och välförstådda metoder som du kan tillämpa på dina API-slutpunkter för att säkra dem. Här är vad de flesta säkerhetsexperter rekommenderar.

HTTPS alltid 🔒

Om dina API-slutpunkter tillåter API-konsumenter att prata över http eller andra osäkra protokoll, utsätter du dem för en stor risk. Lösenord, hemliga nycklar och kreditkortsinformation kan enkelt bli stulen som någon annan man-i-mitten attackeller packet sniffer tool kan läsa dem som vanlig text.

Så gör alltid https till det enda tillgängliga alternativet. Oavsett hur trivial en slutpunkt kan verka, bör det inte ens vara ett alternativ att ansluta via http. TLS-certifikat kostar inte mycket; du kan köpa för så lite som $20 från SSL butik.

Enkelriktad hashning av lösenord

Lösenord bör aldrig lagras som vanlig text, eftersom i händelse av att ett säkerhetsintrång inträffar kommer alla användarkonton att äventyras. Samtidigt bör symmetrisk kryptering absolut undvikas, eftersom alla angripare som är geniala och ihärdiga nog kommer att kunna bryta dem.

Det enda föreslagna alternativet är asymmetriska (eller ”envägs”) krypteringsalgoritmer för lagring av lösenord. På så sätt kommer varken en angripare eller någon utvecklare eller systemadministratör inom företaget att få läsa kundlösenord.

Stark autentisering 💪

Nu har nästan varje API en form av autentisering, men enligt min mening fungerar OAuth2-systemet bäst. Till skillnad från andra autentiseringsmetoder delar den upp ditt konto i resurser och tillåter endast begränsad åtkomst till autentiseringstokenbäraren.

Samtidigt, en annan mycket bra praxis att ställa in tokens så att de löper ut var, till exempel, 24 timmar, så att de behöver uppdateras. På så sätt, även om din token läcker, finns det en chans att 24-timmarsdeadline kommer att minska effekten av överträdelsen.

Tillämpa prisbegränsning

Om du inte har ett API som används av miljontals människor varje minut, är det en mycket bra idé att upprätthålla en gräns för hur många anrop en klient kan göra till API:t under ett givet tidsfönster.

Detta är mest för att avskräcka bots, som kan fortsätta att skicka hundratals samtidiga förfrågningar varje sekund och få ditt API att äta upp systemresurser utan goda skäl. Alla ramverk för webbutveckling kommer med en hastighetsbegränsande mellanprogram (och om inte, är det ganska enkelt att lägga till det via ett bibliotek) som tar bara någon minut att installera.

Validera indata

Det här låter som en självklarhet, men du kommer att bli förvånad över hur många API:er som faller för detta. Att validera indata innebär inte bara att kontrollera att inkommande data är i ett korrekt format, utan också att inga överraskningar är möjliga. Ett enkelt exempel är SQL-injektion, som kan radera dina databaser om du låter frågesträngarna gå förbi med liten eller ingen kontroll.

Ett annat exempel är att validera storleken på POST-begäran och returnera en korrekt felkod och ett meddelande till klienten. Att försöka acceptera och analysera löjligt stora indata kommer bara att tjäna till att spränga API:et.

Tillämpa IP-adressfiltrering, om tillämpligt

Om du gillar B2B-tjänster och dina API:er används av företag från fastställda platser, överväg att lägga till ett extra säkerhetslager som begränsar IP-adresser som kan komma åt ditt API. För varje ny plats och ny klient kommer IP-adressen att behöva kontrolleras mot den inkommande begäran.

Ja, det lägger till olägenhet för onboarding, men slutresultatet är mycket strängare säkerhet än vad som annars kan uppnås.

Verktyg för att öka API-skyddet

Finns det verktyg som kan hjälpa oss att skanna sårbarhet, eller ännu bättre, erbjuda den första försvarslinjen när det gäller att säkra API:er?

Lyckligtvis, ja. Det finns flera verktyg du kan använda men varnas att i slutet av dagen är ingen säkerhetsstrategi perfekt. Med det sagt kan dessa verktyg öka din API-säkerhet många gånger, så de rekommenderas.

Metasploit är ett extremt populärt ramverk med öppen källkod för penetrationstestning av webbappar och API:er. Den kan skanna ditt API på flera olika parametrar och göra en uttömmande säkerhetsgranskning för olika nivåer av sårbarheter.

Till exempel kan säkerhetsskanningen som utförs av Metasploit berätta om dina API-signaturer ger bort de underliggande teknologierna och operativsystemet eller inte; att dölja detta är ofta halva kampen som vunnits i API-säkerhet.

Även om kärnramverket med öppen källkod i allmänhet räcker, finns det utmärkta betalprodukter som är byggda ovanpå Metasploit som är värda att titta på. Pro-planen är bra om du vill ha premiumsupport och kommer att använda ramverket på djupet, men är i allmänhet inte nödvändigt om ditt team är tillräckligt erfaret.

AppTrana

AppTranas dedikerade API-skydd funktioner erbjuder en omfattande riskbaserad lösning för att skydda mot ett brett utbud av API-hot, inklusive OWASP API topp 10, API-baserade DDoS och botattacker, inbäddade hot, dataläckage, etc. Med obegränsad automatisk API-skanning backad med manuell penna. testning övervakar den kontinuerligt ditt riskpoäng för att stärka säkerhetsställningen.

AppTranas API-skydd säkerställer den mest omfattande lösningen med kombinationen av riskdetektering, API-hotdetektering, API Positiva säkerhetspolicyer, API-specifika DDoS-policyer, API-specifika bot-moduler och API Discovery-funktioner.

Dess API-upptäckt säkerställer fullständig insyn i API-anrop, inklusive odokumenterade och skugg-API:er, för att förstå din API-attackyta. Detta dedikerade API-skydd samlar in information om användardetaljer, API-användningsbeteende, hotaktivitet, API-anropskartor och mer för att visa upp skyddsstatusen med realtidsanalys.

Med Indusface AppTrana kan du skapa skräddarsydda API-specifika policyer för att blockera API-fokuserad missbruk i realtid.

Cloudflare

Inte bara CDN utan Cloudflare erbjuder massor av säkerhetsfunktioner som WAF, hastighetsbegränsning, DDoS-skydd, vilket kommer att vara avgörande för att säkra ditt API från onlinehot.

Invicti

Invicti levereras med en USP för ”proof-based scanning”. I enklare termer är det ofta möjligt att oregelbundna nätverksförhållanden eller några mindre kända API-beteenden tolkas som kryphål i säkerheten, som senare visar sig vara felaktiga.

Detta slösar med resurser, eftersom alla rapporterade sårbarheter måste skannas igen manuellt för att bekräfta att de inte är falska positiva. Invicti säger att verktyget kan ge dig ett tillräckligt starkt proof of concept för rapporterna, vilket tar bort tvivel om de svaga länkarna som hittas.

Med företag som Sony, Religare, Coca-Cola, Huawei, etc., på sin kundlista, kan du vara säker på att dessa människor gör något rätt. 🙂

SoapUI Pro

Byggd av SmartBear, SoapUI Pro är ett intuitivt och enkelt sätt att skapa API-tester och få korrekta, datadrivna rapporter om dem. Den integreras också snyggt med din CI/CD-pipeline, vilket säkerställer att inga nya kodtillägg äventyrar säkerheten för ditt API.

SoapUI kan arbeta med Swagger, OAS och andra populära API-standarder, vilket avsevärt minskar tiden för att komma igång. Med klienter som Microsoft, Cisco, MasterCard, Oracle, etc., och planer som börjar på $659 per år, är detta ett värdigt verktyg för säkrare API:er.

Okta

Prova Okta för att göra det möjligt för dina utvecklare att koncentrera sig på att förbättra användarupplevelsen samt säkra din företagsdata effektivt. Den erbjuder OAuth 2.0-auktorisering och är designad för både mobil- och webbapplikationer. Den är också kompatibel med API-hanteringstjänster från tredje part.

Använd Okta för att skapa, granska och underhålla alla policyer för API-åtkomst genom användarvänliga och specialbyggda konsoler utan att behöva anpassade koder. Det ger dig extra flexibilitet så att du inte behöver säkra dina API:er med hjälp av extra gateway-instanser.

Okta omfattar identitetsdriven policy för att kontrollera olika typer av användare och tjänster under ett tak. Definiera åtkomst beroende på användarprofiler, nätverk, grupper, samtycke och klienter. Utöka tokens med hjälp av dynamisk data från dina interna system för att njuta av snabbare integration och sömlös migrering.

Det underlättar en centraliserad administration för API:er och låter dig skydda API-resurser. Okta fokuserar på säkerhet genom att du kan skydda åtkomst mellan olika mikrotjänster.

Slutsats

Det finns ingen brist av API-säkerhetsverktyg som finns på marknaden, oavsett om det är öppen källkod, gratis eller kommersiellt, eller någon kombination av dessa.

Prova några av dem från listan och se vad som fungerar bäst för dina krav.