Anda di halaman 1dari 17

Machine Translated by Google

Jurnal Internasional Keamanan Informasi (2022) 21:293–309


https://doi.org/10.1007/s10207-021-00554-7

KONTRIBUSI REGULER

Model Web Agen: memodelkan peretasan web untuk pembelajaran


penguatan

László Erd odi1 · Fabio Massimo Zennaro1

Diterbitkan online: 8 Juni


2021 © Penulis 2021

Abstrak

Peretasan situs web adalah jenis serangan yang sering digunakan oleh pelaku jahat untuk mendapatkan informasi rahasia, mengubah integritas halaman
web, atau membuat situs web tidak tersedia. Alat yang digunakan oleh penyerang menjadi semakin otomatis dan canggih, dan agen pembelajaran mesin
berbahaya tampaknya menjadi pengembangan berikutnya di baris ini. Untuk memberikan peretas etis dengan alat serupa, dan untuk memahami dampak
dan keterbatasan agen buatan, kami menyajikan dalam makalah ini sebuah model yang memformalkan tugas peretasan web untuk agen pembelajaran
penguatan. Model kami, bernama Agen Web Model, menganggap peretasan web sebagai tantangan gaya menangkap bendera, dan mendefinisikan masalah
pembelajaran penguatan pada tujuh tingkat abstraksi yang berbeda.
Kami membahas kompleksitas masalah ini dalam hal tindakan dan status yang harus dihadapi agen, dan kami menunjukkan bahwa model seperti itu
memungkinkan untuk mewakili sebagian besar kerentanan web yang relevan. Sadar bahwa pendorong kemajuan dalam pembelajaran penguatan adalah
ketersediaan tantangan standar, kami menyediakan implementasi untuk tiga lapisan abstraksi pertama, dengan harapan komunitas akan mempertimbangkan
tantangan ini untuk mengembangkan agen peretasan web yang cerdas.

Kata Kunci Model Web Agen · Pengujian penetrasi · Menangkap bendera · Pembelajaran penguatan

1. Perkenalan Peretasan etis biasanya merupakan pekerjaan manusia, karena penyerang


membutuhkan keahlian tingkat tinggi dalam pengujian penetrasi, yang
Karena kompleksitas sistem komputer dan jaringan meningkat secara melibatkan kemampuan manusia (seperti pengalaman, penalaran, atau
signifikan selama dekade terakhir, jumlah kerentanan di dalam sistem telah intuisi) yang sulit untuk dikodifikasi.
meningkat dengan cara yang sama. Berbagai jenis penyerang mungkin Meskipun otomatisasi penuh pengujian penetrasi sangat menantang,
mencoba mengeksploitasi berbagai kerentanan ini untuk keuntungan peretas mengandalkan berbagai alat otomatis [2,12,31] untuk membantu
mereka sendiri. Situs web sangat menarik bagi pelaku kejahatan, jadi mereka menangani jumlah dan berbagai kemungkinan kerentanan. Dalam
serangan terhadap situs web saat ini adalah peristiwa sehari-hari. Untuk hal pengujian web, ada banyak pemindai keamanan web yang dapat
melindungi sistem yang rentan, salah satu pendekatan terbaik adalah membantu pekerjaan penguji manusia. Alat-alat ini dapat menggunakan
meniru serangan nyata menggunakan metodologi yang sama yang akan permintaan yang telah ditentukan sebelumnya untuk memeriksa keberadaan
digunakan peretas. Praktik ini, bernama peretasan topi putih, telah menjadi kerentanan, dan dengan cepat menghasilkan laporan keamanan. Namun,
bagian penting dari proyek teknologi informasi penting. Ketika mengambil mereka memiliki kemampuan terbatas untuk melakukan evaluasi yang
bagian dalam proyek peretasan topi putih yang bertujuan untuk menguji kompleks, dan temuan mereka biasanya harus ditinjau oleh supervisor
keamanan situs web target, peretas etis menyerang sistem dan melaporkan manusia. Indeks kualitas, seperti jumlah positif palsu dan negatif palsu,
semua temuan mereka ke pemilik sistem atau administrator sehingga menyoroti terbatasnya cakupan alat ini. Skrip pendeteksi kerentanan baru
kerentanan dapat ditambal. dan pembaruan umum dapat digunakan untuk meningkatkan kinerja
pemindai kerentanan web, tetapi ini biasanya solusi satu kali yang tidak
memiliki peningkatan otomatis.

B László Erdÿodi
laszloe@ifi.uio.no Selain itu, banyak pemindai web dirancang hanya untuk mendeteksi

Fabio Massimo Zennaro kerentanan, tetapi tidak untuk mengeksploitasinya. Alat khusus dapat
fabiomz@ifi.uio.no digunakan untuk mengeksploitasi kerentanan yang ditargetkan dengan
peluang keberhasilan yang moderat [9], dan dengan demikian memajukan
1
Departemen Informatika, Universitas Oslo, 0316 Oslo, pemahaman tentang keamanan keseluruhan sistem yang sedang dipelajari.
Norway

123
Machine Translated by Google

294 L. Erd odi, FM Zennaro

Teknik pembelajaran mesin (ML) yang ditujukan untuk memecahkan tantangan akan mempromosikan dan memajukan penelitian dalam
masalah melalui pembelajaran dan inferensi sekarang sedang diadopsi pengembangan bot merah otomatis yang dapat membantu dalam tugas-tugas
di banyak bidang, termasuk keamanan [39]. Mengikuti kesuksesan mereka pengujian penetrasi.
dalam tugas-tugas yang menantang seperti pengenalan gambar [22] atau Model Web Agen dalam makalah ini menyediakan cara untuk
pemrosesan bahasa alami [41], model jaringan saraf dalam yang diawasi menguraikan masalah pemodelan peretasan web menjadi tingkat abstraksi
telah diadopsi untuk mengatasi masalah terkait keamanan yang berbeda dengan meningkatnya kompleksitas. Dengan ini
masalah dalam konteks statis, seperti deteksi kerentanan program [32] atau dekomposisi, kami berharap dapat membuat langkah penting menuju
deteksi nama domain berbahaya [23]. formalisasi dan implementasi web berbasis ML
Namun, jaringan saraf dalam yang dirancang untuk memecahkan masalah agen peretas dari dua sudut pandang: pertama, dengan menyediakan
statis yang mengeksploitasi kumpulan contoh data yang besar tidak sesuai peta jalan tentatif potensi masalah dengan meningkatnya
ke masalah penetrasi yang lebih kompleks dan dinamis kompleksitas yang harus dipecahkan untuk mengembangkan agen peretasan
pengujian. Sub-bidang ML yang mungkin menawarkan lebih relevan web; dan, kedua, dengan menyarankan Agen Web
paradigma untuk mengatasi masalah seperti pengujian web, adalah Model sebagai antarmuka yang memungkinkan peneliti di komputer
memperkuat pembelajaran. Memang, metode pembelajaran penguatan memungkinkan
keamanan dan pembelajaran mesin untuk berinteraksi dengan lancar dalam
agen untuk belajar dengan sendirinya dalam lingkungan yang dinamis dan definisi masalah dan dalam penyebaran agen RL.
kompleks dengan trial and error dan inferensi. Sukses dalam menantang Makalah ini disusun sebagai berikut. Bagian 2 menyajikan
game seperti Go [37] atau Starcraft II [42] menunjukkan bahwa konsep utama yang terkait dengan peretasan dan penguatan web
algoritma akan segera menemukan penggunaan di dunia pengujian penetrasi. sedang belajar. Bagian 3 membahas bagaimana masalah umum dari
Baru-baru ini, beberapa aplikasi ML dan penguatan peretasan web dapat dikurangi, melalui serangkaian langkah formalisasi,
pembelajaran dalam konteks keamanan ofensif dikembangkan. menjadi masalah pembelajaran penguatan. Bagian 4
Di sisi peretas topi putih, DARPA diselenggarakan pada tahun 2016 menjelaskan model kami sendiri untuk masalah peretasan web dan
Cyber Grand Challenge untuk pengujian penetrasi otomatis [13]. Di sisi menggambarkan contoh masalah pada tingkat abstraksi yang berbeda.
peretas topi hitam, bot jahat adalah Bagian 5 menjelaskan bagaimana masalah peretasan di dunia nyata
disediakan dengan lebih banyak fungsi pembelajaran. dapat dipetakan ke Model Web Agen. Bagian 6 memberikan beberapa
Motivasi utama di balik penelitian saat ini adalah untuk perincian tentang implementasi berdasarkan tantangan
memahami dan menganalisis perilaku agen peretasan web berbasis ML. pada formalisasi kami. Akhirnya, Sek. 7 membahas beberapa etika
Karena tidak dapat dihindari bahwa AI dan ML akan pertimbangan tentang pekerjaan ini, dan Sect. 8 menarik kesimpulan dan
diterapkan dalam keamanan ofensif, mengembangkan pemahaman yang mengilustrasikan kemungkinan arah untuk pekerjaan di masa depan.
baik tentang karakteristik utama dan keterbatasan alat tersebut
akan sangat membantu untuk bersiap menghadapi serangan semacam itu.
Selain itu, agen peretasan web otonom semacam itu akan berguna untuk 2 Latar Belakang
hacker topi putih manusia dalam melakukan penetrasi hukum
menguji tugas dan mengganti yang padat karya dan mahal 2.1 Peretasan web
pekerjaan ahli manusia.
Namun, mengembangkan peretasan web yang sepenuhnya otonom Layanan Internet paling terkenal dan populer, Dunia
agen adalah masalah yang sangat kompleks. Mengganti manusia Wide Web (WWW), telah berjalan selama bertahun-tahun [4].
ahli dengan pengalaman pengujian penetrasi bertahun-tahun tidak bisa Sejak penemuannya pada tahun 1989, telah mengalami banyak
dilakukan dalam satu langkah. Makalah ini bertujuan untuk mendorong ini perkembangan, dan saat ini merupakan salah satu layanan yang paling kompleks
arah penelitian dengan mempelajari cara di mana masalah pengujian di internet. Protokol HTTP [11] yang digunakan oleh web ini
penetrasi dapat dimodelkan dan diuraikan layanan telah dibuat untuk komunikasi dalam klien-
menjadi masalah yang lebih sederhana yang dapat diselesaikan oleh agen model server. Klien web, biasanya browser web, mengirim
pembelajaran penguatan yang terlatih. Upaya pemodelan kami mengikuti dua: permintaan HTTP ke server web; server web, pada gilirannya,
petunjuk: pertama-tama kami memeriksa formalisasi masalah peretasan web menjawab dengan respons HTTP. Pesan HTTP terdiri dari:
menggunakan model standar, dan kemudian, kami membahas dari tiga bagian utama: Uniform Resource Locator (URL),
abstraksi contoh nyata dari masalah peretasan web referensi objek yang diminta; header HTTP, berisi informasi tentang status
dalam model kami. Kami menyebut model generik kami Agen komunikasi; dan
Model Jaringan. Sadar bahwa pendorong yang kuat dan efektif untuk Badan HTTP, berisi muatan komunikasi.
pengembangan agen pembelajaran penguatan baru dan sukses adalah Badan permintaan mungkin berisi parameter POST yang dikirim oleh
ketersediaan tantangan standar dan klien, sedangkan badan jawaban biasanya berisi yang terpanjang
tolok ukur, kami menggunakan formalisasi kami untuk mengimplementasikan seri bagian dari pesan, yaitu konten halaman web dalam format Hypertext Markup
tantangan pada tingkat abstraksi yang berbeda dan dengan Language (HTTP).
meningkatnya kompleksitas. Kami membuat tantangan ini tersedia Komunikasi web didefinisikan dengan baik oleh standar HTTP. Pada
mengikuti standar lapangan. Harapan kami adalah ini waktunya, karena tingginya jumlah komponen

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 295

berpartisipasi dalam komunikasi web, protokol web menjadi semakin 2.3 Pembelajaran penguatan
kompleks, membuka ruang untuk berbagai kerentanan [44]. Kerentanan
dapat dieksploitasi di sisi klien, di sisi server, atau dengan mengorbankan Pembelajaran penguatan (RL) adalah sub-bidang pembelajaran mesin
saluran komunikasi. Misalnya, serangan terhadap sisi server menggunakan yang berfokus pada pelatihan agen di lingkungan tertentu [40]. Dalam
protokol HTTP dapat menargetkan pengaturan server web, skrip sisi lingkungan seperti itu, agen diberi kemungkinan untuk memilih tindakan
server, atau sumber daya lain seperti file lokal atau catatan basis data. dari serangkaian tindakan yang tersedia.
Menggunakan protokol web dengan demikian dapat mengekspos Setelah melakukan suatu tindakan, mereka dapat mengamati konsekuensi
beberapa titik lemah yang dapat ditargetkan oleh aktor jahat. Jenis dari tindakan mereka, baik dalam hal efek pada lingkungan, dan dalam
serangan dapat bervariasi, tetapi dapat dikategorikan menurut triplet hal sinyal penghargaan yang menentukan seberapa baik atau diinginkan
keamanan informasi. hasil dari tindakan itu. Tujuan dari RL adalah untuk menentukan algoritma
yang memungkinkan agen untuk mengembangkan kebijakan tindakan
Beberapa serangan bertujuan untuk memecahkan kerahasiaan dengan yang mengarah ke hadiah setinggi mungkin pada waktunya.
mengakses informasi sensitif atau rahasia; lainnya bertujuan untuk
merusak integritas, baik untuk menyebabkan kerusakan dan gangguan Masalah RL mungkin sangat menantang, karena ruang tindakan untuk
atau sebagai langkah persiapan sebelum melakukan tindakan lebih lanjut; agen mungkin besar, lingkungan mungkin stokastik dan non-stasioner,
dan, akhirnya, serangan dapat menargetkan ketersediaan layanan, dan sinyal hadiah mungkin jarang. Namun, terlepas dari kesulitan tersebut,
misalnya, membebani layanan web dengan banyak permintaan untuk RL telah terbukti berhasil mengatasi berbagai masalah, seperti menguasai
menyebabkan penolakan layanan (DOS). permainan [26,37] atau mengendarai kendaraan otonom [35]. Kemampuan
untuk belajar di lingkungan belajar yang kompleks, seperti Starcraft II [42],
mencerminkan jenis pembelajaran yang diharapkan dilakukan oleh agen
peretasan web. Algoritma RL kemudian dapat menawarkan cara untuk
2.2 Tangkap bendera melatih agen buatan yang mampu melakukan pengujian penetrasi yang
berarti.
Tantangan Capture The Flag (CTF) adalah kompetisi yang dirancang
untuk menawarkan platform kepada peretas etis untuk belajar tentang
pengujian penetrasi dan melatih keterampilan mereka [25]. CTFs diatur 2.4 Pekerjaan terkait
sebagai serangkaian tantangan peretasan yang diformalkan dengan baik
dan terdefinisi dengan baik. Setiap tantangan memiliki satu kerentanan Minat untuk melatih bot merah buatan yang mampu bersaing dalam
yang dapat dieksploitasi (atau, kadang-kadang, rantai kerentanan) dan tantangan CTF telah meningkat setelah DARPA menyelenggarakan Cyber
kondisi kemenangan yang tidak ambigu dalam bentuk bendera, yaitu Grand Challenge Event pada tahun 2016 di Las Vegas [13]. Dalam kontes
token yang membuktikan apakah tantangan tersebut diselesaikan atau seperti CTF yang disederhanakan ini, agen buatan diberi kemungkinan
tidak. Biasanya, CTF membutuhkan keterampilan logis dan teknis murni, untuk berinteraksi dengan sistem yang memperlihatkan sejumlah perintah
terbatas.sosial.
dan mereka mengecualikan ketergantungan pada saluran sampingan seperti rekayasa
Selain itu, tantangan biasanya dirancang untuk membuat penggunaan Namun, minat pada masalah pemodelan dan pemecahan masalah
alat paksa atau otomatis menjadi tidak layak. peretasan atau penetrasi mendahului acara ini. Formalisasi yang berbeda
Pengaturan standar CTF adalah apa yang disebut mode Jeopardy, di dari masalah seperti CTF atau pengujian penetrasi telah disarankan
mana semua pemain menargetkan satu sistem statis. Pengaturan yang dalam literatur. Model standar mengandalkan formalisme dari teori grafik
lebih realistis dapat mencakup penyebaran layanan non-statis dengan (misalnya, proses keputusan Markov [33]), perencanaan (misalnya,
kerentanan yang berkembang, atau partisi pemain dalam tim, biasanya perencanaan klasik [6]), atau teori permainan (misalnya, permainan
tim merah, yang bertugas mengambil bendera dari sistem target, dan tim Stackelberg [38]). Spektrum model yang luas dengan berbagai tingkat
biru, yang bertanggung jawab untuk mencegah penyerang mendapatkan ketidakpastian dan berbagai tingkat struktur dalam ruang aksi disajikan
bendera. dalam [17].
Dalam kasus tantangan web, CTF standar terdiri dari objek hosting
situs web dengan kerentanan berbeda, dan berisi tanda dalam bentuk Pendekatan bebas model di mana agen disediakan dengan informasi
string khusus. Peserta hanya diminta untuk mengumpulkan bendera, dan minimal tentang struktur masalah baru-baru ini dipertimbangkan melalui
tidak diperlukan tindakan eksploitatif lebih lanjut (seperti, menyiapkan adopsi RL [10,15,29,30]. Sementara karya-karya ini fokus pada penerapan
sistem komando dan kontrol). CTFs web bergaya Jeopardy merupakan RL untuk memecahkan tantangan tertentu, dalam makalah ini kami
kumpulan tantangan yang ketat: lingkungan tempat operasi didefinisikan menganalisis masalah bagaimana mendefinisikan masalah CTF yang
dengan baik, tindakan hanya dapat dilakukan di domain digital, dan tujuan relevan dengan cara yang fleksibel dan konsisten untuk RL.
serta kondisi kemenangan dinyatakan dengan jelas. Semua properti ini
membuat studi kasus CTFs menarik untuk mengembangkan agen buatan
untuk pengujian penetrasi. Perbedaan yang relevan antara pendekatan kami dan penelitian lain
yang dipublikasikan adalah tingkat abstraksi tindakan.

123
Machine Translated by Google

296 L. Erd odi, FM Zennaro

Banyak penelitian melakukan pengujian penetrasi model dengan 3 Formalisasi peretasan web
mempertimbangkan tindakan tingkat tinggi seperti pemindaian, sidik jari,
atau eksploitasi kerentanan. Dalam [14] dan [15], set tindakan dibuat dari Di bagian ini, kami mengeksplorasi bagaimana masalah peretasan web yang
tindakan seperti: menyelidiki, mendeteksi, menghubungkan, memindai, sidik tidak jelas dapat diformalkan menggunakan berbagai jenis model standar
jari, penilaian kerentanan, mengeksploitasi, eskalasi hak istimewa, pivot. (Peretasan web ÿ CTF ÿ game ÿ masalah RL).
Tindakan serupa yang mengkodekan eksploitasi kerentanan lengkap
(misalnya, mendapatkan hak istimewa ekstra dengan eksploitasi yang ada 3.1 Dari peretasan web ke CTF
untuk kerentanan yang diidentifikasi oleh kerentanan Umum dan nomor
Eksposur) merupakan ruang tindakan di [8]; algoritma RL berdasarkan Seperti yang dibahas dalam Sect. 2, peretasan web dunia nyata adalah
jaringan Q yang dalam kemudian digunakan untuk mempelajari kebijakan masalah yang sangat kompleks, dengan kondisi keberhasilan yang tidak
optimal untuk melakukan pengujian pen etrasi. Tindakan tingkat tinggi seperti jelas dan menghadirkan beragam kemungkinan tindakan, mulai dari
pemindaian dan eksploitasi siap dipertimbangkan dalam [34]; algoritma Q- eksploitasi kerentanan yang diketahui publik hingga ketergantungan pada
learning RL standar menggunakan tabel dan jaringan saraf diuji untuk saluran samping non-teknis seperti sosial

melakukan pengujian penetrasi otonom dengan agen yang mampu rekayasa.


menemukan jalur serangan yang optimal untuk berbagai topologi jaringan Tantangan CTF mewakili cara untuk menentukan masalah peretasan
yang berbeda di lingkungan simulasi mereka. web. CTFs menawarkan cara yang jelas namun realistis untuk mendefinisikan
tantangan peretasan web. Ada dua keuntungan penting dalam pemodelan
Dalam [28], rangkaian tindakan mencakup tindakan kompleks seperti peretasan web sebagai CTF: (i) tantangan CTF memiliki tujuan yang
memindai, masuk, menghitung , dan mengeksploitasi; beberapa algoritma, terdefinisi dengan baik, dan kondisi penghentian yang tidak ambigu (baik
dari strategi tetap hingga algoritma RL (Q-learning, sistem pengklasifikasi dalam hal pengambilan bendera atau waktu kedaluwarsa); dan, (ii) tantangan
yang diperluas dalam jaringan Q), dibandingkan. Dalam pendekatan kami, CTF menentukan batasan awal pada tindakan yang dapat dilakukan oleh
kami fokus pada tindakan tingkat rendah: kami hanya mempertimbangkan peserta (biasanya mengharuskan semua upaya dan serangan terjadi di
permintaan web sederhana, dan penggunaan eksploitasi siap pakai sebagai domain digital).
tindakan tunggal bukanlah pilihan; misalnya, mengeksploitasi injeksi SQL
tidak dapat dilakukan dalam satu tindakan. Model Web Agen bertujuan untuk Dalam pengertian ini, kita dapat memahami CTFs sebagai langkah
membangun proses eksploitasi dari tingkat yang lebih rendah dan lebih pertama dalam formalisasi peretasan web. Namun, formalisasi ini masih
mendasar daripada pendekatan lain dalam literatur. terlalu longgar untuk digunakan dalam pembelajaran mesin; yang paling
penting, ruang tindakan, sementara didefinisikan secara implisit, masih
Perhatikan bahwa, secara paralel dengan pekerjaan ini, beberapa terlalu terbatas untuk berguna.

masalah yang disajikan dalam makalah ini telah dianalisis dan diselesaikan
dengan algoritma RL sederhana di [45] juga. Dalam [45], kelayakan praktis 3.2 Dari CTF ke game
dan keterbatasan agen RL diselidiki dengan menjalankan skenario ad hoc
yang disederhanakan (misalnya, menemukan dan mengeksploitasi Untuk menyempurnakan pemodelan kami, kami dapat mengekspresikan CTFs
kerentanan layanan dengan pemindaian port dan tindakan eksploitasi). dalam istilah teori permainan. CTFs peretasan web dapat didefinisikan sebagai permainan:
Berbeda dari pekerjaan itu, makalah ini berfokus pada eksploitasi web dan
memodelkan tindakan di tingkat yang lebih rendah, seperti permintaan web G = P, A, u ,
sederhana; dengan demikian, tindakan mengirim eksploitasi harus
didekomposisi menjadi beberapa tindakan Model Web Agen dengan di mana,
parameter yang berbeda. Lebih penting lagi, pekerjaan saat ini bertujuan
untuk menyediakan kerangka kerja konseptual untuk berbagai tantangan – P adalah himpunan pemain,
peretasan web. Masalah yang ditangani dalam [45] dapat dipertimbangkan – A adalah himpunan aksi yang tersedia untuk pemain,
kembali sebagai contoh masalah tertentu dalam hierarki Model Web Agen; – u adalah vektor utilitas atau fungsi hasil, sehingga ui adalah fungsi utilitas
dengan demikian, makalah ini memberikan perspektif yang lebih luas dan untuk pemain i, 1 i |P|.
lebih formal untuk menilai dan menghubungkan analisis yang lebih konkret,
seperti yang ditawarkan di [45]. Contoh CTF yang paling sederhana adalah game 2 pemain dengan |P| =
2, di mana satu pemain adalah penyerang dan pemain kedua adalah server
web. Selama tantangan CTF web bersifat statis, server web dapat dianggap
Akhirnya, penelitian lain seperti [24] atau [3] hanya berfokus pada kasus sebagai pemain yang secara pasti bereaksi terhadap tindakan penyerang.
web yang sangat spesifik. Di [24], set tindakan hanya terdiri dari tindakan Seperti yang dijelaskan dalam Sect. 2.2, penyiapan CTF dasar ini dapat
eksploitasi POST yang dilakukan oleh PowerShell. diperluas ke game multipemain adver sarial dengan |P| = N, di mana pemain
Dalam [3], penulis menganalisis firewall aplikasi web dengan pendekatan dipartisi dalam tim merah dan tim biru. Berikut ini, kami akan memusatkan
berbasis pencarian berbasis ML yang menggabungkan ML dan algoritma perhatian dan diskusi kami pada 2-pemain
evolusioner untuk mendeteksi serangan secara otomatis.

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 297

