19 АПИ безбедносних најбољих пракси за имплементацију и сигурност

Сигурност АПИ-ја је један од најважнијих аспеката о којима морате да водите рачуна у скоро свакој апликацији.

Данас су АПИ-ји најбољи начин за интеграцију ваше апликације са другим апликацијама. Они пружају приступ вашој апликацији и стога АПИ-ји морају бити довољно сигурни да не бисте добили нежељене посетиоце.

Хајде да погледамо неке пропусте АПИ-ја које могу бити претња вашој апликацији.

Уобичајене рањивости АПИ-ја

#1. Скриптовање на више локација (КССС)

КССС напади су уобичајени у веб апликацијама, али се могу десити и преко АПИ-ја ако долазни кориснички подаци нису правилно санирани. Нападачи могу покренути злонамерне скрипте на серверу и добити приступ осетљивим подацима.

#2. Кршење ограничења стопе

Кршење функције АПИ-ја за ограничавање брзине може дати нападачима прилику да бомбардују ваш сервер огромним бројем захтева. На крају, сервер би могао да се сруши, а база клијената би могла имати потешкоћа да дође до вас.

#3. Неправилна аутентификација

Ако АПИ није правилно конфигурисан коришћењем поузданог метода аутентификације, било која трећа страна може да приступи вашем систему преко АПИ-ја. Ауторизација је такође важна јер дефинише ко може приступити којем АПИ ресурсу до одређеног времена.

#4. Несигуран пренос података

Подаци који се шаљу корисницима вашег АПИ-ја морају бити шифровани на путу. Ако није, онда постоје шансе да би подаци могли да процуре од стране нападача користећи напад човека у средини. Због тога се увек препоручује коришћење безбедног протокола као што је ХТТПС за пренос података.

#5. Застареле/застареле зависности

АПИ-ји имају много спољних зависности које се користе за извршавање сложених задатака и за ослобађање неке сложене логике. Ако те зависности имају рањивост, онда индиректно, ваш АПИ такође постаје рањив. Увек водите рачуна да ажурирате верзије зависности.

Сада када знате рањивости АПИ-ја, хајде да погледамо неке најбоље праксе за заштиту вашег АПИ-ја.

Такође прочитајте: Најбоље алтернативе поштара за тестирање АПИ-ја за програмере

Сигурност АПИ-ја – најбоље праксе

АПИ верзија

Од кључне је важности да редовно надгледате и ажурирате своје АПИ-је са ажурираним зависностима, јер те зависности могу садржати велике рањивости. Можете да обавестите кориснике АПИ-ја тако што ћете објавити верзију закрпе АПИ-ја у складу са семантичко верзионисање.

  Поправите да Визио Ремоте не ради

Одржавање вашег АПИ-ја ажурним је најмање што можете да урадите да спречите да га нападачи искористе.

Аутентикација

Постоји гомила начина на које можете аутентификовати корисника АПИ-ја. Најједноставнији начин је коришћење приступа корисничког имена/лозинке, али то је превише основно и зависи само од тога колико је лозинка јака.

Други начин је коришћење АПИ кључева за приступ АПИ-ју. Сваком кориснику АПИ-ја можете дати јединствени кључ који може да користи.

ЈВТ аутентификација је техника у којој се кориснички акредитиви конвертују у дигитално потписани токен и затим шаљу кориснику. Корисник затим шаље исти токен назад на сваки захтев серверу да га сервер потврди. ЈВТ такође имају време истека.

Најефикасније решење је ОАутх. Омогућава приступ трећим странама АПИ-ју са већ постојећим акредитивима за пријаву. На пример, ако сте већ пријављени на Гоогле, апликација може да користи те акредитиве за пријаву на ваш налог без потребе за лозинком. Ваш Гоогле налог постаје лозинка.

Овлашћење

Ауторизација је другачија ствар од аутентификације. Док овластите корисника, они су већ аутентификовани за коришћење вашег АПИ-ја, а то је управо то којем АПИ ресурсу могу да приступе.

