Ieteikumi lietojumprogrammu noslēpumu aizsardzībai

Attiecas uz šo Power Platform labi arhitektūras drošības kontrolsaraksta ieteikumu:

SE:07 Aizsargāt lietojumprogrammu noslēpumus, pastiprinot to glabāšanu un ierobežojot piekļuvi un manipulācijas, kā arī revidējot šīs darbības. Veiciet uzticamu un regulāru rotācijas procesu, kas var improvizēt rotācijas ārkārtas situācijās.

Šajā rokasgrāmatā ir aprakstīti ieteikumi par sensitīvas informācijas aizsardzību darba slodzēs. Pareiza noslēpumu pārvaldība ir būtiska, lai saglabātu lietojumprogrammas, darba slodzes un saistīto datu drošību un integritāti. Nepareiza noslēpumu apstrāde var izraisīt datu pārkāpumus, pakalpojumu traucējumus, normatīvo aktu pārkāpumus un citas problēmas.

Akreditācijas dati, piemēram, API atslēgas, atvērtās autorizācijas (OAuth) marķieri, un Secure Shell (SSH) atslēgas ir noslēpumi. Atbilstības prasību dēļ konfigurācijas iestatījumi, kas parasti netiek uzskatīti par slepeniem, var tikt uzskatīti par lietojumprogrammu noslēpumiem.

Definīcijas

Termins Definīcija
Sertifikātus Ciparu faili, kuros ir publiskās atslēgas šifrēšanai vai atšifrēšanai.
Akreditācijas dati Informācija, kas tiek izmantota, lai pārbaudītu izdevēja vai patērētāja identitāti saziņas kanālā.
Akreditācijas datu skenēšana Avota koda validācijas process, lai pārliecinātos, ka noslēpumi nav iekļauti.
Šifrēšana Process, kurā dati tiek padarīti nesalasāmi un bloķēti ar slepenu kodu.
Taustiņš Slepenais kods, kas tiek izmantots, lai bloķētu vai atbloķētu šifrētus datus.
Piekļuve vismazākajām privilēģijām Nulles uzticēšanās princips, kura mērķis ir samazināt atļauju kopumu, lai pabeigtu darba funkciju.
Pārvaldītā identitāte Identitāte, kas tiek piešķirta resursiem un pārvaldīta Azure.
Nenoslēpums Informācija, kas neapdraud darba slodzes drošības stāvokli, ja tā tiek nopludināta.
Pagriešana Noslēpumu regulāras atjaunināšanas process, lai, ja tie tiek apdraudēti, tie būtu pieejami tikai ierobežotu laiku.
Noslēpums Konfidenciāls sistēmas komponents, kas atvieglo saziņu starp darba slodzes komponentiem. Noplūdes gadījumā noslēpumi var izraisīt pārkāpumu.
X.509 Standarts, kas definē publiskās atslēgas sertifikātu formātu.

Svarīgi

Neizturieties pret nenoslēpumiem kā pret noslēpumiem. Noslēpumiem ir nepieciešama operatīvā stingrība, kas nav nepieciešama nenoslēpumiem, un tas var radīt papildu izmaksas.

Lietojumprogrammas iestatījumi, kas nav noslēpumi, piemēram, lietojumprogrammai nepieciešamo API URL, ir jāglabā atsevišķi no lietojumprogrammas koda vai lietojumprogrammas noslēpumiem. Lai saglabātu lietojumprogrammas konfigurāciju, apsveriet iespēju izmantot pielāgotu savienotāju vai vides mainīgos. Vēl viena iespēja ir izmantot Dataverse tabulu, lai saglabātu metadatus par lietojumprogrammas konfigurāciju. Tomēr jums būs jāatrod veids, kā aizpildīt šos datus jaunā vidē, piemēram, pārsūtot konfigurācijas datus no izstrādes uz testēšanu vai ražošanu. Lai to paveiktu, varat izmantot datu plūsmas.

Galvenās dizaina stratēģijas