game, meskipun pertimbangan kami berlaku langsung untuk kasus aksi a A tidak hanya bergantung pada aksi itu sendiri, tetapi juga pada
multipemain. keadaan saat ini s S dari sistem. Ini sesuai dengan asumsi sistem stateful .
Untuk pemain mana pun, kami menganggap rangkaian tindakan A Asumsi ini bermakna, karena sistem web nyata mungkin berada dalam
terbatas atau dapat dihitung, sehingga memungkinkan agen buatan untuk status yang berbeda setelah berinteraksi dengan penggunanya. Perhatikan
memilih tindakannya. Perhatikan bahwa asumsi keterbatasan atau bahwa sistem stateless dapat, dengan cara apa pun, dianggap sebagai
kemampuan menghitung ini masuk akal selama CTF berlangsung dalam kasus batas dari sistem stateful dengan satu status tidak berubah. Kedua,
domain digital dan diskrit. kita berasumsi bahwa, secara umum, hasil dari aksi a A, dengan kondisi
Fungsi utilitas ui pemain memungkinkan pengkodean kondisi saat ini s S, mungkin stokastik. Asumsi ini bermakna bahwa sistem web
kemenangan yang dinyatakan oleh tantangan CTF. Fungsi utilitas biner nyata dapat mengandalkan fungsi stokastik. Selain itu, asumsi seperti itu
yang mencolok memungkinkan untuk menetapkan utilitas positif untuk memungkinkan kita untuk memodelkan potensi komunikasi jaringan yang
menangkap bendera, dan utilitas nol untuk yang lainnya. Fungsi utilitas gagal atau upaya sistem untuk mengaburkan logikanya. Perhatikan bahwa
yang lebih halus memungkinkan untuk membentuk perilaku agen yang keadaan deterministik dapat, dengan cara apa pun, dianggap sebagai
dipelajari secara lebih halus. kasus batas dari sistem stokastik dengan fungsi distribusi delta. Singkatnya,
Formalisasi teori permainan kemudian dapat dilihat sebagai langkah kami menyatakan logika server web sebagai fungsi transisi probabilistik T =
lebih lanjut dalam proses formalisasi masalah peretasan web. Kontribusi P s |s, a menentukan distribusi probabilitas atas keadaan masa depan s ,
utama dalam pemodelan formulir ini, dikontraskan dengan model CTF mengingat keadaan saat ini s dan tindakan a. Kami akan menyebut T
generik, adalah definisi dari serangkaian tindakan yang mungkin dapat sebagai transisi
dihitung. Ini memberikan dasar bagi agen untuk memilih tindakan dan
mempelajari kebijakan tindakannya sendiri. Meskipun teori permainan
sudah menyediakan alat untuk menganalisis peretasan web seperti yang
telah kami modelkan, formalisasi ini masih belum ideal karena pemodelan fungsi, logika permainan, atau dinamika lingkungan.
server web sebagai hasil pemain aktif yang terlalu umum. Dalam kasus
yang menarik, di mana kita memiliki penyerang tunggal yang menargetkan Seperti dalam perumusan teori permainan, himpunan aksi A
sistem statis, akan lebih praktis untuk menggambarkan server web sebagai adalah serangkaian tindakan yang dapat dihitung yang tersedia untuk agen.

komponen statis permainan. Fungsi imbalan R menerjemahkan fungsi utilitas u


dari pemodelan teori permainan ke formalisme RL.
Akhirnya, set status S memungkinkan pelacakan status permainan.
3.3 Dari game ke masalah RL Perhatikan bahwa meskipun status permainan ditentukan secara unik pada
suatu saat, agen mungkin tidak menyadarinya. Ini mengarah ke permainan
Dalam kasus peretasan web dengan sistem statis, pemodelan teori yang sebagian dapat diamati , di mana agen tidak memiliki pengetahuan
permainan mendefinisikan server web secara berlebihan dengan tertentu tentang keadaan sistem saat ini, tetapi hanya memiliki keyakinan
menggambarkannya sebagai pemain. Atau, kita dapat memodelkan game atas keadaan yang mungkin terjadi. Melalui keadaan lokalnya sendiri, yang
sebagai masalah RL: mengkodekan pengetahuannya yang tidak sempurna, agen mencoba untuk
melacak keadaan sistem yang sebenarnya. Perhatikan bahwa permainan
R = S, A, T ,R , yang benar-benar dapat diamati dapat dianggap sebagai kasus batas di
mana semua kepercayaan runtuh ke dalam fungsi delta.
di mana

– S adalah sekumpulan status tempat game berada, Formalisasi RL akhir ini cukup baik menangkap masalah peretasan
– A adalah sekumpulan aksi, web: cukup fleksibel untuk mengakomodasi tantangan peretasan yang
– T : S × A ÿ S adalah fungsi transisi keadaan yang mendefinisikan sangat berbeda, tetapi, pada saat yang sama, cukup dibatasi sehingga
bagaimana keadaan berevolusi mengingat keadaan awal dan tindakan, semua komponennya terdefinisi dengan baik sehingga algoritma RL standar
– R : S ×A ÿ R adalah fungsi reward yang mendefinisikan reward yang dapat digunakan untuk melatih agen buatan. Kami kemudian akan membuat
diperoleh agen setelah melakukan tindakan tertentu formalisasi RL sebagai cetak biru teoretis model kami untuk peretasan web.
negara.

Masalah RL yang didefinisikan secara implisit mengasumsikan satu


pemain. Dalam model ini, server web tidak direpresentasikan sebagai 4 Model Web Agen
pemain kedua, tetapi logika internalnya diimplementasikan dalam fungsi
transisi status T Fungsi transisi status . Di bagian ini, kami menggunakan formalisme RL yang didefinisikan dalam Sect. 3 untuk

tion menentukan bagaimana sistem bereaksi terhadap aksi agen yang mengkarakterisasi model kami sendiri untuk peretasan web. Kami kemudian

bermain, dan dinamikanya bergantung pada dua asumsi. Pertama, kita mendiskusikan bagaimana model umum ini dapat digunakan untuk mengimplementasikan

asumsikan bahwa, secara umum, hasil dari masalah peretasan web yang sebenarnya pada tingkat abstraksi yang berbeda.

123
Machine Translated by Google

298 L. Erd odi, FM Zennaro

4.1 Model Web Agen

Untuk mendefinisikan masalah RL, perlu untuk mendefinisikan fungsi


transisi keadaan dari masalah tersebut. Dalam konteks kami, fungsi ini
mewakili logika server web target. Sistem yang berbeda, dengan jenis
kerentanan yang berbeda, dapat direpresentasikan dengan cara yang
berbeda. Untuk menyederhanakan pemodelan server web, kami akan
merepresentasikannya sebagai kumpulan objek generik. Objek-objek ini
diambil untuk mewakili entitas yang menarik (misalnya, file, port) yang
dapat ditargetkan oleh tindakan A penyerang. Penyederhanaan ini
memungkinkan kita untuk menguraikan desain sistem target, logikanya,
dan statusnya. Fungsi transisi dapat didefinisikan dengan cara modular
sehubungan dengan objek tertentu, dan status sistem dapat difaktorkan
dalam status objek tunggal.

Dekomposisi server web menjadi kumpulan objek juga memungkinkan


kita untuk dengan mudah mendefinisikan instance server web pada
tingkat abstraksi yang berbeda. Dengan mendefinisikan sifat dan jumlah
objek yang ada, dan dengan mendefinisikan tindakan mana yang dapat
diambil agen dalam kaitannya dengan objek yang ditentukan, kita dapat
segera mengontrol kompleksitas masalah RL yang dihadapi.

Gambar 1 Tingkat abstraksi dalam Model Web Agen


Selain itu, tujuan lain dari kami dalam memiliki sistem modular yang
didefinisikan dalam hal objek individu adalah kemungkinan instantiasi
tantangan baru secara otomatis, mungkin secara acak. Model generatif
masalah peretasan web semacam itu akan memberikan peluang untuk Masalah peretasan di level1 memiliki solusi sepele yang dapat
dengan mudah menghasilkan sejumlah besar masalah untuk melatih dikodekan secara manual dalam algoritme sederhana, tetapi kami akan
agen RL. menunjukkan bahwa kompleksitas komputasi segera meningkat saat
Kami menyebut model generatif yang fleksibel ini untuk memberi kami naik level. Masalah peretasan di level7 mirip dengan peretasan web
contoh berbagai jenis masalah peretasan web, Model Web Agen. dunia nyata, di mana penyerang bahkan dapat membuat objeknya sendiri
di situs target (misalnya, skrip perintah) dan melakukan strategi eksploitasi
yang rumit; masalah semacam ini jauh dari solusi sepele.
4.2 Tingkat abstraksi
Berikut ini, kami membahas rincian lapisan berbeda dari Model Web
Secara konkret, kami mendefinisikan 7 tingkat abstraksi yang berbeda Agen, termasuk jumlah status dan tindakan yang harus ditangani di
tingkat yang berbeda.
untuk peretasan web dengan kompleksitas yang meningkat. Gambar 1
menawarkan ringkasan visual dari level ini, bersama dengan fitur penting Kecuali jika dinyatakan secara eksplisit, di semua level abstraksi, kami
dari masing-masing level. Perhatikan bahwa kompleksitas meningkat akan mengasumsikan bahwa objek pada server web adalah file, dan
dalam hal tindakan dan umpan balik yang dapat diterima agen. Level kami akan mengambil fungsi hadiah biner sederhana R yang
yang lebih tinggi memungkinkan pemodelan yang lebih detail dengan mengembalikan hadiah kesatuan ketika agen menyelesaikan tugasnya,
dan nol jika tidak.
memberikan agen serangkaian tindakan yang lebih besar dan/atau
tindakan yang memungkinkan beberapa parameter. Namun, peningkatan
kompleksitas menyebabkan masalah yang lebih menantang secara
komputasi; bila memungkinkan, kami memberikan perkiraan perkiraan 4.2.1 Level1: lapisan tautan
kompleksitas komputasi ini dalam hal jumlah tindakan dan jumlah status
yang harus ditangani oleh agen. Level1 dimulai dengan model situs web Di level1, situs web terdiri dari kumpulan objek O = {file1, file2, ..., fileN }
yang sangat sederhana, terdiri dari file dasar, mengabstraksi parameter yang mewakili file HTML statis sederhana.
dan sesi web. Pada tingkat yang lebih tinggi, agen diharapkan untuk Kami mengambil file pertama untuk mewakili file index.html di dalam
berinteraksi dengan objek yang lebih kompleks yang membentuk situs webroot. File ditautkan satu sama lain dengan pointer, dan salah satu file
web; misalnya, permintaan ke file dapat menerima beberapa parameter berisi flag. Semua file dapat diakses oleh agen tanpa batasan; tidak ada
parameter input dengan metode web yang berbeda, serta beberapa nilai parameter yang diperlukan, dan header HTTP tidak memiliki informasi
sesi. yang berarti seperti sesi. Isi file yang sebenarnya tidak relevan, kecuali
untuk

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 299

kasus bendera. Secara praktis, masalah level1 dapat direpresentasikan Tabel 2 Jumlah tindakan dan status di level1
sebagai grafik file yang diarahkan (lihat Gambar 2). Jumlah file Jumlah tindakan Jumlah negara bagian
Kumpulan tindakan hanya terdiri dari dua tindakan parametrik:
N 2N 22Nÿ1
A = {baca(filei), cari(filei)}. Tindakan membaca (filei)
membaca file ke- i dan mengembalikan daftar file yang ditautkan. Tindakan 24 8

search(filei) memeriksa file ke- i untuk keberadaan bendera. 3 6 32


