AOS-Pre-Project.pdf

‫تَ ًام خذا‬
‫تعریف پیش پرًژهی درس سیستمىای عامل پیشرفتو‬
‫دکتز رطْل جلیلی – ًینطال دّم ‪90-09‬‬
‫معرفی‬
‫‪1‬‬
‫ُذف ایي پزّژٍ آػٌا طاسی داًؼجْیاى تا همذهات تْطؼَی طیظتن ػاهل اطت‪ .‬اطالػاتی کَ داًؼجْ در ایي پزّژٍ کظة هیکٌذ‪،‬‬
‫ّی را در اًجام پزّژٍی ًِایی درص یاری خْاُذ کزد‪ُ .‬ذف در ایي پزّژٍ یادگیزی هفاُین سیز اطت‪:‬‬
‫‪‬‬
‫چگًْگی ًصة ّ اطتفادٍ اس طیظتن ػاهل ‪FreeBSD‬‬
‫‪‬‬
‫تَ یاد آّردى آهْختَُای پیؼیي در راتطَ تا هؼواری طیظتن ػاهل ّ خصْصیت فضاُای کارتز ّ ُظتَ‬
‫‪‬‬
‫ًحٍْی پیکزتٌذی ُظتَی طیظتنػاهل ‪ ّ FreeBSD‬تزجوَی آى تزای کارتزدُای خاؽ‬
‫‪‬‬
‫تْطؼَی هاژّل لاتل تارگذاری در ُظتَ تزای ‪ًْ ّ FreeBSD‬ػتي رّیَُایی در فضای ُظتَ‬
‫‪‬‬
‫ثثت فزاخْاًیُای طیظتوی ّ تْطؼَی گزداًٌذٍُای ّطایل جاًثی‬
‫‪‬‬
‫گذار اس فضای کارتز تَ ُظتَ ّ هالحظات هزتْطَ‬
‫‪‬‬
‫ّ هِنتز اس ُوَ‪ ،‬آػٌایی تا رّع حل هؼکالت‪ ،‬یاری جظتي ّ پیذا کزدى ًوًَُْا‪ٌُ ،‬گاهی کَ تزای ُظتَی طیظتنػاهل‬
‫تزًاهًَْیظی هیکٌیذ‪.‬‬
‫لیظت سیز هجوْػَای اس هٌاتؼی اطت کَ تْصیَ هیػْد تَ آىُا هزاجؼَ کٌیذ‪.‬‬
‫‪-‬‬
‫کتابچوىای ‪FreeBSD‬‬
‫‪o‬‬
‫‪1‬‬
‫هٌاطة تزای آػٌایی تا فزٌُگ ّاژگاًی‪ً ،‬صة‪ ،‬اطتفادٍ ّ ًیش راٌُوای گام تَ گام پیکزتٌذی ّ تزجوَی‬
‫ُظتَی طیظتنػاهل ‪FreeBSD‬‬
‫‪-‬‬
‫‪-‬‬
‫کتاب «‪ 2»Designing BSD Rootkits: An Introduction to Kernel Hacking‬نٌشتوی ‪Joseph King‬‬
‫‪o‬‬
‫کتاتی تظیار تا ارسع تزای تزًاهًَْیظی ُظتَ در ‪FreeBSD‬‬
‫‪o‬‬
‫برای انجام این پیشپروژه‪ ،‬فصل اول این کتاب را بخوانید‪.‬‬
‫لیستىای پستی ‪FreeBSD‬‬
‫‪o‬‬
‫‪3‬‬
‫هاًٌذ لیظت پظتی ایي درص‪ ،‬یک لیظت پظتی تزای تْطؼَدٌُذگاى ّ کارتزاى ‪ FreeBSD‬اطت‪ .‬تمزیثاً پاطخ‬
‫ُز طْالی را تا ارطال آى تَ لیظتی هزتثط خْاُیذ یافت‪.‬‬
‫‪ 1‬لاتل دطتزطی اس صفحَی خاًگی ‪FreeBSD‬‬
‫‪ً 2‬حٍْی دطتزطی تَ ًظخَ الکتزًّیک ایي کتاب اس طزیك لیظت پظتی درص تَ اطالع خْاُذ رطیذ‪.‬‬
‫‪ 3‬تَ آدرص ‪ http://lists.freebsd.org‬هزاجؼَ کٌیذ‪.‬‬
‫‪2‬‬
‫تعریف پرًژه‬
‫پیغ اس ُز چیش‪ ،‬طیظتنػاهل ‪ FreeBSD‬را در یک هاػیي هجاسی‪ً 1‬صة کٌیذ‪ .2‬تزای هزاحل ًصة تَ کتاتچَی ‪FreeBSD‬‬
‫هزاجؼَ کٌیذ‪ .‬دلت داػتَ تاػیذ کَ تزای تزجوَی ُظتَ‪ً ،‬یاس تَ کذ هٌثغ آى داریذ‪ ،‬تٌاتزایي تزجیحاً ًصة را در حالت ‪Developer‬‬
‫اًجام دُیذ‪.‬‬
‫‪ 2.1‬پیکربندی ىستو‬
‫ُز هاژّل‪ ،‬گزداًٌذٍ ّطیلَی جاًثی یا طزّیظی را کَ تَ آى ًیاس ًذاریذ حذف کٌیذ تا حجن ُظتَ را کاُغ دُیذ‪ .‬طپض ُظتَ جذیذ‬
‫را تزجوَ کزدٍ ّ تا اطتفادٍ اس آى طیظتن را راٍاًذاسی کٌیذ‪.‬‬
‫در گشارع هزتْطَ اًذاسٍی ُظتَی ‪ُ ّ GENERIC‬ظتَای کَ خْدتاى پیکزتٌذی کزدٍایذ را تیاى کٌیذ‪ .‬اس هاػیي هجاسیتاى لثل ّ‬
‫تؼذ اس تزجوَی ُظتَ تصْیز لحظَای تِیَ کٌیذ تا صحت تزجوَتاى را ًؼاى دُذ‪ً .‬یکْ اطت اگز تا اطتفادٍ اس اتشارُای هحک‬
‫تِثْدُایی را در ُظتَی پیکزتٌذیػذٍ ًؼاى دُیذ‪.3‬‬
‫‪ 2.2‬ثبت فراخٌانی سیستمی‬
‫ًگاُی تَ هذخل ّیکیپذیا تزای رّع رهشًگاری ‪ ROT13‬تیٌذاسیذ‪ .‬ای رّع یکی اس طادٍتزیي رّعُایی اطت کَ تزای‬
‫اتِامًگاری‪ 4‬در صفحات ّب اطتفادٍ هیػْد‪ .‬یک هاژّل لاتل تارگذاری در ُظتَ‪ 5‬تٌْیظیذ ّ تا اطتفادٍ اس آى‪ ،‬فزاخْاًی طیظتوی‬
‫را ثثت کٌیذ کَ یک رػتَ را گزفتَ ّ رهش ػذٍی آى تا اطتفادٍ اس ‪ ROT13‬را تزگزداًذ‪ .‬تَ ػالٍّ فزاخْاًی دیگزی ًیش تزای ػکض‬
‫ایي ػول تٌْیظیذ‪.‬‬
‫طپض‪ ،‬یک تزًاهَ ططح کارتز طادٍ پیادٍطاسی کٌیذ تا صحت پیادٍطاسیتاى را تائیذ کٌذ‪.‬‬
‫‪ 2.3‬نٌشتن یک گردانندهی ًسیلوی کاراکتری‬
‫در ایي لظوت‪ ،‬ػوا یک هاژّل لاتل تارگذاری دیگز هیًْیظیذ؛ اها ایي تار در ًمغ یک گزداًٌذٍی ّطیلَی کاراکتزی‪( 6‬هاًٌذ‬
‫‪ .)/dev/console‬در حالت رهشگذاری‪ُ ،‬ز آى چَ در ایي ّطیلَ ًْػتَ ػْد‪ ،‬تَ صْرت رهش ػذٍ تا ‪ ROT13‬لاتل خْاًذى‬
‫اطت‪ .‬تزای تٌظین حالت ّطیلَ (کَ رهشگذار اطت یا رهشگؼا) تایذ هکاًیشم ‪ ioctl‬را پیادٍطاسی کزدٍ تاػیذ‪.‬‬
‫ُواًٌذ لظوت لثل‪ ،‬تا اطتفادٍ اس یک تزًاهَی ططح کارتز طادٍ‪ ،‬صحت کارکزد را ًؼاى دُیذ‪.‬‬
‫‪ 1‬احتواالً در اّلیي تالعُا تزای پیکزتٌذی ُظتَ تاػث خزاتی آى خْاُیذ ػذ‪ .‬تا اطتفادٍ اس هاػیي هجاسی اس ُز حالت پایذار در طْل اجزای‬
‫پزّژٍ یک تصْیز لحظَای تِیَ کٌیذ تا در صْرت تزّس هؼکل تتْاًیذ تا تاسیاتی آى کار را پی تگیزیذ‪.‬‬
‫‪ 2‬هیتْاًیذ تصْیز دیظک ًصة ‪ FreeBSD‬را اس کاتیٌت داًؼکذٍ یا اس طایت رطوی آى دریافت کٌیذ‪.‬‬
‫‪ 3‬تزای هؼاُذٍی لیظتی اس ایي اتشارُا ‪ /usr/ports/benchmark/‬را تثیٌیذ‪.‬‬
‫‪ 4‬هؼادل فارطی ّاژٍی ‪Obfuscation‬‬
‫‪ 5‬هؼادل فارطی ػثارت ‪Kernel Loadable Module‬‬
‫‪ 6‬هؼادل فارطی ػثارت ‪Character Device Driver‬‬
‫تحٌیل پرًژه‬
‫‪3‬‬
‫هْارد لاتل تحْیل کذ هٌثغ تزًاهَُا‪ ،‬فایلُای پیکزتٌذی ُظتَ ّ یک گشارع خالصَ اس کاری کَ کزدٍایذ خْاُذ تْد‪ .‬هِلت ارطال‬
‫ایي هْارد تا ساعت ‪ 24‬رًز جمعو ‪ 2‬اردیبيشت ‪ 1309‬اطت‪ .‬تَ ػالٍّ‪ ،‬تایظتی در سهاًی کَ تؼذاً اػالم هیػْد‪ ،‬تزای تحْیل‬
‫حضْری آهادٍ تاػیذ‪.‬‬
‫‪-‬‬
‫پزّژٍ تَ صْرت اًفزادی یا در گزٍُّای دّ ًفزٍ لاتل اًجام اطت‪.‬‬
‫‪-‬‬
‫هْارد لاتل تحْیل را تا لثل اس هِلت همزر تَ هحوذ ُذایتی (‪ )[email protected]‬ارطال فزهاییذ‪.‬‬
‫‪-‬‬
‫لطفاً ػٌْاى ایویل ّ فایل پیْطت (سیپ ػذٍی کلیَی هْارد فْق) را ‪ AOS-PreProject-x-y‬کَ ‪ y ّ x‬ػوارٍ‬
‫داًؼجْییُای اػضای گزٍّ ُظتٌذ تگذاریذ‪.‬‬
‫‪-‬‬
‫تأخیز در هِلتُای همزر هظتلشم جزیوَ خْاُذ تْد‪.‬‬