چك لیست تشخیص نفوذ در ویندوز (قسمت دوم)
آیا سیستم ویندوز شما مورد سوء استفاده هكرها قرار گرفته است؟ این مقاله گامهایی را برای تشخیص این موضوع بیان می­كند. مدیران سیستم می­توانند از این اطلاعات برای تشخیص انواع مختلفی از نفوذها استفاده كنند. در قسمت قبل 7 گام اولیه برای تشخیص نفوذ در سیستمهای ویندوز مطرح شد، در این قسمت نیز 9 گام تكمیلی برای تشخیص نفوذ در ویندوز به تفصیل بیان می گردد.
  • تنظیمات شبكه خود را در مورد ورودیهای غیر مجاز چك كنید. در تنظیماتی مانند WINS، DNS، IP forwarding و غیره مراقب ورودیهای غیر مجاز باشید. این تنظیمات را می­توان با استفاده از ابزار Network Properties یا با استفاده از دستور ipconfig/all در محیط command prompt چك كرد. به عنوان یك معیار دیگر، ابزار Port Reporter كه محصول مایكروسافت است، برای نظارت بر برنامه هایی كه پورتها را برای اتصالات داخلی و خارجی باز می­كنند كاملا مناسب است. ابزار Port Reporter و یك تجزیه گر گزارشات در سایت شركت مایكروسافت قابل دسترسی هستند. اطمینان حاصل كنید كه فقط آن دسته از سرویسهای شبكه كه شما می­خواهید روی سیستم خود اجرا كنید در تنظیمات Network Services فهرست شده باشند. بعلاوه فایلهای hostهای خود را كه در محل %systemroots%system32driversetchosts قرار دارند، در مورد ورودیهای غیر مجاز چك كنید. با استفاده از دستور netstat –an، پورتهای غیرعادی را كه به اتصالاتی از hostهای دیگر گوش می­دهند چك كنید. فایلهای دسته ای زیر، پورتهایی را كه در وضعیت گوش دادن یا اتصال قرار دارند پیمایش و تجزیه می­كنند. Fport محصول شركت Foundstone سعی می­كند كه پورتها را بهسرویسهایی كه به آنها گوش می­دهند نگاشت كند.

    @echo off
    netstat –an > gports
    find “LISTENING” < gports > oports.txt
    find “ESTABLISHED” < gports >> oports.txt
    del gports
ویندوز XP شما را قادر می­سازد كه پردازه ای را كه پورت خاصی را در اختیار دارد با استفاده از دستور netstat –ao مشاهده كنید. توجه داشته باشید كه این دستور فقط شناسه پردازه (Process ID) مذكور را نشان می­دهد. برای تبدیل این شناسه به نام پردازه، از دستور زیر استفاده كنید:
wmic process where ProcessId=’x’ get caption
نكته: در این مثال x برای نشان دادن هر شناسه پردازه معتبری است كه در گام قبلی معرفی شده است. 
اسناد زیر را در مورد فهرستی از شماره پورتهای معمول مشاهده كنید: 
تخصیص پورت IANA 
پورتهای لازم برای سیستم Windows Server 
پیكربندی پورتهای ایستا برای outlook 2003 و 2007 
پورتهایی كه System Management Server 2003 به سرویسها تخصیص می­دهد تا از طریق فایروال یا سرور پروكسی ارتباط برقرار كنند
  • اشتراكات غیر مجاز را چك كنید. 
    شما می­توانید با استفاده از دستور net share در محیط command prompt یا با استفاده از ابزار Server Manager تمامی اشتراكات روی سیستم را فهرست كنید. سیستمهای ویندوز با افزودن یك علامت $ به آخر نام فایلهای اشتراكی، راهی برای پنهان كردن این فایلها فراهم می­كنند. تعداد محدودی نام پیش فرض هستند كه ویندوز از آنها استفاده می­كند (برای مثال PRINT$)، ولی اگر خود شما یك پرینتر را با سایر كاربران به اشتراك نگذاشته اید، حتما چك كنید كه چرا چنین اشتراكی ایجاد شده است. بطور پیش فرض، ریشه هر درایو (مثلا C$) به عنوان “Administrative Share” به اشتراك گذاشته می­شود. این امكان معمولا توسط مدیران دامنه برای مدیریت سیستمهای راه دور مورد استفاده قرار می­گیرد. برای مشاهده فایلهای اشتراكی روی یك سیستم محلی یا راه دور، از Shared Folders Management (fsmgmt.msc) استفاده كنید. اگر به نام اشتراك غیر معمولی برخوردید، ابزار مذكور محل حقیقی این اشتراك و اینكه دقیقا در كدام محل و روی چه سیستمی قرار دارد را به شما نشان می­دهد. یك درایو یا یك فولدر می­تواند چندین نام اشتراك داشته باشد كه برای هریك از این نامها مجوزهای مختلفی صادر شده باشد.
  • هر كاری را كه برای اجرا برنامه ریزی شده است بررسی كنید. 
    افراد نفوذگر می­توانند در فایلهایی كه برای اجرا در آینده برنامه ریزی شده اند در پشتی (backdoor) قرار دهند. این تكنیك می­تواند به فرد نفوذگر اجازه دهد كه بعدا به سیستم شما برگردد (حتی اگر شما تصور كنید كه آسیب اصلی را رفع كرده اید). همچنین تمامی فایلها و برنامه هایی را كه بطور مستقیم یا غیر مستقیم توسط scheduler و job fileها مورد اشاره قرار گرفته اند بررسی كنید تا قابل نوشتن نباشند. برای بررسی jobهایی كه در وضعیت معلق به سر می­برند، از دستور at یا Windows Task Scheduler استفاده كنید.
  • پردازه های غیر مجاز را بررسی كنید. 
    می­توانید با استفاده از ابزار Task Manager یا دستورات pulist.exe و tlist.exe در محیط command prompt اطلاعاتی را درباره پردازه های در حال اجرا در سیستم خود بدست آورید. تعدادی از برنامه های shareware/freeware مانند Filemon محصول شركت sysinternals نیز وجود دارند كه نشان می­دهند چه فایلهایی در حال استفاده هستند. با استفاده از دستور pulist.exe می­توانید مشاهده كنید كه هر پردازه را چه كسی آغاز كرده است. سرویسها معمولا با حساب كاربری SYSTEM مرتبط هستند. دستور tlist.exe با علامت –t به شما نشان می­دهد كه پردازه های فرزند توسط كدام پردازه ها آغاز شده اند. بعلاوه ویندوز XP و Server 2003 دستور tasklist.exe را نیز دارا هستند كه اگر با /svc استفاده شود، اجازه می­دهد پردازه هایی را كه تحت svchost.exe اجرا می­شوند مشاهده نمایید و زمانی كه با /m استفاده شود، اجازه می­دهد كه تمامی ماژولهای بارگذاری شده را ببینید. علاوه بر اینها، مایكروسافت ابزار System Information را نیز ارائه كرده است كه اطلاعات مربوط به بخشهای مختلف را فراهم می­كند مانند:
  1. Running Tasks
  2. Loaded Modules
  3. Services
  4. Startup Programs
  5. Drivers
ابزار System Information می­تواند با اجرای msinfo32.msc از محیط command prompt فعال گردد.
  • در سیستم به دنبال فایلهای غیر معمول یا پنهان بگردید. 
    این كار می­تواند برای پنهان كردن ابزارها و اطلاعات مورد استفاده قرار بگیرد (برنامه های باز كردن رمز عبور، فایلهای رمز عبور از سیستمهای دیگر و غیره). فایلهای پنهان را اغلب می­توان بوسیله Explorer مشاهده كرد. از منوی Tools وارد Folder Options و سپس View شده و بخش Show hidden files and folders را انتخاب نمایید و تیك مربوط به بخشهای Hide file extensions for known file types و Hide protected operating system files را حذف كنید. برای مشاهده فایلهای پنهان در محیط command prompt دستور dir/ah را تایپ نمایید. نكته: اجرا بعنوان LocalSystem یا بالا آمدن سیستم از یك سیستم عامل مبتنی بر CD مانند Knoppix یا BartPE/WinPE، مشاهده فایلها در فولدرهای محافظت شده را ممكن می­سازد و می­تواند این فایلهای پنهان را بوسیله rootkit نمایش دهد.
  • مجوزهای تغییر یافته روی فایلها یا كلیدهای رجیستری را پیدا كنید. 
    بخشی از امن كردن یك سیستم ویندوز به این مساله برمی­گردد كه مجوزهای فایلها و كلیدهای رجیستری را محدود كنید، بطوریكه كاربران غیر مجاز نتوانند برنامه غیر مجازی (مانند درهای پشتی یا ثبت كننده های صفحه كلید) را اجرا كنند یا فایلهای سیستم را تغییر دهند. برای اینكه تعداد زیادی فایل را در درخت فولدرهای خود بررسی كنید، می­توانید از برنامه های xcacls.exe یا showacls.exe كه بخشی از Resource Kit هستند استفاده كنید. كنسول Local Security Settings (secpol.msc) نیز می­تواند برای تحلیل سیستم شما در مقابل تنظیماتی كه قبلا تعریف كرده اید مورد استفاده قرار بگیرد. این كار می­تواند به تشخیص اینكه چه چیزی ممكن است تغییر كرده باشد كمك كند.
  • به دنبال تغییراتی در سیاستهای كاربر یا كامپیوتر بگردید. 
    سیاستها در سیستمهای ویندوز برای تعریف گستره وسیعی از تنظیمات مورد استفاده قرار می­گیرند و می­توانند برای كنترل كردن اینكه كاربران چه كاری را می­توانند انجام دهند و چه كاری را حق ندارند انجام دهند استفاده گردند. برای سیستمهای منفرد یا workgroup، این سیاستها از طریق Local Computer Policy تعیین می­گردند. در یك دامنه Active Directory، این سیاستها از طریق Group Policy در یك Domain Controller تعیین شده و سپس با Organizational Unit مرتبط می­گردند. پیشنهاد می­شود كه یك كپی از سیاستهای خود داشته باشید تا اگر توسط سیاست دیگری جایگزین شدند، بدانید چه چیزهایی تغییر كرده است.
  • اطمینان حاصل كنید كه سیستم به دامنه متفاوتی متصل نشده است. 
    ممكن است یك فرد نفوذگر سعی كند كه از طریق تغییر دامنه فعلی و تبدیل آن به دامنه ای كه خودش روی آن كنترل دارد، به یك ایستگاه كاری دسترسی Domain Administrator پیدا كند.
  • بررسی نفوذ 
    برای فعال كردن عملیات ثبت اطلاعات روی یك سیستم منفرد یا workgroup از طریق خط دستور، دستور gpedit.msc را اجرا نمایید. در یك محیط دامنه، می­توانید از Active Directory Users and Computer (dsa.msc) یا GPMC.msc (Group Policy Management Console) استفاده كنید. جدول زیر وقایع موجود برای ثبت اطلاعات، معنای آنها و نیز تنظیمات پیشنهادی را فهرست می­كند:
هدف تنظیمات وقایع ثبت شده
وقایع زمانی ثبت می­شوند كه یك كاربر یا پردازه وضعیت محیط كامپیوتر مانند startup/shutdown را تغییر دهد. Success/Failure System Events
ورودهای موفق و ناموفق كاربر محلی و كامپیوتر را ثبت می­كند. برای مثال شناسه رخداد 528 نشان دهنده یك ورود موفق به كامپیوتر است. شناسه رخداد 529 نشان می­دهد كه یك درخواست ورود رد شده است. Success/Failure Logon Events
ورودهای كاربران و كامپیوترهای دامنه را ثبت می­كند. توجه داشته باشید كه زمانی كه یك كاربر سعی می­كند وارد دامنه شود، این رخداد فقط توسط سرور ورودی كه این درخواست را مدیریت كرده است ثبت می­شود. Success/Failure Account Logon Events
اضافه شدنها، حذفها و تغییرات كاربران و گروههای محلی یا كاربران و گروههای دامنه را ثبت می­كند. Success/Failure Account Management
فعالیتها و تغییرات در هر شیئی مانند فولدرها، فایلها، پرینترها، كلیدهای رجیستری و غیره با یك SACL (System Access Control) را ثبت می­كند. Success/Failure Object Access

جدول زیر وقایعی را كه معمولا مانیتور می­شوند و ممكن است نشان دهنده حملات در حال انجام و یا موفق روی سیستم شما باشند فهرست كرده است. هر یك از این وقایع در لاگ وقایع امنیتی ثبت می­گردد. 