Lihat Tabel 1 untuk ringkasan tindakan, parameternya dan 5 10 512
nilai pengembalian mereka. Perhatikan bahwa tindakan ini dapat dilakukan 10 20 5 × 105
hanya pada file yang ditemukan agen di remote
server web.

Tanpa melatih agen RL, solusi heuristik sederhana pointer implisit yang membutuhkan analisis file yang sebenarnya.
untuk masalah ini adalah membaca file satu per satu di Contoh dunia nyata dari jenis pointer implisit ini mungkin
untuk menemukan semua file, lalu cari bendera di dalamnya be: komentar dalam kode sumber yang merujuk ke file lain
setiap. Jumlah file N yang dihosting situs web
tanpa menyebutkan tautan langsung; kata kunci yang digunakan dalam file yang
pengaruh yang signifikan pada skala masalah. Ukuran sebenarnya merujuk ke jenis atau versi khusus dari aplikasi server web atau CMS,
dari ruang aksi |A| tergantung pada nilai N: agen dan itu menunjukkan adanya file default lainnya; berulang
dapat mengambil hingga 2N tindakan berbeda, yaitu, tindakan read() penampilan sebuah kata, menunjukkan bahwa mungkin ada file atau
dan tindakan search() untuk setiap file. Apalagi seorang agen folder dengan nama yang sama. Praktis, masalah level2 bisa
diperlukan untuk melacak status pengetahuannya sendiri, bahwa direpresentasikan sebagai grafik yang diketik terarah dari file dengan dua jenis
adalah merekam tindakan apa yang telah dilakukan dan apa hasilnya
tepi (lihat Gambar. 3).
diamati. Agen dasar dapat dengan mudah melacak, untuk setiap file, Serangkaian tindakan agen sekarang diperluas menjadi tiga
apakah tindakan read() dicoba (2N status) dan apakah tindakan parametrik A = {baca (filei), cari (filei),
pencarian tindakan () telah dicoba (2N status). Secara total, itu akan memiliki membaca dalam (filei)}. Seperti sebelumnya, tindakan read(filei) membaca
22Nÿ1 menyatakan; Tabel 2 menunjukkan perkiraan jumlah engan file dan mengembalikan daftar file yang terhubung dengan tautan eksplisit ,
tindakan dan status sebagai fungsi dari jumlah file.
sementara pencarian(filei) memeriksa file ke- i untuk keberadaan
bendera. Tindakan deepread(filei) memproses file ke- i

4.2.2 Level2: lapisan tautan tersembunyi dan mengembalikan daftar file yang dihubungkan oleh tautan implisit . Melihat
Tabel 3 untuk ringkasan tindakan, parameternya, dan

Di level2, kami memodelkan lagi situs web sebagai kumpulan statis nilai pengembalian mereka. Perhatikan bahwa pada tingkat abstraksi ini,

file HTML. File masih ditautkan dengan pointer, tapi kita sekarang logika dan algoritma untuk melakukan deepread()

membedakan dua jenis pointer: link yang terlihat secara terbuka secara implisit disediakan dalam game itu sendiri. Pada tingkat yang lebih tinggi

ke penyerang setelah membaca file (seperti di level1), dan abstraksi, tugas untuk benar-benar mem-parsing file HTML dan
mengungkap kemungkinan URL file baru akan didelegasikan
kepada agen pembelajaran; agen seperti itu akan menerima yang sebenarnya
konten file dan dapat menggunakan berbagai algoritme untuk memproses
teks, dari pemetaan kamus sederhana (mis .

Gambar 2 Contoh webserver pada level1. Node mewakili file dan solid
panah mewakili koneksi antar file

Tabel 1 Tindakan di level1


Nama tindakan Parameter Hasil

Baca() Mengajukan Kumpulan file


Gambar 3 Contoh webserver pada level2. Node mewakili file, solid
Cari() Mengajukan Benar salah panah mewakili koneksi langsung, dan panah putus-putus mewakili
koneksi tidak langsung antar file

123
Machine Translated by Google

300 L. Erd odi, FM Zennaro

Tabel 3 Tindakan di level2

Nama tindakan Parameter Hasil

Baca() Mengajukan Kumpulan file

membaca dalam() Mengajukan Kumpulan file

Cari() Mengajukan Benar salah

pemetaan ke cgi-bin, pemetaan wordpress ke wp-login, dll.) ke


jaringan saraf pemrosesan bahasa alami yang lebih kompleks
mampu mengusulkan calon file baru yang potensial.
Mengingat N file di server web, kardinalitas dari
ruang aksi sekarang |A| = 3N dan kardinalitas agen
ruang keadaan adalah 23Nÿ1, dengan skala kecil dari level1
karena tindakan tambahan. Tabel 4 menunjukkan perkiraan untuk
beberapa nilai N
Gambar 4 Contoh webserver pada level3. Node padat mewakili file, titik titik di dalam file
menggambarkan sepasang nama parameter dan nilai yang
dapat dikirim ke file, panah padat dan panah putus-putus mewakili, masing-masing,
4.2.3 Level3: lapisan konten dinamis
koneksi langsung dan tidak langsung antara file yang diberikan parameter
pasangan. Jika panah mengarah ke file, itu berarti bahwa setelah read() berhasil
Kompleksitas sebenarnya dari sebuah situs web dimulai dengan sisi server atau deepread() tindakan file itu sendiri terungkap tanpa parameter; jika
naskah. Di level3 kami mempertimbangkan server web yang dapat panah mengarah ke simpul putus-putus internal, lalu setelah read() berhasil
atau deepread(), sebuah file bersama dengan daftar parameter untuk file tersebut juga
mengeksekusi skrip sisi server secara dinamis dengan memproses
dikirim kembali ke agen
parameter pengguna dan menghasilkan konten statis untuk klien. Kita masih
memodelkan server web sebagai kumpulan file statis, mendelegasikan
kompleksitas skrip sisi server dinamis di ke file lain, tetapi mungkin menyertakan pasangan parameter tertentu
ruang tindakan. Dari perspektif praktis, server web relevan dengan file yang terhubung. Lihat Tabel 5 untuk ringkasan dari
masih dapat dilihat sebagai graf berarah dengan simpul yang mungkin tindakan, parameternya, dan nilai pengembaliannya. Melihat
mengembalikan nilai yang berbeda tergantung pada parameter yang diterima bahwa pada tingkat abstraksi ini, kami berasumsi bahwa hanya satu
(lihat Gambar 4). pair ( pname j, pvalk ) dapat ditentukan sebagai input; apalagi, untuk
Ukuran ruang aksi tetap konstan, tetapi dalam dan
menjaga kompleksitas tetap terkendali, kami berasumsi bahwa pname
untuk memperhitungkan passing parameter, sekarang kita mendefinisikan ulang j pvalk dapat mengasumsikan nilai dalam himpunan berhingga, yaitu, 1 j M
tanda tangan tindakan untuk memasukkan parameter baru: A = dan 1 k O, M , O Nÿ0 .
{baca(filei, pname j , pvalk ), cari(filei, pname j , pvalk ), Kardinalitas |A| ruang aksi sekarang jauh lebih besar
deepread (filei, pname j , pvalk )}. Tindakan memiliki hal yang sama karena ledakan kombinatorial dalam parameter an
semantik seperti pada level2, tetapi sekarang, selain menerima file i as tindakan. Dengan asumsi N file di server web, dan satu set M
parameter input, mereka juga menerima nama parameter j dan nama parameter dan nilai parameter O yang bisa bebas
nilai parameter k. Ini mencerminkan permintaan URL tertentu digabungkan, setiap tindakan dapat dipakai N + NMO kali
(file i) bersama dengan parameter tertentu (nama parameter j) (N kali tanpa parameter, dan NMO kali mempertimbangkan
dan nilai yang ditetapkan (nilai parameter k). Nilai kembali dari
read() dan deepread() tindakan juga diperkaya dengan serangkaian
Tabel 5 Tindakan di level3
kemungkinan nama dan nilai parameter; ini karena fakta
bahwa jawaban dari server web mungkin tidak hanya berisi tautan Nama tindakan Parameter Hasil

Baca() Mengajukan Kumpulan file

Nama parameter Set parameter


Tabel 4 Jumlah tindakan dan status di level2
Nilai parameter Nama dan nilai
Jumlah file Jumlah tindakan Jumlah negara bagian
membaca dalam() Mengajukan Kumpulan file

n 3N 23Nÿ1 Nama parameter Set parameter


2 6 32 Nilai parameter Nama dan nilai

3 9 256 Cari() Mengajukan Benar salah

5 15 16384 Nama parameter

10 30 5,3 × 108 Nilai parameter

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 301

semua kombinasi). Secara total, kita kemudian memiliki 3(N + NMO) dirangkum dalam logika permainan, mulai sekarang adalah
tindakan konkret yang dapat dilakukan agen. Agen sepele yang secara eksplisit tugas agen untuk mengurai dan menganalisis jawaban dari
melacak statusnya dengan merekam, untuk setiap tindakan yang mungkin, jika itu server web untuk menemukan tautan eksplisit dan implisit,
diambil atau tidak, harus berurusan dengan ruang dengan kardinalitas serta bendera itu sendiri. Set tindakan baru adalah: A =
23(N+NMO)ÿ1. Tabel 6 menunjukkan beberapa perkiraan untuk {get(filei, [pname], [pval]), post(filei, [pname], [pval])}.
nilai N, M, dan O yang berbeda. Tindakan Theget() andpost() mengimplementasikan web masing-masing
metode, dan mereka menerima sebagai input file (filei), daftar nama
4.2.4 Level4: lapisan metode web parameter ([pname]) bersama dengan daftar nilai parameter
([pval]). Hasil dari tindakan ini adalah halaman HTTP. Itu
Di level4, kami lebih jauh menskalakan kompleksitas dengan mempertimbangkan flag dianggap diambil ketika agen mendapatkan HTTP
kemungkinan server web menerima permintaan yang menentukan a halaman yang berisi bendera. Lihat Tabel 7 untuk ringkasan dari
Metode web HTTP dan berisi daftar nama parameter tindakan, parameternya, dan nilai pengembaliannya.
dan nilai parameter. Server web selalu dimodelkan sebagai Tujuan dari abstraksi level4 adalah untuk mempertimbangkan dinamis
kumpulan file yang membentuk grafik yang diketik terarah dengan bersarang konten situs web berdasarkan beberapa kombinasi parameter dinamis yang
node (lihat Gambar. 5). dikirim oleh klien dengan cara yang berbeda. Ini lebih
Kumpulan tindakan parametrik sekarang direstrukturisasi. Kita abstraksi lanjutan dari masalah dibandingkan dengan level3,
jatuhkan perbedaan buatan sebelumnya antara read(), di mana file hanya menerima satu parameter dinamis tanpa
deepread(), sedangkan di level abstraksi sebelumnya menentukan cara pengirimannya. Perhatikan bahwa, di sisi lain
tugas mengekstraksi tautan eksplisit dan implisit adalah eksternal Di sisi lain, protokol HTTP mampu melakukan banyak operasi tambahan
seperti menguji jalur ke target dengan
Metode TRACE , atau menerima jawaban tanpa tanggapan
Tabel 6 Jumlah tindakan dan status di level3
tubuh dengan KEPALA. Metode ini tidak memiliki nilai tambah dalam
#file #pars #pval #tindakan #negara bagian
level4, karena tujuannya adalah untuk menangkap badan respons dinamis.
Metode lain memungkinkan memodifikasi konten situs web dengan
NMO 3(N + NMO) 23(N+NMO)ÿ1
membuat objek dengan metode PUT , atau menghapus objek dengan
2 2 2 30 5,4 × 108
HAPUS ; namun, operasi ini hanya dipertimbangkan
2 5 5 156 4,6 × 1046
di lapisan yang lebih tinggi dalam Model Web Agen. Dalam pengertian ini,
5 2 2 75 1,9 × 1022
nama lapisan metode web dapat menyesatkan, tetapi kami memilihnya
5 5 5 390 1,3 × 10117 karena dalam sebagian besar kasus, metode GET dan POST
10 5 5 780 3,2 × 10234 yang paling banyak digunakan dalam komunikasi web.

Mengingat, seperti sebelumnya, N file di server web, M mungkin


