اول سلام، دوم ممنون بابت ها، لایک ها و نظرات خوبتون در لینکدین و ویرگول، سوم آذر تقصیر بابت غیبت طولانی مدتم.

بخش سوم (پیگیری تغییرات فایلها حسابرسی)

یکی از ابزارهای مرسوم برای پیگیری تغییرات بر روی فایل ها در سیستم عامل لینوکس، مانند تغییر، حذف یا اضافه کردن یک فایل از یا به یک مسیر خاص و موارد اینچنینی رو با ابزار ممیزی در لینوکس و ویندوز رهگیری و ثبت می کنند. برای مثال فرض کنید می توانید دنبال کنید چه فایل etc/passwd/ را توسط چه ابزار (مانند tail, head, nano یا vi) در چه زمان و تاریخی اند. توسط ابزار audit و تعریف یک رول بر روی فایل مربوط به اطلاعات فوق ثبت می شوند. حسابرسی دارای یک فرآیند پس زمینه به نام حسابرسی شده است که تمامی کنترل های لازم را انجام دهد. همچنین شامل دو فایل auditd.conf می‌شود که ساختار پیکربندی فایل‌ها پس زمینه audited و فایل audit.rules که مربوط به تعریف رول‌هایی هستند که در زمان‌بندی و بارگذاری می‌شوند. اگر ابزار ممیزی روی عامل سیستم شما نصب نیست، می‌توان توسط دستورهای زیر به ترتیب در توزیع‌های مبتنی بر رده‌بندی و توزیع‌های مبتنی بر دبیان اقدام به نصب این ابزار کنید.

  • yum install audit
  • apt-get install audit

بعد از نصب و فعال کردن سرویس، باید رولهای مدنظر خودتون را تعریف کنید. برای انجام این کار با تغییر دادن فایل audit.rules و یا با استفاده از دستور auditctl این کار قابل انجام خواهد بود. برای مثال دستور زیر با استفاده از auditctl یک رول بر روی فایل etc/passwd/ تعریف می کند.

  • auditctl -w /etc/passwd -k passwd -p ra

سوئیچ w- برای معرفی مسیر کامل فایل مدنظرتون و سوئیچ k- برای تعریف یک فیلتر که یک رشته به فرد برای شناختن رول مدنظرتون تعریف می کند. توسط این رشته به فرد، یک رول خاص را از میان چند رول برای گرفتن اطلاعاتی از آن توسط دستور ausearch استفاده می کنیم. جلوی سوئیچ p- بر اساس نیاز شما یکی از مقادیر زیر قرار می‌گیرد.

  • مقدار r یا read: هر وقت فایل خوانده می شود نام و گروه اصلی کاربر و زمان و تاریخ و دستوری که با آن فایل را می خواند ثبت می کند.
  • مقدار w یا نوشتن: هر وقت بر روی فایل نوشته شده (تغییر کرد) نام و گروه اصلی کاربر و زمان و تاریخ و دستوری که با آن بر روی فایل نوشته شده را ثبت می کند.
  • مقدار یک یا خصیصه: هر وقت یکی از خصوصیات فایلهای تغییر نام و گروه اصلی کاربر تغییر دهنده تاریخ خصوصیت فایل و زمان و تغییر خصوصیت ثبت می کند.
  • مقدار x یا execute: هر وقت فایلی اجرا شد (مانند اجرای یک اسکریپت) نام و گروه کاربر اجرا کننده و زمان و تاریخ را ثبت می کند.

یادتون باشه پس از هر تغییر روی رولهای فایل audit.rules حتما باید سرویس auditd را restart کنید. برای انجام این کار هم می توانید از دستورات زیر که خواستید استفاده کنید از هرکدوم استفاده کنید.

  • /etc/init.d/auditd راه اندازی مجدد
  • راه اندازی مجدد سرویس حسابرسی شده

خب تا اینجا مفهوم ممیزی رو کامل فهمیدیم، روش تنظیم ممیزی را یاد گرفتیم و راه اندازی مجدد سرویسش را هم انجام دادیم. حالا بریم ببینم برای مکنا لازمه ما چه بخشهایی از سیستم را حسابرسی کنیم.

اصولا مکنا بر اساس آخرین نسخه های کتاب های CIS اقدام به کنترل ممیزی برنامه ها و فایل هاتون می کند ولی اگر بخواهم به طور خلاصه به یک لیست مختصر بدم تا سرعت کارتون در انجام این روند بالاتر بره میتونم به موارد زیر اشاره کنم:

  • فایل های مربوط به اطلاعات کاربران و گروه های سیستم
  • کلیه فایلهای مربوط به داکر، کنترل، کانتینرها، سکرت کدها، و داکر کامپوزها
  • کلیه فایلهای مربوط به دیتابیسهای mysql یا pgsql
  • کلیه مرکزی grub و بوت سیستم عامل
  • کلیه فایلهای حسابرسی
  • کلیه فایلهای شبکه، هاست، sudoer و ….

نکته مهم ۱: مسیرهایی که به حسابرسی اضافه می کنید را حتما چک کنید که روی سیستم وجود داشته باشد، به عنوان تجربه خودم یکی از مسیرهای مخصوص داکر رو بر اساس کتاب CIS به حسابرسی اضافه کرد در حالی که آن فایل روی سیستم عامل سرور من موجود نبود و همین عامل بود. ایجاد شده بود تا ممیزی نتونه اون فایل رو پیدا کنه و مشکل داشته باشه، جالب اینجا بود که سرویس حسابرسی با خطای خطا نشده بود و کارش رو بدرستی انجام داد اما بر اساس دستور زیر:

  • ماژول های grep /etc/audit/audit.rules

که برای تست رول‌های ممیزی استفاده می‌شود موقع تست این توسط مکنا هیچ خروجی نگرفتیم و کارشناس مکنا نتیجه گرفت که حسابرسی سرویس ما روی داکر فعال نیست و باعث می‌شود که متوقف شود آن بخش از روند بررسی مکنا شود. پس حتما و حتما مسیرهایی که به رولهای حسابرسی اضافه می شود رو بررسی کنید تا این مشکل نتوانید نکنید.

نکته مهم ۲: برای اضافه کردن رولهایی مورد نظر خودتون حتما اونها را به صورت دسته بندی شده در فایل های مجزا در مسیر زیر

اضافه کنید. خود حسابرسی به صورت خودکار بعد از راه‌اندازی، دوباره تجمیع تمام اعمال در مسیر فوق را به audit.rules اضافه می‌کند و اگر فایلی در مسیر بالا فایل نباشد و یا تنظیمات خودتون رو به صورت دستی در فایل audit.rules وارد کرده است. به صورت کامل پاک کنید و در حالت پیش فرض برمی‌گردونه باشید، پس یادتون باشه حتما و حتماً رولهای خودتون را به صورت مرتب (برای راحتی خودتون در جستجو) و حل این روند تصمیم گیری ممیزی بعد از هر راه اندازی مجدد در مسیر ذکر شده بالا ذخیره کنید.

خب برای بخش پیگیری فایلها فکر می کنم تا همین توضیحات کافی باشه و مسیر رو براتون مشخص کنه، طبق معمول اگر کمکی خواستید میتونید به لینکدینم مراجعه کنید.

برای مطلب بعدی به ابزار apparmor خواهم پرداخت پس تا بعد 👋

اگر دوست داشتی امتیاز دادن یادت نره!