De ce și cum să securizăm API Endpoint?

Cum vă securizați API-ul?

Este epoca exploziei economiei digitale, iar încărcările masive de date sunt transmise prin intermediul API-urilor. Afaceri, jocuri, educație, vreme, știință, arte. . . numiți; totul funcționează pe API-uri. Pentru o lume atât de dependentă de API-uri, este surprinzător de puțin accent pe securitate.

Pentru dezvoltatori, setările implicite ale cadrelor lor sunt suficiente; sau chiar mai rău, atunci când nu sunt folosite cadre, ei cred că urmează practicile de securitate. Pentru administratorii de sistem, securitatea implicită oferită de infrastructura sau furnizorul de servicii este pe care se bazează.

Nu e deloc frumoasă, dacă mă întrebați pe mine.

Sursa: developer.ibm.com

Inutil să spun că sunt multe în joc, de care ne dăm seama doar când ceva cu adevărat groaznic se întâmplă.

Dar mai întâi lucrurile. 🙂

De ce securizați punctele finale API?

Asta trebuie să fie o idee simplă, nu?

Trebuie să securizăm punctele finale pentru că, ei bine, de asta depinde afacerea.

Deși acesta este un argument suficient de puternic în sine, vreau să lărgesc puțin punctul de vedere și să evidențiez alte consecințe conexe, dar la fel de mortale.

Pierderea afacerii 📉

Acesta este cel evident. Dacă cineva reușește să se încurce cu punctele finale ale API-ului, totul va opri totul. Încălcările de securitate pot dura, de asemenea, mult timp pentru a se recupera, ceea ce se traduce prin sinucidere în termeni de afaceri. Deși este adevărat că majoritatea companiilor probabil nu vor fi afectate de o oră sau două de nefuncționare, pentru unii, acest lucru nu este permis.

Imaginați-vă că un schimb valutar este oprit pentru câteva minute!

Probleme de conformitate

Nesecurizarea corectă a API-urilor vă poate duce la probleme serioase, în funcție de zonele geografice sau industriile cu care aveți de-a face. De exemplu, dacă deserviți industria bancară (în UE, în special), costul de a fi descoperit că serviți cu API-uri nesigure va avea ca rezultat probleme masive legale și de conformitate. Atât de mult încât ar putea chiar și sfârșitul afacerii tale.

Pierderea reputației

A fi piratat este destul de dureros în sine, dar dacă știrile apar în public, va exista o pierdere irecuperabilă a imaginii mărcii tale. De exemplu, Sony a fost piratat de câteva ori foarte rău până acum, iar în cercurile de securitate, compania este un obiect ale batjocurii de feluri.

Chiar dacă nu se produce nicio pierdere reală de date sau de bani, mult noroc în încercarea de a vă convinge clienții care rătăcesc. 🙂

Facturi de infrastructură umflate 💰

Când API-ul dvs. rulează pe infrastructură, consumă resurse (lățime de bandă, CPU și memorie, în principal). De exemplu, în cazul în care API-ul nu este securizat în mod corespunzător, iar străinii rău intenționați sunt capabili să interacționeze cu el, este posibil ca aceștia să forțeze API-ul să continue să facă o mulțime de lucrări inutile (executarea de interogări grele de baze de date, de exemplu), care poate trage. să vă ridicați facturile din motive.

Pe platformele în care scalarea automată a resurselor este activată (cum ar fi AWS), rezultatele pot fi șocante (în afara subiectului, dar dacă ești vreodată prins într-o supă ca aceasta pe AWS, ei înțeleg destul de mult situația și renunță prompt la eliberare). factura umflată — cel puțin din momentul scrierii!).

  Cum să găsiți (și să derulați la) mesaje vechi pe iPhone

Moralul echipei

Deci, s-ar putea să vă gândiți, că echipa care a lăsat aceste compromisuri să se întâmple își va pierde moralul. Ei bine, nu chiar. Este posibil ca compromisurile să se fi datorat securității slabe a infrastructurii, ceea ce va descuraja dezvoltatorii sau invers.

Dacă acest lucru se întâmplă suficient timp, veți avea o cultură pe care o veți regreta că ați lăsat-o să se dezvolte.

Câștigurile concurenților

Deci, să presupunem că a existat o încălcare, dar nu a existat nicio pierdere reală. Cu toate acestea, concurenții tăi vor folosi incidentul pentru a-și crea propriul API și pentru a afirma cât de mult mai sigur este al lor (chiar dacă nu este!). Încă o dată, succes în încercarea de a convinge piața. 🙂

Una peste alta, există consecințe asupra breșelor de securitate care depășesc pierderea de bani.

Cele mai bune practici pentru securizarea punctelor finale API

Din fericire, există anumite practici ușor de implementat și bine înțeles pe care le puteți aplica punctelor finale API pentru a le securiza. Iată ce recomandă majoritatea experților în securitate.