alternatif untuk nama parameter, O kemungkinan alternatif
untuk nilai parameter, kardinalitas |A| tergantung pada
panjang maksimum P dari daftar parameter. Dengan P = 0,
|A| = 2N, yaitu, secara sederhana, tindakan get() dan post() dengan
tidak ada parameter pada setiap file. Dengan P = 1, |A| = 2N +2NMO,
yaitu, dua tindakan yang sama untuk setiap kemungkinan kombinasi
nol atau satu nama dan nilai parameter (mirip dengan level3).
Dalam kasus terburuk di mana P = M, itulah daftarnya
cukup lama untuk memuat semua nama parameter, nomor
kemungkinan tindakan dapat diperkirakan sebagai:

Tabel 7 Tindakan di level4

Nama tindakan Parameter Hasil

Dapatkan() Mengajukan
halaman HTTP

Set nama parameter


Set nilai parameter
Gambar 5 Contoh webserver pada level4. Node padat mewakili file,
pos() Mengajukan
halaman HTTP
node putus-putus dalam file menggambarkan kemungkinan daftar nama parameter dan
nilai yang dapat dikirim ke file melalui metode web, panah solid mewakili Set nama parameter
koneksi antara file yang diberikan parameter. Di dalam simpul internal Set nilai parameter
metode web yang digunakan ditunjukkan

123
Machine Translated by Google

302 L. Erd odi, FM Zennaro

M
M
2 · Tidak · ·
saya

saya=0
tindakan file
semua kombinasi
semua
nama param i
panjang daftar

· Oi

semua kombinasi i
param vals

Sebuah agen sepele yang akan menyimpan kembali pengetahuan


statusnya tentang tindakan menggunakan nilai biner harus berurusan
dengan ruang keadaan kardinalitas .2|A|

4.2.5 Level5: Lapisan header HTTP

Sementara semua lapisan sebelumnya hanya mempertimbangkan URL


dan bagian tubuh dari paket HTTP, level5 juga mempertimbangkan Gambar 6 Contoh webserver pada level5. Node solid mewakili file, node putus-
header HTTP. Header HTTP dapat terhubung putus dalam file menggambarkan kemungkinan daftar nama parameter dan
menyimpan informasi yang relevan seperti variabel sesi atau kode pasangan nilai dan nama sesi dan pasangan nilai yang dapat dikirim ke file melalui
metode web, panah solid masing-masing mewakili koneksi antara file yang
respons web di header respons. Sesi, yang terdiri dari nama dan nilai
diberikan parameter dan sesi
variabel sesi (misalnya, JSES SIONID=Abvhj67), digunakan untuk
menyediakan akses tinggi ke pengguna khusus; contoh praktisnya
Tabel 8 Tindakan di level5
adalah proses login (yang mungkin terjadi dengan mengirimkan beberapa
Nama tindakan Parameter Hasil
parameter POST , seperti yang dimodelkan di level4), setelah itu server
menetapkan nilai sesi baru. Dapatkan() Mengajukan
halaman HTTP
Informasi header HTTP tambahan, seperti jenis browser atau pengkodean Set nama parameter Respons web
karakter, juga dapat berpengaruh pada respons yang diberikan oleh Set nilai parameter
server web. Set pasangan sesi
Kami selalu memodelkan server web sebagai kumpulan file yang Judul HTTP
membentuk grafik yang diketik terarah dengan objek bersarang (lihat
pos() Mengajukan
halaman HTTP
Gambar 6). Akses objek sekarang tergantung juga pada variabel header.
Set nama parameter Respons web
Kami menganggap pasangan nama sesi dan nilai sesi sebagai parameter
Set nilai parameter
tunggal (nilai sesi biasanya angka acak dengan entropi tinggi sehingga
Set pasangan sesi
tidak ada gunanya menangani nama dan nilai variabel sesi secara
Judul HTTP
terpisah kecuali nilai sesi dapat diprediksi dan penyerang ingin merusak
-force nilai sesi), dan kami membatasi jumlah pasangan sesi dan kepala
HTTP yang diizinkan. Di bawah asumsi ini, kami mempertahankan
tindakan yang sama seperti level4, tetapi kami memperluas tanda tangan Dengan mengacu pada tindakan yang telah kami definisikan, kami
dari parameter inputnya: A = {get(filei, [pname], [pval], [sess], header), mengamati pembesaran ruang tindakan yang sekarang bergantung
post(filei, [ pname], [pval], [sess], header)}. Selain menerima file input pada jumlah N file di server, jumlah M nama parameter yang dapat
(filei), daftar nama parameter ([pname]) bersama dengan daftar nilai dipilih, jumlah O nilai parameter yang tersedia, jumlah P pasangan
parameter ([pval]), metode get() dan post() sekarang juga menerima parameter yang dapat dikirim, jumlah Q nilai pasangan sesi yang
daftar pasangan sesi ([sess]) dan tajuk HTTP (tajuk). Hasil dari tindakan tersedia, jumlah R pasangan sesi yang dapat dikirim, dan jumlah S
ini adalah respons web, mungkin bersama dengan halaman HTTP. Kode header HTTP tanpa cookie yang dapat dikirim.
respons web (misalnya, 200, 404, 500) mencerminkan aksesibilitas objek
yang diminta. Seperti sebelumnya, flag dianggap diambil ketika agen Gambar 6 juga memberikan ilustrasi kemungkinan interaksi antara
memperoleh halaman HTTP yang berisi flag. Lihat Tabel 8 untuk agen dan server web. Penyerang pertama-tama mencoba masuk
ringkasan tindakan, parameternya, dan nilai pengembaliannya. menggunakan kata sandi yang tidak valid, yang sebenarnya
mengungkapkan versi baru dari file login.php dengan mengarahkan
halaman ke halaman index.php tanpa sesi. Menggunakan kredensial
yang tepat menunjukkan versi lain dari halaman login.php yang
mengalihkan pengguna ke versi index.php dengan

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 303

pasangan sesi pasangan1. Versi index.php ini kemudian mengarah ke versi


file lain (tindakan logout) yang terhubung ke versi asli index.php tanpa sesi.

4.2.6 Level6: lapisan struktur server

Dalam skenario peretasan web yang kompleks, penyerang dapat memetakan


sistem file server untuk mengumpulkan informasi yang akan digunakan
selama serangan. Di level6, kami memperluas formalisasi server web untuk
mempertimbangkan tidak hanya file di dalam root web, tetapi juga objek di
luarnya, seperti file lokal dan database. Ekstensi ini memungkinkan untuk
mensimulasikan serangan yang mengandalkan kerentanan inklusi file lokal
(LFI), atau serangan pengumpulan informasi pada database untuk
menyiapkan injeksi SQL. Gambar 7 menunjukkan struktur server web, dan
menggambarkan kemungkinan serangan LFI untuk mendapatkan log server
web atau variabel lingkungan. Abstraksi Level6 memberi agen fitur tambahan
berikut dibandingkan dengan abstraksi level yang lebih rendah:

Gambar 7 Contoh webserver pada level6. Node solid mewakili file, node
bertitik dalam file menggambarkan kemungkinan daftar nama parameter dan
pasangan nilai serta nama sesi dan pasangan nilai yang dapat dikirim ke file
– Memperoleh sumber daya lokal situs web seperti file latar belakang atau
melalui metode web, panah solid mewakili koneksi antara file yang diberikan
catatan basis data latar belakang yang digunakan untuk pengoperasian parameter dan sesi. Garis batas putus-putus memisahkan ruang logis yang
situs web. berbeda, seperti ruang server web dan ruang database. Panah putus-putus
menandai hubungan antara ruang-ruang logis ini

– Mengakses data untuk menyusup ke situs web lain


berada di server web yang sama;
– Memperoleh file server web yang digunakan untuk tujuan lain selain
agen fitur tambahan berikut dibandingkan dengan tingkat abstraksi yang
operasi situs web, seperti data pengguna atau data sistem operasi lebih rendah:

Dalam skenario ini, hak akses objek memainkan peran penting;


– Menyebabkan penolakan layanan dengan mengedit objek penting
menjalankan server web sebagai root dapat memiliki konsekuensi serius,
untuk operasi situs;
sementara memiliki hak akses minimum mengurangi kemungkinan
– Mengotori situs dengan mengubah konten situs;
eksploitasi tersebut.
– Meningkatkan hak istimewa dengan menambahkan data ke objek;
Sementara set tindakan tetap sama seperti level5, ekstensi domain
– Mengunggah skrip serangan untuk menyediakan fungsi tambahan untuk
objek di luar webroot meningkatkan jumlah target yang mungkin
serangan itu;
dipertimbangkan agen.
– Menghapus petunjuk serangan dengan menghapus file log, menghapus
Kompleksitas meningkat dengan bertambahnya objek, termasuk database,
dan, di dalam database, tabel, kolom, dan file sementara yang digunakan untuk serangan.

baris.

4.2.7 Level7: lapisan modifikasi server Tindakan penyerangan yang mengarah pada pembuatan objek dapat
dilakukan oleh permintaan web yang telah kita pertimbangkan. Tindakan
Level terakhir yang kami pertimbangkan dalam Model Web Agen kami tidak berubah, tetapi domain parameter meningkat untuk memungkinkan
adalah lapisan modifikasi server. Pada level ini, kami berasumsi bahwa tindakan yang lebih canggih.
agen dapat melakukan tindakan peretasan web yang kompleks dan
bermakna seperti membuat objeknya sendiri, baik di dalam maupun di luar Level7 diasumsikan sebagai level pemodelan tertinggi, menangkap
root web. Dengan kemampuan membuat file sendiri, penyerang dapat semua fitur peretasan yang relevan; dengan demikian, memecahkan
menempatkan skrip perintah yang dapat digunakan untuk melakukan tantangan ini sangat sulit, dan kami berharap bahwa agen yang sukses
serangan lanjutan. Gambar 7 menunjukkan struktur server yang sama akan berkinerja sebaik, atau lebih baik daripada, seorang peretas manusia
seperti pada level6, dan menggambarkan penyerang membuat file sendiri profesional yang benar-benar terlibat dalam proses peretasan situs web.
di server web. Abstraksi Level7 menyediakan

123
Machine Translated by Google

304 L. Erd odi, FM Zennaro

Tabel 9 Kerentanan Web dalam Model Web Agen

Agen
Web Web Komentar
Kerentanan Model
Lapisan

Informasi 1–6 Tandai di file web


Penyingkapan Header atau objek luar
Parameter 3-5 Tandai akses dengan yang dimodifikasi

Merusak Parameter atau sesi

Lintas situs 3-5 Tandai akses dengan

Skrip Pengalihan sisi klien

Lintas situs 5 Hanya token CSRF

Permintaan pemalsuan Manipulasi

injeksi SQL 3–7 Tandai dengan otentikasi

Lewati atau dari basis data

Injeksi Xpath 3-4 Tandai dengan otentikasi

Lewati atau dari file XML


Sisi server 3–7 Tandai dengan akses objek
Gambar 8 Contoh webserver pada level7. Node padat mewakili file,
Injeksi template Atau eskalasi hak istimewa
node putus-putus dalam file menggambarkan kemungkinan daftar nama parameter
Berkas jarak jauh 3 Tandai dengan remote
dan pasangan nilai dan nama sesi dan pasangan nilai yang dapat dikirim ke
file melalui metode web, panah solid mewakili koneksi antara Penyertaan Akses file
file yang diberikan parameter dan sesi. Garis batas putus-putus terpisah Berkas lokal 3–7 Tandai dengan lokal
ruang logis yang berbeda, seperti ruang server web dan database
Penyertaan Akses file
ruang angkasa. Panah putus-putus menandai hubungan antara ruang-ruang logis ini.
Objek yang dicetak tebal mewakili objek yang dibuat oleh penyerang Sesi terkait 5–6 Tandai dengan sesi
Serangan Manipulasi

Tanggapan HTTP 5 Tandai dengan tajuk HTTP

5 Pemodelan kerentanan web Pemisahan Manipulasi

Di bagian ini, kami menganalisis bagaimana berbagai jenis web