Pirms noslēpumu glabāšanas un pārvaldības apsveriet šādas bažas jomas:

  • Izveidotie noslēpumi jāglabā drošā glabāšanā ar stingru piekļuves kontroli.
  • Slepenā rotācija ir proaktīva operācija, bet atsaukšana ir reaktīva.
  • Noslēpumiem ir jābūt piekļuvei tikai uzticamām identitātēm.
  • Jums ir jāuztur audita liecība, lai pārbaudītu un apstiprinātu piekļuvi noslēpumiem.

Izveidojiet stratēģiju ap šiem punktiem, lai palīdzētu novērst identitātes zādzību, izvairīties no noraidīšanas un samazināt nevajadzīgu informācijas iedarbību.

Droša prakse slepenības pārvaldībā

Ieteicams, lai atslēgām būtu trīs atšķirīgas lomas: lietotājs, administrators un auditors. Lomu atšķirība palīdz nodrošināt, ka tikai uzticamām identitātēm ir piekļuve noslēpumiem ar atbilstošu atļauju līmeni. Izglītojiet izstrādātājus, administratorus un citus attiecīgos darbiniekus par slepenās pārvaldības un drošības labākās prakses nozīmi.

Iepriekš koplietotas atslēgas

Varat kontrolēt piekļuvi, izveidojot atsevišķas atslēgas katram patērētājam. Piemēram, klients, piemēram, lietotne vai plūsma, sazinās ar trešās puses API, izmantojot iepriekš koplietojamu atslēgu. Ja citam klientam ir jāpiekļūst tai pašai API, viņam ir jāizmanto cita atslēga. Nekoplietojiet atslēgas pat tad, ja diviem patērētājiem ir vienādi piekļuves modeļi vai lomas. Patērētāju tvērumi laika gaitā var mainīties, un pēc atslēgas koplietošanas nevar patstāvīgi atjaunināt atļaujas vai atšķirt lietošanas modeļus. Atšķirīga piekļuve arī atvieglo atsaukšanu. Ja patērētāja atslēga ir apdraudēta, ir vieglāk atsaukt vai pagriezt šo atslēgu, neietekmējot citus patērētājus.

Šie norādījumi attiecas uz dažādām vidēm. Vienu un to pašu atslēgu nedrīkst izmantot gan pirmsizlaides, gan ražošanas vidē. Ja esat atbildīgs par iepriekš koplietojamu atslēgu izveidi, pārliecinieties, ka esat izveidojis vairākas atslēgas, lai atbalstītu vairākus klientus.

Papildinformāciju skatiet sadaļā Identitātes un piekļuves pārvaldības ieteikumi.

Slepenā glabāšana

Izmantojiet slepenās pārvaldības sistēmu, piemēram, Azure Key Vault, lai glabātu noslēpumus nostiprinātā vidē, šifrētu miera stāvoklī un tranzītā, kā arī auditētu piekļuvi un izmaiņas noslēpumos. Ja jums ir nepieciešams saglabāt lietojumprogrammu noslēpumus, saglabājiet tos ārpus avota koda, lai atvieglotu rotāciju.

Īpaša slepeno pārvaldības sistēma atvieglo piekļuves lietojumprogrammu noslēpumiem glabāšanu, izplatīšanu un kontroli. Tikai autorizētām identitātēm un pakalpojumiem vajadzētu būt piekļuvei slepeniem veikaliem. Piekļuvi sistēmai var ierobežot, izmantojot atļaujas. Piešķirot atļaujas, vienmēr izmantojiet vismazākās privilēģijas pieeju.

Jums ir arī jākontrolē piekļuve slepenajā līmenī. Katrai noslēpumam jābūt piekļuvei tikai vienam resursa tvērumam. Izveidojiet izolācijas robežas, lai komponents varētu izmantot tikai nepieciešamos noslēpumus. Ja izolēts komponents ir apdraudēts, tas nevar kontrolēt citus noslēpumus un, iespējams, visu darba slodzi. Viens no veidiem, kā izolēt noslēpumus, ir izmantot vairākas atslēgu seifas. Papildu atslēgu seifu izveidei nav papildu izmaksu.

