GHrxexUTk8Cy9ibyQ09EFsI4Tl8sPmI2qnpAKStw
Bookmark

Owasp Top 10 Series — A2 (Cryptographic Failures)

 Broken Access Control adalah sebuah kondisi yang dimana sebuah sistem aplikasi yang tidak punya Authorisasi yang cukup

Pengantar

OWASP merupakan singkatan dari Open Web Application Security Project, yang merupakan sebuah project Security Web Application open source yang diperkasai oleh para penggiat teknologi atau pengembang aplikasi, OWASP sering mengadakan seminar, forum diskusi serta pendidikan untuk para Developer.

jadi yang dimaksud OWASP TOP 10? owasp top 10 merupakan sebuah cara untuk mengkategorikan resiko kerentanan yang sering terjadi pada sebuah aplikasi berbasis website, dari yang paling atas (resiko tertinggi) hingga yang paling bawah (tingkat resiko rendah), Tujuannya apa ?, tentu saja ini sangat berguna bagi para developer aplikasi supaya mereka jadi lebih aware terhadap kerentanan di aplikasi mereka.

di artikel ini kita akan membahas owasp top 10 yang paling teratas untuk tahun 2021 (owasp tiap 4 tahun sekali), ialah Cryptographic Failures.


Cryptographic Failures adalah sebuah kondisi dimana pengimplementasian kriptografi atau pengenkripsian yang kurang baik di sebuah aplikasi sehingga menyebabkan data sensitive terekspos dengan mudah.

Developer yang menerapkan konsep buruk kriptografi sering menyebabkan data Breach, karna ya tadi… data tidak di enkripsi (sembunyikan) dari attacker dengan baik, yang mana dimanfaatkan oleh attacker untuk mengakses data yang lebih sensitive lagi.

Beberapa hal yang sering terjadi pada Cryptographic Failures ialah:

  1. Transmit / Menyimpan sebuah data sensitif tidak dalam keadaan terenkripsi (Cleartext)
  2. Menggunakan enkripsi / encoding yang sudah lawas, atau sudah mudah ditemukan pemecahnya.
  3. Menggunakan default key untuk sebuah enkripsi, tidak menerapkan management key dan key rotation
  4. Tidak memvalidasi sertifikat server dan trust chain
  5. Melakukan Transmit / Menyimpan data sensitif dengan protocol yang tidak aman.

Berikut saya cantumkan beberapa contoh report dari orang lain di celah keamanan Cryptographic Failures :

Sumber : https://hackerone.com/reports/1066410

ednpoint :

https://account.clario.co/js/main.044af6485f6b0cd90809.js


'https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=AIzaSyAw-SpLHVTIP3IFEIkckCuEmIhnUrY9OrQ';

 Kemudian attacker memanfaatkan kebocoran dari API Key

Ref Link1 => https://support.google.com/firebase/answer/9021429

Ref Link2 =>https://firebase.google.com/docs/dynamic-links/rest

Saat Attacker mau mengetes Regex, ia menemukan bahwa terdapat kerentanan OpenRedirect pada sistem yang dimana ia bisa memasukkan URL (yang sudah di pendekkan (bisa dengan Postman)) yang akan mengarahkan ke situs manapun.

https://lnk.clario.co/?link=[URLHERE]

Berikut dilampirkan Proof of Concept :

https://drive.google.com/uc?id=1PtFwYSFwMyNFz796o9vvFUGfpJXOiOW0


Sumber : https://hackerone.com/reports/396467

endpoint :

https://github.com/%E2%96%88%E2%96%88%E2%96%88%E2%96%88%E2%96%88/leetcode/blob/0eec6434940a01e490d5eecea9baf4778836c54e/TopicMatch.py


import os

import requests

import sys

pull_number = 76793

pull_url = "https://github.sc-corp.net/api/v3/repos/Snapchat/android/pulls/" + str(pull_number)

payload = {}

payload["Authorization"] = "token " + "9db9ca3440e535d90408a32a9c03d415979da910"

print payload

r = requests.get(pull_url,


## I didn't try anything with the token, and dont know what access it has, and i know that in order to login to https://github.sc-corp.net you need to have an email @snap but still i though it would be a good idea to share this finding with you in case it can be used in a way that i dont know.

sumber : https://hackerone.com/reports/173268

Pertama pergi ke https://hackerone.com/reports/1066410

lalu attacker intercept ke endpoit di atas, melakukan Method POST

POST /session HTTP/1.1 Host: index.rubygems.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://index.rubygems.org/sign_in Cookie: _gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1; _ga=GA1.2.406017651.1475277378 DNT: 1 Connection: keep-alive Upgrade-Insecure-Requests: 1 Pragma: no-cache Cache-Control: no-cache


Hasil :

utf8=✓ authenticity_token=9dML75aXwXcw4rqJlOeKDK2/SdRK78+5ciMEtrMbDgEf160r9v1TX0/pXynzDC+pYSp5M1oGLsmtvkixo+MfdA== session[who]=Eterm1 session[password]=5[redacted]W commit=Sign+in


dari hasil di atas kita mendapati bahwa authenticity_tokensessioncommit tidak dilakukan enkripsi dengan baik

  • Enkripsi semua data dengan menggunakan algoritma yang terpercaya
  • Enkripsi semua data yang ada di transit dengan menggunakan protokol terbaru seperti TLS
  • Melakukan Identifikasi dan pengontrolan semua sensitive data yang ada
  • Jangan mengambil dan menyimpan data yang dirasa tidak penting
  • Simpan password dengan baik, Pakai Hash.

CWE-261 Weak Encoding for Password

CWE-296 Improper Following of a Certificate’s Chain of Trust

CWE-310 Cryptographic Issues

CWE-319 Cleartext Transmission of Sensitive Information

CWE-321 Use of Hard-coded Cryptographic Key

CWE-322 Key Exchange without Entity Authentication

CWE-323 Reusing a Nonce, Key Pair in Encryption

CWE-324 Use of a Key Past its Expiration Date

CWE-325 Missing Required Cryptographic Step

CWE-326 Inadequate Encryption Strength

CWE-327 Use of a Broken or Risky Cryptographic Algorithm

CWE-328 Reversible One-Way Hash

CWE-329 Not Using a Random IV with CBC Mode

CWE-330 Use of Insufficiently Random Values

CWE-331 Insufficient Entropy

CWE-335 Incorrect Usage of Seeds in Pseudo-Random Number Generator(PRNG)

CWE-336 Same Seed in Pseudo-Random Number Generator (PRNG)

CWE-337 Predictable Seed in Pseudo-Random Number Generator (PRNG)

CWE-338 Use of Cryptographically Weak Pseudo-Random Number Generator(PRNG)

CWE-340 Generation of Predictable Numbers or Identifiers

CWE-347 Improper Verification of Cryptographic Signature

CWE-523 Unprotected Transport of Credentials

CWE-720 OWASP Top Ten 2007 Category A9 — Insecure Communications

CWE-757 Selection of Less-Secure Algorithm During Negotiation(‘Algorithm Downgrade’)

CWE-759 Use of a One-Way Hash without a Salt

CWE-760 Use of a One-Way Hash with a Predictable Salt

CWE-780 Use of RSA Algorithm without OAEP

CWE-818 Insufficient Transport Layer Protection

CWE-916 Use of Password Hash With Insufficient Computational Effort

Posting Komentar

Posting Komentar