شنبه, ۸ اردیبهشت, ۱۴۰۳ / 27 April, 2024
مجله ویستا

بررسی ساختار امنیتی Postfix


بررسی ساختار امنیتی Postfix
مسلما کاربران حرفه ای لینوکس ٬ با نرم افزار Postfix آشنا بوده و در مورد عملکرد و ویژگی های آن اطلاعاتی دارند . اما جهت آشنایی کاربران دیگر٬ توضیحاتی مختصر در مورد آن خواهم داد .
Postfix نرم افزاری « اپن سورس » با عنوان mail transfer agent ( MTA ) و یا نماینده انتقال ایمیل است٬ همان طور که از نام آن به نظر می رسد جهت حمل و مسیر یابی ایمیل استفاده می شود و همواره از آن به عنوان نرم افزاری سریع با مدیریت آسان و امنیت بالا یاد می گردد که با نام های VMailer و IBM Secure Mailer نیز شناخته شده است .
● سیستم Postfix
Postfix از سیستم پیچیده ای تشکیل یافته است به نحوی که نسخه ابتدایی آن حدودا سی هزار خط کد در برنامه نویسی آن بود . قاعدتا در یک سیستم پیچیده نبایستی امنیت آن بر محور یک مکانیزم امنیتی باشد که در غیر این صورت ممکن است ایجاد یک خطا کلا سیستم پست الکترونیکی را از کار بیندازد ٬ قابل ذکر است که Postfix از چندین لایه جهت کنترل آسیب های نرم افزاری و دیگر خطاها استفاده می کند .
بیشتر پروسه های Postfix می توانند در یک محیط chroot ( محیط chroot در واقع یک محیط محدوده شده است ٬ نظیر یک زندان که زندانی نمی تواند به محیط خارج دسترسی داشته باشد ٬ برنامه ای که در یک فولدر با حالت chroot قرار گرفته باشد ٬ نمی تواند دسترسی به محیط بیرون داشته باشد ) اجرا گردند . این حالت بویژه جهت برنامه هایی نظیر SMTP سرور و SMTP کلاینت که اکثرا در مقابل تهدیدات شبکه بی دفاع هستند صدق می کند .
● پروسه های مستقل
اما مکانیزم دیگری که در Postfix پیاده شده است ٬ استفاده از پروسه های مستقل جهت جداسازی فعالیت پروسه ها از یگدیگر است ٬ بخصوص اینکه مسیر مستقیمی از شبکه به برنامه های داخلی که ساختار امنیتی حساسی دارند وجود ندارد . چنانچه شخصی بخواهد که به Postfix نفوذ کند ابتدا بایستی به پروسه های مختلف وارد شود ٬ بعضی از قسمت های Postfix حالت Multi-Threat را دارند و از طرفی تمام برنامه هایی که با دنیای بیرون در ارتباط هستند با حالت Single-Threat پیش می روند .
● کنترل برنامه ها
هیچ کدام از برنامه های delivery در Postfix تحت کنترل یک « user process » اجرا نمی گردند . بیشتر برنامه های Postfix تحت یک Daemon ( Daemon به زبان ساده پروسه ایست که در Background سیستم عامل اجرا شده و غالبا تحت کنترل کاربر نیستند ) مقیم در سیستم ٬ در یک محیط کنترل شده اجرا می گردند .
● مستقل از set-uid
نکته جالب دیگر این است که هیچ کدام از برنامه های Postfix ٬ set-uid ( setuid و هم خانواده آن setgid ٬ اکثرا به این دلیل به کار می رود که کاربر بتواند فایل های باینری را با حالتی موقت اجرا کند ) نیستند ٬ در واقع setuid موجب پیدایش اشکالات بیشتری می شود تا اینکه بخواهد سودمند باشد ! هر زمانی که یک ویژگی جدید به سیستم عامل یونیکس اضافه می شد ٬ set-uid باعث مشکل امنیتی می گردید : shared libraries ٬پشتیبانی چند زبانه ٬ فایل سیستم /proc و ... که همه این موارد نمونه ای از آن ها بود.
● چندی دیگر از ویژگی ها
حافظه جهت رشته ها و بافرها به طور دینامیک سازماندهی می شود ٬ به این دلیل که از مشکلات امنیتی buffer overrun جلوگیری گردد.خط های طولانی در پیغام ها ٬ به قسمت هایی با سایز منطقی تقسیم بندی شده است.و دیگر ویژگی های امنیتی که Postfix را در مقابل حملاتی نظیر buffer overrun مقاوم نموده است.
نویسنده : احسان امیدوار
منبع : سایت اطلاع رسانی امنیت اطلاعات ایران


همچنین مشاهده کنید