Audit Policy Required وقایع شناسه وقایع (Event ID)
Audit Logon Events )success) ورود موفق كاربر 528
Audit Logon Events )Failure) ورود ناموفق - كاربر ناشناس یا كلمه عبور نادرست 529
Audit Logon Events)Failure) ورود ناموفق - تلاش برای ورود در ساعات غیر مجاز 530
Audit Logon Events )Failure) ورود ناموفق - حساب كاربری غیر فعال شده 531
Audit Logon Events )Failure) ورود ناموفق - حساب كاربری خاصی منقضی شده است 532
Audit Logon Events)Failure) ورود ناموفق - كاربر اجازه ورود به این كامپیوتر را ندارد 533
Audit Logon Events )Failure) ورود ناموفق - این كاربر خاص مجوز ورود به این شكل خاص را به این كامپیوتر نداشته است 534
Audit Logon Events)Failure) ورود ناموفق - خطای غیر منتظره در ورود 537
Audit Logon Events)Failure) ورود ناموفق - حساب كاربری مسدود شده 539
Audit Logon Events )Success) ورود موفق به شبكه 540
Audit Object Access )Success) دسترسی به یك شیء موجود تایید شده است 560
Audit Object Access)Success) تلاش برای باز كردن یك شیء به منظور حذف آن 563
Audit Object Access )Success) یك شیء محافظت شده حذف شده است 564
Audit Privilege Use یك كاربر تلاش داشته یك كار دارای privilege انجام دهد 577
Audit Privilege Use تلاش برای خاموش كردن یك سیستم 577 (SeShutdownPrivilege)
Audit Privilege Use فعالیت بعنوان بخشی از سیستم عامل (این حق نباید به هیچ كاربری اختصاص داده شود) 577/578 (SeTcbPrivilege)
Audit Privilege Use تلاش برای تغییر ساعت سیستم 577/578 (SeSystemtimePrivilege)
Audit Privilege Use تلاش برای load/unload یك درایور 577/578 (SeLoadDrivePrivilege
Audit Privilege Use تلاش برای حذف یك گزارش رویداد یا نوشتن رویدادهای privilege use 577/578 (SeSecurityPrivilege)
Audit Privilege Use تلاش یك كاربر برای بدست آوردن مالكیت یك شیء 577/578 (SeTakeOwnershipPrivilege)
Audit Account Management (Success) حساب كاربری ایجاد شده است 624
Audit Account Management (Success) نوع حساب كاربری تغییر كرده است 625
Audit Account Management (Success) حساب كاربری فعال شده است 626
Audit Account Management (Failure) تلاش برای تغییر كلمه عبور 627
Audit Account Management (Success) اضافه شدن عضو به گروه سراسری امن 632
Audit Account Management (Success) حذف شدن عضو از گروه سراسری امن 633
Audit Account Management (Success) اضافه شدن عضو به گروه محلی امن 636
Audit Account Management (Failure) حساب كاربر مسدود شده است. 644
Audit Account Logon Events (Failure) Kerberos pre-authentication failed 675
Audit Account Logon Events (Failure) یك TGS ticket قبول نشده است. (نشان دهنده تلاش ناموفق برای ورود به دامنه) 677
Audit Logon Events )Success) كاربر یك terminal services session را دوباره متصل كرده است. 982

رخدادهایی را كه در شناسایی و پاسخ دهی به تلاشهای نفوذ روی شبكه شما كمك می­كنند مانیتور كنید. برای مثال، یك حمله جدی بر روی یك حساب، نوعا تعداد زیادی رخداد "نام كاربری ناشناخته یا كلمه عبور اشتباه" (رخداد 529) تولید می­كند. این مساله مهم است كه توجه داشته باشید كه عملیات ثبت گزارشها ممكن است روی تمامی سیستمهای یك دامنه اتفاق نیفتد. برای مثال، یك تلاش برای ورود فقط روی logon سروری ثبت می­گردد كه درخواست را پردازش كرده است نه روی تمامی logon سرورهای یك دامنه. بنابراین جمع آوری گزارشهای رویدادها امری ضروری است . تعداد زیادی ابزار freeware و تجاری وجود دارند كه می­توانند برای این كار مورد استفاده قرار گیرند:
  1. EventCombMT ابزاری برای تحلیل گزارشهای رویدادها در چندین سیستم مختلف بطور همزمان
  2. اسكریپتها نیز می­توانند برای بازیابی رویدادها از گزارشهای ثبت شده مورد استفاده قرار گیرند. مایكروسافت تعدادی اسكریپت نمونه نیز پیشنهاد داده است كه می­توانید آنها را متناسب با كار خود تغییر داده و استفاده نمایید.
شما همچنین باید بصورت متناوب تمامی فایلهای گزارشی را كه در %systemroot%system32logfiles قرار گرفته اند بازبینی كنید. بطور پیش فرض IIS و سایر برنامه ها در این دایركتوری گزارش ثبت می­كنند. 
منبع: 
http://www.auscert.org.au




تاريخ : دو شنبه 15 مهر 1392برچسب:, | | نویسنده : مقدم |