HTTPS întotdeauna 🔒

Dacă punctele finale API le permit consumatorilor API să vorbească prin http sau alte protocoale nesecurizate, îi expuneți la un risc mare. Parolele, cheile secrete și informațiile despre cardul de credit pot fi furate cu ușurință ca oricare atacul omului la mijlocsau instrumentul de sniffer de pachete le poate citi ca text simplu.

Deci, faceți întotdeauna https singura opțiune disponibilă. Indiferent cât de banal ar părea un punct final, conectarea prin http nici măcar nu ar trebui să fie o opțiune. Certificatul TLS nu costă mult; puteți cumpăra cu doar 20 USD de la Magazin SSL.

Hashing unidirecțional al parolei

Parolele nu ar trebui să fie niciodată stocate ca text simplu, deoarece în cazul în care apare o încălcare a securității, toate conturile de utilizator vor fi compromise. În același timp, criptarea simetrică ar trebui evitată cu strictețe, deoarece orice atacator suficient de ingenios și persistent va putea să le spargă.

Singura opțiune sugerată este algoritmii de criptare asimetrici (sau „unidirecționali”) pentru stocarea parolelor. În acest fel, nici un atacator, nici vreun dezvoltator sau administrator de sistem din cadrul companiei nu va putea citi parolele clienților.

Autentificare puternică 💪

Acum, aproape fiecare API are o formă de autentificare, dar după părerea mea, sistemul OAuth2 funcționează cel mai bine. Spre deosebire de alte metode de autentificare, vă împarte contul în resurse și permite doar acces limitat la purtătorul de token de autentificare.

În același timp, o altă practică foarte bună de a seta jetoanele să expire la fiecare, să zicem, 24 de ore, astfel încât acestea să fie reîmprospătate. În acest fel, chiar dacă jetonul dvs. este scurs, există șansa ca termenul limită de 24 de ore să reducă impactul încălcării.

Aplicați limitarea ratei

Cu excepția cazului în care aveți un API care este folosit de milioane de oameni în fiecare minut, este o idee foarte bună să impuneți o limită a numărului de apeluri pe care un client le poate face către API într-o anumită fereastră de timp.

  [Explained] Cum se creează o hartă termică în Python

Acest lucru este în principal pentru a descuraja roboții, care pot continua să trimită sute de solicitări simultane în fiecare secundă și pot face ca API-ul dvs. să consume resurse de sistem fără un motiv întemeiat. Toate cadrele de dezvoltare web vin cu un middleware care limitează rata (și dacă nu, este destul de ușor să îl adăugați printr-o bibliotecă) care durează doar un minut sau cam așa ceva pentru a se configura.

Validați intrarea

Sună ca o idee deloc, dar veți fi surprins de câte API-uri se îndrăznesc de asta. Validarea introducerii nu înseamnă doar verificarea faptului că datele primite sunt într-un format corect, ci și că nu sunt posibile surprize. Un exemplu simplu este injectarea SQL, care vă poate șterge bazele de date dacă lăsați șirurile de interogare să treacă cu puțină verificare sau deloc.

Un alt exemplu este validarea dimensiunii cererii POST și returnarea unui cod de eroare adecvat și a unui mesaj către client. Încercarea de a accepta și de a analiza intrări ridicol de mari va servi doar la aruncarea în aer a API-ului.

Implementați filtrarea adreselor IP, dacă este cazul

Dacă vă plac serviciile B2B și API-urile dvs. sunt folosite de companii din locații stabilite, luați în considerare adăugarea unui nivel suplimentar de securitate care restricționează adresele IP care vă pot accesa API-ul. Pentru fiecare locație nouă și client nou, adresa IP va trebui verificată în raport cu solicitarea primită.

Da, adaugă neplăceri la onboarding, dar rezultatul final este o securitate mult mai strictă decât se poate obține altfel.

Instrumente pentru creșterea protecției API

Există instrumente care ne pot ajuta să scanăm vulnerabilitățile sau, chiar mai bine, să ofere prima linie de apărare atunci când vine vorba de securizarea API-urilor?

Din fericire, da. Există mai multe instrumente pe care le puteți folosi, dar fiți atenționat că, la sfârșitul zilei, nicio strategie de securitate nu este perfectă. Acestea fiind spuse, aceste instrumente vă pot spori de multe ori securitatea API, așa că sunt recomandate.

Metasploit este un cadru open-source extrem de popular pentru testarea de penetrare a aplicațiilor web și a API-urilor. Îți poate scana API-ul pe mai mulți parametri diferiți și poate face un audit de securitate exhaustiv pentru diferite niveluri de vulnerabilități prezente.

De exemplu, scanarea de securitate efectuată de Metasploit vă poate spune dacă semnăturile dvs. API dezvăluie tehnologiile de bază și sistemul de operare sau nu; ascunderea acestui lucru este adesea jumătate din bătălia câștigată în securitatea API.

