۱۳۸۸/۰۳/۲۳

از كجا به وب سرور شما حمله DOS شده است؟


اگر پيش فرض‌هاي IIS را تغيير نداده باشيد، تمامي اعمال رخ داده در طي يك روز را در يك سري فايل‌هاي متني در يكي از آدرس‌هاي زير ذخيره مي‌كند:

IIS 6.0: %windir%\System32\LogFiles\W3SVC<SiteID>
IIS 7.0: %systemDrive%\Inetpub\logfiles

اطلاعات فوق العاده ارزشمندي را مي‌توان از اين لاگ فايل‌هاي خام بدست آورد. اعم از تعداد بار دقيق مراجعه به صفحات، چه فايل‌هايي مفقود هستند (خطاي 404)، كدام صفحات كندترين‌هاي سايت شما را تشكيل مي‌دهند و الي آخر.
مايكروسافت براي آناليز اين لاگ فايل‌ها (كه محدود به IIS‌ هم نيست) ابزاري را ارائه داده به نام LogParser كه اين امكان را به شما مي‌دهد تا از فايل‌هاي CSV مانند با استفاده از عبارات SQL كوئري بگيريد (چيزي شبيه به پروايدرهاي LINQ البته در سال‌هاي 2005 و قبل از آن).
يكي از كاربردهاي اين ابزار، بررسي‌هاي امنيتي است.

سؤال؟ چگونه متوجه شوم كدام كامپيوتر در شبكه اقدام به حمله DOS كرده و سرور را دارد از پا در مي‌آورد؟
از آنجائيكه در لاگ‌هاي IIS دقيقا IP تمامي درخواست‌ها ثبت مي‌شود، با آناليز اين فايل ساده متني مي‌توان اطلاعات لازم را بدست آورد.
logparser.exe -i:iisw3c "select top 25 count(*) as HitCount, c-ip from C:\WINDOWS\system32\LogFiles\W3SVC1\*.log group by c-ip order by HitCount DESC" -rtp:-1 > top25-ip.txt
دستور خط فرمان فوق، يك كوئري SQL را بر روي تمامي لاگ فايل‌هاي قرار گرفته در مسير ياد شده اجرا كرده و نتيجه را در يك فايل متني ذخيره مي‌كند.
به اين صورت مي‌توان دقيقا متوجه شد كه از كدام IP‌ مشغول به زانو درآوردن سرور هستند.

اگر به اين ابزار علاقمند شديد مطالعه مقاله زير توصيه مي‌شود: