IP + Path + Header

IP + Path + Header siyosati - Honeypot WAF’dagi eng tezkor va birinchi bajariladigan himoya qatlami.

Bu siyosatning asosiy vazifasi: aniq tarmoq manbasi (IP), so‘rov manzili (Path) yoki so‘rov sarlavhalari (Header) orqali tahdidni tezda aniqlash va to‘xtatish.

1. Qamrov (Scope)

Element
Tavsif

IP

Aniq IP yoki tarmoq segmenti (192.168.1.1, 10.0.0.0/24).

Path

HTTP so‘rov yo‘li (/admin, /login, /api/v1/secure/*).

Header

HTTP sarlavhalari (User-Agent, Referer, X-Forwarded-For, Content-Type, va boshqalar).

Siyosat bu uch elementdan birini yoki ularning kombinatsiyasini tahlil qiladi. Agar shart mos kelsa, WAF darhol mos action’ni ishga tushiradi.

2 Domen tanlash

Jarayonning birinchi bosqichida siz qoida qaysi domen uchun amal qilishini tanlaysiz.

  • Domenni tanlang” maydonida faol domenlar ro‘yxati chiqadi.

  • Har bir domen nomining yonida uning holati ko‘rsatiladi (masalan: honeypot.uz (active)).

  • Tanlangan domen uchun yaratilgan qoida faqat shu domen trafikiga ta’sir qiladi.

🧩 Agar sizda bir nechta domen bo‘lsa, har biri uchun alohida siyosat yaratish tavsiya etiladi.

3 Qoida nomini belgilash

Keyingi bosqich — qoida uchun anliq nom berish.

Maydon
Tavsif

Qoida nomi

Unikal identifikator (admin_block_rule, bot_challenge, internal_allow_v2 kabi) bunda xoxishga ko'ra istalgancha yozish mumkun ammo maksimal uzunlik soniga ega.

Qoida turi

Qaysi asosda tekshiriladi (IP, Path, Header, ASN, Country, Rate limit, Cookie, Body).

Tavsiya: Qoida nomini qisqa, ammo mazmunli qilib belgilang. Masalan:

  • ip_block_cpanel

  • header_ua_sqlmap

  • redirect_korea_block

4 Amal (UNDA…) - shart va harakatni aniqlash

Bu eng muhim qism. Bu yerda siz aniqlangan so‘rovga qanday javob qaytarilishini belgilaysiz.

Tugma
Amal
Tavsif

🟥 Bloklash

(403)

So‘rovni darhol to‘xtatadi va “Forbidden” javobi yuboradi.

🟦 Challenge

(JS yoki CAPTCHA)

Foydalanuvchi sinovdan o‘tadi, bot to‘xtaydi.

🟩 Ruxsat berish

(200)

Trafikga ruxsat beradi, qoida faqat o‘lchov sifatida.

🟨 Faqat loglash

(0)

Hech narsa bajarilmaydi, faqat yozuvga olinadi.

Drop (444)

TCP darajada so‘rovni sukut bilan uzadi.

Qattiq block

🌀 Yo‘naltirish

(301/302)

So‘rovni boshqa manzilga buradi (/notice yoki redirect.honeypot.uz).

“Drop” va “Block” — eng keskin; “Log only” - eng yumshoq harakat.

5 Maqsadni aniqlash (Condition / Target)

Bu bosqichda qoidaning qaysi manzil yoki IP diapazonga nisbatan ishlashini aniqlaysiz.

  • Maqsad maydoniga IP yoki tarmoq diapazonini yozing:

    • 192.168.1.100 → bitta IP

    • 10.0.0.0/24 → butun tarmoq

Agar siz Path yoki Header asosidagi siyosat yaratayotgan bo‘lsangiz, “Maqsad” maydoni /path yoki User-Agent qiymatlari bilan to‘ldiriladi.

6 HTTP metodlarini tanlash

Qoida faqat tanlangan HTTP metodlarga ta’sir qiladi.

Metod
Tavsif

GET

Sahifa yoki resursni olish.

POST

Ma’lumot yuborish (formalar, API so‘rovlar).

PUT / PATCH

Ma’lumotni yangilash.

DELETE

Resursni o‘chirish.

HEAD / OPTIONS

Diagnostika so‘rovlar.

Agar hammasiga amal qilsin desangiz - “Barchasini tanlash” tugmasini bosing.

7 Ustuvorlik (Priority)

Siyosatlar ustuvorlik (prioritet) bo‘yicha ishlaydi. Raqam qanchalik kichik bo‘lsa, qoida shunchalik birinchi ishlaydi.

Misol
Ma’nosi

10

Eng yuqori ustuvorlik (tezkor IP bloklash).

50

O‘rtacha — odatiy siyosatlar uchun.

100+

Past - eng kech siyosatlar.

Default qiymat - 50.

IP manzil bloklash uchun:

Manzil (Path) Bloklash uchun:

IP manzil va Manzil (Path) qoida yaratish asosan ma'lum bir ipni bloklash yoki ma'lum bir ipga ruxsta berish uchun misol:

Header Bloklash uchun:

1 Header Block turlari

  • BLOCK_CURL_UA

    • Match: User-Agent contains "curl"

    • Action: block yoki drop

    • Izoh: Automatlashtirilgan skriptlarni tezda to‘sish. Misol header: User-Agent: curl/7.68.0

  • CHALLENGE_SQLMAP

    • Match: User-Agent regex "(?i)sqlmap"

    • Action: challenge (JS/CAPTCHA) yoki block agar takrorlansa

    • Izoh: SQL injection scan vositalari (sqlmap) uchun. Misol header: User-Agent: sqlmap/1.6

  • DROP_MASSCAN

    • Match: User-Agent contains "masscan" OR header "X-Scan-Tool" contains "masscan"

    • Action: drop (444)

    • Izoh: Port/Kirish skanerlari uchun silent drop. Misol header: User-Agent: masscan/1.0

  • LOG_SUSPICIOUS_ACCEPT

    • Match: Accept contains "*/*" AND User-Agent contains "python-requests"

    • Action: log only (sinov) → keyin challenge

    • Izoh: Bot/skriptlar odatda python-requests + permissive Accept yuboradi. Misol: Accept: */*

Har bir qoida quyidagi minimal maydonlarga to‘ldiriladi:

  • Qoida nomi: BLOCK_CURL_UA

  • Qoida turi: Header

  • Match: User-Agent contains "curl"

  • HTTP metodlar: Barchasi (odatda) yoki faqat GET/POST

  • Action: block

  • Ustuvorlik: 10 (yuqori)

  • Holat: Faol yoki Log Only (sinovda)

Last updated