مقدمه:
کوچک زیباست . این اساس یونیکس است. برای درک مفهوم این جمله باید سیستم عاملهای نسل سوم را ( که یونیکس نیز از آنهاست) به یاد آورید . سیستم های دایناسورواری بودند که برای انجام همه کار طراحی شده بودند . سیستم عامل ماشینهای IBM 360 نمونه خوبی در این مقوله است. سیستم عاملی که توان شبیه سازی تقریبا تمامی سیستم های عرضه شده تا قبل از خود را داشت و فهرست اشکالات آن یک دفتر به قطر دفتر راهنمای تلفن را تشکیل می داد! ساختارهای اطلاعاتی غول آسا سیستم های ذخیره سازی پرونده بسیار پیچیده زبانهای برنامه نویسیی چون پی ال وان و کوبول که کاربران را تنها در یک سو جهت می داد و در کل دیکتارتوری IBM که هر استفاده کننده ای را در شبکه ایغول آسا اسیر می کرد.
تیم های برنامه نوسی IBM که چون خدایان غیر قابل دسترسی بودند و همه جا با احترام درباره آنها صحبت می شد. چیزی که هیچ کس حتی جرات فکر کردن درباره آن را نمی کرد اصلاح در کاری بود که IBM و دیگر پیروان آن عرضه می کردند. دورانی که یک برنامه نوسی حرفه ای سیستم، مدت زمان درازی را فقط برای یادگیری سیستم عامل صرف می کرد و با احساس شرم اشکالات سیستم عامل را اگر از کم هوشی خود نمی دانست به IBM اطلاع می داد. چه بسیار برنامه های بزرگ تجاری که دوباره نویسی می شدند، زیرا سیست معامل امکان اتصال برنامههای دیگر را به آنها نمی داد.
به هر حال یونیکس وارد بازار شد. سیستم عاملی که همه چیز در آن به هم شبیه بود، نحوه چاپ روی چاپگر نوشتن روی صفحه پایانی ویا ذخیره اطلاعات در پرونده ها همه و همه به یک صورت انجام می پذیرفت. و از همه مهمتر لیست برنامه سیستم عامل را در هر کتابخانه ای می شد پیدا کرد. برنام های یونیکس به راحتی می توانند ورودی و خروجی خود را به برنامه های دیگر بدهند و بدین صورت هیچگاه نیازی به برنامه های غول آسا پیدا نمی شود. هر سیستمی هر چقدر هم پیچیده باشد می تواند از مجموعه از برنامه های کوچک به وجود آید که ورودی و خروجی خود را به یکدیگر متصل نموده اند.
برای به دست آوردن دیدی کلی از یونیکس، شناخت عوامل زیر ضروری است:
1- پیکر بندی سیستم عامل: هسته مرکزی سیستم عامل یونیکس جز کوچکی از آن را تشکیل می دهد ولی ای جز از اهمیت اساسی برخوردار استکه رابط کاربر و سیستم عامل می باشد و در شکل 1 مشهود است.
این ساختار کلی شبیه به ساختار PC-DOS است. Kernal یا هسته مرکزی در آنجا از دو پرونده IBMBIO.sys و IBMDOS.sys تشکیل می شود و پیوست پرونده ای به نام command.com است. تفاوت در ویژگیهای هسته مرکزی و قدرت بسیار بیشتر پوسته های یونیکس است. اولا هر سیستم یونیکس دارای چند پوسته است که کاربر می تواند هر کدام را که بخواهد انتخاب کند. (پوسته استاندارد، پوسته محدود، پوسته تصویری، پوسته C، پوسته UUCP) هر کدام از این پوسته ها قابلیت های متفاوتی دارند.
یونیکس ار روش انتقال به دورن، و انتقال به بیرون نیز استفاده می کند. در این روش اگر حجم پرونده در حال اجرا بیش از ظرفیت حافظه ماشین باشد . مقداری از محتویات حافظه به دیسک سخت منتقل می شود و حافظه را در اختیار پرونده درحال اجرا قرار می دهد . پس از اتمام پرونده یا پایان نوبت آن محتویات منتقل شده دوباره به حافظه باز می گردند. این روش به یونیکس اجازه می دهد پرونده هایی بزرگتر از حجم حافظه اصلی سیستم را در آن واحد اجرارکند.
یونیکس برای برقراری ارتباط بین عملیات مختلف سیستم روشهای بسیار جالبی را در اختیار کاربران قرار می دهد. استفاده از حافظه به اشتراک گذارده شده، خط لوله ها کنترل کنندههای خط و انتقال پیام از روشهایی هستند که دو یا چند برنامه درحال اجرا می توانند با هم ارتباط برقرار کنند.
یونیکس
مقدمه:
سیستم عامل برنامه ای است که سخت افزارکامپیوتررامدیریت می کند.مبنایی برای برنامه های کاربردی است وبه عنوان واسط بین کاربروسخت افزارکامپیوترمحسوب می شود.سیستم عامل بخش مهمی ازهرسیستم کامپیوتری است .یونیکس یکی ازانواع سیستم های عامل وبه جرات می توان گفت که قویترین آنها می باشدحدودسی سال است که سیستم عامل یونیکس ساخته شده است درطول این مدت تعداداستفاده کنندگان این سیستم عامل بسرعت افزایش یافته وهم اکنون هزاران مرکزکامپیوتروموسسات مختلف درجهان بااین سیستم عامل کارمی کنند.
این سیستم محیط بسیارگسترده ای رادردسترس استفاده کنندگانش قرارمی دهدواین گستردگی استفاده کنندگان ازسیستمهای عامل دیگرراجذب می کند.چگونگی تولدورشدیونیکس ازدیگرسیستم های عامل متفاوت است.
وروداین سیستم عامل به دنیای تکنولوژی ازسوی دنیای تجارت نبودواین دلیلی است برای گسترشش. یونیکس گروههای برنامه نویسان رادرتوسعه برنامه هاحمایت می کردودرجهت ساده ترکردن نحوه ارتباط انسان وماشین تلاش داشت.این سیستم عامل بطوریکباره نوشته نشده بلکه باتوجه به نیازهادرپروژه های خاص بتدریج تکامل یافته واین سیرهمچنان ادامه دارد پردازشهای پشت پرده :
پردازشهاییکه مدت زمان زیادی برای اجرا لازم دارند ، درپشت پرده اجرا میشوند . به این ترتیب ، مفسرفرمان قادراست تابرنامه وفرمان دیگری رابرای اجرا دریافت کند .
این عمل بوسیله علامت & که درانتهای فرمان قرارمیگیرد انجام میشود . مثلاً فرمان cat file & درپشت پرده اجرا میشود ولی خروجی آن روی ترمینال ظاهر میشود .
برنامههای پشت پرده مانند برنامههای دیگردارای یک شماره پردازش میباشند که بااستفاده از آن میتوان به آن پردازش رجوع کرد . پس ازهرفرمان بهمراه علامت & شماره آن پردازش درخروجی چاب میشود .
- پدروفرزند :
زمانیکه یک استفاده کننده وارد سیستم میشود ، یک پردازش shell برای اوساخته میشود تافرامین او رااجرا نماید . این پردازش (shell ) زمانی ختم میشود ویامیمیرد که استفاده کننده ازسیستم خارج شود . بنابراین هراستفاده کننده فعال درسیستم لااقل یک پردازش درحال اجرا دارد .
شروع هرپردازش راتولد او وختم آنرا مرگ اوتلقی میکنیم ( بنابه تعاریف UNIX) بنابراین درطول کارسیستم پردازشهای بسیاری متولد شده ومیمیرند .
اما پردازشهایی نیز وجوددارند که باشروع کار سیستم متولدشده وباختم کارسیستم میمیرند .
تنها راهی که یک پردازش متولد میشود ازطریق یک پردازش دیگر است . پردازش بوجود آورنده پردازش جدید را پدر(Parent ) وپردازش متولد شده رافرزند (child ) میگویند . یک پردازش پدرمیتواند چندین پردازش فرزند داشته باشد . اماهرپردازش بیش ازیک پدرنمیتواند داشته باشد . به همین ترتیب یک پردازش فرزند خود میتواند چندین فرزند داشته باشد .
اگرپردازشی یک پردازش فرزند بوجود آورد وفرزند اوخودفرزند دیگری داشته باشد ، ممکن است پردازشهای واسط بمیرند . هرپردازشی که بمیرد کلیه فرزندانش میمیرند .
البته میتوان روشهایی اتخاذ کرد که بامرگ پردازش واسط ، فرزند اونمیرد بلکه این فرزندان به پردازش اصلی به ارث برسند . یکی از ابزاری که این عمل را انجام میدهد ، همان nohup است که بامرگ پردازش واسط یعنی Shell فرزندان اویعنی برنامههای پشت پرده به برنامه قبل از Shell منتقل میکند .
دراینجام ذکر این مطلب مهم است که سیستم خود پردازشهایی رابوجود میآورد که عملیات خاصی را انجام میدهند واگر آن اهداف نباشد میتوان آن پردازشها رامتوقف کرد . مثلاً پردازشی بوجود میآید تاپست الکترونیکی راازماشینی به ماشین دیگر ارسال دارد وبه محض ارسال این پردازش میمیرد.
ویا spooler مربوط به چاپگر که پردازشی است که درطول حیات سیستم حضوردارد وسرویس چاپ راانجام میدهد . به اینگونه پردازشهای پشت پرده که مربوط به سیستم اند ویکی ازوظایف مهم سیستم عامل راانجام میدهند deamon میگوییم .
مهمترین نقاط آسیب پذیر یونیکس و لینوکس
سیستم عامل، یکی از عناصر چهار گانه در یک سیستم کامپیوتری است که دارای نقشی بسیار مهم و حیاتی در نحوه مدیریت منابع سخت افزاری و نرم افزاری است . پرداختن به مقوله امنیت سیستم های عامل ، همواره از بحث های مهم در رابطه با ایمن سازی اطلاعات در یک سیستم کامپیوتری بوده که امروزه با گسترش اینترنت ، اهمیت آن مضاعف شده است .
بررسی و آنالیز امنیت در سیستم های عامل می بایست با ظرافت و در چارچوبی کاملا" علمی و با در نظر گرفتن تمامی واقعیت های موجود ، انجام تا از یک طرف تصمیم گیرندگان مسائل استراتژیک در یک سازمان قادر به انتخاب مستند و منطقی یک سیستم عامل باشند و از طرف دیگر امکان نگهداری و پشتیبانی آن با در نظر گرفتن مجموعه تهدیدات موجود و آتی ، بسرعت و بسادگی میسر گردد .
اکثر کرم ها و سایر حملات موفقیت آمیز در اینترنت ، بدلیل وجود نقاط آسیب پذیر در تعدادی اندک از سرویس های سیستم های عامل متداول است . مهاجمان ، با فرصت طلبی خاص خود از روش های متعددی بمنظور سوء استفاده از نقاط ضعف امنیتی شناخته شده ، استفاده نموده و در این راستا ابزارهای متنوع ، موثر و گسترده ای را بمنظور نیل به اهداف خود ، بخدمت می گیرند .
مهاجمان ، در این رهگذر متمرکز بر سازمان ها و موسساتی می گردند که هنوز مسائل موجود امنیتی ( حفره ها و نقاط آسیب پذیر ) خود را برطرف نکرده و بدون هیچگونه تبعیضی آنان را بعنوان هدف ، انتخاب می نمایند . مهاجمان بسادگی و بصورت مخرب ، کرم هائی نظیر : بلستر ، اسلامر و Code Red را در شبکه منتشر می نمایند. آگاهی از مهمترین نقاط آسیب پذیر در سیستم های عامل ، امری ضروری است . با شناسائی و آنالیز اینگونه نقاط آسیب پذیر توسط کارشناسان امنیت اطلاعات ، سازمان ها و موسسات قادر به استفاده از مستندات علمی تدوین شده بمنظور برخورد منطقی با مشکلات موجود و ایجاد یک لایه حفاظتی مناسب می باشند.
همانگونه که اشاره گردید ، اغلب تهدیدات و حملات ، متاثر از وجود نقاط آسیب پذیر در سیستم های عامل بوده که زمینه تهاجم را برای مهاجمان فراهم می آورد . شناسائی و آنالیز نقاط آسیب پذیر در هر یک از سیستم های عامل ، ماحصل تلاش و پردازش دهها کارشناس امنیتی ورزیده در سطح جهان است و می بایست مدیران سیستم و شبکه در یک سازمان بسرعت با آنان آشنا و اقدامات لازم را انجام دهند.
نقاط آسیب پذیر موجود در هر سیستم عامل که در ادامه به آنان اشاره می گردد ، سندی پویا و شامل دستورالعمل های لازم بمنظور برخورد مناسب با هر یک از نقاط آسیب پذیر و لینک هائی به سایر اطلاعات مفید و تکمیلی مرتبط با ضعف امنیتی است .
مهمترین نقاط آسیب پذیر یونیکس:
یونیکس ، یکی از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد . تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از یونیکس ( نسخه های متفاوت ) بعنوان سیستم عامل استفاده می نمایند . با توجه به حملات متنوع و گسترده انجام شده ، می توان مهمترین نقاط آسیب پذیر یونیکس را به ده گروه عمده تقسیم نمود :
در بخش اول این مقاله ، به بررسی BIND Domain Name System وRemote Procedure Calls (موارد یک و دو) ، خواهیم پرداخت .
کوچک زیباست . این اساس یونیکس است. برای درک مفهوم این جمله باید سیستم عاملهای نسل سوم را ( که یونیکس نیز از آنهاست) به یاد آورید . سیستم های دایناسورواری بودند که برای انجام همه کار طراحی شده بودند . سیستم عامل ماشینهای IBM 360 نمونه خوبی در این مقوله است. سیستم عاملی که توان شبیه ...