-
-
Notifications
You must be signed in to change notification settings - Fork 376
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
61 changed files
with
2,335 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
2.4.2 | ||
2.5.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
title: '' | ||
--- | ||
|
||
![OWASP LOGO](./images/owasp-logo.png) | ||
|
||
# OWASP API Security Top 10 2019 | ||
|
||
Sepuluh Risiko Keamanan API yang Paling Kritis | ||
|
||
29 Mei 2019 | ||
|
||
![WASP Logo URL TBA](./images/front-wasp.png) | ||
|
||
| | | | | ||
| - | - | - | | ||
| https://owasp.org | Karya ini dilisensikan di bawah [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | | ||
|
||
[1]: http://creativecommons.org/licenses/by-sa/4.0/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Pemberitahuan | ||
|
||
Ini adalah versi teks dari OWASP API Security Top 10, digunakan sebagai sumber untuk versi resmi yang didistribusikan sebagai Portable Document Format (PDF). | ||
|
||
Kontribusi terhadap proyek seperti komentar, koreksi, atau terjemahan harus dilakukan di sini. Untuk detail tentang [Cara Berkontribusi][1], harap mengacu pada [CONTRIBUTING.md][1]. | ||
|
||
* Erez Yallon | ||
* Inon Shkedy | ||
|
||
[1]: ../../../CONTRIBUTING.md | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Daftar Isi | ||
|
||
* [Daftar Isi](0x00-toc.md) | ||
* [Tentang OWASP](0x01-about-owasp.md) | ||
* [Kata Pengantar](0x02-foreword.md) | ||
* [Pengenalan](0x03-introduction.md) | ||
* [Catatan Rilis](0x04-release-notes.md) | ||
* [Ancaman Keamanan API](0x10-api-security-risks.md) | ||
* [OWASP Top 10 Ancaman Keamanan API – 2019](0x11-t10.md) | ||
* [API1:2019 Otorisasi Objek Rusak](0xa1-broken-object-level-authorization.md) | ||
* [API2:2019 Otentikasi Pengguna Rusak](0xa2-broken-user-authentication.md) | ||
* [API3:2019 Paparan Data Berlebihan](0xa3-excessive-data-exposure.md) | ||
* [API4:2019 Kurangnya Sumber Daya & Pembatasan Tingkat](0xa4-lack-of-resources-and-rate-limiting.md) | ||
* [API5:2019 Otorisasi Tingkat Fungsi Rusak](0xa5-broken-function-level-authorization.md) | ||
* [API6:2019 Penugasan Massal](0xa6-mass-assignment.md) | ||
* [API7:2019 Konfigurasi Keamanan yang Salah](0xa7-security-misconfiguration.md) | ||
* [API8:2019 Injeksi](0xa8-injection.md) | ||
* [API9:2019 Pengelolaan Aset yang Tidak Tepat](0xa9-improper-assets-management.md) | ||
* [API10:2019 Pencatatan & Pemantauan yang Kurang Memadai](0xaa-insufficient-logging-monitoring.md) | ||
* [Apa yang Selanjutnya untuk Pengembang](0xb0-next-devs.md) | ||
* [Apa yang Selanjutnya untuk DevSecOps](0xb1-next-devsecops.md) | ||
* [Metodologi dan Data](0xd0-about-data.md) | ||
* [Ucapan Terima Kasih](0xd1-acknowledgments.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# Tentang OWASP | ||
|
||
Open Web Application Security Project (OWASP) adalah komunitas terbuka yang didedikasikan | ||
untuk memungkinkan organisasi mengembangkan, membeli, dan memelihara aplikasi dan | ||
API yang dapat dipercaya. | ||
|
||
Di OWASP, Anda akan menemukan yang gratis dan terbuka: | ||
|
||
* Alat dan standar keamanan aplikasi. | ||
* Buku lengkap tentang pengujian keamanan aplikasi, pengembangan kode yang aman, dan | ||
tinjauan kode yang aman. | ||
* Presentasi dan [video][1]. | ||
* [Lembar cheats][2] tentang banyak topik umum. | ||
* Kontrol keamanan dan pustaka standar. | ||
* [Chapter lokal di seluruh dunia][3]. | ||
* Penelitian mutakhir. | ||
* [Konferensi luas di seluruh dunia][4]. | ||
* [Mailing list][5]. | ||
|
||
Pelajari lebih lanjut di: [https://www.owasp.org][6]. | ||
|
||
Semua alat OWASP, dokumen, video, presentasi, dan bab bebas dan | ||
terbuka untuk siapa saja yang tertarik meningkatkan keamanan aplikasi. | ||
|
||
Kami menganjurkan pendekatan keamanan aplikasi sebagai masalah orang, proses, dan | ||
teknologi, karena pendekatan keamanan aplikasi paling efektif memerlukan peningkatan di bidang ini. | ||
|
||
OWASP adalah jenis organisasi baru. Kebebasan kami dari tekanan komersial | ||
memungkinkan kami untuk menyediakan informasi keamanan aplikasi yang tidak memihak, praktis, dan hemat biaya. | ||
|
||
OWASP tidak berafiliasi dengan perusahaan teknologi mana pun, meskipun kami mendukung | ||
penggunaan teknologi keamanan komersial yang cerdas. OWASP memproduksi banyak jenis | ||
bahan dengan cara kolaboratif, transparan, dan terbuka. | ||
|
||
Yayasan OWASP adalah entitas nirlaba yang memastikan kesuksesan jangka panjang proyek. | ||
Hampir semua orang yang terkait dengan OWASP adalah relawan, | ||
termasuk dewan OWASP, pemimpin chapter, pemimpin proyek, dan anggota proyek. Kami mendukung | ||
penelitian keamanan inovatif dengan hibah dan infrastruktur. | ||
|
||
Ayo bergabung dengan kami! | ||
|
||
## Hak Cipta dan Lisensi | ||
|
||
![lisensi](images/license.png) | ||
|
||
Hak Cipta © 2003-2019 Yayasan OWASP. Dokumen ini dirilis di bawah | ||
[Creative Commons Attribution Share-Alike 4.0 license][7]. Untuk penggunaan ulang atau | ||
distribusi, Anda harus menjelaskan kepada orang lain ketentuan lisensi karya ini. | ||
|
||
[1]: https://www.youtube.com/user/OWASPGLOBAL | ||
[2]: https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series | ||
[3]: https://www.owasp.org/index.php/OWASP_Chapter | ||
[4]: https://www.owasp.org/index.php/Category:OWASP_AppSec_Conference | ||
[5]: https://lists.owasp.org/mailman/listinfo | ||
[6]: https://www.owasp.org | ||
[7]: http://creativecommons.org/licenses/by-sa/4.0/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Kata Pengantar | ||
|
||
Elemen dasar inovasi di dunia aplikasi yang digerakkan saat ini adalah | ||
Antarmuka Pemrograman Aplikasi (API). Dari bank, ritel, dan transportasi | ||
hingga IoT, kendaraan otonom, dan kota pintar, API merupakan bagian penting | ||
dari aplikasi seluler, SaaS, dan web modern dan dapat ditemukan di aplikasi menghadap pelanggan, | ||
menghadap mitra, dan internal. | ||
|
||
Karena sifatnya, API mengekspos logika aplikasi dan data sensitif seperti Informasi Pribadi (PII) dan karena itu, | ||
API semakin menjadi target para penyerang. Tanpa API yang aman, inovasi cepat akan mustahil. | ||
|
||
Meskipun risiko keamanan web aplikasi yang lebih luas Top 10 masih masuk akal, | ||
karena sifat khusus mereka, daftar risiko keamanan API spesifik diperlukan. | ||
Keamanan API berfokus pada strategi dan solusi untuk memahami dan mengurangi | ||
kerentanan dan risiko keamanan yang unik terkait dengan API. | ||
|
||
Jika Anda sudah familiar dengan [Proyek OWASP Top 10][1], maka Anda akan melihat | ||
kesamaan antara kedua dokumen: keduanya ditujukan untuk keterbacaan dan adopsi. Jika Anda baru mengenal | ||
seri OWASP Top 10, mungkin lebih baik membaca bagian [Risiko Keamanan API][2] dan [Metodologi dan Data][3] | ||
sebelum melompat ke daftar 10 besar. | ||
|
||
Anda dapat berkontribusi pada OWASP API Security Top 10 dengan pertanyaan, komentar, | ||
dan ide Anda di repositori proyek GitHub kami: | ||
|
||
* https://github.com/OWASP/API-Security/issues | ||
* https://github.com/OWASP/API-Security/blob/master/CONTRIBUTING.md | ||
|
||
Anda dapat menemukan OWASP API Security Top 10 di sini: | ||
|
||
* https://www.owasp.org/index.php/OWASP_API_Security_Project | ||
* https://github.com/OWASP/API-Security | ||
|
||
Kami ingin berterima kasih kepada semua kontributor yang membuat proyek ini dimungkinkan dengan upaya dan kontribusi mereka. | ||
Mereka semua tercantum di bagian [Ucapan Terima Kasih][4]. Terima kasih! | ||
|
||
[1]: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project | ||
[2]: ./0x10-api-security-risks.md | ||
[3]: ./0xd0-about-data.md | ||
[4]: ./0xd1-acknowledgments.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Pendahuluan | ||
|
||
## Selamat Datang di OWASP API Security Top 10 - 2019! | ||
|
||
Selamat datang di edisi pertama OWASP API Security Top 10. Jika Anda sudah akrab dengan seri OWASP Top 10, Anda akan melihat kesamaannya: tujuannya adalah mudah dibaca dan diadopsi. Jika tidak, pertimbangkan untuk mengunjungi [halaman wiki OWASP API Security Project][1], sebelum menggali lebih dalam tentang risiko keamanan API yang paling kritis. | ||
|
||
API memainkan peran yang sangat penting dalam arsitektur aplikasi modern. Karena penciptaan kesadaran keamanan dan inovasi memiliki tempo yang berbeda, penting untuk fokus pada kelemahan keamanan API yang umum. | ||
|
||
Tujuan utama OWASP API Security Top 10 adalah untuk mendidik mereka yang terlibat dalam pengembangan dan pemeliharaan API, misalnya pengembang, desainer, arsitek, manajer, atau organisasi. | ||
|
||
Di bagian [Metodologi dan Data][2], Anda dapat membaca lebih lanjut tentang bagaimana edisi pertama ini dibuat. Di versi mendatang, kami ingin melibatkan industri keamanan, dengan panggilan data publik. Untuk saat ini, kami mendorong semua orang untuk berkontribusi dengan pertanyaan, komentar, dan ide di repositori [GitHub][3] atau [Mailing list][4] kami. | ||
|
||
[1]: https://www.owasp.org/index.php/OWASP_API_Security_Project | ||
[2]: ./0xd0-about-data.md | ||
[3]: https://github.com/OWASP/API-Security | ||
[4]: https://groups.google.com/a/owasp.org/forum/#!forum/api-security-project |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Catatan Rilis | ||
|
||
Ini adalah edisi OWASP API Security Top 10 pertama, yang direncanakan akan diperbarui secara berkala, setiap tiga atau empat tahun sekali. | ||
|
||
Tidak seperti versi ini, di versi mendatang, kami ingin melakukan panggilan data publik, melibatkan industri keamanan dalam upaya ini. Di bagian [Metodologi dan Data][1], Anda akan menemukan detail lebih lanjut tentang bagaimana versi ini dibangun. Untuk detail lebih lanjut tentang risiko keamanan, harap merujuk pada bagian [API Security Risks][2]. | ||
|
||
Penting untuk menyadari bahwa selama beberapa tahun terakhir, arsitektur aplikasi telah berubah secara signifikan. Saat ini, API memainkan peran yang sangat penting dalam arsitektur baru ini dari mikroservis, Single Page Applications (SPAs), aplikasi seluler, IoT, dan lainnya. | ||
|
||
OWASP API Security Top 10 merupakan upaya yang dibutuhkan untuk menciptakan kesadaran tentang masalah keamanan API modern. Hanya mungkin karena upaya besar dari beberapa sukarelawan, semuanya terdaftar di bagian [Penghargaan][3]. Terima kasih! | ||
|
||
[1]: ./0xd0-about-data.md | ||
[2]: ./0x10-api-security-risks.md | ||
[3]: ./0xd1-acknowledgments.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Risiko Keamanan API | ||
|
||
[OWASP Risk Rating Methodology][1] digunakan untuk melakukan analisis risiko. | ||
|
||
Tabel di bawah ini merangkum terminologi yang terkait dengan skor risiko. | ||
|
||
| Agen Ancaman | Dapat Dieksploitasi | Prevalensi Kelemahan | Dapat Dideteksi Kelemahan | Dampak Teknis | Dampak Bisnis | | ||
| :-: | :-: | :-: | :-: | :-: | :-: | | ||
| Khusus API | Mudah: **3** | Luas **3** | Mudah **3** | Parah **3** | Spesifik Bisnis | | ||
| Khusus API | Rata-rata: **2** | Umum **2** | Rata-rata **2** | Sedang **2** | Spesifik Bisnis | | ||
| Khusus API | Sulit: **1** | Sulit **1** | Sulit **1** | Minor **1** | Spesifik Bisnis | | ||
|
||
**Catatan**: Pendekatan ini tidak memperhitungkan kemungkinan agen ancaman. Juga tidak memperhitungkan berbagai detail teknis yang terkait dengan aplikasi tertentu Anda. Faktor-faktor apa pun dapat secara signifikan mempengaruhi kemungkinan keseluruhan penyerang menemukan dan mengeksploitasi kerentanan tertentu. Peringkat ini tidak memperhitungkan dampak aktual pada bisnis Anda. Organisasi Anda harus memutuskan seberapa banyak risiko keamanan dari aplikasi dan API yang akan diterima organisasi mengingat budaya, industri, dan lingkungan peraturan Anda. Tujuan OWASP API Security Top 10 bukan untuk melakukan analisis risiko ini untuk Anda. | ||
|
||
## Referensi | ||
|
||
### OWASP | ||
|
||
* [OWASP Risk Rating Methodology][1] | ||
* [Article on Threat/Risk Modeling][2] | ||
|
||
### Eksternal | ||
|
||
* [ISO 31000: Risk Management Std][3] | ||
* [ISO 27001: ISMS][4] | ||
* [NIST Cyber Framework (US)][5] | ||
* [ASD Strategic Mitigations (AU)][6] | ||
* [NIST CVSS 3.0][7] | ||
* [Microsoft Threat Modeling Tool][8] | ||
|
||
[1]: https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology | ||
[2]: https://www.owasp.org/index.php/Threat_Risk_Modeling | ||
[3]: https://www.iso.org/iso-31000-risk-management.html | ||
[4]: https://www.iso.org/isoiec-27001-information-security.html | ||
[5]: https://www.nist.gov/cyberframework | ||
[6]: https://www.asd.gov.au/infosec/mitigationstrategies.htm | ||
[7]: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator | ||
[8]: https://www.microsoft.com/en-us/download/details.aspx?id=49168 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# OWASP Top 10 Risiko Keamanan API – 2019 | ||
|
||
| Risiko | Deskripsi | | ||
| ---- | ----------- | | ||
| API1:2019 - Otorisasi Tingkat Objek yang Rusak | API cenderung mengekspos endpoint yang menangani pengidentifikasi objek, menciptakan masalah Otorisasi Akses Tingkat yang luas. Pemeriksaan otorisasi tingkat objek harus dipertimbangkan dalam setiap fungsi yang mengakses sumber data menggunakan input dari pengguna. | | ||
| API2:2019 - Otentikasi Pengguna yang Rusak | Mekanisme otentikasi sering diimplementasikan dengan salah, memungkinkan penyerang mengkompromikan token otentikasi atau memanfaatkan celah implementasi untuk mengambil alih identitas pengguna lain sementara atau permanen. Mengompromikan kemampuan sistem untuk mengidentifikasi klien/pengguna, mengkompromikan keamanan API secara keseluruhan. | | ||
| API3:2019 - Pemaparan Data yang Berlebihan | Menantikan implementasi generik, pengembang cenderung mengekspos semua properti objek tanpa mempertimbangkan sensitivitas individu mereka, mengandalkan klien untuk melakukan penyaringan data sebelum menampilkannya ke pengguna. | | ||
| API4:2019 - Kurangnya Sumber Daya & Pembatasan Laju | Cukup sering, API tidak memberlakukan pembatasan apa pun pada ukuran atau jumlah sumber daya yang dapat diminta oleh klien/pengguna. Tidak hanya dapat berdampak pada kinerja server API, yang mengarah ke Denial of Service (DoS), tetapi juga membiarkan pintu terbuka untuk celah otentikasi seperti brute force. | | ||
| API5:2019 - Otorisasi Tingkat Fungsi yang Rusak | Kebijakan kontrol akses kompleks dengan hierarki, kelompok, dan peran yang berbeda, dan pemisahan yang tidak jelas antara fungsi administratif dan reguler, cenderung mengarah pada celah otorisasi. Dengan memanfaatkan masalah ini, penyerang mendapatkan akses ke sumber daya pengguna lain dan/atau fungsi administratif. | | ||
| API6:2019 - Mass Assignment | Mengikat data yang disediakan klien (misalnya, JSON) ke model data, tanpa penyaringan properti yang tepat berdasarkan daftar putih, biasanya mengarah ke Mass Assignment. Menebak properti objek, mengeksplorasi titik akhir API lainnya, membaca dokumentasi, atau menyediakan properti objek tambahan dalam muatan permintaan, memungkinkan penyerang memodifikasi properti objek yang seharusnya tidak mereka lakukan. | | ||
| API7:2019 - Kesalahan Konfigurasi Keamanan | Kesalahan konfigurasi keamanan umumnya merupakan hasil dari konfigurasi default yang tidak aman, konfigurasi yang tidak lengkap atau ad-hoc, penyimpanan cloud terbuka, header HTTP yang dikonfigurasi salah, metode HTTP yang tidak perlu, berbagi sumber daya Cross-Origin (CORS) yang longgar, dan pesan kesalahan yang terperinci mengandung informasi sensitif. | | ||
| API8:2019 - Injeksi | Celah injeksi, seperti SQL, NoSQL, Command Injection, dll., terjadi ketika data yang tidak dipercaya dikirim ke interpreter sebagai bagian dari perintah atau kueri. Data berbahaya penyerang dapat menipu interpreter untuk mengeksekusi perintah yang tidak diinginkan atau mengakses data tanpa otorisasi yang tepat. | | ||
| API9:2019 - Pengelolaan Aset yang Tidak Tepat | API cenderung mengekspos lebih banyak endpoint daripada aplikasi web tradisional, sehingga dokumentasi yang tepat dan terbaru sangat penting. Inventarisasi host dan versi API yang diterapkan yang tepat juga memainkan peran penting untuk memitigasi masalah seperti versi API usang dan endpoint debug yang terekspos. | | ||
| API10:2019 - Logging & Pemantauan yang Tidak Memadai | Pencatatan dan pemantauan yang tidak memadai, dipasangkan dengan integrasi insiden yang hilang atau tidak efektif, memungkinkan penyerang untuk menyerang sistem lebih lanjut, mempertahankan persistensi, berpindah ke lebih banyak sistem untuk mengutak-atik, mengekstrak, atau menghancurkan data. Sebagian besar studi pelanggaran menunjukkan waktu untuk mendeteksi pelanggaran adalah lebih dari 200 hari, biasanya dideteksi oleh pihak eksternal daripada proses internal atau pemantauan. | |
43 changes: 43 additions & 0 deletions
43
editions/2019/id/0xa1-broken-object-level-authorization.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# API1:2019 Otorisasi Tingkat Objek yang Rusak | ||
|
||
| Agen Ancaman/Vektor Serangan | Kelemahan Keamanan | Dampak | | ||
| - | - | - | | ||
| Khusus API: Eksploitasi **3** | Prevalensi **3** : Deteksi **2** | Teknis **3** : Spesifik Bisnis | | ||
| Penyerang dapat memanfaatkan endpoint API yang rentan terhadap otorisasi tingkat objek yang rusak dengan memanipulasi ID objek yang dikirim dalam permintaan. Hal ini dapat menyebabkan akses tidak sah ke data sensitif. Masalah ini sangat umum dalam aplikasi berbasis API karena komponen server biasanya tidak sepenuhnya melacak status klien, dan sebaliknya, lebih bergantung pada parameter seperti ID objek, yang dikirim dari klien untuk memutuskan objek mana yang akan diakses. | Ini telah menjadi serangan paling umum dan berdampak pada API. Mekanisme otorisasi dan kontrol akses dalam aplikasi modern kompleks dan meluas. Bahkan jika aplikasi mengimplementasikan infrastruktur yang tepat untuk pemeriksaan otorisasi, pengembang mungkin lupa menggunakan pemeriksaan ini sebelum mengakses objek sensitif. Deteksi kontrol akses biasanya tidak dapat diterapkan untuk pengujian statis atau dinamis otomatis. | Akses tidak sah dapat mengakibatkan pengungkapan data ke pihak yang tidak berwenang, kehilangan data, atau manipulasi data. Akses tidak sah ke objek juga dapat mengarah ke pengambilalihan akun secara penuh. | | ||
|
||
## Apakah API Rentan? | ||
|
||
Otorisasi tingkat objek adalah mekanisme kontrol akses yang biasanya diimplementasikan di tingkat kode untuk memvalidasi bahwa satu pengguna hanya dapat mengakses objek yang seharusnya mereka akses. | ||
|
||
Setiap endpoint API yang menerima ID objek, dan melakukan jenis tindakan apa pun pada objek, harus menerapkan pemeriksaan otorisasi tingkat objek. Pemeriksaan harus memvalidasi bahwa pengguna yang login memiliki akses untuk melakukan tindakan yang diminta pada objek yang diminta. | ||
|
||
Kegagalan dalam mekanisme ini biasanya menyebabkan pengungkapan informasi yang tidak sah, modifikasi, atau penghancuran semua data. | ||
|
||
## Skenario Serangan Contoh | ||
|
||
### Skenario #1 | ||
|
||
Platform e-commerce untuk toko online (toko) menyediakan halaman daftar dengan grafik pendapatan untuk toko hosting mereka. Memeriksa permintaan browser, penyerang dapat mengidentifikasi endpoint API yang digunakan sebagai sumber data untuk grafik tersebut dan polanya `/shops/{shopName}/revenue_data.json`. Menggunakan endpoint API lainnya, penyerang dapat mendapatkan daftar semua nama toko yang di-host. Dengan skrip sederhana untuk memanipulasi nama di daftar, mengganti `{shopName}` dalam URL, penyerang mendapatkan akses ke data penjualan ribuan toko e-commerce. | ||
|
||
### Skenario #2 | ||
|
||
Saat memantau lalu lintas jaringan perangkat wearable, permintaan HTTP `PATCH` berikut menarik perhatian penyerang karena adanya header permintaan HTTP kustom `X-User-Id: 54796`. Mengganti nilai `X-User-Id` dengan `54795`, penyerang menerima respons HTTP yang berhasil, dan dapat memodifikasi data akun pengguna lain. | ||
|
||
## Cara Mencegah | ||
|
||
* Implementasikan mekanisme otorisasi yang tepat yang mengandalkan kebijakan dan hierarki pengguna. | ||
* Gunakan mekanisme otorisasi untuk memeriksa apakah pengguna yang login memiliki akses untuk melakukan tindakan yang diminta pada catatan di setiap fungsi yang menggunakan input dari klien untuk mengakses catatan di database. | ||
* Lebih baik menggunakan nilai acak dan tidak terduga sebagai ID catatan. | ||
* Menulis tes untuk mengevaluasi mekanisme otorisasi. Jangan menerapkan perubahan rentan yang merusak tes. | ||
|
||
## Referensi | ||
|
||
### Eksternal | ||
|
||
* [CWE-284: Kontrol Akses yang Tidak Tepat][1] | ||
* [CWE-285: Otorisasi yang Tidak Tepat][2] | ||
* [CWE-639: Otorisasi Melewati Kunci yang Dikendalikan Pengguna][3] | ||
|
||
[1]: https://cwe.mitre.org/data/definitions/284.html | ||
[2]: https://cwe.mitre.org/data/definitions/285.html | ||
[3]: https://cwe.mitre.org/data/definitions/639.html |
Oops, something went wrong.