Pola serangan

Dalam ilmu komputer, **pola serangan** merupakan metode yang ketat untuk menemukan ''bug'' atau kesalahan dalam kode terkait keamanan komputer.

Pola serangan dapat digunakan sebagai cara untuk menjelaskan hubungan sebab-akibat antara peristiwa yang terdeteksi pada tahap-tahap berbeda dari suatu serangan. Pola serangan sering digunakan untuk tujuan pengujian dan sangat penting untuk memastikan bahwa potensi kerentanan dicegah. Pola serangan dapat digunakan untuk menyoroti area-area yang perlu dipertimbangkan untuk penguatan keamanan dalam suatu aplikasi perangkat lunak. Pola ini juga menyediakan pola solusi umum untuk mencegah serangan, baik secara fisik maupun dalam referensi. Praktik semacam itu dapat disebut sebagai pola pengkodean defensif. 

Sebuah pola serangan dipresentasikan dari sudut pandang penyerang, yang menjelaskan cara umum melakukan serangan dengan memanfaatkan kerentanan spesifik dalam suatu lingkungan tertentu. Pola serangan juga menjelaskan cara untuk menghadapi perkembangan serangan dengan menggunakan pola keamanan, serta menganalisis informasi yang terkumpul pada setiap tahap serangan. Pola serangan mendefinisikan serangkaian langkah yang dapat diulang yang dapat diterapkan untuk menyimulasikan serangan terhadap keamanan suatu sistem.

## Kategori
Pola serangan dapat dikategorikan dengan berbagai cara. Salah satunya adalah dengan membaginya ke dalam kategori umum, seperti Arsitektur, Fisik, dan Eksternal yang akan dijelaskan lebih lanjut dibawah ini. Cara lainnya yaitu dengan membagi berdasarkan teknologi atau jenis teknologi tertentu seperti pola serangan SQL Server, pola serangan Oracle, pola serangan .Net, pola serangan Java dll.

### Berdasarkan Kategori Umum
Berdasarkan kategori umum, pola serangan dibagi menjadi tiga yaitu sebagai berikut:
***Pola serangan arsitektural** merupakan pola serangan yang digunakan untuk menyerang kelemahan dalam desain arsitektur sistem. Hal-hal seperti kelemahan dalam protokol, strategi autentikasi, dan modularisasi sistem termasuk dalam pola serangan ini. Serangan yang digunakan dalam pola ini merupakan serangan yang lebih berbasis logika dibandingkan serangan manipulasi bit yang sebenarnya.

***Pola serangan fisik** merupakan pola serangan yang menargetkan kode. Serangan ini termasuk ''overflow buffer'', ''race condition'', serangan injeksi SQL, dan beberapa jenis serangan lain yang telah dikenal publik secara umum.  

***Pola serangan eksternal** mencakup serangan seperti kuda Troya, virus, dan cacing. Dikarenakan serangan tersebut relatif independen dari program yang diserang, maka serangan ini tidak dapat diselesaikan dengan pendekatan desain perangkat lunak. Namun, kerentanan perangkat lunak dapat memungkinkan serangan ini berhasil pada sistem yang menjalankan kode yang rentan. Salah satu contohnya adalah versi Microsoft SQL Server yang rentan, yang memungkinkan cacing Slammer untuk menyebar sendiri. Serangan ini biasanya dilawan dengan merevisi kode yang rentan.

## Struktur
Pola serangan memiliki struktur yang sangat mirip dengan struktur pola desain. Penggunaan format ini membantu standardisasi pengembangan pola serangan dan memastikan bahwa informasi khusus tentang setiap pola selalu didokumentasikan dengan cara yang sama.

Struktur yang disarankan untuk mencatat pola serangan adalah sebagai berikut: 
* **Nama Pola**, label yang diberikan kepada pola yang biasanya digunakan untuk merujuk pada pola tersebut. 
* **Tipe dan Subtipe**, tipe dan subtipe pola yang terkait dapat membantu klasifikasi pola. Hal ini memungkinkan pengguna menemukan dan mengidentifikasi dengan cepat grup pola yang harus mereka hadapi dalam upaya keamanan mereka.