Ieviest slepenās piekļuves auditēšanu un uzraudzību. Reģistrējiet, kas piekļūst noslēpumiem un kad identificēt nesankcionētas vai aizdomīgas darbības. Informāciju par reģistrēšanu no drošības viedokļa skatiet sadaļā Ieteikumi uzraudzībai un draudu noteikšanai.

Slepenā rotācija

Ir ieviests process, kas uztur slepenu higiēnu. Noslēpuma ilgmūžība ietekmē šī noslēpuma pārvaldību. Lai samazinātu uzbrukumu vektorus, noslēpumi ir jāizņem un pēc iespējas biežāk jāaizstāj ar jauniem noslēpumiem.

Rūpīgi rīkojieties OAuth ar piekļuves žetoniem, ņemot vērā viņu dzīves laiku. Apsveriet, vai ekspozīcijas logs ir jāpielāgo īsākam periodam. Atsvaidzināšanas marķieriem jābūt droši glabātiem ar ierobežotu lietojumprogrammas ekspozīciju. Atjaunotajiem sertifikātiem jāizmanto arī jauna atslēga. Informāciju par atsvaidzināšanas marķieriem skatiet sadaļā Droši OAuth 2.0 atsvaidzes marķieri.

Nomainiet noslēpumus pēc tam, kad tie ir sasnieguši to kalpošanas cikla beigas, tos vairs neizmanto darba slodze vai ja tie ir apdraudēti. Un otrādi, neaizlieciet aktīvos noslēpumus, ja vien tā nav ārkārtas situācija. Noslēpuma statusu var noteikt, skatot piekļuves žurnālus. Slepenajiem rotācijas procesiem nevajadzētu ietekmēt darba slodzes uzticamību vai veiktspēju. Izmantojiet stratēģijas, kas veido noslēpumu, patērētāju un piekļuves metodes vienmērīgai rotācijai.

Droša prakse noslēpumu izmantošanai

Kā slepenam ģeneratoram vai operatoram jums vajadzētu būt iespējai droši izplatīt noslēpumus. Daudzas organizācijas izmanto rīkus, lai droši kopīgotu noslēpumus gan organizācijā, gan ārpus partneriem. Ja nav rīka, izveidojiet procesu, lai pareizi nodotu akreditācijas datus pilnvarotajiem saņēmējiem. Jūsu katastrofas atjaunošanas plānos jāiekļauj slepenas atkopšanas procedūras. Izveidojiet procesu situācijās, kad atslēga ir apdraudēta vai nopludināta un tā ir jāatjauno pēc pieprasījuma. Izmantojot noslēpumus, apsveriet tālāk norādīto drošības paraugpraksi:

Novērst cieto kodēšanu

Nelietojiet stingrus koda noslēpumus kā statisku tekstu koda artefaktos, piemēram, mākoņplūsmās un audekla programmās, konfigurācijas failos un būvniecības izvietošanas konveijeros. Šī augsta riska prakse padara kodu neaizsargātu, jo noslēpumi ir pieejami ikvienam, kam ir lasīšanas piekļuve.

Izmantojiet rīkus, kas periodiski nosaka atklātus noslēpumus jūsu lietojumprogrammas kodā un veido artefaktus. Šos rīkus varat pievienot kā daļu no izvietošanas kanāliem, lai skenētu akreditācijas datus pirms avota koda apstiprināšanas un izvietošanas. Regulāri pārskatiet un dezinficējiet lietojumprogrammu žurnālus, lai nodrošinātu, ka netīšām netiek reģistrēti nekādi noslēpumi. Jūs varat arī pastiprināt atklāšanu, izmantojot salīdzinošo vērtēšanu.

Piezīmes

Ja skenēšanas rīki atklāj noslēpumu, šis noslēpums ir jāuzskata par apdraudētu. Tas būtu jāatceļ.

Atbildēt uz slepeno rotāciju