На пример, универзитетски професор може имати приступ свим студентима у групи, али један студент може приступити само њиховим подацима. У овом случају, студент и професор су аутентификовани за исти систем, али су овлашћени само за одређене радње.

Осигурање да АПИ ауторизација добро функционише може спречити неовлашћени приступ ресурсу.

Редакција података

Редакција података је процес селективног откривања информација корисницима и заштите осетљивих информација. Правилна ауторизација може довести до бољег редакције података. Прописи о приватности података, као што је ГДПР, такође се заснивају на редиговању података. Било која нежељена трећа страна не би требало да буде у могућности да завири у личне или осетљиве податке.

Можете имплементирати реакцију података имплементацијом међувера или менаџера мрежног пролаза.

Шифровање

Ово је постала најважнија безбедносна провера у данашњем свету. Шифровање је неопходно ако имате посла са било којом врстом осетљивих информација. Најмање шифровање које можете да урадите је коришћење ХТТПС протокола, који користи ТЛС (Транспорт Лаиер Сецурити) руковање и ССЛ (Сецуре Соцкет Лаиер).

Енкрипција од краја до краја је још један начин за чврсто обезбеђење података у транзиту. Подаци који се чувају у бази података такође треба да буду шифровани у случају да би нападач могао да провали у базу података и приступи подацима.

Грешка руковање

Информације о инфраструктури апликације могу да процуре до нападача путем детаљних порука о грешци. Да бисте то избегли, држите поруке о грешкама генеричким и примените прилагођено руковање грешкама. Уверите се да се у детаље грешке не евидентирају осетљиве системске информације.

  Како заштитити и вратити олеофобни премаз вашег паметног телефона

Валидација уноса и санација података

Валидација уноса је веома важна када се ради о АПИ-јима јер не знате унос док га корисник не пошаље.

Санитизација је процес уклањања било ког нежељеног извршног кода из корисног оптерећења. Нападач може да унесе Јавасцрипт скрипту и ако је не дезинфикујете пре него што је проследите свом ХТМЛ-у, она ће се извршити као скрипта и преузети податке.

Неправилна санација може довести до напада на скриптовање на више локација (КССС).

Системи за откривање упада

Такође познат као ИДС, системи за откривање упада помажу у надгледању и откривању мрежног саобраћаја који долази до АПИ-ја. Ако открије било какво необично понашање у саобраћају, може се пријавити и упозорити надлежне органе.

Генерално, постоје две врсте система: засновани на мрежи и засновани на хосту. У системима заснованим на мрежи, систем је дистрибуиран између различитих контролних тачака како би се пратио саобраћај на више тачака. У систему заснованом на хосту, он је распоређен на једном хосту.

Такви системи су одличан начин да одредите ко покушава да приступи вашој мрежи пре него што омета ваше податке.

ИП Вхителистинг

Стављање на белу листу је начин да дозволите само изабраним ИП адресама да приступе вашем АПИ-ју и вашој мрежи. Ова техника можда неће функционисати ако имате јавни АПИ јер је превише сложено да се наведе сваки ИП.

Корисно је ако знате да ће само неке од апликација система приступити вашем АПИ-ју.

ЈСОН веб токени

ЈВТ-ови се генерално користе за аутентификацију корисника слањем кориснику дигитално потписаног токена креираног од његових акредитива. Ради јер сакрива стварне акредитиве корисника, а такође не морате да чувате акредитиве у бази података или на страни корисника.

ЈВТ се може поделити у три одељка: заглавље, корисни терет и потпис. Одељак корисног оптерећења садржи корисничке акредитиве, а заглавље може садржати информације као што је коришћени алгоритам. Одељак за потпис дигитално потписују сервер и клијент на сваком следећем захтеву.

ЈВТ обично имају датум истека, након чега сервер генерише нови токен и затим га шаље кориснику.

Евидентирање и праћење

Надгледање саобраћаја до вашег АПИ-ја може бити корисно за препознавање и идентификацију нежељених посетилаца. Можете пратити сваки захтев, али водите рачуна да евиденција не садржи никакве осетљиве информације.

