ആക്സസ് കൺട്രോൾ (Access Control) വഴി വിശ്വാസ്യത വളർത്തുക

ഒരു ലോഗിൻ പേജ് ഉള്ളതുകൊണ്ട് തങ്ങൾ സുരക്ഷിതരാണെന്ന് മിക്ക ആപ്പുകളും കരുതുന്നു.

ലോഗിൻ എന്നത് ആദ്യപടി മാത്രമാണ്. ഒരു ഉപയോക്താവ് അകത്തു കടന്നുകഴിഞ്ഞാൽ, നിങ്ങൾ ഒരു ചോദ്യത്തിന് ഉത്തരം നൽകണം: ഈ ഉപയോക്താവിന് എന്തൊക്കെ ചെയ്യാൻ കഴിയും?

പലരും ഓതന്റിക്കേഷനും (Authentication) ഓതറൈസേഷനും (Authorization) തമ്മിൽ മാറിപ്പോകാറുണ്ട്.

• Authentication ചോദിക്കുന്നത്: നിങ്ങൾ ആരാണ്? • Authorization ചോദിക്കുന്നത്: നിങ്ങൾക്ക് എന്തൊക്കെ ചെയ്യാൻ അനുവാദമുണ്ട്?

ഒരു ഉപയോക്താവ് വിജയകരമായി ലോഗിൻ ചെയ്തേക്കാം. എന്നാൽ അതിന്റെ അർത്ഥം അവർക്ക് എല്ലാ റെക്കോർഡുകളും കാണാനോ എല്ലാ പ്രൊഫൈലുകളും എഡിറ്റ് ചെയ്യാനോ അനുവാദമുണ്ടെന്നല്ല.

നിയമങ്ങൾ വ്യക്തമാക്കാൻ Role Based Access Control (RBAC) ഉപയോഗിക്കുക.

അനുവദനീയമായ റോളുകളുടെ പട്ടികയുമായി താരതമ്യം ചെയ്ത് ഉപയോക്താവിന്റെ റോൾ പരിശോധിച്ചുകൊണ്ടാണ് RBAC പ്രവർത്തിക്കുന്നത്. നിങ്ങൾ ആക്സസ് കൺട്രോൾ ഉപയോഗിച്ചില്ലെങ്കിൽ താഴെ പറയുന്ന അപകടസാധ്യതകൾ നേരിടേണ്ടി വരും:

  • അമിതമായി വിവരങ്ങൾ വെളിവാകുന്ന ഡാഷ്‌ബോർഡുകൾ (Overexposed dashboards)
  • അമിതമായ ആന്തരിക അനുമതികൾ (Too many internal permissions)
  • അവിചാരിതമായ ഡാറ്റാ ചോർച്ചകൾ (Accidental data leaks)
  • മോശം ഓഡിറ്റ് ട്രയലുകൾ (Poor audit trails)
  • തകർന്ന വിശ്വാസ്യത (Broken trust)

'പ്രിൻസിപ്പിൾ ഓഫ് ലീസ്റ്റ് പ്രിവിലേജ്' (Principle of least privilege) പിന്തുടരുക. ഉപയോക്താക്കൾക്ക് അവരുടെ ജോലിക്ക് ആവശ്യമായ ആക്സസ് മാത്രം നൽകുക.

• സപ്പോർട്ട് സ്റ്റാഫിന് എല്ലാ കസ്റ്റമർ റെക്കോർഡുകളും കാണാൻ പാടില്ല. • എഞ്ചിനീയർമാർക്ക് ഡിഫോൾട്ട് ആയി പ്രൊഡക്ഷൻ ആക്സസ് (production access) ഉണ്ടാകരുത്. • HR ഡാറ്റ വേർതിരിച്ചു സൂക്ഷിക്കണം. • അഡ്മിൻ റോളുകൾ വളരെ കുറഞ്ഞ എണ്ണത്തിൽ മാത്രം നിജപ്പെടുത്തുകയും അവ ഓഡിറ്റ് ചെയ്യാവുന്നതായും നിലനിർത്തുകയും വേണം.