kerentanan sesuai dengan Model Web Agen kami. Untuk setiap
kerentanan, kami menyajikan persyaratan minimal untuk lapisan berikut (level3 hingga level5) informasi sensitif (bendera)
adanya kerentanan dan kemungkinan strategi eksploitasi yang berbeda. dapat diakses menggunakan parameter atau sesi khusus; pada tingkat
Kami kemudian membahas di level Agen mana 6, informasi sensitif (bendera) dapat berada di dalam file di luar
Hirarki Model Web, kerentanan ini dapat dimodelkan, akar web.

dan bagaimana parameter Model Web Agen dapat digunakan Gangguan parameter web [19] adalah jenis serangan di mana
untuk mengekspresikan parameter aktual yang diperlukan untuk eksploitasi (misalnya, parameter web yang dipertukarkan oleh klien dan server
bagaimana informasi header HTTP atau objek di luar root web dapat dimodifikasi untuk memiliki akses ke objek tambahan.
dipetakan ke parameter di Model Web Agen). Model Web Agen kami menangkap serangan ini mulai dari level3
Tabel 9 menawarkan ringkasan semua kerentanan, bersama-sama dengan mengizinkan spesifikasi parameter web di URL;
dengan tingkat Model Web Agen di mana mereka dapat di level4 dimungkinkan untuk menambahkan parameter badan HTTP (POST
dimodelkan. pesan); di level5 dimungkinkan untuk mengedit cookie di HTTP
Pengungkapan informasi adalah jenis kerentanan di mana kepala. Dalam semua kasus ini, agen dapat melakukan web
penyerang memperoleh informasi yang berguna dengan menembus sistem. gangguan parameter baik dengan menjelajahi secara bermakna
Mengevaluasi kegunaan dari informasi yang diperoleh adalah ruang nilai yang mungkin dari parameter ini, atau dengan mencoba
tidak sepele, tetapi melalui formalisasi KKP kami membuat paksa mereka.
menyederhanakan asumsi bahwa informasi yang relevan penyerang Serangan skrip lintas situs (XSS) [16] memungkinkan penyerang
mungkin tertarik ke ditandai dengan bendera. Dengan cara ini, itu adalah untuk menyuntikkan kode sisi klien (misalnya, JavaScript) ke dalam halaman web
mungkin untuk menyamakan pengungkapan informasi yang sukses dengan dilihat oleh pengguna lain. Dengan mengeksploitasi kerentanan XSS,
pengambilan bendera. Setiap level abstraksi di Agen kami penyerang dapat menimpa konten halaman di sisi klien,
Model Web menangkap serangan ini: di level1 informasi sensitif (bendera) mengarahkan halaman ke halaman penyerang, atau mencuri yang valid
ada di file tertaut publik di server web; di level2 sesi di dalam cookie. Semua tindakan ofensif ini bisa

informasi sensitif (bendera) dapat berada di dalam file pribadi; dalam diikuti oleh beberapa trik rekayasa sosial jika terjadi

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 305

serangan nyata. Dalam konteks tantangan gaya CTF di mana klien tabel, memerlukan permintaan jenis pencarian biner untuk setiap
tambahan tidak tersedia, tujuan penyerang hanyalah untuk menunjukkan karakter, yang dapat menyebabkan jumlah tindakan yang eksponensial.
keberadaan kerentanan. Bendera dapat digunakan untuk menunjukkan Perhatikan bahwa abstraksi Model Web Agen tidak mempertimbangkan
halaman yang hanya dapat diakses secara tidak langsung dengan waktu respons lingkungan. Dalam kasus yang sangat spesifik seperti
pengalihan. Tugas agen adalah menemukan parameter yang tepat injeksi SQL buta berbasis waktu, penyerang mungkin harus mengukur
untuk mencapai pengalihan. Kode sisi klien yang disuntikkan untuk waktu respons; jenis eksploitasi ini akan memerlukan pertimbangan
XSS harus dikirim melalui parameter web. waktu reaksi server juga.
Serangan XSS dapat disimulasikan dalam Model Web Agen kami Injeksi Xpath [5] adalah kerentanan web di mana penyerang
segera setelah kami dapat berinteraksi dengan parameter: di level3 menyuntikkan kode ke permintaan web, tetapi target serangan
penyerang dapat menambahkan kode di URL; di level4 penyerang bukanlah database (seperti dalam kasus injeksi SQL) tetapi file XML.
dapat mengubah parameter POST; di level5 serangan XSS dapat Dengan memanfaatkan injeksi Xpath, penyerang dapat mengulangi
mempengaruhi header. elemen XML dan mendapatkan ikatan yang tepat dari node satu per
Pemalsuan permintaan lintas situs (CSRF) [36] adalah jenis satu. Operasi ini hanya membutuhkan satu parameter, jadi simulasi
kerentanan di mana penyerang mengirimkan tautan ke pengguna yang injeksi Xpath secara teoritis dimungkinkan di level3. Karena eksploitasi
diautentikasi untuk mengelabui mereka agar menjalankan permintaan injeksi Xpath tidak memerlukan nama file XML, pemetaan file di luar
web dengan rekayasa sosial. Jika pengguna diautentikasi (memiliki webroot tidak diperlukan bahkan jika file XML berada di luar webroot.
sesi), permintaan jahat (misalnya, mentransfer uang, mengubah status) Di sisi lain, parameter rentan dapat berupa parameter POST (level4)
dijalankan oleh server. Eksploitasi ini didasarkan pada rekayasa sosial atau dapat memerlukan sesi tertentu (level5).
dan menyesatkan pengguna. Selain itu, token CSRF dikirim oleh
server untuk menyaring permintaan yang tidak diinginkan; agen dapat
memeriksa keberadaan token CSRF yang sesuai atau mengeksploitasi Injeksi templat sisi server (SSTI) [21] adalah kemampuan
permintaan dengan token CSRF yang lemah. Dalam model kami, kerentanan di mana penyerang menggunakan sintaks templat asli
serangan CSRF harus disederhanakan untuk mempertimbangkan untuk menyuntikkan muatan berbahaya ke templat situs web. Untuk
hanya manipulasi token CSRF di level5. eksploitasi, agen harus menggunakan tindakan tambahan yang spesifik
Injeksi SQL [1] adalah kerentanan di mana pernyataan SQL untuk SSTI, seperti mengirim string seperti ${7*7} bersama dengan
berbahaya dapat dieksekusi oleh server karena kurangnya validasi parameter. Secara teoritis, kerentanan SSTI yang mudah dapat
input di sisi server. Dengan memodifikasi pernyataan SQL asli dari dieksploitasi di level3, tetapi semua lapisan lain di atas dapat digunakan
skrip sisi server, penyerang dapat melewati otentikasi, mengakses untuk mewakili kasus serangan tertentu (parameter rentan di POST di
informasi basis data rahasia atau bahkan menulis skrip serangan di level4, sesi yang diperlukan untuk eksploitasi di level5); dalam kasus
server (pilih ke perintah outfile). Dalam sebagian besar kasus, tertentu, penyerang dapat membuat daftar struktur server (level6) atau
penyerang harus memetakan struktur basis data target dengan dapat membuat file dengan eksekusi kode arbitrer (level7).
menemukan, misalnya, nama tabel yang berbeda beserta nama dan
tipe kolomnya. Dalam Model Web Agen kami, serangan ini dapat Penyertaan file [20] membuat penyerang mampu memasukkan
sepenuhnya disimulasikan pada level6 (di mana kami mempertimbangkan file jarak jauh atau lokal dengan memanfaatkan parameter web yang
keberadaan objek di luar webroot), meskipun versi yang disederhanakan rentan di situs web. Dalam kasus inklusi file jarak jauh (RFI), penyerang
lainnya dapat terjadi pada level yang lebih rendah. Dalam kasus dapat menyertakan skrip penyerang jarak jauhnya sendiri di skrip sisi
termudah, agen hanya membutuhkan satu parameter dinamis tanpa server. Penyertaan file jarak jauh dapat memiliki konsekuensi yang
sesi; hanya melewati otentikasi sederhana atau mengumpulkan data sangat serius, tetapi dalam tantangan CTF tujuannya hanya untuk
dari tabel yang sama yang digunakan skrip sisi server tidak perlu menunjukkan kemungkinan eksploitasi, bukan untuk melakukan
mengetahui nama tabel dan data struktur database lainnya; dalam eksploitasi yang sebenarnya. RFI dapat diwujudkan dengan
kasus ini, bentuk dasar injeksi SQL dapat disimulasikan bahkan di menyediakan file jarak jauh yang mengirimkan tanda jika permintaan
level3 (dengan satu parameter rentan). Kasus kompleks yang terdiri dimulai dari IP situs web target. Mengeksploitasi RFI dimungkinkan di
dari semua parameter database perlu terjadi di level6. Jika penyerang level3 tetapi parameter lain, seperti permintaan dan sesi POST, dapat
menggunakan injeksi SQL untuk melakukan tindakan lebih lanjut relevan (level4 dan level5). Sebagai konsekuensi dari kerentanan RFI,
seperti menulis skrip penyerangan di situs yang disusupi, maka ini penyerang dapat membuat file di situs web untuk serangan lebih lanjut.
harus terjadi di level7, di mana agen dapat memodifikasi server dengan Dalam kasus penyertaan file lokal (LFI), penyerang dapat memasukkan
membuat file. file lokal ke dalam skrip sisi server. Untuk eksploitasi satu parameter
tunggal secara teoritis cukup, tetapi karena biasanya diperlukan untuk
Semua kasus yang disebutkan di atas memerlukan jumlah tindakan membaca file lokal di luar webroot, agen harus memetakan setidaknya
yang sangat tinggi terutama ketika agen harus menjalankan injeksi sebagian dari struktur server (level6). Dalam beberapa skenario
SQL buta berbasis Boolean. Dalam kasus ini, aplikasi yang rentan eksploitasi, penyerang dapat menggunakan file lokal (seperti log atau
hanya memberikan jawaban benar atau salah, sehingga memperoleh file di folder /proc Linux) untuk membuat file sendiri di server (level7).
satu informasi, seperti nama kolom di

123
Machine Translated by Google

306 L. Erd odi, FM Zennaro

Serangan terkait sesi [43] mengeksploitasi pengungkapan sesi menginstansiasi server web dalam bentuk grafik terarah (lihat Gambar
atau kelemahan lain dalam proses pembuatan sesi. Karena kami 9 untuk implementasi sebenarnya dari server web logis yang ditunjukkan
memodelkan lingkungan sebagai server itu sendiri tanpa node jaringan pada Gambar 2). Tindakan diekspos dalam bentuk kamus dengan dua
lain, pengungkapan man in the middle session tidak dapat argumen: perintah bilangan bulat yang menentukan jenis tindakan
dipertimbangkan. Pengungkapan sesi lainnya dapat dimungkinkan, yang akan diambil (sesuai dengan nama tindakan kolom pada Tabel 1)
misalnya, jika sesi disimpan dalam log dan situs web dapat mengakses dan file target bilangan bulat yang menentukan pada file mana tindakan
file log (LFI), seperti yang dimodelkan pada level6. Brute force sesi dilakukan (sesuai dengan kolom parameter umn pada Tabel 1).
juga dimungkinkan di level5, tetapi tindakan brute-force meningkatkan Tanggapan dari server web mengikuti format standar di mana argumen
secara dramatis kompleksitas dan jumlah tindakan yang mungkin. hasil berupa nilai Boolean atau daftar bilangan bulat yang menunjukkan
file (sesuai dengan hasil kolom pada Tabel 1).
Pemisahan respons HTTP [18] adalah kerentanan di mana
penyerang dapat mengontrol konten header HTTP dari permintaan Tingkat kedua dibangun di atas yang pertama, memperkenalkan
web. Kemampuan penyerang untuk membangun tanggapan HTTP jenis koneksi tambahan antara file di server web. Konstruktor env(A,
sewenang-wenang dapat mengakibatkan banyak eksploitasi lain seperti B, flag) sekarang menerima dua matriks kedekatan A dan B, koneksi
keracunan cache atau Cross Site Scripting. Model Web Agen kami langsung pengkodean pertama dan koneksi tidak langsung pengkodean
mempertimbangkan informasi header HTTP di level5, tetapi hanya kedua. Tindakan mempertahankan sintaks yang sama, meskipun
dengan informasi terbatas (pasangan sesi yang berbeda dan seluruh sekarang konstanta perintah menerima satu nilai lagi yang sesuai
header bersama dengan versi yang berbeda). Melatih agen untuk dengan tindakan deepread() (lihat Tabel 3). Tanggapan tetap dalam
mempelajari eksploitasi pemisahan respons HTTP akan memerlukan bentuk yang sama seperti di level1.
untuk membagi header HTTP di beberapa bagian dan memungkinkan
agen untuk mempertimbangkan tindakan pada kombinasi header HTTP Akhirnya, tingkat ketiga merupakan abstraksi non-sepele dari
yang berbeda. tantangan peretasan yang sebenarnya, di mana kami menganggap
server web yang berinteraksi dengan tindakan penyerang dengan cara tertentu.
Konstruktorenv(n_files,n_pnames, n_pvalues, server web) sekarang
6 Implementasi Model Web Agen menerima jumlah file pada n_files server web, serta jumlah nama
parameter yang tersedia n_pnames dan nilai n_pvalues; akhirnya,
Implementasi dari tiga level pertama Model Web Agen telah konstruktor menerima fungsi webserver() yang dipanggil dalam fungsi
dikembangkan sesuai dengan standar yang ditentukan dalam kerangka step() dan yang bertugas memproses tindakan penyerang sesuai
kerja gym OpenAI [7], dan telah tersedia secara online.1 Dengan dengan logikanya sendiri. Perhatikan bahwa, pada level ini, tidak perlu
mengadopsi antarmuka gym Ope nAI standar, kami berharap untuk lagi memasukkan matriks kedekatan eksplisit untuk file; itu
memudahkan peneliti dan praktisi menguji agen dan algoritme mereka
pada tantangan CTF. Secara khusus, kami berharap dapat
menyederhanakan proses penerapan dan pelatihan agen RL yang siap
pakai, serta memberikan masalah menarik yang dapat mendorong
pengembangan algoritme pembelajaran baru.