În timp ce cadrul de bază open-source este în general suficient, există produse plătite excelente, construite pe Metasploit, care merită aruncate o privire. Planul pro este excelent dacă doriți asistență premium și veți folosi cadrul în profunzime, dar, în general, nu este necesar dacă echipa dvs. are suficientă experiență.

AppTrana

Protecția API dedicată AppTrana caracteristicile oferă o soluție cuprinzătoare bazată pe risc pentru a proteja împotriva unei game largi de amenințări API, inclusiv top 10 API OWASP, atacuri DDoS și bot bazate pe API, amenințări încorporate, scurgeri de date etc. Cu scanare automată nelimitată API susținută cu creion manual de testare, monitorizează continuu scorul dvs. de risc pentru a consolida postura de securitate.

  Cum să resetați Samsung Galaxy S8 fără un Cont Google

Protecția API a AppTrana asigură cea mai cuprinzătoare soluție, cu combinația de detectare a riscurilor, detecție a amenințărilor API, politici de securitate pozitivă API, politici DDoS specifice API, module Bot specifice API și funcții de descoperire API.

Descoperirea API-urilor sale asigură vizibilitate completă asupra apelurilor API, inclusiv a API-urilor nedocumentate și umbră, pentru a înțelege suprafața ta de atac API. Această protecție dedicată API colectează informații despre detaliile utilizatorului, comportamentul de utilizare a API-ului, activitatea amenințărilor, hărțile apelurilor API și multe altele pentru a prezenta starea protecției cu analize în timp real.

Folosind Indusface AppTrana, puteți genera politici personalizate specifice API-ului pentru a bloca abuzurile centrate pe API în timp real.

Cloudflare

Nu doar CDN ci Cloudflare oferă o mulțime de funcții de securitate precum WAF, limitarea ratei, protecția DDoS, care vor fi esențiale în securizarea API-ului dvs. de amenințările online.

Invicti

Invicti vine cu un USP de „scanare bazată pe dovezi”. În termeni mai simpli, este adesea posibil ca condițiile neregulate ale rețelei sau unele comportamente API mai puțin cunoscute să fie interpretate ca lacune de securitate, care mai târziu s-au dovedit a fi greșite.

Acest lucru irosește resurse, deoarece toate vulnerabilitățile raportate, trebuie scanate din nou manual pentru a confirma că nu sunt fals pozitive. Invicti spune că instrumentul vă poate oferi o dovadă a conceptului suficient de puternică pentru rapoarte, eliminând îndoielile cu privire la legăturile slabe găsite.

Cu companii precum Sony, Religare, Coca-Cola, Huawei etc., pe lista lor de clienți, puteți fi sigur că acești oameni fac ceva bine. 🙂

SoapUI Pro

Construit de SmartBear, SoapUI Pro este o modalitate intuitivă și ușoară de a crea teste API și de a obține rapoarte precise, bazate pe date. De asemenea, se integrează perfect cu conducta dvs. CI/CD, asigurându-vă că nicio adăugare de cod nou nu compromite securitatea API-ului dvs.

SoapUI este capabil să funcționeze cu Swagger, OAS și alte standarde API populare, reducând semnificativ timpul de începere. Cu clienți precum Microsoft, Cisco, MasterCard, Oracle etc. și planuri care încep de la 659 USD pe an, acesta este un instrument demn pentru API-uri mai sigure.

Okta

Încerca Okta pentru a le permite dezvoltatorilor să se concentreze pe îmbunătățirea experienței utilizatorului, precum și pe securizarea eficientă a datelor companiei. Oferă autorizație OAuth 2.0 și este conceput atât pentru aplicații mobile, cât și pentru web. Este, de asemenea, compatibil cu serviciile de management API terțe.

Utilizați Okta pentru a crea, audita și menține toate politicile de acces API prin console ușor de utilizat și create special, fără a fi nevoie de coduri personalizate. Vă oferă o flexibilitate suplimentară, astfel încât să nu trebuie să vă securizați API-urile folosind instanțe suplimentare de gateway.

Okta cuprinde o politică bazată pe identitate pentru a controla diferite tipuri de utilizatori și servicii sub un singur acoperiș. Definiți accesul în funcție de profilurile de utilizator, rețele, grupuri, consimțământ și clienți. Extindeți jetoanele folosind date dinamice din sistemele dvs. interne pentru a vă bucura de o integrare mai rapidă și o migrare fără întreruperi.

Facilitează o administrare centralizată a API-urilor și vă permite să protejați resursele API. Okta se concentrează pe securitate, permițându-vă să protejați accesul între diferite micro-servicii.

Concluzie

Există nu lipsesc de instrumente de securitate API disponibile pe piață, fie că este open source, gratuită sau comercială, sau orice combinație a acestora.

Încercați câteva dintre ele din listă și vedeți ce funcționează cel mai bine pentru cerințele dvs.