Рате Лимитинг

Ако АПИ не примењује ограничење брзине, он је рањив на ДДоС нападе због неочекиваног прилива мрежног саобраћаја. Нападачи могу преплавити систем огромним бројем захтева у малом времену, на крају срушити сервер.

АПИ-ји за пригушивање и ограничавање брзине избегавају нападе ускраћивања услуге ограничавањем протока АПИ саобраћаја.

  Како бесплатно да направите сопствени Слацк радни простор

Сигурне зависности

Рањивости не произилазе само из вашег АПИ кода, већ могу бити и део зависности трећих страна које можда користите у свом АПИ-ју. Зато је важно да редовно надгледате и скенирате своје зависности и откривате све рањивости које би могле бити присутне у њима.

Можете имплементирати заказани посао за редовно скенирање и ажурирање зависности ако се могу ажурирати верзијом закрпе која поправља рањивост. Такође, изаберите зависности које су безбедније и пружају честа безбедносна ажурирања.

Безбедносна заглавља треба да се врате са АПИ одговором да би се прегледач упутио о безбедности АПИ-ја и како треба да делује. Важна заглавља која можете да пошаљете да бисте побољшали безбедност су:

  • Цацхе-Цонтрол: Подесите га на опцију без складиштења да бисте избегли складиштење осетљивих информација у прегледачу.
  • Цонтент-Сецурити-Полици: Подешавање на фраме-преци ‘ноне’ избегава уоквиривање АПИ одговора у ифраме-у.
  • Цонтент-Типе: Ово заглавље је важно јер без њега претраживач покушава да погоди тип АПИ одговора, а то може довести до напада њушкања. За ЈСОН одговор, можете га поставити на апплицатион/јсон.
  • Кс-Цонтент-Типе-Оптионс: Подесите га на носнифф да бисте наложили претраживачу да не погађа МИМЕ тип одговора и да га тражи само у заглављу Цонтент-Типе.

Сигурносни стандарди и оквири

Дизајнирајте свој АПИ уз помоћ унапред дефинисаних безбедносних стандарда и оквира како бисте били сигурни да је ваш АПИ ажуриран са најновијим безбедносним разматрањима.

Истек токена

Ако користите токене носиоца, време истека токена би требало да буде кратког века јер захтева поновну аутентификацију корисника, што је добра ствар. У ЈВТ-у обично постоје два токена: токени за приступ и за освежавање. Токени за освежавање су дуговечни, док су токени за приступ краткотрајни. У сваком случају, ваши токени би требало да имају време истека.

Заштитни зид веб апликација

ВАФ, звани заштитни зид веб апликација, је мрежни пролаз који надгледа, филтрира и блокира сваки злонамерни мрежни саобраћај. Често је то најбољи начин за спречавање злонамерних напада преко ХТТП протокола.

Коришћење АПИ мрежних пролаза

Ако желите да лако подесите безбедност АПИ-ја и управљате АПИ рутама и њиховим приступом, можете изабрати АПИ мрежне пролазе. Они такође пружају алатке за праћење, евидентирање и аналитику, које можете користити за надгледање свог АПИ-ја.

Зеро-Труст

Идеја иза стратегије нултог поверења је да се не верује ниједном централизованом извору. Сигурност треба да буде слојевита и имплементирана на више контролних тачака.

У суштини, никоме се не може веровати, чак ни програмерима који раде на АПИ-ју. Сваки гејтвеј треба да се надгледа и анализира како би се спречило кршење безбедности.

Аутоматизација је корисна у таквим случајевима. Можете да користите аутоматизоване алате за редовно праћење и блокирање необичних или сумњивих активности.

Завршне речи

Можете учинити само толико да очувате своје АПИ-је безбедним. Увек постоје неке рупе у софтверу које се могу искористити. Такве рупе у закону доводе до рањивости нултог дана. Дакле, да бисте заштитили своје АПИ-је, најмање што можете да урадите је да их ажурирате најновијим безбедносним стандардима.

Погледајте најбоље алате за тестирање безбедности динамичких апликација.