Dalam implementasi kami, setiap level mendefinisikan antarmuka


sederhana ke abstraksi tantangan KKP. Lingkungan diberikan oleh
server web yang dipakai sebagai objek gym OpenAI yang menyediakan
serangkaian tindakan terbatas bagi agen.
Tindakan yang diambil oleh agen diproses melalui metode step() yang
mengembalikan hasil tindakan, hadiah, sinyal penghentian, dan pesan
debug opsional. Lingkungan pada tingkat abstraksi yang berbeda
dapat dipakai secara parametrik (memutuskan jumlah file, link, dan
parameter yang mungkin), sehingga menawarkan kemungkinan
menghasilkan berbagai tantangan untuk agen pembelajaran.

Implementasi level pertama menyediakan game CTF yang


sederhana seperti tutorial. Konstruktor env(A, flag) dari tantangan CTF
menerima matriks adjacency A untuk file di server, dan lokasi flag
integer dari flag; itu kemudian

1 https://github.com/FMZennaro/gym-agentwebmodel. Gambar 9 Contoh implementasi webserver pada level1

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 307

struktur internal server web dikodekan dalam fungsi webserver() itu sendiri.

Tindakan masih kamus, seperti di level2, dengan dua argumen integer


tambahan, pname dan pvalue, sehingga sesuai dengan definisi dalam
parameter kolom Tabel 5. Respons yang dihasilkan dibentuk dalam bentuk
yang sama seperti di level2, sehingga mengembalikan baik Boolean atau
satu set bilangan bulat yang menunjukkan file (perhatikan bahwa,
Gbr. 10 Hadiah yang dikumpulkan oleh agen sebagai fungsi dari jumlah
membandingkan dengan kolom hasil pada Tabel 5, kami menghindari secara
episode pelatihan di level1 (garis oranye), level2 (garis hijau), dan level3 (garis
eksplisit mengembalikan nilai parameter dan nama parameter yang merujuk merah muda). Garis padat mewakili hadiah yang dihaluskan; garis yang diarsir
kembali ke input tindakan). mewakili hadiah yang sebenarnya

Bahkan tantangan sederhana ini mungkin sudah dilihat sebagai model


Paradigma akan membantu pemodel dalam mengevaluasi pada tingkat
sederhana dari kerentanan dunia nyata. Misalnya, dengan mengacu pada
Sect. 5, simulasi level1 dan level2 memungkinkan kami untuk memodelkan abstraksi apa untuk mewakili masalah yang menarik, dan itu akan
menyediakan antarmuka serbaguna ke dunia RL. Selain itu, dekomposisi
kerentanan pengungkapan informasi sederhana di situs web; level3
masalah yang diaktifkan oleh Model Web Agen dapat membantu peneliti
memungkinkan kita untuk memodelkan beberapa eksploitasi kerentanan
keamanan untuk fokus pada yang lebih sederhana dan lebih kecil dan
yang mudah, seperti injeksi SQL (misalnya, melewati login situs web berbasis
memperkenalkan aplikasi praktis RL selangkah demi selangkah dalam
SQL melalui injeksi SQL dengan nilai parameter tertentu) atau penyertaan
peretasan etis. Singkatnya, kerangka kerja Model Web Agen dapat
file (misalnya, membaca sumber melalui penyertaan file lokal dengan
menyediakan sumber daya bagi peneliti keamanan komputer untuk
parameter tertentu).
memodelkan masalah mereka dan mengatasinya menggunakan agen
Untuk memvalidasi kerangka kerja kami, kami mengujinya dengan
standar, dan inspirasi bagi peneliti dalam pembelajaran mesin untuk
menerapkan agen RL dari pustaka stablebaselines2 . Kami melatih dan
mengembangkan algoritme baru yang mampu mengatasi tantangan berat
mengevaluasi agen-agen aktor-kritikus (A2C) keuntungan sinkron [27]
game CTF .
menggunakan konfigurasi off-the-shelf pada tiga tingkat yang disajikan di
atas. Secara khusus, kami menyiapkan level1 dengan tujuh file; level2
dengan sebelas file; dan level3 dengan empat file, lima nama parameter, dan
7 Pertimbangan etis
lima nilai parameter. Di semua level, posisi bendera diacak di awal simulasi;
hadiah 100 diberikan untuk mengambil bendera, dan hadiah 1 untuk tindakan
lainnya. Agen RL yang dilatih untuk pengujian penetrasi etis membawa potensi
penyalahgunaan yang berbahaya. Secara khusus, agen yang sama dapat

Gambar 10 menunjukkan dinamika pembelajaran. Agen standar mampu dikerahkan dan disesuaikan dengan tujuan menghasilkan kerusakan material

menghubungkan diri mereka sendiri dengan implementasi tantangan KKP atau immaterial. Kami ingin mengulangi bahwa tujuan dari penelitian ini

pada tingkat abstraksi yang berbeda. adalah untuk mengembangkan agen untuk membantu peretas etis dalam

Semua agen dapat belajar: lintasan jangka panjang yang dihaluskan pengujian penetrasi yang sah, dan untuk mengembangkan pemahaman

menunjukkan peningkatan penghargaan akhir yang dicapai oleh agen tentang agen RL hanya untuk tujuan pencegahan. Untuk alasan ini, kami

(perhatikan bahwa varians awal yang tinggi disebabkan oleh tidak adanya menganjurkan pengembangan agen dalam konteks tantangan CTF, di mana

data historis untuk pemulusan). Namun, kualitas pembelajaran bervariasi tujuannya adalah eksploitasi kerentanan yang minimal dan tidak berbahaya

sesuai dengan level simulasi: untuk level1 agen dengan cepat mendekati sebagai bukti konsep (penangkapan bendera), tetapi tidak ada serangan

solusi optimal, sedangkan untuk level3 hadiah akhir sangat rendah (perhatikan lebih lanjut yang dipertimbangkan. Kami menjauhkan diri dan mengutuk

nilai negatif pada sumbu y); dalam kasus terakhir ini, meskipun agen belajar,
itu jauh dari kebijakan yang optimal. aplikasi apa pun dari hasil ini untuk pengembangan alat ofensif, terutama
dalam konteks militer.3

Di satu sisi, simulasi ini menunjukkan kelayakan untuk mendefinisikan


tantangan CTF menggunakan antarmuka standar yang memungkinkan
penyebaran agen RL dengan cepat dan mudah. 8 Kesimpulan
Di sisi lain, mereka juga menyoroti masalah kelayakan terkait penggunaan
algoritma RL; memecahkan masalah di level 3 dan seterusnya membutuhkan Dalam makalah ini, kami mempresentasikan model, bernama Model Web

sumber daya komputasi atau agen pembelajaran yang lebih halus. Kekuatan Agen, yang mendefinisikan peretasan web pada tingkat abstraksi yang berbeda.

inti dari Model Web Agen adalah untuk menyediakan paradigma standar bagi Formulasi ini memungkinkan implementasi langsung dari masalah yang

peneliti keamanan komputer untuk memodelkan beragam tantangan cocok untuk agen pembelajaran mesin. Karena tujuan dan jenis serangan

keamanan di web, seperti yang dibahas dalam Bagian. 5. Ini web dapat bermacam-macam, dan metode teknis dan manusia yang berbeda
mungkin terlibat, pertama-tama kami membatasi

2 3
https://stable-baselines.readthedocs.io/en/master/. https://futureoflife.org/open-letter-autonomous-weapons/.

123
Machine Translated by Google

308 L. Erd odi, FM Zennaro

perhatian kami pada masalah peretasan gaya CTF. Kami kemudian Referensi
memodelkan peretasan web bergaya CTF sebagai permainan dan sebagai masalah RL.
Masalah RL menganggap satu pemain berurusan dengan situs web statis yang 1. Anley, C.: Injeksi SQL tingkat lanjut dalam aplikasi server SQL. https://
crypto.stanford.edu/cs155old/cs155-spring11/papers/sql_ injection.pdf. Diakses:
terdiri dari objek yang dengannya agen dapat berinteraksi dengan mengirimkan
12-09-2020 (2002)
permintaan (dengan atau tanpa parameter). 2. Antunes, N., Vieira, M.: Merancang alat pengujian kerentanan untuk layanan web:
Kami memformalkan masalah RL pada 7 tingkat abstraksi yang berbeda, pendekatan, komponen, dan alat. Int. J.Inf. Aman. (2017)

diurutkan dengan meningkatkan kompleksitas dalam hal jumlah objek, tindakan,


3. Appelt, D., Nguyen, CD, Panichella, A., Briand, LC: Pendekatan evolusioner
parameter, dan status. Mulai dari tantangan sederhana pada abstraksi tingkat
berbasis pembelajaran mesin untuk menguji firewall aplikasi web. IEEE Trans.
pertama, kami mengamati kompleksitas masalah meningkat dengan cepat, handal. 67(3) (2018)
sehingga mendefinisikan tantangan pembelajaran non-sepele untuk agen 4. Berners-Lee, T., Fischetti, M.: Menenun Web: Desain Asli dan Takdir Akhir dari

buatan. Sebuah implementasi dari masalah pada tingkat pertama abstraksi World Wide Web oleh Penemunya. Perusahaan Penerbitan DIANE, Darby (2001)

disediakan. Tantangan yang kami terapkan memiliki kompleksitas yang


5. Blasco, J.: Pengantar teknik injeksi XPath. http://repositori.root-me.org/
beragam, memungkinkan penyesuaian, dan menyediakan cara untuk membuat Exploitation%20-%20Web/EN%20- %20Introduction% 20to
instance sejumlah besar tantangan peretasan web acak secara generatif untuk %20Xpath%20injection%20techniques. pdf. Diakses 12-09-2020 (2007)

melatih agen buatan. Akhirnya, kami menunjukkan bagaimana implementasi


6. Boddy, MS, Gohde, J., Haigh, T., Harp, SA: Kursus generasi tindakan untuk
ini dapat segera ditangani dengan menggunakan agen RL yang siap pakai.
keamanan cyber menggunakan perencanaan klasik. Dalam: ICAPS, hlm. 12–21
(2005)
7. Brockman, G., Cheung, V., Pettersson, L., Schneider, J., Schul man, J., Tang, J.,

Tantangan keamanan dunia nyata lainnya dapat dimodelkan secara analog, Zaremba, W.: gym Openai. pracetak arXiv arXiv: 1606.01540 (2016)

dan pekerjaan di masa depan akan diarahkan untuk lebih mengembangkan


