پرش به محتوای اصلی
امنیت سرور و هاست

لاگ امنیتی سایت چیست؟ چگونه با 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، 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 را شناسایی کنیم؟

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 چیست؟

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 چیست؟

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

Email

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 برای یک سایت

معماری پیشنهادی 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 خواهد داشت.

مطالب مرتبط