เทคนิค Honeypot สร้างหน้า Admin palsu เพื่อหลอกผู้โจมตี ในขณะที่หน้า Admin จริงจะถูกซ่อนอยู่ที่ URL อื่น บทความนี้ใช้ django-admin-honeypot
ขั้นตอนการติดตั้ง
1. ติดตั้งแพ็กเกจ
pip install django-admin-honeypot
2. เพิ่มใน settings.py
INSTALLED_APPS += ['admin_honeypot']
3. ปรับเปลี่ยน URLs ใน urls.py ของโปรเจกต์
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
# หน้า Admin ปลอม (Honeypot) อยู่ที่ /admin/
path('admin/', include('admin_honeypot.urls', namespace='admin_honeypot')),
# หน้า Admin จริง ย้ายไปที่ /secret/
path('secret/', admin.site.urls),
]
4. รัน Migration
python manage.py makemigrations
python manage.py migrate
วิธีการทำงาน
- เมื่อผู้โจมตีเข้าที่
/admin/จะเจอหน้า Login ปลอม - ไม่ว่าจะกรอก Username/Password ถูกหรือผิด จะไม่สามารถ Login ได้
- การพยายาม Login ทั้งหมด (รวม IP Address) จะถูกบันทึกในฐานข้อมูล
- Admin จริงจะเข้าผ่าน
/secret/เท่านั้น
การตรวจสอบ Log การโจมตี
สามารถดูบันทึกการพยายาม Login ผ่าน Django Admin จริงที่ /secret/ ในโมเดล AdminHoneypot
ข้อควรระวัง
- เปลี่ยน
/secret/เป็น URL ที่เดายากกว่านี้ใน Production - ควรรวมใช้กับการจำกัด IP (IP Whitelist) และ Two-Factor Authentication
- ไม่ใช่การป้องกันที่สมบูรณ์ แต่เป็นชั้นป้องกันเพิ่มเติม