Menentukan Nilai Kerentanan Dengan CVSS (Common Vulnerability Scoring System)

 



Hallo guys, di artikel kali ini Maxteroit akan membahas informasi yang menurut saya cukup vital didunia bug bounty, yaitu pembahasan mengenai CVSS Scoring.

CVSS Scoring ini sendiri memiliki penjelasan seperti berikut :

The Common Vulnerability Scoring System (aka CVSS Scores) provides a numerical (0-10) representation of the severity of an information security vulnerability. CVSS scores are commonly used by infosec teams as part of a vulnerability management program to provide a point of comparison between vulnerabilities, and to prioritize remediation of vulnerabilities.

Sedikit saya jelaskan, CVSS kepanjangan dari Common Vulnerability Scoring System merupakan sebuah framework yang dikelola oleh organisasi FIRST,  CVSS Scoring ini berfungsi untuk representasi penilaian berupa numerik berdasarkan tingkat keparahan pada kerentanan yang ditemukan. Skor CVSS biasanya digunakan oleh tim infosec sebagai bagian dari program manajemen kerentanan untuk memberikan titik perbandingan antara kerentanan, dan untuk memprioritaskan perbaikan kerentanan.

Oke langsung aja ke langkah-langkahnya.

Buka https://www.first.org/cvss/calculator/3.0 

Disini terdapat beberapa pembagian untuk mendapatkan hasil berapa sih nilai atau score dari salah satu vulnerability yang telah kita temukan.

Penjelasan

1. Attack Vector (AV) 


Attack Vector disini mengacu pada dengan apa sih vulnerability ini bisa di akses dan ada beberapa pilihan seperti berikut :

  • Network (N)
  • Adjacent (A)
  • Local (L)
  • Physical (P)

Network (N)

Network dimana attacker mendapatkan vulnerability nya melalui internet untuk contoh kasusnya adalah ketika kita menemukan suatu celah yang dimana celah tersebut tidak perlu ada akses tambahan seperti menggunakan VPN tetapi cukup menggunakan internet yang kita gunakan saja.

Adjacent (A)

Adjacent dimana attacker hanya dapat mengakses kerentannya pada local network contohnya seperti menggunakan Virtual Private Network ( VPN ).

Local (L)

Local dimana attacker hanya dapat mengakses kerentananya pada operating sistem nya sendiri.

Physical (P)

physical dimana attacker mendapatkan kerentannya melalui komunikasi dengan hardwarenya mungkin contoh nya kamu hacker untuk melakukan pentest pada server fisik membutuhkan akses lebih pada hadware.

2. Attack Complexity (AC)

Ini cukup mudah karena ada dua yaitu Low dan High, Low dimana attacker mendapatkan kerentannya cukup mudah dan jika High adalah kebalikannya

 

3. Privilage Required (PR)

Attacker menggunakan privilage apa untuk mendapat kerentanan tersebut,

None attacker tidak perlu menggunakan Privilege apapun untuk mendapatkan kerentannya.

Low attacker hanya menjadi user biasa setelah login menggunakan akun sendiri.

High attacker membutuhkan privilage seperti akun admin untuk mendapatkan kerentanan yang ada pada sistem.

4. User Interaction (UI)



Pada User Interaction ini hanya ada dua pilihan yaitu None dan Required

None ketika attacker tidak membutuhkan interaksi dari calon victim untuk mendapatkan keretanan.

Required ketika attacker membutuhkan interaksi pada calon victim untuk mendapatkan keretanan.

Sebagai contoh penyerang yang menggunakan user Interaction Required adalah dengan mengirimkan malware pada email atau sosial media lainnya agar user melakukan download malware tersebut atau dengan serangan Cross Site Scripting ( XSS ) yang membutuhkan interaksi dengan admin untuk mendapatkan privilege yang lebih tinggi.

5. Scope (S)


Scope atau ruang lingkup

Unchange ketika attacker berhasil melakukan peretasan pada suatu sistem tetapi tidak akan mempengaruhi sistem lainnya.

Change ketika attacker berhasil melakukan peretasan pada suatu sistem dan akan mempengaruhi sistem lainnya. sebagai contohnya jika attacker telah berhasil masuk server A maka server B juga akan kena.

6. Confidentiality (C)


kerahasiaan data ini dibagi menjadi tiga yaitu 

None contohnya ketika attacker berhasil masuk pada salah satu database tetapi didalamnya tidak terdapat apapun atau kosong.

Low contohnya ketika attacker berhasil masuk pada salah satu database tetapi semua yang ada di database tersebut di enkripsi dan kita tidak dapat mendekripsinya.

High contohnya ketika attacker berhasil masuk pada salah satu database tetapi semua isi dari database tersebut hanya berisikan plain text biasa dan dapat dibaca dengan mudah.

7. Integrity (I)

Keutuhan data dibagi menjadi tiga 

None contohnya ketika attacker berhasil masuk pada salah satu database tetapi pada database tersebut kosong dan kita sama sekali tidak bisa melakukan perubahan apapun.

Low contohnya ketika attacker berhasil menemukan file .git pada salah satu web kemudian di dumper tetapi hasil dari dumper tersebut hanya berisi file file yang tidak penting.

High contohnya ketika attacker dapat merubah data dan attacker telah berhasil masuk pada satu database dengan teknik sql injection lalu melakukan update password atau menambahkan field dan column baru pada database tersebut atau bahkan dapat menghapus apapun disana.

8. Availability (A)


Availability (ketersediaan) data dibagi menjadi 3 bagian yaitu

None contohnya ketika ada attacker mencoba melakukan serangan DOS attack tetapi tidak terdapat dampak apapun dari serangan tersebut.

Low ketika attacker berhasil melakukan serangan, tetapi hanya berdampak sangat kecil pada sistem yang diserang. 

High ketika attacker berhasil melakukan PoC contoh nya dengan DoS attack karena dampak dari serangan tersebut cukup fatal dan dapat berakibat pada ketersediaan komponen misalnya dengan membanjiri lalu lintas jaringan yang akan berakibat fatal pada bandwidth yang menyebabkan sistem down untuk beberapa saat sehingga menimbulkan kerugian.

Contoh Kasus

Untuk disini kita ambil contoh kasus dari kerentanan XSS Reflected pada salah satu website, kemudian kita tentukan score dari penemuan kerentanan ini dengan cvss. Oke langsung saja,
Berdasarkan kerentanan XSS Reflected ini, saya menyimpulkan : 

Attack Vector : yang saya pakai adalah jaringan internet saya sendiri, jadi saya memilih Network
Attack Complecity : XSS ini bisa dibilang cukup mudah, maka saya memilih Low.

User Privilege : saya pilih None, karena tidak menggunakan user apapun atau admin untuk mengaksesnya.

User Interaction : saya pilih None karena disini saya tidak membutuhkan interaksi dengan siapapun

Scope : saya pilih Unchange karena ini tidak berdampak pada website atau sistem lain

Confidentiality : saya pilih None karena tidak menemukan kerahasiaan apapun

Integrity : saya pilih Low karena memungkinkan untuk memodifikasi data tetapi saya tidak punya konsekuensi untuk memodifikasi data tersebut.

Availability : saya pilih None karena tidak menemukan ketersediaan data apapun.
Maka kurang lebih hasilnya akan seperti ini :


Menghasilkan vector string seperti ini : CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Penutup

Kurang lebih itu saja yang bisa Maxteroit sampaikan mengenai CVSS Scoring ini, semoga bisa bermanfaat dan membantu kelancaran kalian disaat berburu bounty karena laporan kita yang sudah dilengkapi dengan CVSS Score :D,
Terimakasih.

Comments