8. Chowdary, A., Huang, D., Mahendran, JS, Romo, D., Deng, Y., Sabur, A.: Analisis
dan menstandarisasi lebih lanjut tantangan CTF pada tingkat abstraksi yang keamanan otonom dan pengujian penetrasi.
lebih tinggi, serta menerapkan teknik RL canggih untuk masalah yang kami Dalam: Konferensi Internasional ke-16 tentang Mobilitas, Penginderaan, dan

definisikan. Kami berharap bahwa formalisasi yang disajikan dalam makalah Jaringan (MSN 2020) (2020)
9. Damele, B., Stampar, M.: panduan pengguna sqlmap. http://www.it docs.net/ddata/
ini tidak hanya memungkinkan pengembangan bot merah otomatis yang dapat
4956.pdf. Diakses 09-05-2020 (2011)
membantu dalam tugas pengujian penetrasi etis, tetapi juga mempromosikan 10. Elderman, R., Pater, LJ, Thie, AS: Pembelajaran penguatan permusuhan dalam
interaksi dan penelitian di kedua bidang pembelajaran mesin dan komputer. simulasi keamanan cyber. Tesis PhD, Fakultas Sains dan Teknik (2016)
keamanan: membantu pakar keamanan untuk menentukan tantangan yang
11. Fielding, R., Irivine, UC, Gettys, J., Mogul, J., Frystyk, H.: Permintaan komentar
realistis dan relevan yang memenuhi formalisme pembelajaran mesin, dan
2616, protokol transfer hypertext – http 1/1. https://tools.ietf.org/html/rfc2616.
menawarkan kepada pakar RL masalah yang merangsang yang dapat Diakses: 05-09-2020 (1999)
mendorong kemajuan dalam pembelajaran mesin. 12. Fonseca, J., Vieira, M., Madeira, H.: Menguji dan membandingkan alat pemindaian
kerentanan web untuk injeksi SQL dan serangan XSS. Dalam: Simposium
Internasional Lingkar Pasifik ke-13 tentang Koputing yang Dapat Diandalkan

Pendanaan Pendanaan akses terbuka disediakan oleh Universitas Oslo (termasuk (PRDC 2007) (2020)

Rumah Sakit Universitas Oslo). 13. Fraze, D.: Tantangan besar dunia maya (CGC). https://www.darpa.mil/program/
cyber-grand-challenge . Diakses 09-05-2020 (2016)
14. Ghanem, MC, Chen, TM: Pembelajaran penguatan untuk pengujian penetrasi
cerdas. Dalam: Konferensi Dunia Kedua 2018 tentang Tren Cerdas dalam Sistem,
Deklarasi
Keamanan, dan Keberlanjutan (WorldS4) (2018)
15. Ghanem, MC, Chen, TM: Pembelajaran penguatan untuk pengujian penetrasi
Konflik kepentingan Semua penulis menyatakan bahwa mereka tidak memiliki konflik
jaringan yang efisien. Informasi 11(1), 6 (2020)
kepentingan.
16. Grossman, J., Hansen, R., Petkov, D., Rager, A., Fogie, S.: Serangan XSS:
Eksploitasi dan Pertahanan Scripting Lintas Situs. Syngress (2007)
Hak asasi manusia dan hewan Artikel ini tidak berisi penelitian apapun dengan
partisipan manusia atau hewan yang dilakukan oleh salah satu penulis.
17. Hoffmann, J.: Simulasi pengujian penetrasi: Dari "Dijkstra" ke "Turing test++". Dalam:
Konferensi Internasional Kedua Puluh Lima tentang Perencanaan dan Penjadwalan
Akses Terbuka Artikel ini dilisensikan di bawah Lisensi Internasional Creative Commons Otomatis (2015)
Attribution 4.0, yang mengizinkan penggunaan, berbagi, adaptasi, distribusi, dan 18. Howard, M., LeBlanc, D., Viega, J.: 24 dosa mematikan keamanan perangkat lunak,
reproduksi dalam media atau format apa pun, selama Anda memberikan kredit yang dosa 2: Kerentanan terkait server web (XSS, XSRF, dan pemecahan respons).
sesuai kepada penulis asli dan sumbernya , berikan tautan ke lisensi Creative Commons, http://index-of.es/Miscellanous/24-DEADLY SINS-OF-SOFTWARE-
dan tunjukkan jika ada perubahan. Gambar atau materi pihak ketiga lainnya dalam SECURITY-2010.pdf. Diakses 2020-12-12 (2010)
artikel ini termasuk dalam lisensi Creative Commons artikel, kecuali dinyatakan lain
dalam batas kredit untuk materi tersebut. Jika materi tidak termasuk dalam lisensi 19. Howard, M., LeBlanc, D., Viega, J.: 24 dosa mematikan keamanan perangkat lunak,
Creative Commons artikel dan penggunaan yang Anda maksudkan tidak diizinkan oleh
dosa 4: Penggunaan URL ajaib, cookie yang dapat diprediksi, dan bidang formulir
peraturan perundang-undangan atau melebihi penggunaan yang diizinkan, Anda harus tersembunyi. http://index-of.es/Miscellanous/24-DEADLY SINS-OF-SOFTWARE-
mendapatkan izin langsung dari pemegang hak cipta. Untuk melihat salinan lisensi ini, SECURITY-2010.pdf. Diakses 2020-12-12 (2010)
kunjungi http://creativecomm ons.org/licenses/by/4.0/.
20. Johnson, G.: Inklusi file jarak jauh dan lokal dijelaskan. http://repositori.root-me.org/
Exploitation%20-%20Web/EN%20- _

123
Machine Translated by Google

Model Web Agen: memodelkan peretasan web untuk pembelajaran penguatan 309

%20Remote%20File%20Inclusion%20and%20Local%20File 36. Siddiqui, S., Verma, D.: Pemalsuan permintaan lintas situs: kelemahan
%20Inclusion%20explained.pdf. Diakses 12-09-2020 (2008) aplikasi web yang umum. Dalam: Konferensi Internasional tentang
21. Kettle, J.: Injeksi template sisi server: RCE untuk aplikasi web modern. https:// Perangkat Lunak dan Jaringan Komunikasi, ICCSN (2011)
www.blackhat.com/docs/us-15/materials/us-15- Kettle-Server-Side-Template- 37. Perak, D., Schrittwieser, J., Simonyan, K., Antonoglou, I., Huang, A., Guez,
%Injection-RCE-For-The-Modern Web-App-wp.pdf. Diakses 12-09-2020 A., Hubert, T., Baker, L., Lai, M., Bolton, A ., dkk.: Menguasai permainan
(2015) Go tanpa sepengetahuan manusia. Alam 550(7676), 354 (2017)
22. Krizhevsky, A., Sutskever, I., Hinton, GE: klasifikasi Imagenet dengan
jaringan saraf convolutional dalam. Dalam: Kemajuan dalam Sistem 38. Speicher, P., Steinmetz, M., Hoffmann, J., Backes, M., Künne mann, R.:
Pemrosesan Informasi Saraf, hlm. 1097–1105 (2012) Menuju analisis mitigasi jaringan otomatis. Dalam: Proceedings of the 34th
23. Lison, P., Mavroeidis, V.: Deteksi otomatis domain yang dihasilkan malware ACM/SIGAPP Symposium on Applied Computing, pp. 1971–1978 (2019)
dengan model saraf berulang. pracetak arXiv arXiv:1709.07102 (2017)
39. Stasinopoulos, A., Ntantogian, C., Xenakis, C.: Commix: mengotomatiskan
24. Maeda, R., Mimura, M.: Mengotomatisasi pasca-eksploitasi dengan evaluasi dan eksploitasi kerentanan injeksi perintah dalam aplikasi web.
pembelajaran penguatan yang mendalam. Hitung. Aman. 100, 102108 (2021) Int. J.Inf. Aman. (2019)
25. McDaniel, L., Talvi, E., Ba, H.: Menangkap bendera sebagai pengantar 40. Sutton, RS, Barto, AG: Pembelajaran Penguatan: Sebuah Perkenalan
keamanan siber. Dalam: Konferensi Internasional Hawaii Tahunan tentang tion. MIT Press, Cambridge (2018)
Ilmu Sistem (HICSS) (2016) 41. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, AN,
26. Mnih, V., Kavukcuoglu, K., Perak, D., Rusu, AA, Veness, J., Bellemare, MG, Kaiser, ., Polosukhin, I.: Perhatian adalah semua yang Anda butuhkan.
Graves, A., Riedmiller, M., Fidjeland, AK, Ostrovski, G., et al.: Kontrol Dalam: Kemajuan dalam Sistem Pemrosesan Informasi Saraf, hlm. 5998–
tingkat manusia melalui pembelajaran penguatan mendalam. Alam 6008 (2017)
518(7540), 529–533 (2015) 42. Vinyals, O., Babuschkin, I., Czarnecki, WM, Mathieu, M., Dudzik, A., Chung,
27. Mnih, V., Badia, AP, Mirza, M., Graves, A., Lillicrap, T., Harley, T., Silver, D., J., Choi, DH, Powell, R., Ewalds, T., Georgiev, P., dkk.: Level Grandmaster
Kavukcuoglu, K.: Metode asinkron untuk pembelajaran penguatan dalam. di Starcraft II menggunakan pembelajaran penguatan multi-agen. Alam
Dalam: Konferensi Internasional tentang Pembelajaran Mesin, PMLR, hlm 575(7782), 350–354 (2019)
1928–1937 (2016) 43. Vlsaggio, CA, Blasio, LC: Kerentanan manajemen sesi di web saat ini.
28. Niculae, S., Dichiu, D., Yang, K., Bäck, T.: Mengotomatiskan pengujian Keamanan dan Privasi IEEE (2010)
etrasi pena menggunakan pembelajaran penguatan. https://stefan. eu/files/ 44. Wichers, D., Williams, J.: Owasp - 10 risiko keamanan aplikasi web teratas.
Automating%20Penetration%20Testing%20using https://owasp.org/www-project-top-ten/. Diakses 2020- 09-05 (2017)
%20Reinforcement%20Learning.pdf (2020)
29. Pettersson, A., Fjordefalk, O.: Menggunakan proses keputusan Markov dan 45. Zennaro, FM, Erdodi, L.: Memodelkan pengujian penetrasi dengan
pembelajaran penguatan untuk memandu penguji penetrasi dalam mencari pembelajaran penguatan menggunakan tantangan tangkap bendera dan
kerentanan web (2019) pembelajaran Q tabular. pracetak arXiv arXiv:2005.12632 (2020)
30. Pozdniakov, K., Alonso, E., Stankovic, V., Tam, K., Jones, K.: Audit
keamanan cerdas: pembelajaran penguatan dengan pendekatan jaringan
saraf dalam. Dalam: Konferensi Internasional 2020 tentang Kesadaran
Catatan Penerbit Springer Nature tetap netral sehubungan dengan klaim yuris
Situasi Siber, Analisis dan Penilaian Data (CyberSA), hlm. 1–8 (2020)
diksi dalam peta yang diterbitkan dan afiliasi institusional.

31. Rogers, R.: Audit Jaringan Nessus, edisi ke-2. Syngress, Burling
ton (2011)
32. Russell, R., Kim, L., Hamilton, L., Lazovich, T., Harer, J., Ozdemir, O.,
Ellingwood, P., McConley, M.: Deteksi kerentanan otomatis dalam kode
sumber menggunakan pembelajaran representasi yang mendalam. Dalam:
Konferensi Internasional IEEE ke-17 2018 tentang Pembelajaran Mesin
dan Aplikasi (ICMLA), IEEE, hlm. 757–762 (2018)
33. Sarraute, C., Buffet, O., Hoffmann, J.: Pengujian penetrasi == Pemecahan
POMDP? pracetak arXiv arXiv:1306.4714 (2013)
34. Schwartz, J., Kurniawati, H.: Pengujian penetrasi otonom menggunakan
pembelajaran penguatan. pracetak arXiv arXiv:1905.05965v1 (2019)
35. Shalev-Shwartz, S., Shammah, S., Shashua, A.: Aman, multi-agen,
pembelajaran penguatan untuk mengemudi otonom. pracetak arXiv
arXiv:1610,03295 (2016)

123

Anda mungkin juga menyukai