13 најбољих пракси за обезбеђење микроуслуга

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

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

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

Архитектура монолитних против микросервиса Слика Црвени шешир

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

Безбедносни изазови повезани са микросервисима

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

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

Безбедност мреже је још један изазов са микроуслугама. Конкретно, идентитет и контрола приступа преузимају нови ниво сложености. Остале рањивости укључују небезбедни код и недостатке у системима за откривање услуга.

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

У идеалном случају, архитектура захтева дистрибуирани приступ који треба да покрије све различите компоненте.

Типичне области којима се треба бавити укључују

  • Заштита апликација, микросервиса и корисника
  • Обезбеђивање идентитета и управљање приступом
  • Заштита података
  • Побољшајте безбедност комуникације између услуге
  • Праћење микросервиса и сигурносних система

Најбоље праксе за обезбеђивање микросервиса

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

Ако одлучите да користите микроуслуге, морате да се уверите да испуњавате све безбедносне захтеве за услуге, везе и податке.

Хајде да сада погледамо неке ефикасне безбедносне праксе микросервиса.

#1. Изградите сигурност од самог почетка 👮

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

  9 апликација за КИЦ и верификацију идентитета за беспрекорно укључивање

#2. Користите механизам одбране у дубини

Дубинска одбрана (ДиП) је техника у којој примењујете неколико безбедносних слојева на своје услуге и податке. Ова пракса отежава нападачима да продру кроз више слојева и на тај начин пружа снажну сигурност за ваше услуге и податке.

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

Вишеслојна безбедност у дубини одбране Слика: Имперва

Са овим приступом, прво морате да идентификујете осетљиве услуге, након чега примените одговарајуће безбедносне слојеве око њих.

#3. Поставите безбедност на нивоу контејнера 📦

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

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

Такође је важно осигурати да слике контејнера немају рањивости или безбедносне проблеме. Редовно скенирање безбедности и рањивости контејнера ће помоћи да се идентификују ризици.

Типични алати за скенирање слика укључују Цлаир, Анцхореи још.

#4. Примените вишефакторску аутентификацију 🔒

Омогућавање вишефакторске аутентификације побољшава безбедност фронт-енд-а.

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

#5. Користите токене корисничког идентитета и приступа

У примени микросервиса, велики број апликација и услуга ће захтевати безбедну ауторизацију и контролу приступа. Оквир за ауторизацију као што су ОАутх 2.0 и ОпенИД омогућава вам да безбедно обрађујете токене, а самим тим штитите своје микросервисе. Сходно томе, ово омогућава апликацијама трећих страна да приступе другим услугама или подацима корисника.

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

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

#6. Направите АПИ мрежни пролаз

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

  Како цртати на мрежи помоћу апликације Гоогле Цхроме Цанвас

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

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

Слика мрежног пролаза АПИ микросервиса Ливебоок

Типични АПИ мрежни пролази укључују НГИНКС, Конг, Тик, Амбасадоре, АВС АПИ мрежни пролази још.

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

#7. АПИ-ји профила засновани на зони примене

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

  • Етхернет АПИ-ји – за услуге изложене спољном свету ван центра података.
  • АПИ-ји за корпоративне зоне – они су намењени за интерни приватни саобраћај
  • ДМЗ АПИ-ји – за управљање саобраћајем који потиче са интернета
  • АПИ-ји хибридне зоне – за примену центара података

#8. Обезбедите комуникацију између услуга

Ефикасне праксе укључују аутентификацију и ауторизацију захтева када две микросервисе комуницирају.

Уопштено говорећи, постоје три главне технике које можете користити да обезбедите међусервисну комуникацију. То су поверење мрежи, ЈСОН веб токен (ЈВТ) и узајамна безбедност транспортног слоја (мТЛС или Мутуал ТЛС).

Обезбеђивање комуникације између служби са ЈВТ Имаге-ом Ливебоок

Од три, најпопуларнији је мТЛС. У овом приступу, свака микросервис мора да носи пар јавних/приватних кључева. Микросервис клијента затим користи пар кључева да се аутентификује микросервису који прима преко мТЛС-а.

Током аутентификације, сваки микросервис генерише сертификат. Након тога, сваки микросервис ће користити сертификат другог да би се аутентификовао.

Док ТЛС обезбеђује интегритет и поверљивост за податке у транзиту, он такође омогућава клијенту да идентификује микросервис. Микросервис клијента обично познаје другу микросервис. Међутим, пошто је ТЛС једносмеран, микросервис који прима не може да верификује микросервис клијента, а нападачи могу да искористе ову ману. С друге стране, мТЛС обезбеђује средство у коме свака од микросервиса може да идентификује другу.

#9. Ограничење брзине 🚏 клијентског саобраћаја

Ограничавање спољног саобраћаја спречава проблеме као што су напади ускраћивања услуге (ДоС), као и случајеве у којима неки клијенти троше већину пропусног опсега апликације. Један приступ је примена различитих правила која могу пратити и контролисати стопу саобраћаја који се шаље или прима од клијента на основу ИП адресе, времена итд.

  Укључите се више користећи Вонаге пословну комуникацију

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

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

#10. Користите менаџере оркестрације

Менаџери оркестрација вам омогућавају да аутоматизујете конфигурацију, координацију и друге задатке управљања микроуслугама поред побољшања безбедности. Обично вам алати омогућавају да управљате више контејнера, ограничите приступ метаподацима, одвојите радна оптерећења, прикупљате евиденције и још много тога.

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

Две најчешће коришћене методе за ефикасну микросервисну оркестрацију су;

  • Кодирање оркестрације као микросервиса
  • Коришћење АПИ мрежних пролаза за обезбеђивање слоја оркестрације

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

Слој оркестрације микросервиса – Слика Глобаллогиц

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

Да бисте сазнали више, истражите Оркестрацију контејнера за ДеОпс.

#11. Пратите све своје системе и услуге

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

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

Надгледање унутар архитектуре микросервиса

Користите одговарајуће алате за надгледање интерних система и услуга. Неке најбоље праксе укључују;

  • Омогућите евидентирање на слоју апликације. Можете Сплунк, Грапхана, ЕЛК стацки друге алатке које прикупљају евиденције на нивоу апликације, контејнера, мреже и инфраструктуре.
  • Пратите метрику коришћења
  • Користите трендове у метрикама као што су ЦПУ, меморија, време одзива, грешке, обавештења и други да бисте открили необичне активности које указују на постојећи или потенцијални напад.
  • Прегледајте евиденције у областима као што су долазни захтеви клијената, записи базе података, контејнери и други да бисте идентификовали недоследности или необичне активности.

#12. Аутоматизујте безбедносне активности

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

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

#13. Заштитите 🛡 податке у сваком тренутку

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

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

Закључак

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

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