Pengantar

Dalam sistem informasi modern, mengatur siapa yang boleh mengakses sebuah data atau layanan menjadi semakin kompleks. Pengguna dapat memiliki jabatan, lokasi, perangkat, tingkat keamanan, hingga kondisi akses yang berbeda.

Salah satu pendekatan yang dirancang untuk menghadapi kebutuhan tersebut adalah Attribute-Based Access Control (ABAC). Berbeda dengan model yang hanya mengandalkan role, ABAC menentukan keputusan akses berdasarkan berbagai atribut dan kebijakan. NIST menjelaskan bahwa ABAC mengevaluasi atribut dari subject, object, operasi yang diminta, serta kondisi lingkungan untuk menentukan apakah akses diizinkan atau ditolak (dikutip dari: NIST SP 800-162).


Apa Itu Attribute-Based Access Control?

ABAC adalah model access control yang menggunakan atribut sebagai dasar pengambilan keputusan.

Atribut tersebut dapat berasal dari:

  • Subject → pengguna atau perangkat yang meminta akses.
  • Object → data, file, aplikasi, atau layanan yang ingin diakses.
  • Action → operasi seperti read, write, delete, atau execute.
  • Environment → kondisi seperti waktu, lokasi, atau tingkat risiko.

Sederhananya:

User Attributes
+
Object Attributes
+
Action
+
Environment
Access Policy
ALLOW / DENY

Dengan pendekatan ini, keputusan akses dapat dibuat lebih dinamis dibandingkan hanya memberikan izin berdasarkan kelompok pengguna.

baca juga : Use-After-Free (UAF): Memahami Celah Memory Corruption yang Berbahaya


Bagaimana Cara Kerja ABAC?

1. Pengguna Meminta Akses

Misalnya seorang karyawan ingin membuka dokumen perusahaan.

User → Request → Dokumen

Sistem kemudian mengumpulkan atribut yang relevan.

2. Sistem Mengevaluasi Atribut

Contohnya:

Role = Manager
Department = Finance
Location = Office
Time = Working Hours
Document = Confidential

Kemudian sistem membandingkannya dengan policy yang telah ditentukan.

3. Policy Menghasilkan Keputusan

Contoh aturan:

IF
Department = Finance
AND
Role = Manager
AND
Location = Office
THEN
ALLOW READ

Jika kondisi terpenuhi, akses diberikan. Jika tidak, permintaan dapat ditolak.


Jenis Atribut dalam ABAC

Subject Attribute

Atribut yang berkaitan dengan pihak yang meminta akses.

Contohnya:

  • Username
  • Department
  • Job title
  • Clearance level
  • Device identity

Object Attribute

Atribut yang menggambarkan resource.

Misalnya:

  • Data classification
  • Owner
  • File type
  • Department
  • Sensitivity level

Environment Attribute

Atribut yang menggambarkan kondisi saat akses dilakukan.

Contohnya:

  • Waktu
  • Lokasi
  • IP address
  • Device status
  • Threat level

NIST juga menekankan bahwa atribut perlu didefinisikan, dikelola, divalidasi, dan memiliki nilai yang jelas agar sistem ABAC dapat diterapkan secara konsisten (dikutip dari: NIST SP 800-205 – Attribute Considerations for Access Control Systems).

baca juga : Read Replica vs Master-Master Replication: Mana yang Lebih Tepat untuk Database Skala Besar?


ABAC vs RBAC

ABAC sering dibandingkan dengan Role-Based Access Control (RBAC).

Pada RBAC, izin terutama diberikan berdasarkan role:

User
Role
Permission

Sementara ABAC menggunakan beberapa atribut:

User
+ Role
+ Location
+ Device
+ Time
+ Resource
Policy
Access

RBAC lebih sederhana untuk kebutuhan yang tidak terlalu kompleks. Sebaliknya, ABAC dapat memberikan kontrol yang lebih fleksibel ketika keputusan akses bergantung pada banyak kondisi.


Kelebihan ABAC

Akses Lebih Fleksibel

Policy dapat mempertimbangkan banyak atribut sekaligus sehingga aturan akses dapat dibuat lebih spesifik.

Mendukung Dynamic Access

Keputusan akses dapat berubah ketika atribut berubah.

Misalnya, seorang karyawan boleh mengakses data ketika berada di jaringan perusahaan, tetapi akses ditolak ketika menggunakan perangkat yang tidak memenuhi security policy.

Cocok untuk Organisasi Besar

ABAC dapat membantu mengurangi kebutuhan membuat banyak role khusus untuk setiap kombinasi kebutuhan akses.

Namun, fleksibilitas tersebut juga membuat desain policy dan pengelolaan atribut menjadi lebih kompleks.


Tantangan Implementasi ABAC

ABAC bukan berarti semakin banyak atribut maka semakin aman. Justru, organisasi harus memiliki attribute governance yang baik.

Beberapa tantangannya adalah:

  • Menentukan atribut yang tepat.
  • Memastikan atribut selalu akurat.
  • Mengelola perubahan atribut.
  • Menghindari policy yang terlalu kompleks.
  • Memastikan policy tidak saling bertentangan.
  • Melakukan audit terhadap keputusan akses.

Jika atribut pengguna salah atau sudah tidak diperbarui, keputusan ABAC juga dapat menjadi tidak akurat.


Contoh Penerapan ABAC

Bayangkan sebuah perusahaan memiliki database keuangan.

Policy dapat dibuat seperti berikut:

User Department = Finance
AND
Security Level >= Confidential
AND
Device = Managed
AND
Time = Working Hours
ALLOW

Sementara pengguna dari departemen lain, perangkat tidak terkelola, atau akses di luar kondisi yang ditentukan dapat menerima:

DENY

Pendekatan seperti ini memungkinkan organisasi menerapkan least privilege dengan aturan yang lebih kontekstual.

baca juga : Multi-Factor Authentication (MFA) Fatigue Attack: Ancaman Push Bombing yang Mengecoh Pengguna


Kesimpulan

Attribute-Based Access Control (ABAC) merupakan model kontrol akses yang menentukan izin berdasarkan kombinasi atribut pengguna, resource, tindakan, dan kondisi lingkungan.

Dibandingkan model yang hanya bergantung pada role, ABAC menawarkan fleksibilitas dan kontrol kontekstual yang lebih tinggi. Karena itu, pendekatan ini cocok untuk lingkungan dengan kebutuhan akses yang kompleks, seperti cloud, enterprise, dan sistem dengan banyak jenis pengguna serta resource.

Namun, keberhasilan ABAC sangat bergantung pada kualitas atribut dan policy. Tanpa pengelolaan yang baik, fleksibilitas ABAC justru dapat membuat sistem sulit dikelola. Karena itu, attribute governance, policy management, monitoring, dan audit harus menjadi bagian penting dari implementasinya.