محمد لینوکس

همه چیز به غیر از لینوکس!

محمد لینوکس

همه چیز به غیر از لینوکس!

آشنایی با هاب و نحوه عملکرد آن

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

Domain : تمامی کامپیوترهای عضوء یک domain هر اتفاق و یا رویدادی را که در domain اتفاق می افتد ، مشاهده و یا خواهند شنید .

Collision Domain : در صورت بروز یک تصادم ( Collision ) بین دو کامپیوتر، سایر کامپیوترهای موجود در domain آن را شنیده و آگاهی لازم در خصوص آن چیزی که اتفاق افتاده است را پیدا خواهند کرد . کامپیوترهای فوق عضوء یک Collision Domain یکسان می باشند. تمامی کامپیوترهائی که با استفاده از هاب به یکدیگر متصل می شوند ، عضوء یک Collision Domain یکسان خواهند بود ( بر خلاف سوئیچ ) .

Broadcast Domain : در این نوع domain ، یک پیام broadcast ( یک فریم و یا داده که برای تمامی کامپیوترها ارسال می گردد) برای هر یک از کامپیوترهای موجود در doamin ارسال می گردد . هاب و سوئیچ با موضوع broadcast domain برخورد مناسبی نداشته ( ایجاد حوزه های مجزاء ) و در این رابطه به یک روتر نیاز خواهد بود .

به منظور برخورد مناسب ( ایجاد حوزه های مجزاء ) با collision domain ، broadcast domain و افزایش سرعت و کارائی یک شبکه از تجهیزات سخت افزاری متعددی استفاده می شود . سوئیچ ها collision domain مجزائی را ایجاد می نمایند ولی در خصوص broadcast doamin بدین شکل رفتار نمی نمایند . روترها ، broadcast domain و collision domain مجزائی را ایجاد نموده و در مقابل هاب ، قادر به ایجاد broadcast doamin و Collision domain جداگانه نمی باشد

آشنائی با نحوه عملکرد هاب
هاب ، یکی از تجهیزات متداول در شبکه های کامپیوتری و ارزانترین روش اتصال دو و یا چندین کامپیوتر به یکدیگر است . هاب در اولین لایه مدل مرجع OSI فعالیت می نماید . آنان فریم های داده را نمی خوانند ( کاری که سوئیچ و یا روتر انجام می دهند ) و صرفا" این اطمینان را ایجاد می نمایند که فریم های داده بر روی هر یک از پورت ها ، تکرار خواهد شد.
گره هائی که یک اترنت و یا Fast Ethernet را با استفاده از قوانین CSMA/CD به اشتراک می گذارند ، عضوء یک Collision Domain مشابه می باشند . این بدان معنی است که تمامی گره های متصل شده به هاب بخشی از Collision domain مشابه بوده و زمانی که یک collision اتفاق می افتد ، سایر گره های موجود در domain نیز آن را شنیده و از آن متاثر خواهند شد .
کامپیوترها و یا گره های متصل شده به هاب از کابل های ( UTP (Unshielded Twisted Pair ، استفاده می نمایند. صرفا" یک گره می تواند به هر پورت هاب متصل گردد. مثلا" با استفاده از یک هاب هشت پورت ، امکان اتصال هشت کامپیوتر وجود خواهد داشت .زمانی که هاب ها به متداولی امروز نبودند و قیمت آنان نیز گران بود ، در اکثر شبکه های نصب شده در ادارات و یا منازل از کابل های کواکسیال، استفاده می گردید.
نحوه کار هاب بسیار ساده است . زمانی که یکی از کامپیوترهای متصل شده به هاب اقدام به ارسال داده ئی می نماید ، سایر پورت های هاب نیز آن را دریافت خواهند کرد ( داده ارسالی تکرار و برای سایر پورت های هاب نیز فرستاده می شود ) . 

گره یک داده ئی را برای گره شش ارسال می نماید ولی تمامی گره های دیگر نیز داده را دریافت خواهند کرد . در ادامه ، بررسی لازم در خصوص داده ارسالی توسط هر یک از گره ها انجام و در صورتی که تشخیص داده شود که داده ارسالی متعلق به آنان نیست ، آن را نادیده خواهند گرفت . عملیات فوق از طریق کارت شبکه موجود بر روی کامپیوتر که آدرس MAC مقصد فریم ارسالی را بررسی می نماید ، انجام می شود .کارت شبکه بررسی لازم را انجام و در صورت عدم مطابقت آدرس MAC موجود در فریم ، با آدرس MAC کارت شبکه ، فریم ارسالی دور انداخته می گردد .
اکثر هاب ها دارای یک پورت خاص می باشند که می تواند به صورت یک پورت معمولی و یا یک پورت uplink رفتار نماید . با استفاده از یک پورت uplink می توان یک هاب دیگر را به هاب موجود، متصل نمود. بدین ترتیب تعداد پورت ها افزایش یافته و امکان اتصال تعداد بیشتری کامپیوتر به شبکه فراهم می گردد .روش فوق گزینه ای ارزان قیمت به منظور افزایش تعداد گره ها در یک شبکه است ولی با انجام این کار شبکه شلوغ تر شده و همواره بر روی آن حجم بالائی داده غیر ضروری در حال جابجائی است. تمامی گره ها ، عضوء یک Broadcast domain و collision domain یکسانی می باشند ، بنابراین تمامی آنان هر نوع collision و یا Broadcast را که اتفاق خواهد افتاد ، می شنوند .
در اکثر هاب ها از یک LED به منظور نشان دادن فعال بودن ارتباط برقرار شده بین هاب و گره و از LED دیگر به منظور نشان دادن بروز یک collision ، استفاده می گردد . ( دو LED مجزاء ) . در برخی از هاب ها دو LED مربوط به فعال بودن لینک ارتباطی بین هاب و گره و فعالیت پورت با یکدیگر ترکیب و زمانی که پورت در حال فعالیت است ، LED مربوطه چشمک زن شده و زمانی که فعالیتی انجام نمی شود، LED فوق به صورت پیوسته روشن خواهد بود .

LED مربوط به Collision موجود بر روی هاب ها زمانی روشن می گردد که یک collision بوجود آید . Collision زمانی بوجود می آید که دو کامپیوتر و یا گره سعی نمایند در یک لحظه بر روی شبکه صحبت نمایند . پس از بروز یک Collision ، فریم های مربوط به هر یک از گره ها با یکدیگر برخورد نموده و خراب می گردند . هاب به منظور تشخیص این نوع تصادم ها به اندازه کافی هوشمند بوده و برای مدت زمان کوتاهی چراغ مربوط به collision روشن می گردد . ( یک دهم ثانیه به ازای هر تصادم ) .
تعداد اندکی از هاب ها دارای یک اتصال خاص از نوع BNC بوده که می توان از آن به منظور اتصال یک کابل کواکسیال ، استفاده نمود . پس از اتصال فوق ، LED مربوط به اتصال BNC روی هاب روشن می گردد.

منبع:مثه همون قبلیه

درباره Bluetooth

با ایجاد هر تکنولوژى مردم مشتاق شده تا با آن آشنا شوند ولى بلافاصله تکنولوژى پیشرفته دیگرى متولد مى شود. یکى از این تکنولوژى ها، Bluetooth است که به ارتباط بى سیم با برد کوتاه مربوط مى شود. این تکنولوژى در تمام قطعات، وسائل الکترونیکى و ارتباطى کاربرد دارد و استفاده از آن تنها به شبکه ها و اینترنت مربوط نمى شود، به طورى که امروزه حتى موس و کى بورد Bluetooth هم به بازار آمده است. 

فرض کنید در منزلتان از تکنولوژى Bluetooth استفاده مى کنید و در حال چک کردن E-mailهاى خود از طریق تلفن همراه هستید، در همان حال نامه اى از دوست خود دریافت مى کنید. شما هم نامه او را از طریق Bluetooth به پرینتر که به این سیستم مجهز است ارسال کرده و یک پرینت از آن تهیه مى کنید. در همین زمان تلویزیون هم مشغول پخش برنامه اى است که بلافاصله تصویر را به مانیتور انتقال داده و توسط CD-Writer که به تکنولوژى Bluetooth مجهز است تصاویر را روى CD ذخیره مى کند. اینها تنها برخى از موارد استفاده تکنولوژى Bluetooth در زندگى امروز است. تجهیزات مجهز به این تکنولوژى در کنار هم شبکه اى خانگى به نامPAN (Personal Area Network) را ایجاد مى کنند.

• Bluetoothاز کجا آمد

شاید جالب باشد تا از تاریخچه نام Bluetooth هم اطلاع داشته باشیم. این نام از نام یک پادشاه دانمارکى به نام Harald Blaatand گرفته شده است. کلمه Blaatand پس از انتقال به زبان انگلیسى به شکل Bluetooth تلفظ شد که به معنى دندان آبى است. این پادشاه که بین سال هاى ۹۴۰ تا ۹۸۶ مى زیست، توانست دانمارک و نروژ را که در جنگ هاى مذهبى با هم مشکل پیدا کرده بودند متحد کند و از آن پس شهرت زیادى کسب کرد. در واقع تکنولوژى Bluetooth هم بر پایه اتحاد یکپارچه سیستم هاى کامپیوتر در قالبى بدون سیستم تاکید دارد که نماد کار و تلاش پادشاه دانمارکى است. ایده اصلى ایجاد این سیستم در سال ۱۹۹۴ توسط شرکت موبایل Ericsson ارائه شد. این شرکت به همراه چند شرکت دیگر به دنبال یک سیستم ارتباطى بین وسایل الکترونیکى مختلف بودند تا قادر به هماهنگى و سازگارى با هم باشند.

امروزه بسیارى از وسایل ارتباطى مانند PC، PDA، موبایل، پرینتر و... از پروتکل هاى متفاوت و ناسازگار با یکدیگر استفاده مى کنند و همین امر باعث عدم ارتباط مناسب بین آنها خواهد شد. بنابراین شرکت هاى مربوطه تصمیم به ایجاد یک استاندارد مشترک براى انواع وسایل ارتباطى گرفتند تا ارتباط میان آنها تحت یک پروتکل ثابت و مشخص برقرار شود. در حال حاضر Ericsson، Intel، Nokia، IBM و Toshiba از پدیدآورندگان و توسعه دهندگان این تکنولوژى هستند. این شرکت ها با تشکیل گروهى به نامBluetooth (Special Interest Group)SIG موفق شدند استاندارد مورد نظر را ایجاد کنند.

هر وسیله اى که از سیم براى انتقال اطلاعات خود استفاده نمى کند از امواج رادیویى بهره مى گیرد در واقع امواج رادیویى سیگنال هایى هستند که توسط فرستنده در هوا پخش مى شود. امواج رادیویى قادر به انتقال صدا، تصویر و هر نوع Data هستند. تلفن هاى بى سیم، موبایل، ماهواره ها، اداره تلویزیون و غیره جزء وسایلى هستند که ارتباط خود را از طریق این امواج فراهم مى کنند. حتى دزدگیر اتومبیل شما هم از طریق امواج رادیویى کنترل مى شود. Bluetooth نوعى از ارتباطات امواج رادیویى ولى با برد کوتاه است و از پروتکل خاصى براى ارسال اطلاعات خود استفاده مى کند و به همین دلیل است که شرکت هاى معتبر سازنده دستگاه هاى ارتباطى و کامپیوترى علاقه زیادى دارند تا در این پروژه شرکت کنند. در واقع تمام دستگاه هایى که بر پایه Bluetooth ایجاد مى شود باید با استاندارد مشخصى سازگارى داشته باشند. همان طور که مى دانید فرکانس هاى امواج رادیویى با استفاده از واحد هرتز محاسبه مى شوند. فرستنده این فرکانس ها که Transmitter نام دارد امواج مورد نظر را در یک فرکانس خاص ارسال مى کند و دستگاه گیرنده در همان طول موج اقدام به دریافت اطلاعات مى کند و دامنه آن GHZ2.40 تا GHZ2.48 است.

• مزایاى Bluetooth

عوامل بسیارى موجب شده تا شرکت ها و موسسات ارتباطى به دنبال استفاده از Bluetooth باشند. یکى از این عوامل محدودیت در انتقال Data از طریق سیم است. دستگاه هایى که با سیم کار مى کنند از طریق رابط هاى سریال یا پارلل و یا USB به کامپیوتر متصل مى شوند. اگر از ارتباط سریال استفاده شود در هر سیکل زمانى یک بیت ارسال مى شود و ارتباط پارلل در هر سیکل ۸ تا ۱۶ بیت را ارسال مى نماید. این مقادیر در دنیاى ارتباطات پرسرعت امروزى بسیار کم است. تا چندى پیش در مقام کشورهاى پیشرفته براى ارتباط اینترنت به طور کامل از ارتباطات سیمى و تکنولوژى هایى چون ISON و DSL استفاده مى شد. البته این سیستم ها هنوز هم جزء پرطرفدارترین و کاربردى ترین وسایل ارتباطى در جهان هستند. بگذریم که در کشور ما هنوز به طور کامل از این سیستم ها استفاده نمى شود و همچنان سیستم قدیمى و بسیار ضعیف Dial up مورد استفاده قرار مى گیرد.

به لطف تکنولوژى جدید Bluetooth کشورهایى چون آمریکا و برخى کشورهاى اروپایى که در زمینه تکنولوژى حرف اول را در دنیا مى زنند به سمت استفاده از ارتباطات بى سیم بین شبکه ها و اینترنت حرکت مى کنند که علاوه بر سرعت زیاد، کیفیت بسیار خوبى را در اختیار کاربرانش قرار مى دهد. از دیگر مشکلاتى که متخصصین بخش ارتباط با آن سروکار داشتند عدم وجود یک استاندارد مشخص و ثابت براى ارتباط دستگاه هاى مختلف با یکدیگر بود. تا پیش از این هر شرکت دستگاه هاى خود را براساس استانداردهاى ارتباطى خود تولید مى کرد و به همین خاطر اغلب آنها براى ارتباط با دستگاه هایى از همان نوع ولى متعلق به یک کمپانى دیگر دچار مشکل مى شدند زیرا پروتکل ثابتى وجود نداشت. حال این مشکل توسط استاندارد Bluetooth به راحتى قابل حل است. قبل از مطرح شدن مسئله استفاده از Bluetooth متخصصان اعتقاد داشتند که در ارتباطات نزدیک از اشعه مادون قرمز استفاده شود.

مثلاً در کنترل از راه دور تلویزیون از این سیستم استفاده مى شود. تکنولوژى مادون قرمز IrDA نام دارد و مخفف Infrared Data Association است. در عمل ثابت شده که استفاده از این استاندارد قابل اطمینان است و هزینه بسیار کمى به خود اختصاص مى دهد. ولى با این وجود معایبى نیز دارد. اولین مشکل حرکت نور در خط راست است. فرستنده مادون قرمز و گیرنده آن مى بایست در مقابل هم قرار بگیرند تا ارسال اطلاعات صورت گیرد، در غیر این صورت و وجود داشتن مانعى در بین راه، انتقال اطلاعات به درستى صورت نمى گیرد. یکى دیگر از مشکلات مادون قرمز اصطلاح «یک به یک» است. به این معنى که شما فقط مى توانید اطلاعات را از یک دستگاه تنها به یک دستگاه دیگر ارسال کنید و در یک لحظه قادر به ارسال اطلاعات از یک دستگاه به چند دستگاه نخواهید بود اما هر دو مشکل IrDA از طریق Bluetooth قابل رفع است. یکى دیگر از دلایل استفاده از تراشه هاى Bluetooth قیمت بسیار مناسب آن است.

قیمت این تراشه ها عملاً ۱۵ تا ۳۰ دلار است که با توجه به کارایى بسیار خوب، این قیمت کاملاً مناسب به نظر مى رسد.

همان طور که اشاره شد این تکنولوژى از محدوده فرکانس ۴۰/۲ تا ۴۸/۲ گیگا هرتز که محدوده اى رایگان است استفاده مى کند که ۷۹ کانال ارتباطى را شامل مى شود. البته این محدوده در اروپا و آمریکا مورد استفاده قرار مى گیرد ولى در ژاپن این محدوده بین ۴۷/۲ تا ۴۹/۲ گیگا هرتز است و ۲۳ کانال ارتباطى را شامل مى شود. هر کدام از این کانال هاى ارتباطى قابلیت ارسال یک مگابایت اطلاعات را دارد و برد موثر آن ۱۰متر ذکر شده که شرکت هاى ارائه کننده این سیستم ها تا برد ۷ متر را ضمانت مى کنند و بیشتر از آن به فضاى اتاقى بستگى دارد که دستگاه ها در آن قرار دارند و همچنین به میزان وجود دیگر امواج رادیویى هم وابسته است. سرعت انتقال اطلاعات در استاندارد Bluetooth بستگى به نوع سیستم ارتباطى دارد. مثلاً اگر از ارتباط همزمان یا Synchronous استفاده شود نرخ انتقال اطلاعات ۴۲۳ کیلوبایت در ثانیه خواهد بود.

در این نوع ارتباط دستگاه فرستنده و گیرنده به طور همزمان قادر به دریافت و ارسال اطلاعات هستند. در نوع دیگر ارتباط که ارتباط غیرهمزمان یا Asynchronous نام دارد نرخ انتقال اطلاعات ۷۲۱ کیلوبایت در ثانیه خواهد بود. البته با وجود سرعت بیشتر این ارتباط نسبت به ارتباط همزمان، قابلیت ارسال و دریافت در یک زمان را ندارد. البته تکنولوژى هاى مانند Wi-Fi که بر پایه Bluetooth است برد موثر و نرخ انتقال اطلاعات بیشتر مى شود. Bluetooth از سیستم بسیار حساسى نیز برخوردار است و از این لحاظ با استفاده از آن احتمال تداخل بین دستگاه هاى مجهز به امواج رادیویى به حداقل خود مى رسد و حتى در صورت بروز تداخل در ارتباط بلافاصله اطلاعات از بین رفته مجدداً به طور خودکار براى دستگاه گیرنده ارسال خواهد شد. حال این تصور به وجود مى آید که با وجود چندین دستگاه مجهز به این تکنولوژى در یک اتاق چگونه آنها روى یک فرکانس مشخص و بدون تداخل با یکدیگر به تبادل اطلاعات مى پردازند.

براى جلوگیرى از تداخل اطلاعات Bluetooth از تکنیکى به نام Spread Spectrum Frequency استفاده مى کند و این تکنیک به دستگاه ها اجازه مى دهد که در یک محدوده فرکانسى مشخص شده به صورت خودکار تغییر فرکانس داشته باشند. در واقع در این تکنولوژى یابنده کانال آزاد بیش از ۱۵۰۰ بار در ثانیه کانال هاى ارتباطى را چک مى کند تا از کانال هاى اشغال شده با خبر باشد و در صورت ایجاد یک ارتباط جدید یک کانال آزاد را به آن ارتباط اختصاص دهد. مثلاً یک دستگاه کامپیوتر در حال ارتباط با پرینتر از طریق فرکانس GHZ2.47 باشد در همین زمان موبایل قصد ارتباط با اسکنر را دارد. با استفاده از تکنیکى که ذکر شد به طور خودکار فرکانس اشغال شده توسط کامپیوتر و پرینتر شناسایى شده و ارتباط موبایل و اسکنر به روى یک فرکانس جدید برقرار مى شود.

•Wi-Fiچیست

این استاندارد از زیرمجموعه Bluetooth است و تحت آن ارتباطى با قدرتى بیشتر از خود Bluetooth ایجاد خواهد شد. ارتباط Wi-Fi که مخفف Wireless Fidelity است بیشتر بر پایه ارتباط شبکه اینترنت به صورت بى سیم تاکید مى کند و همین امر باعث محبوبیت بسیار زیاد آن شده است با استفاده از این تکنولوژى به راحتى در مسافرت، هواپیما و یا هتل مى توان از طریق Laptop به اینترنت متصل شد. Wi-Fi که همان استاندارد IEEE802.11 است در مدل هاى ۸۰۲.11a و ۸۰۲.11b مورد استفاده قرار مى گیرد و استاندارد اصلى آن IEEE802.11b است. در این مدل حداکثر سرعت انتقال اطلاعات ۱۱Mbps است و از فرکانس رادیویى ۴/۲ گیگاهرتز استفاده مى کند. براى سرعت بخشیدن به این استاندارد مدل دیگرى نیز به نام ۸۰۲.11b+ ایجاد شده که سرعت انتقال را تا ۲۲mbps افزایش مى دهد. در مدل ۸۰۲.11a سرعت اطلاعات حدود ۵۴mbps است و از فرکانس ۵۰GHz استفاده مى شود. به طور حتم این مدل در آینده اى نه چندان دور جاى ۸۰۲.11b را خواهد گرفت.

براى استفاده از این سیستم ایستگاه هایى به نام Access point در مناطق مختلف و به فواصل چند صد مترى قرار مى گیرد. این ایستگاه ها امواج رادیویى را در هوا منتشر مى کنند و هر کامپیوترى که به Wi-Fi مجهز باشد و در محدوده این ایستگاه ها قرار داشته باشد قادر به استفاده از اینترنت است و کاربران با قرار دادن یک کارت سخت افزارى IEEE802.11b و یا وصل کردن یک دستگاه Wi-Fi اکسترنال از طریق USB به کامپیوتر خود قادر به استفاده از این سیستم هستند. قیمت اینترنت در این سیستم بسیار مناسب است. مثلاً در کشور آمریکا یک Account نامحدود یک ماهه با این سرویس به مبلغ ۲۰ تا ۳۰ دلار در اختیار کاربران قرار مى گیرد. از نظر برد موثر هم حداکثر تا ۱۵۰ متر اطراف Access Point مورد پوشش قرار مى گیرد. در این حالت سرعت انتقال ارتباط ۱mbps است. البته هر چقدر فاصله کاربر با ایستگاه اصلى کمتر از ۱۵۰ متر باشد سرعت انتقال اطلاعات بیشتر خواهد شد. مثلاً سرعت انتقال اطلاعات در فاصله ۱۰۰ مترى mbps5.5، در فاصله ۸۰ مترى ۸mbps و در فاصله ۵۰ مترى و کمتر از آن ۱۱mbps است

منبع:iritn.com

مهمترین نقاط آسیب پذیر یونیکس و لینوکس ( بخش پنجم )

نهمین نقطه آسیب پذیر : عدم پیکربندی مناسب سرویس های NIS/NFS
Network File System)NFS) و  Network Information Service )NIS) ، دو سرویس  مهم استفاده شده در شبکه های یونیکس می باشند. NFS ، سرویسی است که توسط شرکت Sun Microsystems بمنظور اشتراک فایل ها بین سیستم های موجود در یک شبکه یونیکس ، طراحی و پیاده سازی گردیده است . با استفاده از سرویس فوق امکان اشتراک و دستیابی به فایل های موجود بر روی کامپیوترهای شخصی و کامپیوترهای بزرگ فراهم می گردد . NFS ، روش استاندارد اشتراک فایل بین سیستم های کامپیوتری متفاوت است . NIS ، یک سرویس بانک اطلاعاتی توزیع شده را برای مدیریت اکثر فایل های مدیریتی مهم نظیر فایل های passwd و hosts فراهم می نماید .مدیریت متمرکز NIS ، امکان اعمال تغییرات مورد نظر را از یک نقطه ( بانک اطلاعاتی ) فراهم می نماید.(عدم ضرورت اعمال تغییرات بر روی هر سیستم موجود در شبکه ) . مهمترین هدف  NIS  ، ارائه اطلاعات مربوط به مکان یابی ( Maps نامیده می شود ) به سایر سرویس های شبکه نظیر NFS است .فایل های passwd و group ، نمونه هائی  در این زمینه ( Maps ها مورد نظر ) بوده که از آنان بمنظور تمرکز در تائید کاربران  استفاده می گردد. سرویس های NIS و NFS ، دارای ضعف های امنیتی متعددی ( مثلا" ضعف در سیستم تائید کاربران ) بوده و در سالیان اخیر مهاجمان با استفاده از آنان ، حملات متعددی را سازماندهی و به سرانجام رسانده اند .اکثر حملات انجام شده از نوع buffer overflows  ، DoS  می باشد . با توجه به آسیب پذیری سرویس های فوق ، مهاجمان  همواره از آنان بعنوان هدفی مناسب در جهت حملات خود استفاده نموده اند .
درصورت عدم پیکربندی مناسب سرویس های NFS و NIS و Patching مناسب ، سیستم های کامپیوتری در معرض تهدید جدی بوده و مهاجمان با سوءاستفاده از حفره های امنیـتی موجود قادر به دستیابی  سیستم از راه دور و یا بصورت محلی خواهند بود. مکانیزم استفاده شده توسط NIS برای تائید کاربران دارای ضعف های خاص خود بوده و مهاجمان با استفاده از نرم افزارهائی نظیر ypcat  قادر به نمایش مقادیر و داده موجود در  بانک اطلاعاتی NIS بمنظور بازیابی فایل رمزعبور می باشند.

سیستم های عامل در معرض تهدید
تقریبا" تمامی سیستم های یونیکس و لینوکس بهمراه یک نسخه از NFS و NIS ارائه می گردند. سرویس های فوق،  بصورت پیش فرض فعال می باشند .

نحوه تشخیص آسیب پذیری سیستم
 بمنظور تشخیص آسیب پدیری سیستم در رابطه با سرویس های NIS و NFS موارد زیر پیشنهاد می گردد :  

  • بررسی و اطمینان از نصب آخرین Patch ارائه شده توسط تولید کننده . تمامی نسخه هائی که بهنگام نشده و یا آخرین Patch موجود بر روی آنان نصب نشده باشد در معرض تهدید و آسیب قرار خواهند داشت . در اکثر نسخه ها  با استفاده از دستور rpc.mountd -version  می توان از شماره نسخه NFS  نصب شده آگاهی یافت . بمنظور آگاهی از شماره نسخه NIS  می توان از دستور  ypserv -version   استفاده نمود ( دستور فوق شماره نسخه NFS را نیز نمایش خواهد داد ) .

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

بمنظور برخورد با عدم پیکربندی مناسب NIS موارد زیر پیشنهاد می گردد : 

  • اطمینان از عدم نگهداری Root Password در یک NIS map
  • سازگاری رمزهای عبور تعریف شده با سیاست های امنیتی موجود. در این راستا می توان از یک برنامه Cracker  بمنظور بررسی استحکام رمزهای عبور تعریف شده،استفاده نمود.

بمنظور برخورد با عدم پیکربندی مناسب NFS موارد زیر پیشنهاد می گردد : 

  • بررس لازم در خصوص بهنگام بودن میزبانان ، netgroups و مجوزها در فایل etc \ exports \ .
  • اجرای دستور Showmount e بمنظور مشاهده عناصر export شده و بررسی سازگاری آنان با سیاست های امنیتی .

نحوه حفاظت در مقابل نقطه آسیب پذیر 
موارد زیر در ارتباط با پیکربندی NIS ، پیشنهاد می گردد:

  • مشخص نمودن صریح سرویس دهندگان NIS  بر روی سرویس گیرندگان ( پیشگیری لازم در خصوص  تظاهر سایر سیستم ها بعنوان یک سرویس دهنده NIS ) .
  • در زمان ایجاد فایل های DBM ، ویژگی YP_SECURE  فعال گردد . بدین ترتیب ،سرویس دهنده صرفا" به درخواست های ارسالی توسط یک سرویس گیرنده و از طریق پورت های مجاز ، پاسخ خواهد بود . در این رابطه می توان از سوئئچ S بهمراه دستور makedbm استفاده نمود .

  • درج میزبانان مورداعتماد و شبکه ها در var/yp/securenets / که توسط پردازه های  ypserv و  ypxfrd  استفاده می گردد.
  • درج    ::: 0:0 : * :+   در password map بر روی سرویس گیرندگان NFS 

موارد  زیر در ارتباط با پیکربندی NFS  پیشنهاد می گردد:

  •  استفاده از آدرس های عددی IP و یا FQDN) fully qualified domain names)  در مقابل اسامی مستعار (زمانیکه به سرویس گیرندگان در فایل etc / exports اجازه داده می شود) .

  •  بمنظوربررسی پیکربندی سیستم می توان از برنامه ای با نام NFSBug ، استفاده نمود.برنامه فوق امکانات متنوعی را بمنظور تست پیکربندی سیستم ارائه می نماید . برای دریافت برنامه NFSBug ، می توان از آدرس ftp://coast.cs.purdue.edu/pub/tools/unix/nfsbug/   استفاده نمود .

  • اسفاده از فایل etc\exports بمنظور اعمال محدودیت در رابطه با دستیابی به سیستم فایل NFS با افزودن  پارامترهای زیر :
    - ممانعت کاربران معمولی از mounting یک سیستم فایل NFS با افزودن یک پارامتر ایمن پس از آدرس IP و یا نام Domain مربوط به سرویس گیرنده NFS .
    مثلا" : ( home 10.20.1.25(secure /
    - export نمودن سیستم فایل NFS با مجوزهای مناسب .عملیات فوق را می توان با افزودن مجوزهای لازم ( ro برای فقط خواندنی و یا rw برای خواندن و نوشتن ) پس از آدرس IP مربوط به نام domain  سرویس گیرنده NFS  در فایل etc\export  انجام داد.
    مثلا" : ( home 10.20.1.25(ro /  .
    - در صورت امکان ، از پارامتر root_squash  بعد از آدرس IP و نام Domain مربوط به سرویس گیرنده NFS استفاده گردد . در صورتیکه پارامتر فوق فعال شده باشد ،  superuser ID root  بر روی سرویس گیرنده NFS با کاربر ID nobody  در سرویس دهنده NFS جایگزین می گردد. بدین ترتیب root user  بر روی سرویس گیرنده ، قادر به دستیابی و یا تغییر فایل ها  بر روی root نخواهند بود.
    مثلا" : ( home 10.20.1.25(root_squash / .

  • بر روی سیستم عامل سولاریس ، مانیتورینگ پورت فعال گردد. عملیات فوق را می توان با افزودن  Line set nfssrv:nfs_portmon = 1  در فایل etc/system / ، انجام داد .