Kā darba slodzes īpašniekam jums ir jāizprot slepeno atslēgu rotācijas plāns un politikas, lai jūs varētu iekļaut jaunus slepenos atslēgumus, minimāli traucējot lietotājiem. Kad slepenā atslēga tiek rotēta, var būt logs, kad vecais slepenais atslēga nav derīga, bet jaunais slepenais atslēga nav ievietota. Šajā logā komponents, kuru darba slodze mēģina sasniegt, neapstiprina pieprasījumus. Šīs problēmas var samazināt, kodā iestrādājot atkārtotas mēģināšanas loģiku. Varat arī izmantot vienlaicīgas piekļuves modeļus, kas ļauj jums izmantot vairākus akreditācijas datus, kurus var droši mainīt, neietekmējot viens otru.

Strādāt ar operāciju komandu un būt daļai no pārmaiņu vadības procesa. Jums vajadzētu informēt akreditācijas datu īpašniekus, kad deaktivizējat daļu no darba slodzes, kurā tiek izmantoti vairs nevajadzīgie akreditācijas dati.

Integrējiet slepeno datu izgūšanu un konfigurēšanu savā automatizētajā izvietošanas procesā. Slepeno datu atgūšana palīdz nodrošināt, ka slepenie dati tiek automātiski izgūti izvietošanas laikā. Varat arī izmantot slepeno kodu ievadīšanas modeļus, lai izpildlaikā ievietotu slepenos kodus lietojumprogrammas kodā vai konfigurācijā, kas novērš noslēpumu nejaušu nonākšanu žurnālos vai versiju kontrolē.

Power Platform veicināšana

Turpmākajās sadaļās ir aprakstītas Power Platform funkcijas un iespējas, ko varat izmantot lietojumprogrammu noslēpumu pārvaldībai.

Azure Key Vault noslēpumu izmantošana

Vides mainīgie ļauj norādīt slepeno informāciju, kas tiek glabāta Azure Key Vault. Šie slepenie dati pēc tam ir padarīti pieejami izmantošanai plūsmās Power Automate un pielāgotos savienotājos. Ņemiet vērā, ka noslēpumi nav pieejami lietošanai citos pielāgojumos vai vispārīgi, izmantojot API.

Faktiskie slepenie dati tiek glabāti Azure Key Vault, un vides mainīgais norāda uz atslēgas akreditācijas slepeno atrašanās vietu. Azure Key Vault izmanto slepeno informāciju ar vides mainīgajiem, jums ir jākonfigurē Azure Key Vault, lai Power Platform varētu lasīt konkrēto slepeno informāciju, uz kuru vēlaties norādīt. Papildinformāciju skatiet sadaļā Vides mainīgo izmantošana risinājumos un Vides mainīgo izmantošana risinājumu pielāgotajos savienotājos.

Izmantojiet risinājumu pārbaudītāju

Izmantojot risinājumu pārbaudes līdzekli, varat veikt daudzveidīgu statisko analīzi risinājumiem, izmantojot labākās prakses kārtulu kopu, un ātri noteikt šīs problēmas shēmas. Pēc pārbaudes pabeigšanas saņemsit detalizētu atskaiti, kurā uzskaitītas problēmas, komponenti un ietekmētais kods, kā arī saites uz dokumentāciju katras problēmas atrisināšanai. Pārskatiet pieejamos risinājumu pārbaudītāja noteikumus kategorijā Drošība. Papildinformāciju skatiet sadaļā Izmantojiet risinājumu pārbaudītāju, lai validētu savus risinājumus.

Izmantojiet CyberArk darbības

CyberArk piedāvā identitātes drošības platformu, kas aizsargā cilvēku un mašīnu identitātes no sākuma līdz beigām. Power Automate Darbvirsmas plūsmas ļauj izgūt akreditācijas datus no CyberArk. Plašāku informāciju skatiet sadaļā CyberArk darbības.

Drošības kontrolsaraksts

Skatiet pilnu ieteikumu kopumu.