لاگ امنیتی سایت چیست؟ چگونه با Logging و Monitoring حملات را شناسایی کنیم؟
لاگ امنیتی سایت مجموعهای از رویدادهای مرتبط با کاربران، سرور، برنامه، WAF و سیستم احراز هویت است که برای شناسایی رفتارهای مشکوک و بررسی حملات استفاده میشود. ترکیب Logging، Monitoring و Alerting میتواند حملاتی مانند Brute Force، تلاش برای دور زدن Access Control، تغییرات مشکوک مدیریتی و فعالیت غیرعادی فایلها را زودتر آشکار کند. ثبت رویدادهای مناسب، جلوگیری از ذخیره Password و Token، استفاده از Centralized Logging و طراحی Alertهای دقیق از مهمترین اصول مدیریت لاگ امنیتی سایت هستند.
لاگ امنیتی سایت یا Security Log مجموعهای از رویدادهای ثبتشده درباره فعالیت کاربران، سرور، برنامه، سیستم احراز هویت، WAF، دیتابیس و سایر اجزای زیرساخت است که به مدیر سایت کمک میکند رفتارهای مشکوک و حملات احتمالی را شناسایی کند. Logging به معنی ثبت این اطلاعات است؛ Monitoring آنها را بهصورت مداوم بررسی میکند و Alerting هنگام مشاهده الگوی خطرناک هشدار میدهد. ترکیب صحیح این سه بخش میتواند حملاتی مانند Brute Force، Credential Stuffing، تلاش برای دور زدن Access Control، درخواستهای غیرعادی، تغییر فایلها و فعالیتهای مشکوک حساب مدیر را بسیار زودتر آشکار کند.
لاگ امنیتی سایت چیست؟
تقریباً هر اتفاق مهمی که در یک سایت رخ میدهد میتواند یک ردپا از خود باقی بگذارد.
کاربری وارد حساب خود میشود.
فردی چند بار رمز عبور اشتباه وارد میکند.
یک مدیر افزونهای را نصب میکند.
یک API درخواست غیرعادی دریافت میکند.
سرور خطای 500 تولید میکند.
WAF یک درخواست مشکوک را مسدود میکند.
یک فایل مهم تغییر میکند.
یک حساب مدیریتی از IP جدید وارد میشود.
اگر این رویدادها به شکل مناسب ثبت شوند، در زمان بررسی امنیتی میتوان فهمید چه اتفاقی افتاده، چه زمانی رخ داده، چه حساب یا IP درگیر بوده و نتیجه عملیات چه بوده است.
به مجموعه این اطلاعات Log گفته میشود.
اما هر Log الزاماً «لاگ امنیتی» نیست.
برای مثال ممکن است یک برنامه فقط زمان اجرای Queryها را برای بررسی Performance ذخیره کند. این داده از نظر عملیاتی مفید است، اما هدف اصلی آن امنیت نیست.
Security Logging بر رویدادهایی تمرکز دارد که برای پاسخ به سؤالهایی مانند موارد زیر مفید هستند:
- چه کسی تلاش کرد وارد حساب شود؟
- آیا ورود موفق بود یا ناموفق؟
- چه حسابی دسترسی غیرمجاز درخواست کرده است؟
- چه تنظیم مهمی تغییر کرده؟
- کدام فایل آپلود یا تغییر داده شده است؟
- چه IPهایی رفتار غیرعادی دارند؟
- آیا درخواستهای مشکوک به API افزایش یافتهاند؟
- آیا یک حساب Administrator عملیات غیرمنتظره انجام داده؟
- آیا WAF حملهای را مسدود کرده است؟
- آیا پس از یک رخداد امنیتی میتوان Timeline حمله را بازسازی کرد؟
بنابراین Logging یکی از پایههای Visibility یا «قابلیت مشاهده آنچه در سیستم اتفاق میافتد» محسوب میشود.
سایتی که هیچ لاگ مناسبی ندارد ممکن است حتی پس از هک شدن نیز متوجه نشود چه اتفاقی رخ داده است.
چرا Logging و Monitoring برای امنیت سایت اهمیت دارند؟
امنیت فقط جلوگیری از حمله نیست.
هیچ کنترل امنیتی نمیتواند تضمین کند که صد درصد حملات در همان مرحله اول متوقف خواهند شد.
Firewall ممکن است دور زده شود.
یک حساب کاربری ممکن است رمز ضعیفی داشته باشد.
افزونهای ممکن است آسیبپذیری جدیدی داشته باشد.
Credential یک مدیر ممکن است در حمله Phishing سرقت شود.
یک API ممکن است درخواستهایی دریافت کند که از نظر فنی معتبر هستند اما الگوی آنها نشاندهنده سوءاستفاده است.
در چنین شرایطی Detection اهمیت پیدا میکند.
OWASP سالهاست Logging و Monitoring را بخشی اساسی از امنیت برنامههای وب میداند و در OWASP Top 10:2025 نیز دسته A09 با عنوان Security Logging and Alerting Failures وجود دارد.
موضوع فقط «داشتن فایل log» نیست.
یک سایت ممکن است میلیونها خط لاگ تولید کند اما اگر هیچکس آنها را بررسی نکند، Threshold مشخص نباشد و هنگام مشاهده رفتار مشکوک Alert ایجاد نشود، ارزش امنیتی لاگ بسیار کاهش مییابد.
هدف واقعی این چرخه است:
Logging → Collection → Analysis → Monitoring → Alerting → Investigation → Response
اگر هر بخش از این زنجیره ناقص باشد Detection ضعیفتر میشود. 
تفاوت Logging، Monitoring، Alerting و Auditing چیست؟
این چهار اصطلاح گاهی به جای یکدیگر استفاده میشوند، اما دقیقاً یک مفهوم ندارند.
Logging چیست؟
Logging یعنی ثبت یک Event.
برای مثال:
کاربر admin در ساعت مشخصی تلاش کرده وارد سایت شود و Authentication ناموفق بوده است.
یا:
کاربر دارای شناسه مشخص، نقش یک حساب دیگر را تغییر داده است.
در این مرحله فقط یک رویداد ثبت شده است.
Monitoring چیست؟
Monitoring یعنی لاگها و سایر Signalهای سیستم بهصورت مداوم بررسی شوند تا تغییرات و رفتارهای غیرطبیعی شناسایی شوند.
فرض کنید یک Login Failure عادی باشد.
اما 400 Login Failure طی دو دقیقه از یک IP دیگر عادی نیست.
Monitoring این Context را ایجاد میکند.
Alerting چیست؟
Alerting زمانی اتفاق میافتد که سیستم پس از مشاهده یک Condition مشخص، تیم مسئول را مطلع کند.
برای مثال:
اگر یک IP طی پنج دقیقه بیش از تعداد مشخصی Authentication Failure ایجاد کند، هشدار ارسال شود.
یا:
اگر حساب Administrator از کشور یا IP جدید وارد شد، Alert تولید شود.
Auditing چیست؟
Audit Log معمولاً روی ایجاد یک مسیر قابل پیگیری از اقدامات مهم تمرکز دارد.
برای مثال:
چه کسی یک کاربر جدید ایجاد کرد؟
چه کسی دسترسی Administrator داد؟
چه زمانی تنظیمات پرداخت تغییر کرد؟
چه کسی فایل حساس را حذف کرد؟
Audit Trail بهخصوص برای سیستمهایی که چند Administrator یا Operator دارند اهمیت زیادی دارد.
| مفهوم | هدف |
|---|---|
| Logging | ثبت رویداد |
| Monitoring | بررسی مداوم رویدادها |
| Alerting | هشدار درباره شرایط مهم |
| Auditing | ایجاد سابقه قابل پیگیری از اقدامات |
یک سیستم امنیتی خوب معمولاً هر چهار مورد را در کنار یکدیگر استفاده میکند.
لاگ امنیتی خوب باید چه اطلاعاتی داشته باشد؟
نوشتن جملهای مانند:
Login failed
برای یک بررسی امنیتی حرفهای اطلاعات کافی ارائه نمیدهد.
برای تحلیل باید بدانیم:
چه زمانی؟
کدام حساب؟
از کجا؟
در کدام Application؟
چه اتفاقی؟
نتیجه چه بود؟
OWASP این منطق را با چهار سؤال اصلی توضیح میدهد:
When
Where
Who
What
زمان رویداد
هر Event باید Timestamp داشته باشد.
برای مثال:
2026-09-09T13:42:18Z
استفاده از فرمت استاندارد و Time Zone مشخص اهمیت زیادی دارد.
اگر پنج سرور ساعتهای متفاوت داشته باشند، بازسازی Timeline یک Incident بسیار دشوار میشود.
بنابراین Time Synchronization میان سرورها اهمیت امنیتی دارد.
منبع رویداد
باید مشخص شود Event متعلق به کدام سرویس بوده است.
برای مثال:
- Web Server
- WordPress
- API
- Authentication Service
- WAF
- Database
- CDN
- Operating System
در سیستمهای بزرگتر Application Name، Hostname، Instance ID و Environment نیز میتوانند ثبت شوند.
هویت Actor
در صورت امکان باید مشخص باشد چه کاربر یا موجودیتی عملیات را آغاز کرده است.
ممکن است شامل موارد زیر باشد:
User ID
Username
Service Account
API Client
IP Address
Session Reference
تکیه صرف بر IP همیشه کافی نیست؛ زیرا چند کاربر ممکن است پشت NAT باشند یا مهاجم از Proxy و VPN استفاده کند.
نوع Event
رویداد باید دستهبندی مشخصی داشته باشد.
برای مثال:
authentication_failure
authentication_success
authorization_denied
user_created
role_changed
file_uploaded
security_setting_changed
استفاده از Event Typeهای ثابت، Correlation و جستجو در میلیونها Log Entry را بسیار سادهتر میکند.
نتیجه عملیات
لاگ باید نشان دهد درخواست:
موفق بوده،
ناموفق بوده،
Reject شده،
Block شده
یا خطا داده است.
این تفاوت بسیار مهم است.
صدها تلاش برای حمله که همگی توسط WAF مسدود شدهاند با یک حملهای که بعد از چند Failure به Success رسیده تفاوت زیادی دارد. 
چه رویدادهایی باید برای امنیت سایت ثبت شوند؟
نیازی نیست هر متغیر و هر عملیات داخلی برنامه را بدون محدودیت Log کنید.
Logging بیش از حد نیز میتواند مشکل ایجاد کند.
هدف ثبت رویدادهایی است که برای Detection، Investigation و Incident Response ارزش دارند.
ورودهای موفق و ناموفق
Authentication یکی از مهمترین منابع Security Log است.
حداقل بهتر است موارد زیر ثبت شوند:
- Login موفق
- Login ناموفق
- Logout
- Account Lockout
- Password Reset
- تغییر رمز عبور
- فعال یا غیرفعال شدن 2FA
- Recovery Code Usage
- Login از Device یا IP جدید
- تغییر ایمیل یا شماره بازیابی
Login Failure یکی از بهترین Signalها برای تشخیص حملات مبتنی بر Credential است.
اما یک Failure به تنهایی حمله نیست.
مسئله الگو است.
خطاهای Authorization
Authentication میپرسد:
«این کاربر چه کسی است؟»
Authorization میپرسد:
«این کاربر اجازه انجام چه کاری را دارد؟»
فرض کنید کاربر عادی مرتب سعی کند Endpoint مخصوص Administrator را فراخوانی کند.
ممکن است درخواستها همگی با HTTP 403 رد شوند.
از نظر Application همهچیز درست کار کرده است.
اما از نظر Security، تکرار این رفتار ارزش بررسی دارد.
بنابراین Access Control Failureها باید قابل ثبت و Monitoring باشند.
این موضوع برای شناسایی تلاشهای مرتبط با Broken Access Control و IDOR نیز بسیار مهم است.
خطاهای Input Validation
ورودیهایی که Validation را رد میکنند میتوانند Signal امنیتی ایجاد کنند.
یک کاربر عادی ممکن است گاهی داده اشتباه ارسال کند.
اما اگر یک Client طی مدت کوتاهی صدها Request با ساختارهای غیرعادی ارسال کند، رفتار میتواند با:
Scanner
Bot
Fuzzing
یا تلاش برای کشف آسیبپذیری
مرتبط باشد.
لازم نیست Raw Payload خطرناک در Log ذخیره شود.
میتوان نوع Validation Failure، Endpoint، IP، User ID و Field مربوط را ثبت کرد.
تغییرات حساس حسابها
موارد زیر ارزش Audit بالایی دارند:
- ساخت Administrator
- حذف Administrator
- تغییر Role
- تغییر Permission
- غیرفعال شدن 2FA
- تغییر ایمیل Administrator
- Password Reset مدیر
- ایجاد API Key
- حذف API Key
- تغییر تنظیمات Authentication
اگر مهاجم وارد حساب مدیر شود، ممکن است اولین اقدام او ایجاد راه دسترسی دوم باشد.
Monitoring این رویدادها میتواند چنین رفتاری را سریع آشکار کند.
تغییرات تنظیمات امنیتی
هر تغییر در تنظیماتی مانند موارد زیر باید Event مهم محسوب شود:
Firewall
WAF
CORS
CSP
Authentication
2FA
File Permission
Backup
Security Plugin
API Access
IP Allowlist
اگر WAF ناگهان خاموش شود، باید مشخص باشد چه کسی و در چه زمانی این تغییر را انجام داده است.
آپلود و تغییر فایل
File Upload یکی از بخشهای حساس سایت است.
برای فایلهای مهم میتوان اطلاعاتی مانند:
نام فایل،
نوع فایل،
حجم،
User ID،
مسیر مقصد،
نتیجه Validation
و در صورت نیاز Hash فایل
را ثبت کرد.
در سرورهای حساس File Integrity Monitoring نیز میتواند تغییر فایلهای مهم را شناسایی کند.
خطاهای Application
Errorهای زیر میتوانند علاوه بر مشکل فنی، اهمیت امنیتی داشته باشند:
- تعداد زیاد HTTP 500
- Database Error
- Permission Error
- Exceptionهای غیرمنتظره
- Authentication Exception
- Token Validation Failure
- File Access Failure
- ارتباط غیرمنتظره با سرویس خارجی
هدف این نیست که هر Error یک Incident محسوب شود.
Monitoring باید Baseline رفتار طبیعی را در نظر بگیرد.
چه منابعی برای لاگ امنیتی سایت وجود دارند؟
یک اشتباه رایج این است که تصور شود Security Logging فقط همان Access Log وبسرور است.
در یک معماری مدرن چندین منبع مختلف وجود دارد.
Web Server Logs
Apache، Nginx و سایر Web Serverها اطلاعات مهمی درباره Requestها ثبت میکنند.
معمولاً شامل:
IP
Timestamp
Method
Path
Status Code
User Agent
Response Size
Referer
است.
Web Access Log یکی از بهترین منابع برای بررسی رفتار Requestها است.
اما نمیداند کاربر داخل Application دقیقاً چه عملیاتی انجام داده است.
Application Logs
Application Log Context بسیار بیشتری دارد.
وبسرور ممکن است فقط ببیند:
POST /account/update
اما Application میتواند بداند:
کاربر 142 تلاش کرده Role کاربر دیگری را تغییر دهد و Authorization رد شده است.
همین تفاوت باعث میشود Application Security Logging بسیار ارزشمند باشد.
WAF Logs
Web Application Firewall میتواند اطلاعاتی درباره Requestهای مشکوک ثبت کند.
برای مثال:
Rule Trigger
IP
Endpoint
Action
Score
Block/Allow
است.
اما WAF نباید تنها منبع Detection باشد.
ممکن است حملهای از نظر HTTP کاملاً معتبر به نظر برسد اما در سطح Business Logic مخرب باشد.
CDN و Reverse Proxy Logs
اگر سایت پشت CDN یا Reverse Proxy قرار دارد، لاگ آن نیز اهمیت زیادی دارد.
این سیستم میتواند اطلاعاتی مانند:
Origin IP
Cache Status
Country
TLS
Bot Classification
Rate Limit
و Firewall Action
ارائه دهد.
هنگام استفاده از Proxy باید مطمئن شوید Application آدرس واقعی Client را از Header معتبر و کنترلشده دریافت میکند و به Header جعلی ارسالشده توسط Client اعتماد نمیکند.
سیستم عامل
سیستم عامل نیز اطلاعات مهمی دارد:
SSH Login
sudo
Service Start/Stop
Process Failure
Permission Changes
Cron
System Authentication
Kernel Event
این لاگها بهخصوص زمانی مهم میشوند که Incident از سطح Web Application به Server برسد.
دیتابیس
Database Audit Log میتواند برای سیستمهای حساس مشخص کند:
چه حسابی متصل شده،
چه عملیات مدیریتی انجام شده،
Permissionها چه زمانی تغییر کردهاند
و چه خطاهایی رخ دادهاند.
فعال کردن Logging بسیار Verbose برای تمام Queryها در Production بدون طراحی مناسب میتواند Performance و Privacy را تحت تأثیر قرار دهد.
بنابراین Logging دیتابیس باید متناسب با Risk طراحی شود.
DNS Logs
در زیرساختهای حساس، DNS نیز Signal امنیتی ارزشمندی دارد.
تعداد زیاد Query برای Domainهای غیرمعمول، تغییر ناگهانی الگو یا ارتباط با Destinationهای مشکوک میتواند در Investigation مفید باشد.
لاگ Authentication و Identity Provider
اگر سایت از SSO، OAuth، OpenID Connect یا Identity Provider خارجی استفاده میکند، Logهای Identity اهمیت زیادی دارند.
برای مثال:
Login Attempts
MFA Events
Token Issuance
New Device
Risky Login
Account Recovery
OAuth Consent
از Signalهای ارزشمند هستند. 
چگونه با لاگها Brute Force را شناسایی کنیم؟
Brute Force نمونه خوبی برای درک تفاوت Logging و Monitoring است.
فرض کنید سیستم این موارد را ثبت میکند:
Authentication Failure برای user1
Authentication Failure برای user1
Authentication Failure برای user1
Authentication Failure برای user1
اگر فقط Logging داشته باشیم، اطلاعات ذخیره شدهاند.
Monitoring باید متوجه شود که تعداد Failureها در Window زمانی مشخص از Baseline عبور کرده است.
الگوهای مهم Brute Force
چندین Failure برای یک حساب از یک IP
چندین Failure برای یک حساب از IPهای متعدد
تعداد زیادی Username از یک IP
افزایش ناگهانی Login Request
موفقیت Login پس از تعداد زیادی Failure
الگوی آخر اهمیت ویژهای دارد:
اگر 100 Authentication Failure رخ دهد و سپس Authentication Success ثبت شود، Event موفق نباید میان صدها خط Log گم شود.
Correlation میتواند آن را به Alert با Priority بالا تبدیل کند.
تفاوت Brute Force، Password Spraying و Credential Stuffing در لاگ
هر سه حمله به Authentication مربوط هستند اما Pattern یکسانی ندارند.
Brute Force
یک یا چند حساب با تعداد زیادی Password امتحان میشوند.
Signal احتمالی:
Failure زیاد برای Username محدود.
Password Spraying
یک Password محدود روی Usernameهای متعدد آزمایش میشود.
Signal احتمالی:
یک IP یا مجموعه IPها، Failure روی تعداد زیادی Account ایجاد میکنند.
Credential Stuffing
Credentialهایی که قبلاً از سرویسهای دیگر افشا شدهاند روی سایت امتحان میشوند.
Pattern میتواند شبیه Login واقعی باشد و به همین دلیل Detection سختتر است.
مواردی مانند:
IP Reputation
Device Fingerprint
Login Velocity
Failure/Success Correlation
MFA
Risk-based Authentication
میتوانند در کنار Log Analysis کمک کنند.
شناسایی تلاش برای SQL Injection با Logging
هدف Logging نباید ذخیره Payload کامل حمله باشد.
این کار میتواند باعث:
Log Injection
ذخیره اطلاعات حساس
افزایش غیرضروری حجم
یا حتی مشکل در ابزار تحلیل Log
شود.
بهتر است Eventهای مرتبط با:
Input Validation Failure
WAF Trigger
Database Error غیرعادی
Requestهای مکرر به Endpoint حساس
و تغییر غیرعادی Status Codeها
Correlation شوند.
برای مثال اگر یک IP طی یک دقیقه روی یک Endpoint صدها Request غیرطبیعی ارسال کند و WAF چند Rule مربوط به Injection را Trigger کند، باید Signal امنیتی ایجاد شود.
اما یک Rule Trigger منفرد الزاماً به معنی حمله موفق نیست.
این تفاوت باید در گزارش امنیتی حفظ شود.
شناسایی تلاشهای XSS
XSS نیز میتواند از چند Signal شناسایی شود:
Validation Failure
WAF Event
ورودی غیرمنتظره در Field مشخص
Error در Sanitization
CSP Report
تغییر غیرعادی محتوای صفحه
وجود چند Signal مستقل Confidence Detection را افزایش میدهد.
برای مثال:
WAF Request را مشکوک تشخیص داده،
Application Validation نیز Failure داده
و یک IP همین رفتار را روی چند Endpoint تکرار کرده است.
این بسیار مهمتر از یک Warning منفرد است.
چگونه Broken Access Control و IDOR را از لاگها تشخیص دهیم؟
Broken Access Control گاهی از نظر شبکه شبیه Traffic عادی است.
فرض کنید کاربر:
GET /orders/100
را درخواست میکند.
از نظر Web Server این یک Request معمولی است.
Application باید بداند آیا Order 100 متعلق به همان User است یا خیر.
اگر Permission رد شود، Event باید قابل ثبت باشد.
اکنون فرض کنید همان User در چند ثانیه:
Order 100
Order 101
Order 102
Order 103
را درخواست کند و همه Authorization Failure تولید کنند.
این Pattern میتواند نشاندهنده Enumeration باشد.
بنابراین Application-Level Logging در تشخیص حملات Business Logic بسیار مهمتر از Web Server Logging صرف است.
شناسایی حملات File Upload
برای Upload Endpointها میتوان موارد زیر را Monitoring کرد:
افزایش ناگهانی Upload
نوع فایل غیرمجاز
Extension غیرمنتظره
MIME Type mismatch
فایل بزرگ غیرمعمول
Malware Scanner Detection
آپلود توسط حساب جدید
آپلود در ساعت غیرمعمول
تلاش مکرر پس از Validation Failure
هیچیک بهتنهایی حمله را اثبات نمیکنند، اما ترکیب آنها میتواند Risk Score ایجاد کند.
شناسایی تغییرات مشکوک پس از ورود مدیر
یکی از مهمترین Detection Ruleها بررسی رفتار پس از Admin Login است.
فرض کنید حساب Administrator از IP جدید وارد شود.
چند دقیقه بعد:
یک Administrator جدید ایجاد شود،
یک Security Plugin غیرفعال شود،
یک فایل تغییر کند
و API Key جدید ساخته شود.
هرکدام از این Eventها ممکن است بهتنهایی مشروع باشند.
اما قرار گرفتن همه آنها در یک Timeline احتمال Incident را بسیار بالا میبرد.
اینجاست که Event Correlation اهمیت پیدا میکند. 
Correlation چیست؟
Correlation یعنی مرتبط کردن چند Event از منابع مختلف برای ایجاد تصویر کاملتر.
برای مثال:
WAF:
Request مشکوک از IP X
Application:
Authentication Failure
Application:
Authentication Success
WordPress:
Plugin Installed
Server:
فایل جدید ایجاد شده
این پنج Event وقتی جداگانه مشاهده شوند شاید Severity متوسطی داشته باشند.
اما وقتی:
IP یکسان،
Account یکسان
و بازه زمانی نزدیک
داشته باشند، میتوانند یک Incident با Priority بالا تشکیل دهند.
این همان چیزی است که SIEM و سیستمهای Detection در مقیاس بزرگ انجام میدهند. 
SIEM چیست؟
SIEM مخفف:
Security Information and Event Management
است.
SIEM اطلاعات امنیتی را از منابع مختلف جمعآوری، Normalize، Search، Correlate و تحلیل میکند.
منابع ممکن است شامل:
Web Server
Application
WAF
Firewall
Cloud
Endpoint
Database
Identity Provider
DNS
و سیستم عامل باشند.
SIEM میتواند Ruleهایی ایجاد کند که براساس ترکیب Eventها هشدار تولید کنند.
برای یک سایت کوچک الزاماً SIEM Enterprise گرانقیمت لازم نیست.
حتی یک سیستم Centralized Logging ساده با Search، Dashboard و Alerting مناسب میتواند ارزش زیادی ایجاد کند.
اصل مهم این است:
لاگها نباید فقط در ده سرور مختلف پراکنده و بدون Monitoring باقی بمانند.
Centralized Logging چیست؟
در Centralized Logging، Logهای چند سیستم به Repository مرکزی ارسال میشوند.
این معماری چند مزیت دارد.
جستجوی سادهتر
به جای ورود جداگانه به هر سرور میتوان کل Environment را Search کرد.
Correlation
Eventهای چند سرویس میتوانند کنار یکدیگر قرار گیرند.
حفاظت بهتر از Evidence
اگر مهاجم یک Web Server را Compromise کند و Log محلی را پاک کند، نسخه ارسالشده به سرور مرکزی ممکن است همچنان باقی مانده باشد.
Alerting مرکزی
به جای ایجاد Rule روی تکتک سرورها میتوان Detection Ruleها را در یک نقطه مدیریت کرد.
چرا نگهداری Log فقط روی همان سرور خطرناک است؟
فرض کنید سایت هک شود و مهاجم دسترسی بالایی به سرور بگیرد.
اگر تمام Evidence در:
/var/log/...
همان سرور باشد، مهاجم ممکن است بتواند آنها را:
حذف،
تغییر
یا Corrupt
کند.
ارسال Log به Destination جداگانه باعث افزایش Resilience میشود.
این به معنی اعتماد کامل به Repository مرکزی نیست.
خود Log Infrastructure نیز یک Asset امنیتی مهم است و باید محافظت شود.
امنیت خود لاگها
Logها گاهی اطلاعات بسیار حساسی دارند.
ممکن است شامل:
IP
Username
Internal Path
Database Error
API Endpoint
Business Activity
Device Information
باشد.
بنابراین Log Security را میتوان از سه جهت بررسی کرد.
Confidentiality
چه کسی اجازه مشاهده Log را دارد؟
Developer معمولی لزوماً نباید همه Security Logهای Production را بخواند.
Role-based Access Control مفید است.
Integrity
آیا فردی میتواند Log را تغییر دهد یا پاک کند؟
برای Incident Investigation باید تا حد ممکن بتوان به Integrity داده اعتماد کرد.
روشهایی مانند:
Append-only Storage
Immutable Storage
Restricted Write Access
Integrity Monitoring
و Centralized Collection
میتوانند کمک کنند.
Availability
Log باید زمانی که Incident رخ میدهد در دسترس باشد.
اگر مهاجم بتواند با تولید Eventهای زیاد Disk را پر کند، Logging میتواند به نقطه DoS تبدیل شود.
Rotation، Quota، Capacity Monitoring و Storage Planning اهمیت دارند.
چه اطلاعاتی نباید وارد لاگ شوند؟
یکی از خطرناکترین اشتباهات، Logging بیش از حد است.
Log نباید به Database دوم اطلاعات محرمانه تبدیل شود.
بهصورت کلی نباید اطلاعاتی مانند موارد زیر بدون ضرورت در Log ذخیره شوند:
Password
رمز فعلی یا قبلی
Session Token
Authentication Cookie
Access Token
Refresh Token
Private Key
API Secret
Recovery Code
اطلاعات کامل کارت بانکی
Secret امنیتی
Raw Authorization Header
در برخی شرایط حتی Username، Email، IP یا داده شخصی نیز باید متناسب با قانون، Privacy Policy و نیاز واقعی مدیریت شوند.
اگر نیاز دارید Sessionها را Correlate کنید، به جای ذخیره Secret واقعی میتوان از Identifier امن یا Hash مناسب استفاده کرد.
اصل مهم این است:
برای Detection به Context نیاز داریم، نه Secret.
Log Injection چیست؟
Log Data نیز Input است.
اگر داده دریافتشده از Client بدون Encoding مناسب مستقیماً در فایل Log نوشته شود، مهاجم ممکن است بتواند ساختار Log را مختل کند یا Event جعلی ایجاد کند.
برای مثال اگر User Agent، Username یا Header حاوی Control Character باشد و سیستم بدون Sanitization آن را بنویسد، ابزار Parser ممکن است اطلاعات را اشتباه تفسیر کند.
به همین دلیل Log Output نیز باید Neutralize و Encode شود.
Structured Logging میتواند مدیریت این مشکل را آسانتر کند.
Structured Logging چیست؟
در Logging سنتی ممکن است Event اینطور نوشته شود:
Login failed for user ali from IP ...
این متن برای انسان قابل خواندن است، اما Parsing میلیونها Event سختتر میشود.
Structured Logging اطلاعات را در Fieldهای مشخص نگه میدارد.
برای مثال مفهومی:
Event Type: authentication_failure
User ID: 124
Source IP: X
Application: wordpress
Result: denied
Severity: medium
Timestamp: ...
این ساختار Query و Correlation را بسیار سادهتر میکند.
Severity در Log چیست؟
همه Eventها اهمیت یکسان ندارند.
میتوان طبقهبندیهایی مانند:
INFO
NOTICE
WARNING
ERROR
CRITICAL
داشت.
اما Severity باید Meaning ثابت داشته باشد.
اگر هر Authentication Failure بهعنوان CRITICAL ثبت شود، تیم امنیت به سرعت دچار Alert Fatigue خواهد شد.
بهتر است Severity براساس Context افزایش پیدا کند.
یک Login Failure:
Low یا Informational
صد Login Failure:
Medium
صد Failure و سپس Login Success برای Administrator:
High
ایجاد Administrator جدید بعد از آن:
Critical
این رویکرد Context-aware Detection ارزش بیشتری دارد.
Alert Fatigue چیست؟
Alert Fatigue زمانی رخ میدهد که تیم آنقدر Warning و Notification دریافت میکند که دیگر توان بررسی همه را ندارد.
در این وضعیت ممکن است Alert واقعی میان Noise گم شود.
برای جلوگیری از آن:
Threshold منطقی تعیین کنید.
Eventهای مشابه را Group کنید.
Severity تعریف کنید.
False Positiveها را بررسی کنید.
Ruleهایی را که دائماً بیدلیل Alert میدهند Tune کنید.
Alert باید Actionable باشد.
یعنی دریافتکننده بداند:
چه اتفاقی افتاده؟
کدام Asset درگیر است؟
چقدر مهم است؟
چه اطلاعاتی برای Investigation وجود دارد؟
Baseline چیست و چرا مهم است؟
برای تشخیص رفتار غیرطبیعی ابتدا باید بدانیم رفتار طبیعی چیست.
این Normal Behavior را Baseline مینامیم.
برای مثال:
سایت بهطور طبیعی روزانه 100 Login Failure دارد.
در نتیجه 10 Failure شاید غیرعادی نباشد.
اما اگر سایت دیگری معمولاً روزانه 2 Failure دارد و ناگهان 500 Failure ایجاد شود، وضعیت کاملاً متفاوت است.
Baseline میتواند شامل:
Request Rate
Login Failure Rate
Error Rate
Traffic Country
Admin Activity
File Change Frequency
API Usage
Upload Frequency
باشد.
Detection بدون Baseline معمولاً یا بیش از حد حساس میشود یا حملات را از دست میدهد.
Monitoring بلادرنگ لازم است یا دورهای؟
به Risk بستگی دارد.
برخی Eventها باید تقریباً بلافاصله Alert ایجاد کنند.
برای مثال:
ایجاد Administrator غیرمنتظره
غیرفعال شدن Security Control
حذف Audit Log
تغییر Authentication Policy
تعداد زیاد Login Failure
Certificate یا Secret Change
اما بعضی موارد برای Daily Review مناسب هستند:
افزایش تدریجی Error
Accountهای غیرفعال
رکوردهای قدیمی
Trendهای Traffic
هدف این نیست که همهچیز Real-time باشد.
هدف این است که Detection Time متناسب با Impact باشد.
Retention یا مدت نگهداری لاگ چقدر باشد؟
برای همه سایتها یک عدد ثابت وجود ندارد.
Retention به عوامل مختلفی بستگی دارد:
Risk
حجم Log
قوانین
قراردادها
Privacy
Storage Cost
Incident Response Requirement
نوع کسبوکار
NIST در راهنمای Log Management تأکید میکند سازمان باید Policy مشخصی برای جمعآوری، مدیریت و نگهداری Log داشته باشد.
مشکل زمانی رخ میدهد که هیچ Policy وجود ندارد.
مثلاً سازمان پس از Incident متوجه میشود فقط Log سه روز گذشته را دارد در حالی که حمله یک ماه قبل آغاز شده است.
از طرف دیگر نگهداری بینهایت Log نیز میتواند Privacy و Storage Risk ایجاد کند.
Log Rotation چیست؟
فایل Log نباید تا بینهایت رشد کند.
Log Rotation باعث میشود فایلها براساس:
زمان
حجم
یا Policy مشخص
Rotate شوند.
نسخههای قدیمی میتوانند Compress و سپس طبق Retention Policy حذف یا Archive شوند.
نکته مهم این است که Rotation نباید به معنی حذف Evidence پیش از زمان موردنیاز باشد.
مانیتور کردن خود سیستم Logging
Logging System نیز ممکن است از کار بیفتد.
بنابراین باید این سؤال پرسیده شود:
اگر Logging متوقف شود، چه کسی متوجه خواهد شد؟
Monitoring باید مواردی مانند:
عدم دریافت Event
Disk Full
Collector Failure
Queue Backlog
Storage Failure
Agent Offline
Permission Error
را بررسی کند.
«نبود لاگ» نیز گاهی خودش یک Signal امنیتی است.
اگر سروری که هر دقیقه صد Event تولید میکند ناگهان کاملاً ساکت شود، ارزش Investigation دارد.
لاگ امنیتی در وردپرس
وردپرس چند لایه مختلف برای Logging دارد.
مهم است Debug Logging را با Security Audit Logging اشتباه نگیریم.
WP_DEBUG_LOG چیست؟
WordPress قابلیت WP_DEBUG و WP_DEBUG_LOG را برای Debugging توسعهدهندگان ارائه میکند.
وقتی WP_DEBUG_LOG فعال باشد، Errorها، Warningها و Noticeهای مربوط به PHP و WordPress میتوانند در فایل Debug ذخیره شوند.
این قابلیت برای Development و Troubleshooting مفید است.
اما:
debug.log
بهتنهایی Security Audit Log کامل نیست.
بهطور پیشفرض نمیگوید:
چه کسی افزونه نصب کرد؟
چه کسی Role تغییر داد؟
چه کسی Login موفق داشت؟
چه کسی Setting حساس را عوض کرد؟
بنابراین باید میان:
Debug Logging
و:
Security Activity Logging
تفاوت قائل شد.
آیا WP_DEBUG را روی سایت Production روشن کنیم؟
برای سایت Production نباید Errorهای Debug به کاربران نمایش داده شوند.
نمایش Error میتواند اطلاعاتی درباره:
مسیر فایلها،
نام افزونه،
ساختار برنامه،
Query،
یا سایر جزئیات فنی
فاش کند.
مستندات رسمی WordPress نیز توصیه میکنند Debug Display با دقت مدیریت شود و فایلهای Log در مسیر عمومی در معرض دسترسی کاربران قرار نگیرند.
اگر Debug Logging برای بررسی موقت Production لازم است، باید:
دسترسی فایل محدود باشد،
اطلاعات حساس Log نشود،
فضای Disk Monitoring شود
و پس از پایان بررسی Configuration بازبینی شود.
Login Logging در وردپرس
WordPress Hookهایی برای رویدادهای Authentication دارد.
برای مثال:
wp_login
بعد از Login موفق اجرا میشود.
و:
wp_login_failed
پس از Login ناموفق اجرا میشود.
این Hookها به توسعه سیستم Security Logging یا Integration با سیستم Monitoring کمک میکنند.
اما پیادهسازی دستی Logging باید با رعایت امنیت انجام شود.
Password یا Credential هرگز نباید وارد Log شود.
چه فعالیتهایی در وردپرس ارزش Monitoring دارند؟
برای سایت وردپرسی موارد زیر اهمیت زیادی دارند:
Login Success
Login Failure
Password Reset
User Created
User Deleted
Role Changed
Administrator Created
Plugin Installed
Plugin Activated
Plugin Deactivated
Plugin Deleted
Theme Changed
WordPress Core Update
Plugin Update
Theme Update
Security Plugin Setting Change
File Modification
wp-config.php Change
.htaccess Change
Cron Change
REST API Authentication Failure
XML-RPC Activity در صورت استفاده
تغییر گزینههای حساس
تغییر ایمیل Administrator
این Eventها برای سایتهای چندمدیره اهمیت بیشتری دارند.
شناسایی Brute Force در وردپرس
صفحه Login وردپرس یکی از Endpointهایی است که Botها زیاد هدف قرار میدهند.
Monitoring میتواند موارد زیر را Correlate کند:
IP
Username
Failure Count
Time Window
User Agent
Country
Success after Failure
اگر یک IP روی صد Username تلاش کند، Pattern میتواند Password Spraying یا Enumeration باشد.
اگر Username مشخصی از صد IP مورد تلاش قرار گیرد، ممکن است حمله Distributed باشد.
بنابراین Block کردن صرف یک IP همیشه کافی نیست.
لاگ افزونههای امنیتی کافی است؟
Security Plugin میتواند منبع مفیدی باشد، اما بهتر است تنها منبع Evidence نباشد.
فرض کنید افزونه Security خود سایت غیرفعال یا حذف شود.
اگر تمام Monitoring داخل همان افزونه باشد، Visibility کاهش مییابد.
Defense in Depth بهتر است شامل چند منبع باشد:
WordPress Activity Log
Web Server
WAF/CDN
Server Authentication
File Integrity
External Monitoring
Centralized Logging
در این صورت از دست رفتن یک منبع، کل Detection را نابود نمیکند.
چه زمانی Alert فوری برای سایت وردپرسی ایجاد کنیم؟
نمونه Eventهای High Priority:
Administrator جدید
Login Administrator پس از Failureهای زیاد
Login مدیر از Location غیرمعمول
غیرفعال شدن 2FA
غیرفعال شدن Security Plugin
تغییر فایل wp-config.php
تغییر فایلهای Core خارج از Update رسمی
Plugin ناشناخته نصبشده
تعداد بسیار زیاد Login Failure
تغییر Role کاربر به Administrator
تغییر غیرمنتظره DNS یا Redirect
افزایش شدید HTTP 500
File Integrity Alert
Alert نباید فقط بگوید:
«مشکل امنیتی رخ داد.»
باید Context ارائه کند.
یک Alert امنیتی خوب چه اطلاعاتی دارد؟
برای مثال Alert ورود مشکوک مدیر میتواند شامل:
Event: Administrator Login
Time
Username
Source IP
Country
User Agent
Previous Login Location
MFA Status
Failed Attempts Before Success
Asset
Risk Score
باشد.
با چنین اطلاعاتی Incident Responder سریعتر تصمیم میگیرد.
فرآیند بررسی یک Alert
هر Alert الزاماً Incident نیست.
فرآیند میتواند اینگونه باشد:
Alert ایجاد شد.
Context بررسی شود.
Eventهای قبل و بعد Correlate شوند.
User یا Asset مشخص شود.
مشروع یا مشکوک بودن فعالیت تعیین شود.
در صورت مشکوک بودن Scope Incident بررسی شود.
Containment انجام شود.
Evidence حفظ شود.
Root Cause بررسی شود.
Controlهای امنیتی اصلاح شوند.
این فرآیند باعث میشود Monitoring به اقدام واقعی تبدیل شود.
اگر حملهای شناسایی کردیم چه کنیم؟
اولین واکنش نباید پاک کردن همه Logها یا خاموش کردن سریع تمام سیستمها بدون Evidence Collection باشد.
بسته به Severity باید Incident Response Plan اجرا شود.
اقدامات ممکن است شامل:
محدود کردن Account
Revoke کردن Session
Rotate کردن Credential
Block موقت Source
Isolation سیستم
غیرفعال کردن Component آسیبپذیر
Backup گرفتن از Evidence
بررسی File Integrity
حفظ Logها
بررسی Timeline
Patch کردن آسیبپذیری
باشد.
هدف فقط متوقف کردن Attack نیست.
باید بفهمیم:
مهاجم تا کجا رسیده؟
چه چیزی تغییر کرده؟
Persistence ایجاد شده؟
Data Access رخ داده؟
Account دیگری درگیر است؟
اشتباهات رایج در Logging و Monitoring سایت
فقط ذخیره کردن Log
داشتن صد گیگابایت Log بدون Monitoring تقریباً مانند داشتن دوربین مداربستهای است که هیچکس تصویر آن را نمیبیند.
Logging باید به Detection متصل شود.
ثبت نکردن Login Failure
Authentication Failure یکی از بنیادیترین Eventهای امنیتی است.
نداشتن آن تشخیص حملات Credential را بسیار دشوار میکند.
ثبت Password یا Token
یکی از خطرناکترین اشتباهات است.
لاگ نباید به محلی برای ذخیره Secret تبدیل شود.
ذخیره Log فقط روی همان Server
در صورت Compromise مهاجم ممکن است Evidence را پاک کند.
Centralized Logging یا Remote Copy بهتر است.
نبود Timestamp دقیق
بدون زمان هماهنگ، Timeline Incident قابل اعتماد نیست.
Alert روی هر Event
Alert بسیار زیاد باعث Alert Fatigue میشود.
نبود Owner برای Alert
اگر Alert ایجاد شود ولی مشخص نباشد چه کسی مسئول بررسی است، عملاً Detection ناقص است.
نگهداری Log بدون Retention Policy
ممکن است Log خیلی زود حذف شود یا سالها بدون نیاز باقی بماند.
هر دو حالت مشکلساز هستند.
اعتماد کامل به IP
IP Signal مفیدی است اما Identity قطعی نیست.
Correlation با User، Device، Session و سایر Contextها بهتر است.
استفاده از Debug Log به جای Security Log
Error Debug برای Security Investigation مفید است، اما جای Audit Trail و Application Security Logging را نمیگیرد.
بررسی نکردن Logging System
ممکن است Agent هفتهها Down باشد بدون اینکه کسی متوجه شود.
Logging Pipeline خودش باید Monitoring شود. 
معماری پیشنهادی Logging و Monitoring برای یک سایت
یک معماری ساده میتواند چنین باشد:
لایه اول: تولید Event
Web Server
Application
WordPress
WAF
Database
Operating System
لایه دوم: جمعآوری
Log Agent یا Collector اطلاعات را دریافت میکند.
لایه سوم: انتقال امن
Logها از طریق Channel امن به Repository مرکزی منتقل میشوند.
لایه چهارم: ذخیرهسازی
Repository باید:
Access Control
Retention
Integrity Protection
Backup
Capacity Management
داشته باشد.
لایه پنجم: Analysis
Eventها:
Parse
Normalize
Search
Correlate
میشوند.
لایه ششم: Detection
Ruleها رفتار مشکوک را شناسایی میکنند.
لایه هفتم: Alerting
هشدار به تیم مسئول ارسال میشود.
لایه هشتم: Incident Response
تیم بررسی و اقدام میکند.
این معماری حتی در مقیاس کوچک نیز قابل سادهسازی است.
مهمتر از انتخاب محصول، درست بودن فرآیند است.
چکلیست لاگ امنیتی سایت
Logging
- Login موفق ثبت میشود.
- Login ناموفق ثبت میشود.
- Authorization Failure ثبت میشود.
- تغییر Role ثبت میشود.
- تغییر تنظیمات حساس ثبت میشود.
- File Uploadهای مهم ثبت میشوند.
- Errorهای Security-relevant ثبت میشوند.
- WAF Eventها قابل دسترسی هستند.
- Admin Activity ثبت میشود.
Event Context
- Timestamp وجود دارد.
- Time Zone مشخص است.
- Event Type مشخص است.
- User ID در صورت امکان وجود دارد.
- IP ثبت میشود.
- Application مشخص است.
- Result مشخص است.
- Correlation ID در معماریهای پیچیده وجود دارد.
حفاظت از داده
- Password Log نمیشود.
- Token Log نمیشود.
- Session Cookie Log نمیشود.
- Secret و Private Key Log نمیشوند.
- Log Injection کنترل میشود.
- دسترسی Log محدود است.
- Integrity حفاظت میشود.
- انتقال Log امن است.
Monitoring
- Login Failure Monitoring میشود.
- Admin Login Monitoring میشود.
- Permission Change Monitoring میشود.
- File Change Monitoring میشود.
- WAF Alert بررسی میشود.
- Error Rate Monitoring میشود.
- Logging Failure Monitoring میشود.
Alerting
- Threshold مشخص است.
- Severity تعریف شده است.
- Alert Owner مشخص است.
- Alert Context کافی دارد.
- False Positiveها Review میشوند.
- Ruleها Tune میشوند.
- Escalation Process وجود دارد.
Incident Response
- Logها هنگام Incident حفظ میشوند.
- Timeline قابل بازسازی است.
- Sessionها قابل Revoke هستند.
- Credentialها قابل Rotate هستند.
- Evidence قبل از پاکسازی حفظ میشود.
- Root Cause Analysis انجام میشود.
Logging و Monitoring چه چیزی را حل نمیکنند؟
Logging یک کنترل Detective است.
بهتنهایی جلوی همه حملات را نمیگیرد.
لاگ نمیتواند جایگزین موارد زیر شود:
Secure Coding
Patch Management
WAF
Access Control
MFA
Input Validation
Backup
Least Privilege
Network Security
File Permission
Vulnerability Management
شود.
اما بدون Logging بسیاری از این کنترلها قابل ارزیابی نیستند.
مثلاً Rate Limit ممکن است وجود داشته باشد، اما اگر هیچ Eventی از Trigger شدن آن ثبت نشود، نمیدانید چقدر هدف حمله قرار گرفتهاید.
نقش Logging در E-E-A-T و مدیریت حرفهای سایت
Logging مستقیماً یک تکنیک SEO نیست، اما از نظر مدیریت حرفهای سایت اهمیت دارد.
سایتی که:
Incidentها را ثبت میکند،
تغییرات مدیریتی را Audit میکند،
خطاها را Monitoring میکند
و Detection Process دارد،
قابلیت بیشتری برای تشخیص و پاسخ به مشکل خواهد داشت.
این موضوع برای:
فروشگاههای اینترنتی،
سایتهای عضویت،
سامانههای مالی،
APIها،
وبسایتهای سازمانی
و سرویسهایی که داده حساس دارند اهمیت بیشتری پیدا میکند.
سؤالات متداول درباره لاگ امنیتی سایت
لاگ امنیتی سایت چیست؟
لاگ امنیتی سایت مجموعهای از Eventهای مرتبط با Authentication، Authorization، کاربران، فایلها، تنظیمات، درخواستهای وب، WAF، Server و سایر اجزای سیستم است که برای تشخیص رفتار غیرعادی، بررسی Incident و ایجاد Audit Trail استفاده میشود.
تفاوت Logging و Monitoring چیست؟
Logging اطلاعات را ثبت میکند، اما Monitoring آن اطلاعات را بررسی میکند تا Patternها و رفتارهای مشکوک شناسایی شوند. سایتی میتواند Logging داشته باشد اما اگر Logها هرگز بررسی نشوند، Detection بسیار ضعیف خواهد بود.
Alerting چیست؟
Alerting مرحلهای است که پس از مشاهده Condition امنیتی مشخص، Notification برای تیم مسئول ایجاد میشود. برای مثال تعداد زیاد Authentication Failure در بازه کوتاه میتواند Alert ایجاد کند.
آیا WP_DEBUG_LOG لاگ امنیتی وردپرس است؟
خیر. WP_DEBUG_LOG عمدتاً برای ذخیره Errorها، Warningها و Noticeهای Debugging است. این اطلاعات میتوانند در Investigation مفید باشند، اما Audit Trail کامل فعالیت کاربران و مدیران را فراهم نمیکنند.
آیا لاگها میتوانند Brute Force را تشخیص دهند؟
بله. Authentication Failureها، تعداد Requestها، Username، IP و Time Window میتوانند برای تشخیص Patternهای Brute Force، Password Spraying و Credential Stuffing استفاده شوند.
آیا باید تمام Requestهای سایت را Log کنیم؟
نه الزاماً. میزان Logging باید براساس Risk، Privacy، Performance و نیاز Investigation تعیین شود. ذخیره بیش از حد داده میتواند هزینه، Noise و ریسک افشای اطلاعات را افزایش دهد.
آیا IP مهاجم برای شناسایی او کافی است؟
خیر. IP فقط یک Signal است و ممکن است متعلق به VPN، Proxy، NAT، Botnet یا سرویس اشتراکی باشد. بهتر است IP با User، Session، Device، Event Type و سایر Contextها Correlate شود.
آیا Password را میتوان برای بررسی امنیتی Log کرد؟
خیر. Password، Token، Session Secret، API Secret و Credentialهای حساس نباید در Security Log ذخیره شوند.
بهترین مکان برای نگهداری لاگ امنیتی کجاست؟
در بسیاری از معماریها Centralized Logging بهتر از نگهداری صرف روی همان Application Server است. Repository مرکزی باید Access Control، Integrity Protection، Retention Policy و Monitoring داشته باشد.
SIEM برای هر سایتی لازم است؟
خیر. سایت کوچک ممکن است با Centralized Logging، Dashboard و چند Alert مؤثر نیاز خود را برطرف کند. SIEM در محیطهای بزرگ و دارای منابع متعدد ارزش بیشتری دارد.
لاگها را چه مدت باید نگه داشت؟
یک مدت ثابت برای همه وجود ندارد. Retention باید براساس Risk، قوانین، نیاز Incident Response، Privacy، حجم Log و هزینه Storage تعیین و مستند شود.
آیا WAF Log برای امنیت سایت کافی است؟
خیر. WAF فقط بخشی از تصویر را مشاهده میکند. بسیاری از حملات Authorization، Business Logic و Account Abuse در Application Layer بهتر قابل تشخیص هستند.
مهمترین لاگهای وردپرس کداماند؟
Login Success و Failure، تغییر Role، ایجاد Administrator، نصب یا حذف Plugin، تغییر تنظیمات امنیتی، تغییر فایل، Password Reset و فعالیتهای حساس مدیریتی از مهمترین Eventها هستند.
جمعبندی؛ چگونه با Logging و Monitoring حملات سایت را شناسایی کنیم؟
لاگ امنیتی سایت یکی از مهمترین منابع Visibility در امنیت وب است. بدون Logging مناسب، مدیر سایت ممکن است فقط زمانی متوجه حمله شود که خسارت ایجاد شده باشد؛ یا حتی پس از Incident نتواند مشخص کند مهاجم چه زمانی وارد شده و چه عملیاتی انجام داده است.
اما ذخیره Log بهتنهایی کافی نیست.
یک معماری امنیتی مؤثر باید چرخه کاملی از:
Logging
Collection
Centralization
Monitoring
Correlation
Alerting
Investigation
Incident Response
داشته باشد.
رویدادهایی مانند Login Failure، Access Control Failure، تغییر Role، ایجاد Administrator، تغییر فایل، غیرفعال شدن Security Control و فعالیت غیرعادی API باید با Context کافی ثبت شوند.
از طرف دیگر Logging باید خودش امن باشد. Password، Token، Session Secret و اطلاعات حساس نباید در Log قرار گیرند. Logها باید در برابر دسترسی غیرمجاز، تغییر و حذف محافظت شوند و Retention مشخص داشته باشند.
برای سایتهای وردپرسی نیز نباید WP_DEBUG_LOG را با Security Activity Log اشتباه گرفت. Debug Log بیشتر برای خطاهای فنی است، در حالی که Security Logging باید رویدادهای Authentication، Administrator Activity، Plugin Changes، File Modification و تغییرات حساس را پوشش دهد.
در نهایت، هدف Logging تولید میلیونها خط اطلاعات نیست؛ هدف ایجاد دادهای است که هنگام وقوع رفتار مشکوک بتواند به یک سؤال مهم پاسخ دهد:
«در سایت چه اتفاقی افتاد، چه کسی یا چه سیستمی آن را انجام داد، چه زمانی رخ داد، نتیجه چه بود و آیا باید واکنش امنیتی انجام دهیم؟»
وقتی Logging، Monitoring و Alerting درست طراحی شوند، تیم امنیت به جای اینکه فقط پس از خسارت متوجه حمله شود، شانس بسیار بیشتری برای شناسایی زودهنگام، محدود کردن Incident و بازسازی دقیق Timeline خواهد داشت.