موارد زیر در  ارتباط با NFS و NIS  پیشنهاد می گردد :

  •  بازنگری و بررسی  سیاست های فایروال بمنظور اطمینان از بلاک شدن تمامی پورت های غیر ضروری(  مثلا" پورت 111 ( portmap ) و پورت 2049 ( Rpc.nfsd ) ) .امکان دستیابی به سرویس دهندگان NFS و NIS ، می بایست صرفا" از طریق سرویس گیرندگان مجاز انجام شود.

  • بررسی لازم در خصوص استفاده از NFS بر روی یک پروتکل ایمن نظیر SSH . در این رابطه می توان از آدرس  http://www.math.ualberta.ca/imaging/snfs/  استفاده نمود .

  • نصب تمامی patch های ارائه شده توسط تولید کنندگان و یا ارتقاء  سرویس دهندگان NIS و  NFS به آخرین نسخه موجود. برای آگاهی از اطلاعات  مربوط به نصب و  پیکربندی یونیکس با لحاظ نمودن مسائل امنیتی مضاعف ، می توان از آدرس UNIX Security Checklist  استفاده نمود.

  • غیر فعال نمودن NFS و NIS مربوط به deamons بر روی سیستم هائی که مختص یک سرویس دهنده NFS و یا NIS طراحی و تائید نشده اند . بمنظور پیشگیری لازم در اینخصوص می توان سرویس های  NIS و یا NFS ( و یا هر دو آنان ) را  از روی سیستم حذف نمود.

دهمین نقطه آسیب پذیر : ( Open Secure Sockets Layer (SSL
کتابخانه 
OpenSSL  ( بصورت Open source است ) ، نرم افزاری رایج  بمنظور افزدون امنیت رمزنگاری به برنامه ها ئی است که از طریق شبکه با یکدیگر ارتباط برقرار می نمایند .سرویس دهنده  آپاچی ، مهمترین وشناخته ترین برنامه استفاده کننده از  پکیج فوق می باشد ( بمنظور حمایـت از  hhtps ، ارتباط بر روی پورت 443 ) . برنامه های متعدد دیگر با انجام برخی تغییرات ، استفاده از  OpenSSL بمنظور افزایش امنیـت اطلاعات مبادله شده در یک شبکه را در دستور کار خود قرار داده اند .
برنامه های متعددی بمنظور ارائه امنیت رمزنگاری در ارتباط با یک Connection از OpenSSL استفاده می نمایند . مهاجمان در اغلب موارد در مقابل هدف قرار دادن مستقیم OpenSSL ، برنامه هائی را برای حملات خود انتخاب می نمایند که از OpenSSL  استفاده می نمایند . یکی از اهداف مهاجمین در این رابطه ، سرویس دهنده آپاچی است که از OpenSSL استفاده می نماید . برنامه هائی دیگر نظیر: mail ، openldap,CUPS     که از OpenSSL استفاده می نمایند نیز در معرض تهاجم قرار خواهند داشت .
OpenSSL دارای نقاط آسیب پذیر متعددی بوده که می توان به چهار نمونه مهم آنان اشاره نمود :  
مورد اول ، مورد دوم ، مورد سوم ، مورد چهارم  . مهاجمان با  استفاده از نقاط آسیب پذیر فوق، قادر به اجرای کد دلخواه بعنوان کاربر کتابخانه OpenSSL می باشند.

سیستم های عامل در معرض تهدید
هر یک از سیستم های یونیکس و یا لینوکس که بر روی آنان نخسه OpenSSL 0.9.7 و یا  قبل از آن اجراء می گردد، در معرض این آسیب قرار خواهند داشت .

نحوه تشخیص آسیب پذیری سیستم
در صورتیکه نسخه version 0.9.7a و یا قبل از آن  نصب شده باشد ، سیستم در معرض تهدید و آسیب قرار خواهد داشت . در این رابطه می توان از دستور OpenSSL version ، بمنظور آگاهی از شماره نسخه نرم افزار نصب شده ، استفاده نمود.

نحوه حفاظت در مقابل نقطه آسیب پذیر 
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، موارد زیر پیشنهاد می گردد :

  • ارتقاء به آخرین و جدیدترین نسخه OpenSSL  . در صورتیکه OpenSSL بهمراه سیستم عامل نصب شده است ، از تولیدکننده سیستم عامل مربوطه می بایست آخرین نسخه مربوطه را  دریافت و آن را  بر روی سیستم  نصب نمود.
  • در صورت امکان ، از ipfilter و سایر ابزارهای موجود در این زمینه  بمنظور اعمال محدودیت در رابطه با  سیستم هائی که می بایست به سرویس دهنده  OpenSSL متصل گردند ،استفاده شود .

منبع:srco.ir

مهمترین نقاط آسیب پذیر یونیکس و لینوکس ( بخش چهارم )

هفتمین نقطه آسیب پذیر : ( Simple Network Management Protocol (SNMP
از پروتکل SNMP بمنظور کنترل ، مانیتورینگ از راه دور و پیکربندی  تمامی دستگاه های پیشرفته مبتنی بر TCP/IP  در ابعاد گسترده ای  استفاده می شود.با اینکه  استفاده از SNMP در بین پلات فرم های متفاوت شبکه استفاده می گردد، ولی در اغلب موارد از آن  بمنظور پیکربندی و مدیریت دستگاههائی نظیر چاپگر ، روترها ، سوئیچ ها ، Access point ها  و دریافت داده های مورد نیاز دستگاههای مانیتورینگ شبکه ، استفاده می شود .
SNMP ، از روش های متفاوتی بمنظور مبادله پیام بین ایستگاههای مدیریت SNMP و دستگاههای شبکه ای  استفاده می نماید . روش های استفاده شده بمنظور برخورد با پیام های مبادله شده و مکانیزم تائید و معتبر سازی پیا م ها،  از جمله عوامل اصلی در رابطه با  نقاط آسیب پذیر SNMP می باشند .
نقاط آسیب پذیر مرتبط با روش های استفاده شده در SNMP ( نسخه یک )  بهمراه جزئیات مربوطه را می توان در آدرس  CERT - 2002 - 03  ، مشاهده نمود . نقاط آسیب پذیر متعددی در SNMP متاثر از روش برخورد با پیام ها توسط ایستگاه های مدیریتی است . نقاط آسیب پذیر فوق، به نسخه ای خاص  از SNMP محدود نبوده و محصولات متعدد ارائه شده توسط تولید کنندگان را نیز شامل می گردد . مهاجمان با استفاده از نقاط آسیب پذیر فوق ، قادر به انجام حملات متفاوت از نوع DoS ( از کار افتادن یک سرویس ) تا پیکربندی و مدیریت ناخواسته ماشین آلات و تجهیزات مبتنی بر SNMP  ، می باشند .
برخی از نقاط آسیب پذیر در ارتباط با SNMP متاثر از روش های استفاده شده بمنظور تائید و معتبر سازی پیام ها در نسخه های قدیمی SNMP  است ( توارث مشکلات ) . نسخه های یک و دو SNMP ، از یک " رشته  مشترک " غیررمز شده بعنوان  تنها  گزینه موجود  برای تائید پیام ها استفاده می نمایند . عدم استفاده از روش های مناسب رمزنگاری ، می تواند عاملی مهم در پیدایش نقاط آسیب پذیر باشد. نگرش پیش فرض  نسبت به  " رشته مشترک  " که  توسط تعداد زیادی از دستگاههای SNMP استفاده می گردد ، از ذیگر عوامل مهم در ارتباط با عرضه نقاط آسیب پذیر است( برخی از تولید کنندگان بمنظور افزایش سطح ایمنی مربوط به داده های حساس ، رشته را بصورت "اختصاصی " تغییر و استفاده می نمایند ) .  شنود اطلاعاتی و ترافیک SNMP ، می تواند افشاء  اطلاعات و ساختار شبکه ( سیستم ها و دستگاههای متصل شده به آن  )  را بدنبال داشته باشد . مهاجمین با استفاده از اطلاعات فوق ، قادر به انتخاب مناسب و دقیق هدف خود بمنظور برنامه ریزی حملات خود می باشند .
اکثر تولید کنندگان بصورت پیش فرض نسخه یک SNMP را فعال و تعدادی  دیگر،  محصولاتی را ارائه می نمایند که  قادر به استفاده ازمدل های امنیتی نسخه شماره سه SNMP  نمی باشند. ( با استفاده از مدل های امنیـی ارائه شده در نسخه شماره سه SNMP ، می توان پیکربندی لازم در خصوص روش های تائید را بهبود بخشید ) .
SNMP ، مختص یونیکس نمی باشد و  در ابعاد وسیعی در ویندوز ، در تجهیزات شبکه ای ، در چاپگرها ، access point ها و Bridges ، استفاده می گردد. با توجه به  نتایج حاصل از آنالیز حملات مبتنی بر SNMP  ، مشخص شده است که اکثر حملات در این رابطه بدلیل ضعف در پیکربندی SNMP در سیستم های یونیکس است .

سیستم های عامل در معرض تهدید
تقریبا"  بر روی تمامی سیستم های یونیکس و لینوکس  یک نسخه SNMP نصب و بهمراه آن عرضه می گردند. در اغلب موارد پروتکل فوق ، بصورت پیش فرض فعال می باشد. اکثر دستگاه ها و سیستم های عامل شبکه ای مبتنی بر SNMP دارای نقطه آسیب پذیر فوق بوده و در معرض تهدید قرار خواهند داشت .

نحوه تشخیص آسیب پذیری سیستم
بمنظور بررسی نصب SNMP  بر روی دستگاههای موجود و متصل شده در شبکه ، می توان از یک برنامه کمکی و یا روش دستی استفاده نمود. برنامه پویشگر SNScan ، نمونه ای در این زمینه بوده که می توان آن را از طریق آدرس 
http://www.foundstone.com/knowledge/free_tools.html  دریافت نمود. در مواردیکه امکان استفاده از ابزارهای  پویشگر وجود ندارد ، می توان بررسی لازم در خصوص نصب و اجراء SNMP  را بصورت دستی انجام داد. در این راستا می توان به مستندات سیستم عامل مربوطه مراجعه تا پس از آگاهی از نحوه پیاده سازی SNMP  ، عملیات لازم بمنظور تشخیص فعال بودن SNMP را انجام داد . در این رابطه می توان ، جستجوی لازم در لیست پردازه ها برای یافتن "snmp" در حال اجراء بر روی پورت های 161 و 162 را انجام داد .  وجود صرفا " یک نمونه SNMP  ، دلیلی بر آسیب پذیری سیستم است . بمنظور آگاهی از جزیئات لازم در اینخصوص می توان از آدرس  CERT - 2002 - 03 استفاده نمود . در صورت تحقق یکی از شرایط زیر و نصب  SNMP ،  سیستم در معرض آسیب  و تهدید قرار خواهد داشت :

  • وجود اسامی SNMP Community پیش فرض و یا خالی ( اسامی استفاده شده بعنوان رمزهای عبور )
  • وجود اسامی SNMP Community  قابل حدس
  • وجود رشته های مخفی SNMP Community

نحوه حفاظت در مقابل نقطه آسیب پذیر 
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ،در دو زمینه می توان اقدامات حفاظتی را سازماندهی نمود .
 حفاظت در مقابل  درخواست های آسیب رسان  و تهدید کننده :

  • غیر فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از یک مدل امنیتی مبتنی بر کاربر SNMPv3 ،  بمنظور تائید پیام ها و رمزنگاری داده ها ( در صورت امکان ) 
  • در صورت استفاده از SNMP نسخه یک و یا دو ، می بایست آخرین نسخه Patch ارائه شده توسط تولید کننده ، نصب گردد برای آگاهی از مشخصات تولیدکننگان، می توان به  بخش ضمیمه  CERT Advisory CA-2002-03 ، مراجعه نمود .
  • SNMP را در گلوگاه های ورودی شبکه فیلتر نمائید ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP )  . عملیات فوق را در مواردیکه ضرورتی به مدیریت دستگاهها بصورت خارجی وجود ندارد ، می بایست انجام داد .

  • از  کنترل دستیابی مبتنی بر میزبان بر روی سیستم های SNMP agent استفاده گردد . ویژگی فوق ممکن است توسط SNMP agent سیستم های عامل دارای محدودیت هائی باشد ، ولی می توان کنترل لازم در خصوص پذیرش درخواست ها توسط agent مربوطه را انجام داد. در اکثر سیستم های یونیکس ، می توان عملیات فوق را توسط  یک TCP-Wrapper و یا پیکربندی Xined انجام داد . استفاده از یک فایروال فیلترینگ بسته های اطلاعاتی مبتنی بر agent  بر روی یک میزبان  نیز می تواند در بلاک نمودن درخواست های ناخواسته SNMP موثر واقع شود .

 حفاظت در مقابل رشته های قابل حدس 

  • غیر فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن

  • استفاده از یک مدل امنیتی مبتنی بر کاربر SNMPv3 ،  بمنظور تائید پیام ها و رمزنگاری داده ها ( در صورت امکان ) 

  • در صورت استفاده از SNMP نسخه یک و یا دو ، می بایست از یک سیاست خاص بمنظور اسامی community ( استفاده شده بعنوان رمزهای عبور ) استفاده گردد. در این راستا لازم است اسامی بگونه ای انتخاب گردند که  غیر قابل حدس بوده و بصورت ادواری و در محدوده های خاص زمانی نیز تغییر داده شوند .

  • با استفاده از امکانات موجود می بایست بررسی لازم در خصوص  استحکام اسامی در نظر گرفته شده برای رمزهای عبور راانجام داد.در این رابطه می توان از خودآموز و ابزار ارائه شده در آدرس  http://www.sans.org/resources/idfaq/snmp.php  ، استفاده کرد.

  • SNMP را در گلوگاه های ورودی شبکه فیلتر نمائید ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP )  . عملیات فوق را در مواردیکه ضرورتی به مدیریت دستگاهها بصورت خارجی وجود ندارد ، می بایست انجام داد . پیکربندی فیلترینگ را صرفا" بمنظور ترافیک مجاز SNMP بین subnet های ممیزی شده ، انجام دهید.


هشتمین نقطه آسیب پذیر : :( Secure Shell (SSH
SSH ، یک سرویس عمومی برای ایمن سازی Login ، اجرای دستورات و ارسال فایل در یک شبکه است .اکثر سیستم های مبتنی بر یونیکس از بسته نرم افزاری
OpenSSH  ( نسخه فوق بصورت open-source  است ) و یا نسخه تجاری  SSH Communication Security ، استفاده می نمایند . با اینکه SSH دارای ایمنی مناسبتری نسبت به telnet,ftp و برنامه های R-Command  می باشد ، ولی همچنان  در هر دو نسخه اشاره شده ، ضعف های امنیتی متعددی وجود دارد . اکثر ضعف های موجود صرفا" اشکالات جزئی بوده و تعداد اندکی از آنان ، حائز اهمیت بوده و می بایست بلافاصله نسبت به برطرف نموودن آنان اقدام گردد . مهمترین تهدید مرتبط با ضعف های امنیتی SSH ، امکان دستیابی (سطح ریشه)  به ماشین آسیب پذیر توسط مهاجمان است . با توجه به  رشد چشمگیر استفاده از سرویس گیرندگان و سرویس دهندگان  SSH  در محیط های ویندوز،  اکثر اطلاعات ارائه شده در رابطه با نقطه آسیب پذیر فوق ، به نسخه های پیاده سازی شده  SSH در  ویندوز و nix *  ( یونیکس ، لینوکس  )  بر می گردد .عدم مدیریت مناسب SSH ، خصوصا" در ارتباط با پیکربندی و بکارگیری patch ها و بهنگام سازی لازم ، می تواند مسائل و مشکلات خاص خود را  بدنبال داشته باشد .
SSH2 ، ابزاری قدرتمند
تعداد زیادی از نقاط آسییب پذیر تشخیص داده شده   در پروتکل هائی نظیر POP3 ( جایگزین با SSH2 SFTP ) ، برنامه Telnet ، سرویس HTTP ,  و ابزارهای مبتنی بر rhost ( نظیر : روش های تائید ,rsh ,   rlogin ,rcp ) باعث ارسال اطلاعات بصورت clear text  و یا عدم پردازش مناسب session های سرویس گیرنده - سرویس دهنده می گردد. پروتکل SSH1 ، دارای  پتانسیل آسیب پذیری  بالائی خصوصا" در ارتباط با session  موقتی رمزنشده می باشد . بدین دلیل  مدیران سیستم و شبکه ، استفاده از پروتکل SSH2  را  گزینه ای شایسته در اینخصوص می دانند( در مواردیکه امکان آن وجود دارد) . لازم است به این نکته مهم  اشاره گردد که SSH1 و SSH2 با یکدیگر سازگار نبوده  و لازم است  نسخه SSH بر روی سرویس گیرنده و سرویس دهنده یکسان باشند (در این رابطه موارد استثنا ء نیز وجود دارد ) .
کاربران OpenSSH می بایست به این نکته توجه نمایند که کتابخانه های OpenSSH در مقابل پتانسیل های ایجاد شده توسط OpenSSH ، دارای نرم افزارهای آسیب پذیر مختص خود می باشند. بمنظور آگاهی از جزئیات مربوطه ، می توان از آدرس 
CERT Advisory 2002-23 استفاده  نمود .در سال 2002 یک نسخه آلوده از OpenSSH  ( نسخه فوق دارای یک trojan-horse  بود ) در زمان کوتاهی گسترش و باعث آسیب های فراوانی گردید. بمنظور کسب اطلاعات بیشتر در این رابطه و اطمینان از عدم آسیب پذیری سیستم خود در مقابل نسخه آلوده فوق ، می توان از آدرس  http://www.openssh.org/txt/trojan.adv  استفاده نمود . 

سیستم های عامل در معرض تهدید
هر نسخه یونیکس و یا لینوکس که بر روی آن OpenSSH 3.3 و یا بعد از آن ( نسخه  ارائه شده در سال 2003 ،version 3.6.1)  و یا SSH Communication Security's SSH 3.0.0  و یا بعد از آن ( نسخه ارائه شده در سال 2003 شماره version 3.5.2 ) نصب واجراء می گردد ،  در معرض این آسیب قرار خواهد داشت .

نحوه تشخیص آسیب پذیری سیستم
با استفاده از یک پویشگر مناسب ، می توان بررسی لازم در خصوص آسیب پذیری یک نسخه را انجام داد . در این رابطه می توان با اجرای دستور " ssh   -V " ، از شماره نسخه نصب شده بر روی سیستم آگاه گردید.  ScanSSH ، ابزاری مفید  بمنظور تشخیص  از راه دور سرویس دهندگان SSH  آسیب پذیر بدلیل عدم Patching ، می باشد. دستور خطی ScanSSH ، لیستی از آدرس های شبکه را برای سرویس دهندگان  پویش و گزارشی در ارتباط با شماره نسخه های آنان را ارائه می نماید . آخرین نسخهScanSSH  که در سال 2001 ارائه شده است را می توان از آدرس
http://www.monkey.org/~provos/scanssh/  دریافت نمود .

نحوه حفاظت در مقابل نقطه آسیب پذیر 
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، موارد زیر پیشنهاد می گردد :

  •  نسخه  SSH   و یا  OpenSSH  را به آخرین نسخه موجود ارتقاء دهید . درصورتیکه SSH و یا OpenSSH بهمراه سیستم عامل ، نصب شده باشد ، می بایست  آخرین Patchمربوطه را از سایت ارائه دهنده سیستم عامل دریافت و آن را برروی سیستم نصب نمود. در صورت استفاده  از OpenSSL  ، از نصب آخرین نسخه آن مطمئن شوید .

  • حتی المقدور سعی گردد، نسخه SSH1 به SSH2 ارتقاء یابد .در رابطه با توسعه SSH1  در آینده تصمیم خاصی وجود نداشته و توسعه SSH2 مورد نظر می باشد .

  •  دو نسخه پیاده سازی شده SSH ، دارای مجموعه ای از گزینه های انتخابی بوده  که مدیران سیستم با استفاده از آنان و با توجه به سیاست های موجود می توانند پیکربندی مناسبی در اینخصوص را انجام دهند.  امکان محدودیت در دستیابی به ماشین مورد نظر و اتصال به آن ، روش های تائید کاربران و ماهیت کاربران مجاز ، نمونه هائی از گزینه های انتخابی بوده که می توان از آنان بمنظور پیکربندی مطلوب استفاده گردد.

  • پیکربندی مناسب  سرویس گیرندگان SSH  در زمان اتصال به سرویس دهنده ای که SSH را حمایت نمی نماید . در چنین مواردی سرویس گیرنده ممکن است به عقب برگشته و استفاده از rsh را در این رابطه مفید تشخیص دهد . بمنظور پیشگیری از مواردی اینچنین می بایست  به کلید FallBackToRsh  در فایل پیکربندی SSH ، مقدار NO را نسبت داد .

  •  از رمزنگاری blowfish در مقابل 3DES استفاده گردد (روش 3DES ، ممکن است بصورت پیش فرض در نسخه مربوطه در نظر گرفته شده باشد ). بدین ترتیب علاوه بر افزایش سرعت در عملیات ، رمزنگاری انجام شده نیز از استحکام مناسبی برخوردار خواهد بود.

مهمترین نقاط آسیب پذیر یونیکس و لینوکس ( بخش سوم )

پنجمین نقطه آسیب پذیر :  :Clear Text Services
تعداد زیادی از سرویس های شبکه استفاده شده توسط سیستم های مبتنی بر یونیکس ، بصورت  plain text بوده و  از رمزنگاری خاصی استفاده نمی نمایند. ضعف در رمزنگاری ، امکان شنود اطلاعاتی ( مشاهده ترافیک شبکه )  را فراهم و مهاجمان در ادامه امکان دستیابی به محتویات ارتباط ایجاد شده و یا اطلاعات حساس کاربران نظیر داده های مرتبط با رمز عبور را بدست خواهند آورد.  مثلا" بمنظور تشخیص  اطلاعات مرتبط با FTP و یا telnet ( اطلاعات login ) ، یک مهاجم ، می تواند  یک  sniffer  را در شبکه  و در محلی بین مسیر ارتباطی، مستقر نماید (بعنوان سرویس دهنده FTP و یا یا Client LAN ) . تبادل اطلاعات بین دستورات ورودی توسط سرویس گیرندگان و پاسخ های ارائه شده توسط سرویس های موجود بر روی سرویس دهنده ، بصورت plain-text خواهد بود. بدین ترتیب ،امکان ردیابی ( رهگیری ) داده و یا کلیدهای فشرده شده توسط کاربر بسادگی فراهم می گردد. اغلب مهاجمان در حملات اخیر خود از برنامه های مختص شنود اطلاعاتی استفاده و عمدتا" اینگونه برنامه ها را  بر روی دستگاهها ی  آسییب پذیر نصب می نمایند. در چنین مواردی ، تشخیص نام و رمز عبور کاربر در داده های جمع آوری شده ( شنود اطلاعاتی ) ، بسادگی میسر خواهد شد.جدول زیر،  لیست برخی از سرویس های شبکه یونیکس را که اطلاعات را بصورت Clear Text  ، مبادله می نمایند ، نشان می دهد :

آیتم ارسالی

Clear Auth

Clear Content

پورت

سرویس

متن ، باینری

Yes Yes 21 , 20 FTP
متن ، باینری N/A Yes 69 TFTP
متن Yes Yes 23 telnet
متن ، باینری N/A Yes 25 SMTP
متن ، باینری Yes Yes 110 POP3
متن ، باینری Yes Yes 143 IMAP
متن Yes Yes 513 rlogin
متن Yes Yes 514 rsh
متن ، باینری Yes Yes 80 HTTP

سرویس هائی نظیر Telnet و FTP که شامل اطلاعات  مربوط به تائید هویت کاربران می باشند ، اطلاعات مورد نظر را بصورت متن  ارسال  که  بالاترین ریسک را بدنبال خواهد داشت . در چنین مواردی مهاجمان می توانند با استفاده مجدد از داده های حساس کاربران نظیر نام و رمز عبور، با خیال راحت ! به سیستم دستیابی نمایند .علاوه براین ، اجرای دستورات  بصورت clear text می تواند توسط مهاجمان استفاده تا با استفاده از آنان دستورات دلخواه خود را بدون الزامی برای تائید ، اجراء نمایند. سرویس های Clear text  ، می توانند زمینه تهدیدات مختلفی نظیر  :  تسهیل در انجام  حملات  ، دستیابی از راه دور ، اجرای دستورات بر روی یک سیستم مقصد ، شنود و تشخیص اطلاعات را بدنبال داشته باشد .

سیستم های عامل در معرض تهدید
تمامی  نمونه های یونیکس  ارائه شده ، از سرویس ها ی Clear text استفاده می نمایند. ( telnet و FTP دو نمونه متدواول در این زمینه می باشند ) . تمامی  نمونه نسخه های  ارائه شده یونیکس و  لینوکس ( تنها استنثاء در این  رابطه، مربوط به آخرین ویرایش  Free/OpenBSD  می باشد ) ، بصورت پیش فرض ، برخی از سرویس های فوق را نصب می نمایند .

نحوه تشخیص آسیب پذیری سیستم
موثرترین و مطمئن ترین روش بمنظور تشخیص نقطه آسیب پذیر فوق (سرویس های clear text )  ، بکارگیری  نرم افزاری مشابه با  ابزارهای استفاده شده (sniffer) توسط مهاجمان است. متداولترین برنامه موجود در این زمینه ،  tcpdump می باشد. برای دریافت برنامه "tcpdump " می توان از آدرس 
http://www.tcpdump.org/  ،  استفاده نمود . نحوه فعال نمودن برنامه فوق،بمنظور تشخیص هر گونه ارتباط clear text ،  بصورت زیر است :

  # tcpdump -X -s 1600

دراین راستا می توان از برنامه های دیگر نظیر : "ngrep" نیز استفاده نمود. برنامه فوق،امکان جستجوی الگوئی خاص نظیر "username " و یا " password " را در شبکه فراهم می نماید.  ( اولین حروف، بمنظور سازگاری با حروف بزرگ احتمالی ، در نظر گرفته نشده است ) . برای دریافت برنامه فوق ، می توان از آدرس    http://www.packetfactory.net/projects/ngrep/  استفاده نمود . نحوه فعال نمودن برنامه فوق ،  بصورت زیر است :

  # ngrep assword

در این رابطه می توان از ابزارهای متنوع  دیگری بمنظور تشخیص داده های حساس کاربران ( نام و رمز عبور )  استفاده نمود . Dsniff ، متداولترین ابزار در این زمینه است . برنامه فوق ، بررسی لازم در خصوص تمامی زوج نام و رمزعبور بر روی پروتکل های Plain text حجیم، نظیر FTP ، Telnet و POP3 را انجام و پس از تشخیص، آنان را نمایش خواهد داد. برای بدست آوردن برنامه فوق می توان از آدرس  http://www.monkey.org/~dugsong/dsniff/   استفاده نمود . نحوه فعال نمودن برنامه فوق ،  بصورت زیر است :

 # /usr/sbin/dsniff

نحوه حفاظت در مقابل نقطه آسیب پذیر 
استفاده از رمزنگاری End-To-End و یا حداقل رمزنگاری Link-level می تواند در این زمینه مفید واقع گردد. برخی پروتکل ها از لحاظ رمزنگاری معادل یکدیگر می باشند( نظیر : POP3S و HTTPS ) . برای پروتکل هائی که دارای قابلیت ها  و امکانات  , ذاتی رمزنگاری نمی باشند ، می توان آنان را از طریق  SSH : Secure Shell ، و یا  SSL connection انجام داد( tunneling ) .
OpenSSH یک نمونه پیاده سازی شده متداول و انعطاف پذیر ازSSH  است.( قابل دسترس در آدرس  
http://www.openssh.org/  ) . برنامه فوق، در اکثر نسخه های یونیکس اجراء و می توان از آن بمنظور ارتباطات از راه دور ( replaces telnet ,rlogin ,rsh ) و tunneling ( پروتکل هائی نظیر POP3,SMTP و X11 )   استفاده گردد .
دستور زیر نحوه tunnel نمودن POP3 را بر روی SSH connection  نشان می دهد. بر روی  سرویس دهنده POP3 ، می بایست سرویس دهنده SSH نیز اجراء گردد. در ابتدا آن را بر روی ماشین سرویس گیرنده اجراء می نمائیم :

# ssh -L 110:pop3.mail.server.com:110 username@pop3.mail.server.com

در ادامه ، برنامه سرویس گیرنده پست الکترونیکی را به localhost اشاره می دهیم ، پورت TCP 110  ( برخلاف روال معمول که بصورت : pop3.mail.server.com ، پورت 110 است )  . بدین ترتیب ، تمامی ارتباطات بین ماشین و سرویس دهنده پست الکترونیکی بصورت رمز شده انجام خواهد شد ( tunneled over SSH  ) .
یکی دیگر از راه حل های متداول رمزنگاری مبتنی بر tunneling ، استفاده از stunnel است . روش فوق ، پروتکل SSL را پیاده سازی( با استفاده از OpenSSL Toolkit ) و می توان آن را  بمنظور tunel نمودن پروتکل های متفاوت plain text بخدمت گرفت . برای دریافت برنامه فوق ، می توان از آدرس 
http://www.stunnel.org/  استفاده نمود.

ششمین نقطه آسیب پذیر : : Sendmail
Sendmail ، برنامه ای است که از آن بمنظور ارسال ، دریافت و فوروارد نمودن  نامه های الکترونیکی در اغلب سیستم های یونیکس و لینوکس استفاده می گردد. Sendmail ، یکی از متداولترین MTA : Mail Transfer Agent  در اینترنت بوده که بطور گسترده ای از آن بعنوان "آژانش توزیع نامه های الکترونیکی" بهمراه سرویس دهندگان پست الکترونیکی ، استفاده می گردد  . Sendmail ، یکی از اهداف اولیه مهاجمان  در سالیان اخیر بوده و تاکنون حملات متعددی را در ارتباط با آن شاهد بوده ایم. اکثر حملات انجام شده بدلیل قدیمی بودن  و یا عدم patch مناسب نسخه های نصب شده ، با موفقیت همراه بوده است .در این رابطه  می توان به چندین نمونه از حملات اخیر اشاره نمود :

- CERT Advisory CA-2003-12 Buffer Overflow in Sendmail 
- CERT Advisory CA-2003-07 Remote Buffer Overflow in Sendmail 
- CERT Advisory CA-2003-25 Buffer Overflow in Sendmail 

خطرات و تهدیدات مرتبط با Sendmail را می توان به دو گروه عمده  تقسیم نمود :  از دست رفتن امتیازات که علت  آن buffer overflow  خواهد بود و پیکربندی نادرست سیستم که می تواند تبعات منفی را بدنبال داشته باشد ( مثلا" تبدیل یک سیستم به مرکزی آلوده برای توزیع نامه های الکترونیکی ) .عامل اصلی در بروز تهدیدات نوع اول ، عمدتا" به استفاده از نسخه های قدیمی و یا عدم  patching مناسب سیستم برمی گردد.علت اصلی تهدیدات نوع دوم ، به استفاده از فایل های پیکربندی پیش فرض و نادرست برمی گردد .

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

نحوه تشخیص آسیب پذیری سیستم
Sendmail ، در گذشته دارای نقاط آسیب پذیر فراوانی بوده که بتدریج  وبا ارائه نسخه های جدیدتر و patch های مربوطه ، میزان  آسیب پذیری آن کاهش یافته است .هر نسخه قدیمی و یا Patch نشده نرم فزار فوق در معرض آسیب قرار خواهد داشت . بمنطور مشخص نمودن شماره نسخه برنامه sendmail ، می توان از دستور زیر استفاده نمود :

echo \$Z | /usr/lib/sendmail -bt -d0
 

مسیر مشخص شده sendmail  در دستور فوق ، با توجه به پیکربندی سیستم ، می تواند متفاوت باشد. برای آگاهی از آخرین نسخه ارائه شده Sendmail می توان از آدرس  http://www.sendmail.org/current-release.html  استفاده نمود .

نحوه حفاظت در مقابل نقطه آسیب پذیر 
مراحل زیر بمنظور ایمن سازی و حفاظت Sendmail پیشنهاد می گردد :

  •  نسخه موجود را به آخرین نسخه ارتقاء و از آخرین patch های موجود ، استفاده گردد . برای دریافت source code می توان از آدرس http://www.sendmail.org/  استفاده نمود. در صورتیکه نسخه sendmail بهمراه سیستم عامل ارائه شده است  ( یک Package ) ، می توان برای دریافت patch مربوطه به سایت عرضه کنندگان سیستم عامل مراجعه نمود.

  • برنامه sendmail عموما" بصورت پیش فرض در اکثر سیستم های یونیکس و لینوکس ( حتی آنانی که بعنوان سرویس دهنده mail  مورد نظر نبوده و فعالیت آنان در ارتباط با  mail نخواهد بود) نصب می گردد. برنامه Sendmail را در حالت daemon بر روی ماشین های فوق ، اجراء ننمائید ( غیر فعال نمودن سوئیچ  bd -  ) . امکان ارسال نامه الکترونیکی توسط سیستم های فوق ، همچنان وجود خواهد داشت . در این رابطه می بایست پیکربندی سیستم بگونه ای انجام شود که به یک mail relay در فایل پیکربندی sendmail ، اشاره گردد.فایل پیکربندی،  sendmail.cf نام داشته و معمولا" در آدرس  etc/mail/sendmail.cf  قرار دارد .

  • در صورتیکه  لازم است sendmail در حالت daemon اجراء گردد، می بایست از صحت پیکربندی انجام شده اطمینان حاصل گردد. در این رابطه می توان از منابع اطلاعاتی زیر استفاده نمود :
    http://www.sendmail.org/tips/relaying.html 
    http://www.sendmail.org/m4/anti_spam.html 
    در نسخه  Sendmail 8.9.0 ، امکان open relay  بصورت پیش فرض غیرفعال می باشد.تعداد زیادی از عرضه کنندگان سیستم های عامل ، مجددا" آن رادر پیکربندی پیش فرض خود فعال می نمایند. در صورت استفاده از نسخه  Sendmail  ارائه شده بهمراه سیستم عامل ، می بایست دقت لازم در اینخصوص را انجام داد ( عدم استفاده سرویس دهنده برای  realying  ).
     

  • در زمان استفاده از نسخه جدید sendmail ( سوئیچ نمودن به یک نسخه دیگر ) ،  لازم است تدابیر لازم در خصوص تغییر فایل های پیکربندی ارائه شده توسط نسخه قدیمی ، اندیشیده گردد . برای آگاهی از جزئیات  بیشتر در ارتباط با پیکربندی Sendmail ، می توان از آدرس http://www.sendmail.org/m4/readme.html  استفاده نمود.

  •  در مواردیکه برنامه  Sendmail  از منابع موجود بر روی اینترنت Download  می گردد ، می بایست  بمنظور اطمینان از مجاز بودن نسخه تکثیری  از  PGP signature  استفاده نمود. در این رابطه لازم است به این نکته دقت شود که بدون بررسی integrity مربوطه به source code  برنامه Sendmail ، نمی بایست از آن استفاده شود. در گذشته ، نسخه هائی از Trojan ها در Sendmail  مستقر تا در زمان مناسب حرکت مخرب خود را آغاز نمایند .   بمنظور دریافت اطلاعات تکمیلی در این رابطه می توان از آدرس   CERT Advisory CA-2002-28  استفاده نمود. کلیدهای استفاده شده بمنظور sign نمودن برنامه Sendmail دریافتی را می توان از آدرس http://www.sendmail.org/ftp/PGPKEYS   بدست آورد . در صورت فقدان  PGP ، می بایست از MD5 Checksum بمنظور بررسی integrity  کد منبع Sendmail ، استفاده گردد.

برای کسب اطلاعات بیشتر می توان از منابع اطلاعاتی زیر استفاده نمود :

http://www.sendmail.org/secure-install.html
http://www.sendmail.org/m4/security_notes.html
http://www.sendmail.org/~gshapiro/security.pdf 
 

مهمترین نقاط آسیب پذیر یونیکس و لینوکس ( بخش دوم )

سومین نقطه آسیب پذیر :  Apache Web Server
آپاچی ( Apache) یکی از متداولترین سرویس دهندگان وب بر روی اینترنت است . در مقایسه با سرویس دهنده وب مایکروسافت ( IIS ) ، آپاچی مسائل و مشکلات امنیتی کمتری را داشته  ولی همچنان دارای آسیب پذیری خاص خود است  .
علاوه بر وجود نقاط آسیب پذیر در ماژول ها و کد آپاچی (
CA-2002-27  و CA-2002-17 ) ، تکنولوژی های CGI و PHP نیز دارای نقاط آسیب پذیری خاص خود بوده که ضعف های امنیتی آنان به سرویس دهنده وب نیز سرایت می گردد.  در صورت وجود نقاط آسیب پذیر در سرویس دهنده آپاچی و یا عناصر مرتبط به آن  ، زمینه تهدیدات زیر فراهم می گردد :

  • غیر فعال نمودن سرویس ( DoS )
  • نمایش و بمخاطره انداختن  فایل ها و داده های حساس
  • دستیابی به سرویس دهنده از راه دور
  • بمخاطره افتادن سرویس دهنده ( دستکاری و خرابی سایت )

سیستم های عامل در معرض تهدید
تمامی سیستم های یونیکس قادر به اجراء آپاچی می باشند . آپاچی بصورت پیش فرض بر روی تعداد زیادی از نسخه های  یونیکس و لینوکس ، نصب می گردد .علاوه بر امکان فوق ، آپاچی را می توان  بر روی میزبانی دیگر که از سیستم عاملی مختلف نظیر ویندوز استفاده می نماید نیز نصب نمود. این نوع از نسخه های آپاچی نیز می تواند دارای نقاط آسیب پذیر خاص خود  باشد .

نحوه تشخیص آسیب پذیری سیستم
بمنظور آگاهی  و کسب اطلاعات  لازم در خصوص نحوه تشخیص آسیب پذیری سرویس دهنده وب آپاچی ، می توان از آدرس های زیر استفاده نمود :

آدرس های اشاره شده ، دارای اطلاعات فنی لازم بمنظور نحوه تشخیص آسیب پذیری سیستم و پیشنهادات لازم در خصوص ارتقاء وضعیت امنیتی می باشند . استفاده از آدرس:   http://httpd.apache.org/   نیز در این زمینه مفید است .

نحوه حفاظت در مقابل نقطه آسیب پذیر 
بمنظور حفاظت یک سرویس دهنده وب آپاچی ، پیشنهادات زیر ارائه می گردد :  

  • اطمینان از نصب آخرین patch  ارائه شده 
    - در این رابطه می توان از آدرس
    http://httpd.apache.org/   بمنظور آگاهی  از آخرین  وضعیت نسخه ها و Patch levels  استفاده نمود.
    - بمنظور دستیابی به Source code  اکثر نسخه های آپاچی، می توان از آدرس  
    http://httpd.apache.org/download.cgi  استفاده نمود.
    - بمنظور آگاهی و دریافت آخرین Patch های ارائه شده می توان از آدرس 
    http://www.apache.org/dist/httpd/patches/  استفاده نمود.

  • اطمینان از patching عناصر کلیدی سیستم عامل که آپاچی بعنوان مرجع از آنان استفاده می نماید .در این رابطه لازم است که صرفا" ماژول های ضروری بمنظور صحت عملکرد سرویس دهنده ، در آپاچی کمپایل گردند .لازم است به این نکته اشاره گردد که  کرم(  mod_ssl ( CA-2002-27  نمونه ای کامل در این زمینه بوده که از نقاط آسیب پذیر در( OpenSSL ( CA-2002-23 استفاده نموده است .

  • از اجرای  آپاچی بعنوان ریشه ، اجتناب و می بایست بدین منظور ، کاربر و یا گروهی  خاص با حداقل مجوز ایجاد گردد.  سایر پردازه های سیستم ضرورتی به اجراء تحت کاربر و یا گروه فوق را نخواهند داشت .

  • Chroot ، پتانسیلی است  که باعث تعریف مجدد محدوده یک برنامه می گردد . در حقیقت chroot ، باعث تعریف مجدد دایرکتوری ROOT"  و یا "/"  برای یک برنامه و یا یک Login session می گردد .chroot می تواند بعنوان یک لایه تدافعی استفاده گردد . مثلا" در صورتیکه فردی به کامپیوتر شما دستیابی پیدا نماید ، قادر به مشاهده تمامی فایل های موجود بر روی سیستم نخواهد بود . علاوه بر محدودیت فوق ، محدودیت هائی در خصوص اجرای برخی از دستورات نیز بوجود می آید.در این رابطه یک دایرکتوری با نام chroot/ ، ایجاد و تمامی سرویس های مورد نطر با یک انظباط خاص در آن مستقر می گردند . مثلا" سرویس دهنده آپاچی در chroot/httpd / قرار می گیرد. با توجه به موارد فوق ، می بایست آپاچی را در یک  محیط chroot اجراء نمود . درصورتیکه آپاچی بصورت chrooted اجراء و فعالیت خود را  آغاز نماید ، امکان دستیابی آن به سایر بخش های موجود در  ساختار دایرکتوری سیستم عامل و  خارج از chroot وجود نخواهد داشت . بدین ترتیب یک لایه تدافعی مناسب در خصوص سوء استفاده های احتمالی ایجاد می گردد. بعنوان نمونه ، ممکن است یک shell فراخوانده شده  و با توجه به اینکه  bin/sky / در chroot قرار ندارد ، می تواند زمینه سوء استفاده احتمالی را فراهم نماید. لازم است به این نکته مهم نیز اشاره گردد که Chrooting آپاچی می تواند اثرات جا نبی نامطلوبی را در ارتباط با CGI,PHP ، بانک های اطلاعاتی و سایر ماژول ها و یا ارتباطاتی که محیط سرویس دهنده وب بمنظور سرویس دهی به آنان نیازمند دستیابی به توابع کتابخانه ای خارجی است را بدنبال داشته باشد .روش های متعددی بمنظور chrooting  وجود داشته و می بایست از مستندات نرم افزار مورد نظر ، بعنوان یک منبع اطلاعاتی مناسب در خصوص ارائه راهکارهای مربوطه ، استفاده گردد

  • بمنظور مدیریت یک سرویس دهنده وب ، لازم است فیدبک های لازم در خصوص فعالیت و کارآئی سرویس دهنده و سایر مسائلی که ممکن است یک سرویس دهنده با آنان برخورد نماید را اخذ و در ادامه با آنالیز آنان تمهِیدات لازم در خصوص مسائل موجود را بکار گرفت . سرویس دهنده آپاچی ، قابلیت ها و پتانسیل های انعطاف پذیری را در خصوص logging ارائه می نماید . بنابراین لازم است عملیات logging با دقت نظر بالا بصورت موثر و موشکافانه انجام تا امکان ردیابی هر نوع فعالیت امنیتی غیر مجاز و یا رفتار غیر منطقی سرویس دهنده ، فراهم گردد .پیشنهاد می گردد که با یک نظم خاص از اطلاعات موجود در فایل های لاگ ، آرشیو تهیه شود . بدین ترتیب ، امکان مدیریت فایل های لاگ و بررسی آنان فراهم خواهد شد. بمنظور آشنائی با فرمت های متفاوت لاگ می تواند از منابع زیر استفاده نمود :
    - برای Apache 1.3.x از آدرس
    http://httpd.apache.org/docs/logs.html    استفاده شود .
    - برای Apache 2.0.x  از آدرس
    http://httpd.apache.org/docs-2.0/logs.html  استفاده شود .
    در موارد متفاوتی و با توجه به شرایط پیش آمده ممکن است محتوی فایل های لاگ بتنهائی کافی نباشد . وضعیت فوق در مواردیکه از  PHP ، CGI و یا سایر تکنولوژی های مبتنی بر اسکریپت استفاده می گردد ، تشدید و می توان بمنظور افزایش توان آنالیز یک تهاجم و سوءاستفاده از یک ضعف امنیتی ، اقدام به ثبت لاگ های مربوط به  GET و POST  نمود.لاگ نمودن عملیات مرتبط به GET و POST می تواند از طریق mod_Security صورت پذیرد. ModSecurity یک سیستم تشخیص مزاحمین ( Intruder detection ) یوده و پیشگیری های لازم در خصوص یک برنامه وب را ارائه می نماید . سیستم فوق بهمراه سرویس دهنده وب مستقر و یک پوشش امنیتی مناسب را در جهت پیشگیری از یک تهاجم در ارتباط با برنامه های وب فراهم می نماید . ModSecurity   ، از سرویس دهنده آپاچی حمایت می نماید .
    -
    http://www.modsecurity.org/ 
    http://www.securityfocus.com/infocus/17064.152.44.126%20152.44.126  

  • PHP، CGI،SSI و سایر اسکریپت ها . در این رابطه موارد زیر پیشنهاد می گردد :
    - PHP,CGI,SSI و سایر زبان های اسکریپت را غیر فعال نمائید ( مگر اینکه ضرورتی جدی در رابطه با آنان وجود داشته باشد ).
    - SSI  یا Server Side Includes را  که می تواند زمینه مساعدی بمنظور سوء استفاده از  سرویس دهنده و الزام آن در جهت اجرای کد ناخواسته گردد را غیر فعال نمائید .
    - در صورتیکه ضروری است که  از PHP,CGI,SSI و یا سایر زبان های اسکریپت استفاده گردد ، می بایست  از SuEXEC استفاده شود. suEXEC ، امکان  اجرای اسکریپت ها تحت آپاچی  بهمراه یک User Id در مقابل یک Apache User Id را فراهم می نماید در حقیقت suEXEC این امکان را برای کاربران آپاچی فراهم می نماید  که قادر به اجرای برنامه های SSI و CGI تحت یک User Id متفاوت نسبت به User Id مربوط به فراخوانی سرویس دهنده وب باشند.بدین ترتیب تهدیدات امنیـتی کاهش و امکان نوشتن و اجرای برنامه های SSI و CGI اختصاصی نوشته شده توسط مهاجمان ، حذف خواهد شد . استفاده از  suEXEC ،می بایست توام با آگاهی و دانش لازم باشد چراکه در صورت استفاده نادرست و یا عدم پیکربندی مناسب و شناخت نسبت به مدیریت setupid Root ،  خود باعث بروز حفره های امنیتی دیگر خواهد شد.. در این رابطه و بمنظور آشنائی با نحوه عملکرد و استفاده از suEXEC می توان از آدرس های زیر استفاده نمود:
    -- برای Apache 1.3.x از آدرس
    http://httpd.apache.org/docs/suexec.html   استفاده شود .
    -- برای Apache 2.0.x  از آدرس  
    http://httpd.apache.org/docs-2.0/suexec.html   استفاده شود. 
    - بررسی لازم در خصوص محتوی دایرکتوری cgi-bin و سایر دایرکتوری های شامل اسکریپت ها انجام و لازم است تمامی اسکریپت های پیش فرض نمونه ، حذف گردند.
    - ایمن سازی PHP . پرداختن به موضوع فوق با توجه به گستردگی مطالب از حوصله این مقاله خارج بوده و صرفا" به دو نمونه مهم در اینخصوص اشاره می گردد :
    - غیر فعال نمودن پارامترهائی که باعث ارائه اطلاعات در HTTP header می گردد .
    - حصول اطمینان از اجرای PHP در حالت safe
    برای دریافت اطلاعات تکمیلی دراین خصوص می توان از آدرس 
    http://www.securityfocus.com/printable/infocus/1706  استفاده نمود .
    -  استفاده از ماژولهای اضافه بمنظوربهبود وضعیت امنیتی. مثلا"ماژول mod_Security می تواند باعث حفاظت در مقابل Cross Site ScriptingXSS  ،  شود . برای آشنائی و مشاهده اطلاعات تکمیلی در این خصوص می توان  از آدرس 
    http://www.modsecurity.org/  استفاده نمود.
    - ممیزی و بررسی اسکریپت ها برای نقاط آسیب پذیر شامل XSS & SQL Injection نیز حائز اهمیت است . در این رابطه می توان از ابزارهای متعددی استفاده نمود. نرم افزار Nikto ( قابل دسترس در آدرس  
    http://www.cirt.net/code/nikto.shtml   )  یکی از مناسبترین ابزارهای پویش و بررسی CGI  است .

چهارمین نقطه آسیب پذیر :  account هائی با رمز عبور ضعیف و یا فاقد رمز عبور
استفاده از رمزعبور، روش های تائید کاربر و کدهای امنیتی در هر گونه تعامل ارتباطی بین کاربران وسیستم های اطلاعاتی ، امری متداول و رایج است . اکثر روش ها ی  تائید کاربران ، نظیر حفاظت فایل و داده ، مستقیما" به رمزهای عبور ارائه شده توسط کاربران ، بستگی خواهد داشت . پس از تائید کاربران ، امکان دستیابی آنان به منابع مشخص شده فراهم و هر یک از آنان  با توجه به امتیازات و مجوزهای نسبت داده شده ، قادر به استفاده از منابع موجودخواهند بود. در اغلب موارد ، فعالیت کاربرانی که مجاز بودن آنان برای دستیابی به منابع ، تائید شده است ، لاگ نشده و یا در صورتیکه فعالیت آنان ثبت گردد ، کمتر سوء ظنی به آنان می تواند وجود داشته باشد . ( آنان پس از تائید وارد میدانی شده اند که بدون هیچگونه ردیابی ، قادر به انجام فعالیت های گسترده ای خواهند بود) . بنابراین ، رمز عبور دارای نقشی حیاتی و اساسی در ایجاد اولین سطح دفاع در یک سیستم اطلاعاتی بوده  و از دست رفتن رمز عبور و یا  ضعف آن می تواند سیستم را در معرض تهدیدات جدی قرار دهد . مهاجمان پس از دستیابی به رمز عبور کاربران تائید شده ( استفاده از مکانیزم های متفاوت ) قادر به دستیابی منابع سیستم و حتی تغییر در تنظیمات سایر account های تعریف شده و موجود بر روی سیستم خواهند بود،عملیاتی که می تواند پیامدهای بسیار منفی را بدنبال داشته باشد . پس می بایست بپذیریم که وجود یک account ضعیف و یا فاقد رمز عبور می تواند تهدیدی جدی در یک سازمان باشد . در این راستا علاوه بر اینکه می بایست از پتانسیل های ارائه شده توسط سیستم عامل با دقت استفاده نمود ، ضروری است ، تابع یک  سیاست امنیتی تدوین شده در رابطه با رمز عبور در سازمان متبوع خود باشیم . تعریف و نگهداری یک account بهمراه رمز عبور مربوطه در سازمان ما تابع چه سیاست امنیتی است ؟  مهمترین و متداولترین نقاط آسیب پذیر در ارتباط با رمز عبور شامل موارد زیر است :

  •  Account  تعریف شده  دارای رمز عبور ضعیف و یا فاقد رمز عبور است .
  •  عدم حفاظت مناسب کاربران از رمزهای عبور ،صرفنظر از استحکام رمزهای عبور تعریف شده .
  •  سیستم عامل و یا سایر نرم افزارهای موجود ، امکان ایجاد account مدیریتی ضعیف  و فاقد رمز عبور را فراهم می نمایند .
  • الگوریتم های Hashing رمز عبور( رمزنگاری مبتنی بر کلید عمومی بر پایه یک مقدار hash ، استوار بوده و بر اساس یک مقدار ورودی که دراختیار الگوریتم hashing گذاشته می گردد ، ایجاد می گردد. در حقیقت مقدار hash ، فرم خلاصه شده و رمز شده ای  از مقدار اولیه خود است  ) ، شناخته شده بوده و در اغلب موارد مقدار Hashe بدست آمده ، بگونه ای ذخیره می گردد که امکان مشاهده آن توسط سایرین وجود خواهد داشت. مناسبترین نوع حفاظت در این راستا ، تبعیت از یک سیاست رمز عبور قدرتمند بوده  که در آن دستورالعمل ها ی لازم برای تعریف یک رمز عبورمناسب مشخص و در ادامه با استفاده از ابزارهای موجود، بررسی لازم در خصوص  استحکام و بی نقص بودن رمز عبور صورت گیرد.

سیستم ها ی در معرض آسیب پذیر 
هر سیستم عامل و یا برنامه ای که فرآیند تائید کاربران آن براساس یک User ID و رمز عبور باشد ، در معرض این تهدید خواهد بود.

نحوه تشخیص آسیب پذیری سیستم
در صورتیکه از account هائی استفاده می شود که بین کاربران متعدد و یا کارکنان موقت  یک سازمان به اشتراک  گذاشته شده و یا کاربران از رمزهای عبور بدرستی حفاظت ننمایند، پتانسیل نفوذ به شبکه توسط یک مهاجم فراهم می گردد.پیکربندی account های جدید کاربران با یک رمز عبور مشابه و یا رمز عبوری که بسادگی قابل حدس باشد نیز  فرصتی مناسب را در اختیار مهاجمان بمنظور دستیابی به منابع اطلاعاتی  موجود در یک سازمان قرار خواهد داد .
لازم است در خصوص ذخیره سازی رمز عبور hashes تصمیم گیری و مشخص شود که محل استقرار و ذخیره سازی آنان در etc/passwd /  و یا etc/shadow / می باشد.قابلیت خواندن فایل etc/passwd /، می بایست توسط تمامی کاربران شبکه وجود داشته تا زمینه و امکان تائید کاربران فراهم گردد. در صورتیکه فایل فوق ، شامل رمزعبور hashed نیز باشد ،  در ادامه و پس از دستیابی کاربران به سیستم ، امکان خواندن مقادیر hash فراهم و مهاجمان می توانند با استفاده از یک برنامه cracker ، تلاش خود را جهت شکستن و تشخیص رمز عبور آغاز و به سرانجام برسانند . فایل etc/shadow/  ، صرفا" برای root قابل خواندن بوده و مکانی مناسب بمنظور ذخیره نمودن مقادیر hashes است . در صورتیکه account های محلی ، توسط /etc/shadow حفاظت نشود ، ریسک رمزهای عبور افزایش خواهد یافت . اکثر سیستم های عامل جدید بصورت پیش فرض از  etc/shadow / بمنظور ذخیره سازی رمز عبور hashes استفاده می نمایند ( مگر اینکه شرایط فوق توسط نصب کننده تغییر یابد ). در این رابطه می توان از الگوریتم MD5 بمنظور hash نمودن رمزهای عبور نیز استفاده نمود. الگوریتم فوق،  بمراتب از الگوریتم قدیمی crypt ایمن تر است .
NIS)Network Information System) ، یک بانک اطلاعاتی توزیع شده بمنظور مدیریت یک شبکه است . در حقیقت  NIS ، استانداردی برای اشتراک فایل ها بین سیستم های کامپیوتری متعدد را فراهم و شامل مجموعه ای از سرویس هائی است که بمنزله یک بانک اطلاعاتی از سرویس ها عمل نموده و اطلاعات مربوط به مکان سرویس ( Mapping ) را در اختیار سایر سرویس های شبکه نظیر( Network File System (NFS) ، قرار می دهد. با توجه به ماهیت طراحی بعمل آمده  ، فایل های پیکربندی NIS ، شامل رمزهای عبور hash  بوده و این امر می تواند امکان خواندن آنان را برای تمامی کاربران فراهم و عملا" رمزهای عبور در معرض تهدید قرار گیرند .نسخه های جدید پیاده سازی شده  از NIS ، نظیر +NIS و یا LDAP عموما" دارای استحکام لازم در ارتباط با رمزهای عبور hashes می باشند( مگر اینکه شرایط فوق توسط نصب کننده تغییر یابد). تنظیم و پیکربندی نسخه های فوق ( نسخه های جدید ) ، مشکل تر بوده و همین امر می تواند استفاده از آنان را با تردید و مشکل مواجه نماید . 
حتی اگر رمزهای عبور hashes توسط /etc/shadow و یا امکانات پیاده سازی شده ، محافظت گردند ، امکان حدس و تشخیص رمزهای عبور توسط سایر افراد وجود خواهد داشت . در این رابطه می توان به موارد متعدد دیگری نظیر : ضعف رمز عبور ، وجود account های غیر استفاده مربوط به کارکنانی که سازمان خود را ترک نموده اند ، اشاره نمود .سازمان ها معمولا" در رابطه با غیر فعال نمودن account مربوط به کاربران قدیمی کوتاهی نموده و لازم است در این رابطه از روش های خاصی استفاده گرد.
نصب های پیش فرض سیستم های عامل و یا شبکه توسط سازندگان و یا مدیران  سیستم و یا شبکه ، می تواند نصب مجموعه ای از سرویس های غیرضروری را  نیز بدنبال داشته باشد.  رویکرد فوق،با اینکه عملیات نصب سیستم عامل و سرویس ها ی مربوطه را تسهیل می نماید ولی  مجموعه ای از سرویس های غیر ضروری و account هائی که بصورت پیش فرض ضعیف ویا فاقد رمز عبور می باشند را بهمراه بر روی سیستم مستقر و پیکربندی می نماید.

نحوه حفاظت در مقابل نقطه آسیب پذیر
بهترین و مناسبترین دفاع در مقابل ضعف رمزهای عبور ، تبعیت از یک سیاست امنیتی مستحکم بوده که دستورالعمل های لازم  کهه موجب می شود رمزهای عبور مناسب و مستحکمی توسط کاربران تعریف و توسط مدیران سیستم بصورت مستمر پیوستگی و استحکام آنان بررسی می گردد با حمایت کامل سازمان . مراحل زیر توصیه های لازم برای ارائه یک سیاست امنیتی مناسب می باشد :

  • اطمینان ازاستحکام و انسجام  رمز های عبور . با استفاده از سخت افزار مناسب و اختصاص زمان کافی ، می توان هر رمز عبوری را  crack نمود. در این راستا می  توان با استفاده ازروش های ساده و در عین حال موفقیت آمیز، عملیات تشخیص رمز عبور را انجام داد . اغلب برنامه های تشخیص دهنده رمزعبوراز روشی موسوم به "حملات مبتنی بر سبک دیکشنری " ، استفاده می نمایند. با توجه به اینکه روش های رمز نگاری تا حدود زیادی شناخته شده می باشند  ، برنامه های  فوق ، قادر به مقایسه  شکل  رمز شده یک رمز عبور در مقابل شکل  های رمز شده کلمات دیکشنری می باشند( در زبان های متعدد و استفاده از اسامی مناسب بهمراه جایگشت های مختلف آنان  ) . بنابراین ، رمز عبوری  که ریشه آن در نهایت یک کلمه شناخته شده باشد ، دارای استعداد ذاتی در رابطه با این نوع از حملات خواهد بود . تعداد زیادی از سازمان ها ، آموزش های لازم در خصوص نحوه تعریف رمزهای عبور را به کارکنان خود داده و به آنان گفته شده است  که رمزهای عبور مشتمل بر ترکیبی از حروف الفبائی و کاراکترهای ویژه را برای خود تعریف نمایند.متاسفانه اکثر کاربران این موضوع را رعایت ننموده و  بمنظور تعریف یک رمز عبور با نام "password" ، صرفا" اقدام به تبدیل حروف به اعداد و یا حروف ویژه می نمایند ( pa$$w0rd) . چنین جایگشت هائی نیز قادر به  مقاومت در مقابل یک تهاجم مبتنی بر دیکشنری نبوده و  "pa$$w0rd" به روش مشابهی که "password" تشخیص داده می شود ، crack خواهد شد .
    یک رمز عبور خوب ، نمی بایست از ریشه یک  کلمه و یا نام شناخته شده ای  اقتباس شده باشد .در این راستا لازم است به کاربران آموزش لازم در خصوص انتخاب و ایجاد رمزهای عبور از موارد تصادفی نظیر  یک عبارت ، عنوان یک کتاب ،نام یک آواز و یا نام یک فیلم  داده شود. با انتخاب  یک رشته طولانی که بر اساس رویکردهای خاصی می تواند انتخاب گردد( گرفتن اولین حرف هر کلمه ، جایگزینی یک کاراکتر خاص برای یک کلمه ، حذف تمامی حروف صدادارو  سایر موارد ) ، کاربران قادر به ایجاد رمزهای عبور مشتمل بر ترکیبی از حروف الفبائی و حروف ویژه بوده که در صورت مواجه شدن  با حملات مبتنی بر دیکشنری ، تشخیص آنان بسختی انجام می شود. لازم است به این نکته نیز اشاره گردد که رمزعبور می بایست براحتی بخاطر سپرده شده و بازیابی ( یادآوری)آن مشکل نباشد ( هدف از ذخیره سازی ، بازیابی است اگر چیزی را ذخیره  نمائیم ولی در زمان مورد نظر قادر به بازیابی آن نباشیم ، سیستم ذخیره و بازیابی ما با اشکال مواجه شده است ! ). پس از تدوین دستورالعمل لازم بمنظور تولید رمزهای عبور مناسب و  آموزش کاربران بمنظور پایبندی به  اصول امنیتی تعریف شده ، می بایست از روتین ها ی جانبی متعددی بمنظور اطمینان از پیروی کاربران از دستوراالعمل های اعلام شده ، استفاده گردد. بهترین گزینه در این راستا ، بررسی صحت رمزهای عبور پس از اعمال تغییرات توسط کاربران است .
    پس از ارائه دستورالعمل ها ی لازم و مناسب برای ایجاد رمزهای عبور ، روتین های تکمیلی خاصی  می بایست ایجاد تا این اطمینان حاصل گردد که کاربران پایبند به دستورالعمل های ارائه شده بوده اند. بهترین روش در این زمینه ، بررسی صحت اعتبار رمزهای عبور پس  از اعمال تغییرات توسط کاربران است . اکثر نمونه های یونیکس و لینوکس می توانند از Npasswd بمنظور بررسی رمز عبور در مقابل سیاست امنیتی موجود استفاده نمایند. سیستم های PAM-Enabled  نیز می توانند از Cracklib ( کتابخانه لازم بمنظور هماهنگی با  Crack ) بمنظور بررسی رمزهای عبور ایجاد شده ، استفاده نمایند.اکثر سیستم های PAM-enabled را می توان بگونه ای پیکربندی نمود که رمزهای عبوری  را که با سیاست های مشخص شده مطابقت ندارد ، رد نمایند .
    درمواردیکه امکان استفاده از ابزارهائی نظیر Npasswd و یا کتابخانه های PAM-Enabled ، وجود ندارد، مدیران سیستم و شبکه می توانند از برنامه های کاربردی Cracking  در حالت stand-alone و بعنوان یک روتین کنشگرایانه مستمر، استفاده نمایند. LC4 )l0phtcrack version 4) و
    John the Ripper  ، نمونه هائی از برنامه های فوق ، می باشند.  لازم است مجددا" به این موضوع اشاره گردد که بدون کسب مجوز لازم از مدیران ارشد سیستم در سازمان ، نمی بایست از برنامه های cracking استفاده گردد.پس از کسب مجوزهای  لازم ، می توان عملیات فبررسی رمزهای عبور  را بر روی یک ماشین حفاظت شده انجام داد. به کاربرانی که رمزهای عبور آنان crack می گردد، بصورت محرمانه وضعیت فوق گزارش و دستورالعمل های لازم در خصوص نحوه انتخاب یک رمز عبور مناسب نیز به آنان ارائه گردد .اخیرا" و در پاسخ به رمزهای عبور ضعیف ، استفاده از روش هائی دیگر بمنظور تائید کاربران،  نظیر بیومتریک (زیست سنجی )  ، نیز مورد توجه  واقع شده است .

  • حفاظت رمزهای عبور مستحکم . در صورتیکه رمزهای عبور hashes در etc/passwd /  ذخیره می گردند ، سیستم را بهنگام نموده تا از  /etc/shadow استفاده گردد . در صورتیکه بر روی  سیتستم  NIS و یا LDAP اجراء که امکان حفاظت hashes وجود نداشته باشد ، هر کاربری قادر به خواندن رمزهای عبور hashes و تلاش بمنظور cracking  آنان ، خواهد بود.در این رابطه  می بایست بررسی لازم در خصوص استفاده از گزینه های ایمن تری از نسخه های NIS و LDAP را انجام داد. تا زمانیکه این نوع برنامه های غیر ایمن وجود داشته و با نمونه های ایمن جایگزین نشده اند، می بایست  مجوزهای مربوطه را ایمن و از ابزارهای کنشکرایانه بصورت مستمر استفاده گردد.در این رابطه پیشنهاد می گردد که در مقابل استفاده از الگوریتم قدیمی Crypt بمنظورhash نمودن رمزهای عبور از الگوریتم  MD5 استفاده گردد.
    حتی اگر رمزهای عبور ، مستحکم و قدرتمند باشند ، در صورت عدم حفاظت آنان توسط کاربران ، سیستم های موجود در یک سازمان در معرض تهدید قرار خواهند گرفت .  یک سیاست امنیتی مناسب ، می بایست شامل دستورالعمل های لازم بمنظور آموزش کاربران در رابطه با حفاظت رمزهای عبور می باشد.عدم ارائه رمز عبور به افراد دیگر، عدم نوشتن رمز عبور در محلی که امکان خواندن آن برای دیگران وجود داشته باشد و حفاظت اتوماتیک فایل  هائی که رمزهای عبور در آن ذخیره شده اند ، از جمله مواردی می باشند که می بایست به کاربران آموزش داده شود. اغلب کاربران در مواجهه با پیامی مشابه "Your password has expired"  که نشاندهنده اتمام عمر مفید یک رمز عبور است ، یک رمز عبور ضعیف را برای خود انتخاب می نمایند ، بنابراین لازم است در فرصت مناسب و قبل از برخورد با اینچنین پیام هائی ، به کاربران آموزش های لازم ارائه گردد.

  • کنترل دائم و پیوسته accounts . هر account مدیریتی و یا مبتنی بر سرویس که از آن استفاده نمی گردد، می بایست غیر فعال و یا در صورت امکان از روی سیستم حذف گردد. هر account مدیریتی و یا مبتنی بر سرویس که از آن استفاده می گردد ، می بایست دارای رمزعبورجدید و مستحکمی باشد. پیکربندی account های جدید کاربران  با رمزهای عبور اولیه (تولیده شده بصورت تصادفی)  و ضرورت تغییر رمزهای عبور توسط کاربران و در اولین log in  نیز می تواند در این زمینه مفید واقع شود. ممیزی account ها بر روی سیستم را انجام  و لازم است در این رابطه یک لیستی اصلی ایجاد گردد .در این رابطه می بایست رمزهای عبور در ارتباط با سیستم هائی نظیر روترها ، چاپگرهای دیجیتالی متصل شده به اینترنت و سایر موارد دیگر نیز مورد بررسی قرار گرفته و روتین هائی خاص بمنظور افزودن account های تائید شده  به لیست و یا حذف  account هائی که ضرورتی به استفاده از آنان نمی باشد ، پیاده سازی و همواره خود را پایبند به آن بدانیم .اعتبار لیست را در فواصل زمانی خاصی بررسی تا از بهنگام بودن آن اطمینان حاصل گردد.از روتین های  خاصی بمنظورحذف account متعلق به کارکنان و یا پیمانکارانی که سازمان را ترک نموده اند ، استفاده گردد .

منبع:srco.ir

مهمترین نقاط آسیب پذیر یونیکس و لینوکس ( بخش اول )

سیستم عامل، یکی از عناصر چهار گانه در یک سیستم کامپیوتری است که دارای نقشی بسیار مهم و حیاتی در نحوه مدیریت منابع سخت افزاری و نرم افزاری است . پرداختن به مقوله  امنیت سیستم های عامل ، همواره از بحث های مهم در رابطه با ایمن سازی اطلاعات در یک سیستم کامپیوتری بوده که امروزه با گسترش اینترنت ، اهمیت آن مضاعف شده است . بررسی و آنالیز امنیت در سیستم های عامل می بایست با ظرافت و در چارچوبی کاملا" علمی و با در نظر گرفتن تمامی واقعیت های موجود ، انجام تا از یک طرف تصمیم گیرندگان مسائل استراتژیک در یک سازمان قادر به انتخاب مستند و منطقی یک سیستم عامل باشند و از طرف دیگر امکان نگهداری و پشتیبانی آن با در نظر گرفتن مجموعه تهدیدات موجود و آتی  ، بسرعت و بسادگی میسر گردد .
اکثر کرم ها و سایر حملات موفقیت آمیز در اینترنت ، بدلیل وجود نقاط آسیب پذیر در تعدادی  اندک  از سرویس های سیستم  های عامل متداول است . مهاجمان ، با فرصت طلبی خاص خود از روش  های متعددی بمنظور سوء استفاده از نقاط ضعف امنیتی شناخته شده ، استفاده نموده  و در این راستا ابزارهای  متنوع ، موثر و گسترده ای را بمنظور نیل به اهداف خود ، بخدمت می گیرند . مهاجمان ، در این رهگذر متمرکز بر سازمان ها و موسساتی می گردند که هنوز مسائل موجود امنیتی ( حفره ها و نقاط آسیب پذیر ) خود را برطرف نکرده و بدون هیچگونه تبعیضی آنان را بعنوان هدف ، انتخاب می نمایند . مهاجمان بسادگی و بصورت مخرب ،  کرم هائی نظیر : بلستر ، اسلامر و Code Red را در شبکه  منتشر می نمایند. آگاهی از مهمترین نقاط آسیب پذیر در سیستم های  عامل ، امری ضروری است . با شناسائی و آنالیز اینگونه نقاط آسیب پذیر توسط کارشناسان امنیت اطلاعات ، سازمان ها و موسسات قادر به استفاده از مستندات علمی تدوین شده بمنظور برخورد منطقی با مشکلات موجود و ایجاد یک لایه حفاظتی مناسب می باشند.
در مجموعه مقالاتی که ارائه خواهد شد ، به بررسی مهمترین نقاط آسیب پذیر یونیکس و لینوکس خواهیم پرداخت . در این راستا ، پس از معرفی هر یک از نقاط آسیب پذیر ، علت وجود ضعف امنیتی ، سیستم های عامل در معرض تهدید ، روش های  تشخیص آسیب پذیری سیستم و نحوه مقابله و یا پیشگیری در مقابل هر یک از نقاط آسیب پذیر ، بررسی می گردد .همزمان با  ارائه مجموعه مقالات مرتبط با  یونیکس ( پنج مقاله ) ، به بررسی مهمترین نقاط آسیب پذیر در ویندوز  ، طی مقالات جداگانه ای خواهیم پرداخت .
همانگونه که اشاره گردید ، اغلب تهدیدات و حملات ، متاثر از وجود نقاط آسیب پذیر در سیستم های عامل بوده که زمینه تهاجم را برای مهاجمان فراهم می آورد .  شناسائی و آنالیز نقاط آسیب پذیر در هر یک از سیستم های عامل ، ماحصل  تلاش و پردازش دهها کارشناس امنیتی ورزیده در سطح جهان است و می بایست مدیران سیستم و شبکه در یک سازمان بسرعت با آنان آشنا و اقدامات لازم را انجام دهند.
نقاط آسیب پذیر موجود در هر سیستم عامل  که در ادامه به آنان اشاره می گردد ، سندی پویا و شامل دستورالعمل های لازم بمنظور برخورد مناسب با هر یک از نقاط آسیب پذیر و لینک هائی به سایر اطلاعات مفید و تکمیلی مرتبط با ضعف امنیتی است .

مهمترین نقاط آسیب پذیر یونیکس:
یونیکس ، یکی از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد . تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از یونیکس ( نسخه های متفاوت )  بعنوان سیستم عامل استفاده می نمایند . با توجه به حملات متنوع و گسترده انجام شده ، می توان مهمترین نقاط آسیب پذیر یونیکس را به ده گروه عمده تقسیم نمود :

  • BIND Domain Name System

  • Remote Procedure Calls (RPC)

  • Apache Web Server

  • General UNIX Authentication Accounts with No Passwords or Weak Passwords

  • Clear Text Services

  • Sendmail

  • Simple Network Management Protocol (SNMP)

  • Secure Shell (SSH)

  • Misconfiguration of Enterprise Services NIS/NFS

  • Open Secure Sockets Layer (SSL)

در بخش اول این مقاله ، به بررسی BIND Domain Name System  وRemote Procedure Calls   (موارد یک و دو)  ، خواهیم پرداخت .

اولین نقطه آسیب پذیر : BIND Domain Name System
 نرم افزار BIND ) Berkeley Internet Name Domain) ، در مقیاس گسترده ای و بمنظور پیاده سازی DNS)Domain Name Service) ، استفاده می گردد. BIND ، سیستمی حیاتی است که از آن بمنظور تبدیل اسامی میزبان ( نظیر : http://www.srco.ir/ ) به آدرس IP ریجستر شده ،استفاده می گردد .با توجه به استفاده وسیع از BIND  و جایگاه حیاتی آن در یک شبکه کامپیوتری ، مهاجمان آن را بعنوان یک هدف مناسب بمنظور انجام حملات ، خصوصا"  از نوع DoS)Denila Of  Service) انتخاب و حملات متنوعی را در ارتباط با آن انجام داده اند. حملات فوق،از کارافتادن سرویس DNS و عدم دستیابی به اینترنت برای سرویس های مربوطه و میزبانان را می تواند بدنبال داشته باشد. با اینکه پیاده کنندگان BIND ، تلاشی مستمر را از گذشته تا کنون بمنظور برطرف نمودن نقاط آسیب پذیر انجام داده اند ، ولی هنوز تعداد زیادی از نقاط آسیب پذیر قدیمی ، بدرستی پیکربندی نشده و سرویس دهندگان آسیب پذیر در آن باقی مانده است .
عوامل متعددی در بروز اینگونه حملات نقش دارد: عدم آگاهی لازم مدیران سیستم در خصوص ارتقاء امنیتی سیستم هائی که بر روی آنان Bind deamon  بصورت غیر ضروری  اجراء می گردد و پیکربندی نامناسب فایل ها ، نمونه هائی از عوامل فوق بوده و  می تواند زمینه  یک تهاجم از نوع DoS  ، یک Buffer Overflow و یا  بروز اشکال در DNS Cache  را بدنبال داشته باشد.از جمله مواردیکه اخیرا" در رابطه با ضعف امنیتی  BIND کشف شده است مربوط به یک تهاجم از نوع DoS است . مقاله
CERT Advisory CA-2002-15  جزئیات بیشتری را در این رابطه ارائه می نماید. از دیگر حملات اخیر ، تهاجمی  از نوع Buffer Overflow است . مقاله CERT Advisory CA-2002-19  جزئیات بیشتری را در این رابطه در اختیار قرار می دهد. درتهاجم فوق ، یک مهاجم از نسخه آسیب پذیر پیاده سازی  توابع Resolver مربوط به DNS  استفاده و با ارسال پاسخ های مخرب به DNS و اجرای کد دلخواه ، امکان  سوء استفاده از نقطه آسیب پذیر فوق را فراهم و حتی دربرخی موارد می تواند زمینه بروز یک تهاجم از نوع  DoS را باعث گردد .
تهدیدی دیگر که می تواند در این رابطه وجود داشته باشد ، حضور یک سرویس دهنده BIND آسیب پذیر در شبکه است . در چنین مواردی ، مهاجمان از وضعیت فوق استفاده و از آن بمنزله مکانی جهت استقرار داده های غیر معتبر خود و بدون آگاهی مدیرسیستم استفاده می نمایند. بدین ترتیب ، مهاجمان از سرویس دهنده بعنوان پلات فرمی بمنظور فعالیت های آتی مخرب خود بهره برداری خواهند کرد .

سیستم های عامل در معرض تهدید :
تقریبا" تمامی سیستم های عامل  یونیکس و لینوکس بهمراه یک نسخه از BIND  ارائه شده اند .در صورت پیکربندی میزبان بعنوان سرویس دهنده ، نسخه ای  از BIND بر روی آن نصب خواهد شد.

نحوه تشخیص آسیب پذیری سیستم
در صورت دارا بودن  نسخه خاصی از BIND  که بهمراه سیستم عامل ارائه و بر روی سیستم نصب شده است ، می بایست عملیات بهنگام سازی آن را با استفاده از آخرین Patch های ارائه شده توسط تولید کننده ( عرضه کننده ) انجام داد. در صورت استفاده از نسخه BIND مربوط به  ISC: Internet Software Consortium ، می بایست از نصب آخرین نسخه BIND ، اطمینان حاصل نمود . در صورتیکه BIND  نصب شده بر روی سیستم ، نسخه ای قدیمی بوده و یا بطور کامل  Patch نشده باشد ، احتمال آسیب پذیری سیستم وجود خواهد داشت . در اکثر سیستم ها ، دستور : "named - v " ، اطلاعات لازم در خصوص نسخه BIND نصب شده بر روی سیستم را بصورت X.Y.Z نمایش خواهد داد . X ، نشاندهنده نسخه اصلی ، Y ،نشاندهنده جزئیات نسخه و Z نشاندهنده یک Patch Level است . پیشنهاد می گردد ، آخرین نسخه BIND  ارائه شده  توسط  ISC  را دریافت و آن را  بر روی سیستم نصب نمود. آخرین نسخه موجود Version 9.2.2 بوده و می توان آن را از سایت 
ISC دریافت نمود.  یکی دیگر از رویکردهای کنشگرایانه مرتبط با نگهداری امنیت  BIND ،  عضویت در گروه های خبری نظیر Symantec  برای آگاهی از آخرین هشدارهای امنیتی است . در این راستا می توان از یک برنامه پویشگر بهنگام شده  که قادر به بررسی دقیق سیستم های DNS بمنظور تشخیص نقاط  آسیب پذیراست ، نیز استفاده گردد .

نحوه حفاظت در مقابل نقطه آسیب پذیر
بمنظور حفاظت در مقابل نقاط آسیب پذیر مرتبط با BIND موارد زیر پیشنهاد می گردد :

  • غیر فعال نمودن BIND deamon ( به آن  named نیز اطلاق  می گردد ) بر روی سیستم هائی که بعنوان یک سرویس دهنده DNS در نظر گرفته نشده اند .  بمنظور پیشگیری ازاعمال برخی تغییرات خاص ( نظیر فعال نمودن مجدد آن ) ،  می توان  نرم افزار BIND  را از روی اینگونه سیستم ها حذف نمود.

  • بمنظور بهنگام سازی سرویس دهنده DNS ، از تمامی Patch های ارائه شده توسط تولید کنندگان استفاده و در صورت امکان آن را به آخرین نسخه موجود ارتقاء دهید . برای دریافت اطلاعات تکمیلی در رابطه با نصب مطمئن تر BIND ، از مقالات ارائه شده درسایت CERT و بخش UNIX Security Checklist ، استفاده نمائید .

  • بمنظور پیچیده تر نمودن حملات اتوماتیک و یا پویش سیستم مورد نظر ، Banner مربوط به " Version String " را از BIND حذف و نسخه واقعی BIND  را با یک شماره نسخه غیرواقعی در فایل named.conf ، جایگزین نمائید .

  • امکان ارسال انتقالات Zone را صرفا" برای سرویس دهندگان ثانویه DNS در Domain فراهم نمائید (  secondary DNS servers) . امکان انتقالات Zone در ارتباط با  Domain های Parent و Child را غیر فعال و در مقابل از امکان Delegation ( واگذاری مسئولیت ) و فورواردینگ ( Forwarding ) استفاده نمائید .

  • امکان Recursion و glue fetching را بمنظور حفاظت در مقابل عماکرد ناصحیح  DNS Cache ، غیر فعال نمائید .

  • بمنظور حفاظت در رابطه با استفاده از "named" و  تحت تاثیر قرار دادن تمامی سیستم ، BIND را محدود نمائید . بنابراین BIND بعنوان یک کاربر non-privilage در دایرکتوری Chroot اجراء می گردد. برای نسخه شمازه نه BIND از آدرس  http://www.losurs.org/docs/howto/Chroot-BIND.html  استفاده نمائید .

بمنظور حفاظت در مقابل حملات اخیر و مرتبط با  نقاط آسیب پذیر کشف شده BIND  می توان از منابع زیر استفاده نمود:

برای آگاهی و استفاده از پیشنهادات لازم بمنظور نصب ایمن تر BIND بر روی سیستم های سولاریس ، می توان از آدرس : Running the BIND9 DNS Server Securely   و آرشیو مقالات ارائه شده در آدرس Afentis  استفاده نمود.

دومین  نقطه آسیب پذیر :  ( Remote Procedure Calls (RPC
با استفاده از RPC برنامه های موجود بر روی یک کامپیوتر قادر به  اجرای روتین هائی در کامپیوتر دوم از طریق  ارسال داده و بازیابی نتایج می باشند . با توجه به جایگاه عملیاتی RPC ، استفاده از آن  بسیار متداول بوده و درموارد متعددی از آن بمنظور ارائه سرویس های توزیع شده شبکه نظیر مدیریت از راه دور ، اشتراک فایل NFS و NIS  استفاده می گردد.وجود ضعف های امنیتی متعدد در RPC باعث  بهره برداری مهاجمان بمنظور انجام حملات مختلفی شده است .دراکثر موارد ، سرویس های RPC با مجوزهای بیش از حد معمول  ، اجراء می گردند . بدین ترتیب یک مهاجم غیر مجاز قادر به استفاده از سیستم های آسیب پذیر در جهت اهداف خود خواهد بود.اکثر حملات از نوع DoS در  سال 1999 و اوایل سال 2000 در ارتباط با سیستم هائی بود که دارای ضعف امنیـتی و نقظه آسیب پذیر RPC بودند. مثلا" حملات گشترده و موفقیت آمیز در رابطه با سیستم های نظامی امریکا ، بدلیل نقطه آسیب پذیر RPC کشف شده در صدها دستگاه کامپیوتر مربوط به وزارت دفاع امریکا بوده است . اخیرا" نیز  وجود یک ضعف امنیتی DCOM RPC  در ویندوز ،  باعث انتشار گسترده یک کرم  در سطح اینترنت گردید .

سیستم های عامل در معرض تهدید :
تمامی نسخه های یونیکس و لینوکس که بر روی آنان سرویس های RPC نصب شده است در معرض این آسیب می باشند .

نحوه تشخیص آسیب پذیری سیستم
با استفاده از یک پویشگر نقاط آسیب پذیر و یا دستور " rpcinfo" ، می توان از اجراء یکی از سرویس های متداول RPC  بر روی سیستم آگاه گرید :

RPC Service

RPC Program Number

rpc.ttdbserverd 100083
rpc.cmsd 100068
rpc.statd 100024
rpc.mountd 100005
sadmind 100232
cachefsd 100235
snmpXdmid 100249

سرویس های RPC ، عموما" از طریق حملات buffer Overflow ، مورد سوء استفاده قرار می گیرند .علت این امر ، عدم انجام بررسی لازم و کافی در خصوص خطاها و یا اعتبار داده های ورودی توسط برنامه های RPC است . نقاط آسیب پذیر Buffer overflow ، این امکان را برای یک مهاجم فراهم می نماید که داده غیر قابل پیش بینی را ( اغلب بصورت کد مخرب ) به درون حافظه برنامه ، ارسال نماید . با توجه به ضعف موجود در رابطه با بررسی خطاء و  صحت داده ، داده ارسالی مکان هائی حساس و کلیدی که مورد استفاده پردازنده می باشند را بازنویسی می نماید.در یک تهاجم موفقیت آمیز Overflow ، کد مخرب ارسالی ،در ادامه توسط سیستم عامل اجراء می گردد . با توجه به اینکه تعداد زیادی از سرویس های RPC ، با مجوزهای بیش از حد معمول ،  اجراء می گردند ، استفاده موفقیت آمیز از نقاط آسیب پذیر فوق می تواند امکان دسـیابی غیر مجاز و از راه  دور را به سیستم فراهم می نماید.

نحوه حفاظت در مقابل نقطه آسیب پذیر 
بمنظور حفاظت سیستم در مقابل حملات مبتنی بر RPC ، موارد زیر پیشنهاد می گردد :

  • غیر فعال نمودن و یا حذف هر یک از سرویس های  RPC که ضرورتی به استفاده از آن  بر روی شبکه  نمی باشد .
  • نصب آخرین Patch ارائه شده در رابطه با سرویس هائی که امکان حذف آنان وجود ندارد:
    - برای نرم افزار سولاریس از آدرس  (
       http://sunsolve.sun.com   )   استفاده گردد.
    - برای IBM AIX  از آدرس :
    http://www.ibm.com/support/us  و  http://techsupport.services.ibm.com/server/fixes   استفاده گردد.
    - برای نرم افزار SGI  از آدرس : 
    http://support.sgi.com/  استفاده گردد .
    - برای کامپک ( Digital Unix ) از آدرس   
    http://www.compaq.com/support 
    - برای لینوکس  از آدرس : 
    http://www.redhat.com/apps/support/errata    و http://www.debian.org./security  استفاده گردد .
  •  عملیات جستجو بمنظور آگاهی و نصب آخرین Patch  مربوطه می بایست بصورت مستمر انجام شود.
  • پورت 111 ( TCP و UDP ) مربوط به RPC portmapper  و پورت 135 ( TCP و UDP ) مربوط به  Windows RPC را در سطح روتر و یا فایروال بلاک نمائید .
  •  پورت های Loopback  32770 ، 32789  مربوط بهTCP و UDP را بلاک نمائید .
  • فعال نمودن یک پشته غیراجرائی  بر روی سیستم های عاملی که از ویژگی فوق ، حمایت می نمایند. استفاده از یک پشته غیراجرائی ، لایه ای حفاظتی در مقابل تمامی حملات Buffer overflows نبوده ولی می تواند عاملی موثر در جهت مقابله با برخی از حملات استاندارد گردد.
  • در ارتباط با سیستم های فایل NFS صادراتی  ، مراحل زیر می بایست دنبال گردد :
    - استفاده از میزبان / IP   مبتنی بر لیست های صادراتی
    - پیکربندی سیستم های  فایل صادراتی بصورت فقط خواندنی
    - استفاده از "nfsbug" برای پویش نقاط آسیب پذیر 

برای اخذ اطلاعات تکمیلی در رابطه با نقاط آسیب پذیر RPC ،  می توان از آدرس های زیر استفاده نمود :

آشنائی با VoIP ( بخش دوم )

اینترنت در عمر نسبتا" کوتاه خود توانسته است منشاء تحولات چشمگیری در عرصه های متفاوت حیات بشریت باشد . فن آوری VoIP نمونه ای در این زمینه است که با استفاده از آن می توان از زیرساخت اینترنت برای مکالمات تلفنی استفاده  نمود . ( در مقابل استفاده از یک خط تلفن ) . فن آوری فوق علیرغم ارائه امکانات گسترده  ، مسائل و چالش های امنیتی مختص به خود را دارا است . در  ادامه با فن آوری فوق از بعد مسائل امنیتی بیشتر آشنا خواهیم شد. 

VoIP چیست ؟
VoIP ( برگرفته از Voice over internet protocol  ) که با نام IP تلفنی نیز از آن یاد می شود ، امکان استفاده از اینترنت برای مکالمات تلفنی را فراهم می نماید . در مقابل استفاده از خطوط تلفن سنتی ، VoIP از فن آوری دیجیتال استفاده می نماید و نیازمند یک اتصال broadband نظیر DSL است . هم اینک شرکت های متعددی سرویس فوق را در اختیار علاقه مندان قرار می دهند .
متداولترین کاربرد VoIP برای موارد شخصی و استفاده در منازل ، سرویس های تلفنی مبتنی بر اینترنت است که با محوریت یک سوئیچ تلفن انجام می شود . با استفاده از فن آوری فوق ، استفاده کنندگان می توانند همچنان دارای یک شماره تلفن باشند . در چنین مواردی ممکن است از یک آداپتور نیز استفاده گردد. آداپتور فوق این امکان را دراختیار استفاده کننده قرارخواهد داد تا بتوانند از یک تلفن معمولی نیز استفاده نمایند .
در زمان استفاده از سرویس فوق ، مخاطب شما متوجه این موضوع نخواهد شد که شما از فن آوری
VoIP استفاده می نمائید و قادر به تشخیص دقیق تفاوت سرویس فوق نسبت به یک تلفن سنتی نمی باشد . 

چالش های امنیتی VoIP
با توجه به این که فن آوری
VoIP  در ارتباط با اتصال اینترنت است و از آن استفاده می نماید ، مشکلات و مسائل امنیتی در ارتباط با کامپیوتر متصل شده به اینترنت می تواند سرویس فوق را نیز تحت تاثیر قرار دهد. فن آوری VoIP هنوز جوان است و بحث های مختلفی در خصوص ظرفیت ریسیک پذیری آن وجود دارد . مهاجمان ممکن است قادر به انجام فعالیت هائی نظیر قطع مکالمه تلفنی ، استراق سمع ، برنامه ریزی و هدایت حملات مبتنی بر مهندسی اجتماعی با بررسی Caller ID و در نهایت از کار انداختن سرویس فوق باشند . 
فعالیت هائی که مستلزم استفاده از حجم بالائی از منابع شبکه است ، نظیر دریافت فایل های حجیم ، بازی های
online ، استفاده از محتویات چندرسانه ای ( صوت و تصویر ) ، می تواند سرویس VoIP را تحت تاثیر قرار دهد .
در زمان استفاده از فن آوری
VoIP  ممکن با مسائل دیگری که در ارتباط با روتینگ تلفن بر روی اتصال broadband اینترنت است نیز برخورد نمائیم . برخلاف خطوط تلفن سنتی ، که  امکان استفاده از آنان حتی در صوت قطع برق وجود دارد ، سرویس VoIP در چنین مواردی غیرقابل استفاده می گردد و ممکن است مسائل خاصی را برای سیستم های امنیتی منازل و یا دستیابی به شماره تلفن های اضطراری به دنبال داشته باشد .

نحوه حفاطت
در زمان استفاده از سرویس فوق لازم است به موارد زیر توجه گردد :

  • بهنگام نگه داشتن نرم افزارها : در صورتی که تولید کنندگان نرم افزار برای سیستم عامل دستگاه مورد نظر نسخه های بهنگام شده ای را ارائه داده اند ، می بایست در اولین فرصت نسبت به نصب آنان اقدام گردد . نسخه های بهنگام شده ممکن است فرآیند بهنگام سازی را در سطح Firmware انجام دهند . با بهنگام سازی نرم افزارهای موجود ، پیشگیری لازم در خصوص برخی حملات برنامه ریزی شده با هدف بهره گیری از نقاط آسیب پذیر  انجام خواهد شد . 

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

  • استفاده از گزینه ها و تنظمیات امنیتی : برخی از ارائه دهندگان سرویس VoIP ،  امکان رمزنگاری اطلاعات را نیز به عنوان یک سرویس دیگر در اختیار مشتریان خود قرار می دهند . در صورت وجود نگرانی در خصوص تعرض به حریم خصوصی خود ، می توان از این ویژگی و سایر گزینه های موجود در این رابطه استفاده نمود . 

  • نصب و یا فعال نمودن یک فایروال : فایروال ها  با بررسی بسته های اطلاعاتی می توانند یک سطح حفاظتی مناسب در خصوص فیلتر نمودن برخی کدهای مخرب جهت ورود به سیستم شما را انجام دهند . برخی از سیستم های عامل به همراه یک فایروال ارائه می گردند. در چنین مواردی لازم است از فعال بودن آنان اطمینان حاصل نمود .

  • بررسی تنظیمات امنیتی : هم کامپیوتر شما و هم تجهیزات و نرم افزارهای ارائه شده جهت استفاده از سرویس VoIP ،‌ امکانات و گزینه های متفاوتی را در اختیار شما قرار می دهند . فعال نمودن برخی گزینه ها ممکن است ضریب آسیب پذیری شما را در مقابل حملات افزایش دهد . بنابراین لازم است گزینه های غیرضروری را غیرفعال نمود . پیشنهاد می گردد  تنظیمات امنیتی به دقت بررسی گردد و صرفا" گزینه هائی انتخاب شود که ضمن تامین اهداف عملیاتی ، باعث افزایش ضریب آسیب پذیری شما نگردد .  

منبع:srco.ir

آشنائی با VoIP ( بخش اول )

ارتباطات یکی از نیازهای حیاتی بشریت است و انسان همواره به دنبال ابداع فن آورهائی بوده است  که بتواند با استفاده از آنان با سایر همنوعان خود ارتباط برقرار نماید . در گذشته ای نه چندان دور که انسان استفاده از اینترنت را تجربه نکرده بود ، ارتباطات محاوره ای صرفا" از طریق تلفن و به کمک خطوط PSTN ( برگرفته از  Public Switched Telephone Network ) ، انجام می گردید . در سیستم فوق ، سیگنال های صوتی آنالوگ با استفاده از کابل های مسی حمل و  مبادله داده خصوصا" در مسافت های طولانی گرانقیمت و ارتباطات دوسویه ویدیوئی رویائی بیش نبود ( در آن زمان صرفا" از تلویزیون استفاده می گردید که به عنوان یک رسانه دوسویه محسوب نمی گردد ).
در سالیان اخیر ما شاهد اتفاقات جالبی بوده ایم که هر یک به سهم خود تاثیری غیرقابل انکار در حیات بشریت داشته اند . ابداع کامپیوترهای شخصی ، فن آوری های جدید ارتباطی نظیر تلفن های سلولی و نهایتا" اینترنت نمونه هائی در این زمینه می باشند که باعث شده است انسان بتواند با استفاده از سرویس های جدیدی نظیر نامه الکترونیکی ، چت و مواردی‌ دیگر با سایر افراد ارتباط برقرار نماید .
در حال حاضر می توانیم نظاره گر یک انقلاب واقعی در عرصه ارتباطات باشیم . هر شخص با استفاده از کامپیوتر و اینترنت می تواند با سایر افراد مورد علاقه خود ارتباط برقرار نموده ، داده ئی را مبادله و یا از طریق امکانات نرم افزاری موجود با یکدیگر گفتگو نمایند . ما نمی دانیم دقیقا" در آینده چه اتفاقی خواهد افتاد ولی این را می دانیم که کامپیوتر دارای نقشی محوری و اساسی در این رابطه خواهد بود . اینترنت با سرعت بالا در همه جا استفاده خواهد شد و مردم با یکدیگر به صورت صوتی و  تصویری ارتباط برقرار خواهند نمود .
به هرحال ، رشد بی سابقه اینترنت در سالیان اخیر این نوید را می دهد که بتوان از زیرساخت موجود به عنوان یک گزینه مطلوب به منظور ارتباطات استفاده نمود .

VoIP چیست ؟
VoIP ( برگرفته از Voice over internet protocol  ) که با نام IP تلفنی نیز از آن یاد می شود ، امکان استفاده از اینترنت به منظور مکالمات تلفنی را فراهم می نماید . در مقابل استفاده از خطوط تلفن سنتی ، VoIP از فن آوری دیجیتال استفاده می نماید و نیازمند یک اتصال broadband نظیر DSL
است . هم اینک شرکت های متعددی سرویس فوق را در اختیار علاقه مندان قرار می دهند .
در واقع ، با استفاده از فن آوری
VoIP  صدای انسان توسط بسته های اطلاعاتی IP و از طریق اینترنت ارسال می گردد . VoIP می تواند به منظور تامین خواسته فوق از سخت افزارهای شتاب دهنده استفاده نماید و یا از آن در یک محیط مبتنی بر کامپیوترهای شخصی استفاده گردد .

VoIP  چگونه کار می کند ؟
در گذشته ای نه چندان دور ، پیشگامان عرصه های علمی به این نتیجه رسیدند که می توان یک سیگنال را به صورت دیجیتال و در یک مسافت طولانی ارسال نمود . بدین منظور می بایست قبل از ارسال سیگنال ، آن را با استفاده از یک مبدل آنالوگ به دیجیتال(ADC) ، دیجیتال و سپس ارسال و در نقطه پایانی انتقال،با استفاده از یک مبدل دیجیتال به آنالوگ(DAC) مجددا" آن را به آنالوگ تبدیل نمود .
فن آوری VoIP نظیر آنچه اشاره گردید کار می کند . در ابتدا ، صدای دیجیتال شده در بسته های اطلاعاتی قرار می گیرد و پس از ارسال در مقصد مجددا" به صوت تبدیل می گردد. با ذخیره اطلاعات به فرمت دیجیتال می توان بر روی آنان کنترل بهتری را اعمال نمود . مثلا" می توان آنان را فشرده ، مسیر آنان را تعیین و یا آنان را به یک فرمت جدید دیگر تبدیل نمود .
شبکه های مبتنی‌ بر پروتکل TCP/IP از بسته های اطلاعاتی IP تشکیل می گردند که شامل یک هدر ( برای کنترل ارتباطات ) و یک paylaod به منظور مبادله داده می باشند . فن آوری VoIP از بسته های اطلاعاتی IP به منظور حرکت در شبکه و رسیدن به مقصد نهائی استفاده می نماید .

Voice (source) - > ADC - - - Internet - - - DAC - > Voice (dest)

مزایای استفاده از VoIP نسبت به PSTN
در زمان استفاده از خطوط PSTN ، کاربران عملا" هزینه زمان استفاده شده توسط شرکتی که  مدیریت خط PSTN را  برعهده دارد ،‌ پرداخت می نمایند و هر اندازه که بیشتر با تلفن صحبت نمایند هزینه بیشتری را نیز می بایست پرداخت نمایند. علاوه بر این ، نمی توان بطور همزمان با بیش از یک شخص گفتگو نمود .
در فن آوری VoIP می توان هر زمان و با هر شخص گفتگو نمود . کافی است که در آن مقطع زمانی سایر افرادی که شما می خواهید با آنان گفتگو نمائید نیز به اینترنت متصل شده باشند .  مکالمه برقرار شده تا زمان دلخواه ( مستقل از هزینه های مربوطه ) می تواند ادامه یابد. علاوه بر این ، می توان در یک زمان با چندین نفر گفتگو نمود . در زمان گفتگو با سایر افراد و بطور همزمان می توان با آنان داده ئی ( نظیر تصاویر ، نمودارها و تصاویر ویدیوئی )  را نیز مبادله نمود .

چرا تاکنون از این فن آوری در ابعاد گسترده ای استفاده نشده است ؟
در این بخش لازم است به برخی مسائل حاصل از  ائتلاف بین معماری VoIP و اینترنت اشاره گردد. مبادله داده صوتی می بایست به صورت بلادرنگ و بدون توقف انجام گردد و این موضوع  با معماری نامتجانس اینترنت که ممکن است از تعدادی روتر ( ماشین هائی که مسیریابی بسته های اطلاعاتی را انجام می دهند ) به منظور مسیریابی بسته های اطلاعاتی استفاده نماید، همخوانی نداشته و می تواند باعث بروز مسائل خاصی نظیر افزایش زمان RTT ( برگرفته Round Trip Time ) گردد . بنابراین ، می بایست با اعمال تغییرات لازم و بکارگیری فن آوری های دیگر ، زمینه استفاده موثر از فن آوری VoIP  را فراهم نمود .

نحوه ایجاد یک اتصال VoIP
برای ایجاد یک ارتباط مبتنی بر VoIP ،‌ می بایست مراحل زیر را دنبال نمود ( تمامی مراحل می بایست به صورت بلادرنگ انجام گردد).

  • تبدیل سیگنال آنالوگ به دیجیتال : تبدیل سیگنال صوتی آنالوگ به سیگنال دیجیتال ( مجموعه ای از صفر و یک ) توسط یک مبدل آنالوگ به دیجیتال ( ADC )

  • فشرده سازی سیگنال دیجیتال :  پس از تبدیل سیگنال صوتی به دیجیتال ، بیت های موجود می بایست بر اساس یک فرمت مناسب فشرده تا آماده ارسال گردند . در این رابطه از پروتکل های متعددی استفاده می گردد .  PCM و استاندارد   ITU-T G.711 نمونه هائی در این زمینه می باشند .

  • استفاده از یک پروتکل بلادرنگ : در این مرحله ، بسته های صوتی در بسته های اطلاعاتی و با استفاده از یک پروتکل بلادرنگ ( عموما" RTP بر روی UDP  ) قرار می گیرند.

  • استفاده از یک پروتکل سیگنالینگ : در این مرحله لازم است از یک پروتکل سیگنالینگ به منظور فراخوانی کاربر استفاده گردد . پروتکل ITU-T H323 نمونه ای دراین زمینه می باشد .

  • تبدیل سیگنال دیجیتال به آنالوگ : در سمت گیرنده ، می بایست بسته های اطلاعاتی  از یکدیگر مجزاء ، داده ها استخراج و به سیگنال های صوتی آنالوگ تبدیل و  در نهایت برای کارت صدا  و یا تلفن ارسال گردند .

منبع:srco.ir