ചിലപ്പോൾ റോളുകൾ മാത്രം മതിയാകില്ല. നിങ്ങൾക്ക് ആക്ഷൻ അടിസ്ഥാനമാക്കിയുള്ള അനുമതികൾ (action-based permissions) ആവശ്യമാണ്. ഒരു ഉപയോക്താവിന് ഒരു റെക്കോർഡ് കാണാൻ കഴിഞ്ഞേക്കാം, എന്നാൽ അത് ഡിലീറ്റ് ചെയ്യാൻ കഴിയില്ല. ഇത് നിങ്ങൾക്ക് സൂക്ഷ്മമായ നിയന്ത്രണം (granular control) നൽകുന്നു.

ഡാറ്റയുടെ സെൻസിറ്റിവിറ്റി അനുസരിച്ച് അവയെ വേർതിരിക്കുകയും വേണം: • പബ്ലിക് ഡാറ്റ (Public data): പേരും ഫോട്ടോയും. • പ്രൈവറ്റ് ഡാറ്റ (Private data): ഇമെയിലും ഫോൺ നമ്പറും. • സെൻസിറ്റീവ് ഡാറ്റ (Sensitive data): ശമ്പളം അല്ലെങ്കിൽ ഐഡി നമ്പറുകൾ.

നിങ്ങളുടെ കോഡിൽ ഈ വിഭാഗങ്ങളെ വ്യത്യസ്തമായി കൈകാര്യം ചെയ്യുക. ഇത് സുരക്ഷാ മാനേജ്‌മെന്റ് എളുപ്പമാക്കുന്നു.

വിശ്വാസ്യതയ്ക്ക് ഉത്തരവാദിത്തവും (accountability) ആവശ്യമാണ്. ആരെങ്കിലും സെൻസിറ്റീവ് ഡാറ്റ ഉപയോഗിക്കുമ്പോഴെല്ലാം നിങ്ങളുടെ സിസ്റ്റം ഒരു ഓഡിറ്റ് ട്രയൽ (audit trail) നിർമ്മിക്കണം. സെൻസിറ്റീവ് ആയ ഓരോ പ്രവർത്തനവും ഒരു അടയാളം അവശേഷിപ്പിക്കണം.

നിങ്ങളുടെ ആപ്പ് പുറത്തിറക്കുന്നതിന് മുമ്പ് ഈ കാര്യങ്ങൾ പരിശോധിക്കുക:

  • ലോഗിൻ, സെഷൻ ഫ്ലോകൾ സുരക്ഷിതമാണോ?
  • അനുമതികൾ റോളുകളെയും ആക്ഷനുകളെയും അടിസ്ഥാനമാക്കിയുള്ളതാണോ?
  • സെൻസിറ്റീവ് ഡാറ്റ വേർതിരിച്ചിട്ടുണ്ടോ?
  • നിങ്ങളുടെ ഡിഫോൾട്ട് സെറ്റിംഗുകൾ നിയന്ത്രണാത്മകമാണോ (restrictive)?
  • എല്ലാ ആക്സസ്സുകളും നിങ്ങൾ ലോഗ് ചെയ്യുന്നുണ്ടോ?
  • ഉപയോക്താക്കൾക്ക് അനുമതികളെക്കുറിച്ച് വിശദീകരിച്ചു കൊടുക്കാൻ നിങ്ങൾക്ക് കഴിയുമോ?

ഓതന്റിക്കേഷൻ ഉപയോക്താക്കളെ അകത്തേക്ക് പ്രവേശിപ്പിക്കുന്നു. ഓതറൈസേഷൻ നിങ്ങളുടെ സിസ്റ്റത്തെ വിശ്വസനീയമായി നിലനിർത്തുന്നു. വിശ്വാസ്യത എന്നത് ഒരു ഉൽപ്പന്നത്തിന്റെ സവിശേഷതയാണ് (product feature).

Source: https://dev.to/samiatakande11/building-trust-into-authentication-practical-access-control-patterns-for-modern-apps-55pc