Lebih lanjut, secara detail komponen-komponen dari struktur kerangka kerja pola serangan diuraikan di bawah ini:
***Nama**, label yang menyebutkan nama umum yang diberikan kepada serangan dalam repositori serangan standar seperti CERT atau Symantec.
***Tujuan**, label yang memberikan deskripsi singkat tentang maksud dari serangan tersebut.
***Konteks**, label penjelasan tentang lingkungan umum, termasuk kondisi-kondisi di mana serangan terjadi. Ini dapat mencakup pertahanan sistem serta kerentanan yang ada.
***Masalah**, label yang mendefinisikan tujuan dari pola serangan, yang dilihat dari sudut pandang penyerang sebagai "masalah" dalam menyerang sistem. Ada juga masalah tambahan ketika sistem dilindungi oleh mekanisme pertahanan tertentu yang harus diatasi. Kekuatan (istilah yang digunakan dalam penulisan pola) adalah faktor-faktor yang mungkin diperlukan untuk mengeksekusi serangan, kerentanan yang akan dimanfaatkan, dan faktor-faktor yang mungkin menghalangi atau menunda serangan.
***Solusi**, label yang mendeskripsikan solusi untuk masalah penyerang yaitu bagaimana serangan dilakukan dan hasil yang diharapkan. Diagram kelas UML dapat digunakan untuk menjelaskan sistem sebelum dan selama serangan. Diagram urutan bisa digunakan untuk menampilkan pesan-pesan yang dipertukarkan selama serangan. Diagram keadaan atau aktivitas dapat digunakan untuk memberikan detail tambahan.
***Penggunaan yang Diketahui**, label yang menjelaskan insiden-insiden spesifik yang terlibat dalam serangan. Detail-detail serangan sebelumnya bermanfaat dalam menentukan bagaimana cara menghentikan serangan dan dimana mencari bukti.
***Konsekuensi**, label yang mendeskripsikan keuntungan dan kerugian dari sudut pandang penyerang. Terutama, apakah upaya dan biaya serangan sebanding dengan hasil yang didapatkan, serta kemungkinan sumber kegagalan.
***Tindakan Pencegahan dan Forensik**, label dalam kerangka kerja yang diperlukan untuk pola serangan yang mana menjelaskan langkah-langkah yang diambil untuk menghentikan, meredakan, dan melacak serangan. Ini juga mencakup penjelasan tentang pola keamanan yang efektif melawan serangan tersebut. Dari sudut pandang forensik, bagian ini menjelaskan informasi yang bisa diperoleh di setiap tahap pelacakan serangan serta informasi yang dapat disimpulkan untuk mengidentifikasi serangan spesifik. Selain itu, bagian ini bisa menyarankan informasi tambahan yang perlu dikumpulkan untuk mendukung penyelidikan forensik.
***Lokasi Bukti**, label yang mencakup diagram yang menampilkan kelas-kelas UML dan asosiasi-asosiasi yang relevan untuk penyelidikan forensik. Diagram kelas UML bermanfaat karena sifat abstraknya. Pola serangan tidak perlu merepresentasikan semua kelas (komponen jaringan) dan asosiasi yang terlibat dalam serangan secara komprehensif. Sebaliknya, pola tersebut hanya perlu mewakili kelas-kelas yang relevan untuk penyelidikan. Ketika sumber-sumber utama seperti ''firewall'' dan IDS tidak memberikan cukup bukti, penyelidik harus memeriksa sumber-sumber sekunder seperti perangkat terminal (termasuk perangkat nirkabel), server, dan perangkat penyimpanan jaringan.
***Pola Serupa**, lable yang mencakup pola-pola serangan lain dengan tujuan yang berbeda yang dilakukan dengan cara yang serupa, atau serangan dengan tujuan yang mirip yang dilakukan dengan cara yang berbeda.

Setiap pola akan memiliki satu tipe, dan tidak memiliki atau memiliki banyak subtipe akan digunakan untuk mengklasifikasikan pola sebagai serangan. Serangan Injeksi, Serangan ''Denial-of-Service'', Serangan Kriptoanalisis, dll. merupakan tipe serangan umum. Subtipe dari serangan *Denial-of-Service*diantaranta yaitu DOS – Resource Starvation, DOS-System Crash, DOS-Policy Abuse.

Memastikan bahwa pola tidak diulang secara tidak perlu juga merupakan manfaat penting dari struktur pola serangan. Eksploitasi baru selalu dibuat untuk pola serangan yang sama, sehingga mudah membedakan eksploitasi baru dengan serangan baru. Salah satu contohnya yaitu pola serangan Buffer Overflow. Ada banyak eksploitasi dan virus yang diketahui yang memanfaatkan kerentanan ''Buffer Overflow''. Namun, eksploitasi dan virus tersebut mengikuti pola yang sama. Oleh karena itu, mekanisme klasifikasi tipe dan subtipe menyediakan cara untuk mengklasifikasikan sebuah pola. Jika pola yang dibuat tidak memiliki tipe dan subtipe yang unik, kemungkinan besar hal itu merupakan eksploitasi baru untuk pola yang sudah ada.

## Referensi