OpenBSD چیست؟ بررسی اجمالی، آخرین ویژگی ها و ملاحظات امنیتی, بیا سایت ایران

OpenBSD چیست؟ بررسی اجمالی، آخرین ویژگی ها و ملاحظات امنیتی

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

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

این مقاله سیستم عامل OpenBSD و اینکه چرا باید آن را برای پروژه وب سرور بعدی خود انتخاب کنید بررسی می کند.

OpenBSD چیست؟

OpenBSD به عنوان ایمن ترین در نظر گرفته می شود سیستم عامل همه منظوره تا به امروز OpenBSD در سال 1995 از NetBSD جدا شد (در ادامه تاریخچه کامل را بخوانید) و به طور گسترده ای به عنوان امن ترین سیستم عامل یونیکس موجود در نظر گرفته می شود. هدف OpenBSD به طور پیش فرض ایمن بودن است، به این معنی که برای داشتن یک سیستم بسیار امن نیازی به متخصص امنیت نیست. نسبت به سایر نسخه‌های *BSD مانند FreeBSD یا NetBSD، توزیع‌های لینوکس، مایکروسافت ویندوز یا حتی سیستم‌عامل مک از امنیت بیشتری برخوردار است. OpenBSD در کل تاریخچه سیستم عامل تنها دو آسیب پذیری اجرای کد از راه دور داشته است.

OpenBSD محدودیت‌های منابع را در هر فرآیند، تعهد و Unveil برای محدود کردن دسترسی به سیستم فایل و تماس‌های سیستمی را مشخص می‌کند و آن را بسیار امن‌تر از لینوکس می‌کند. از نظر تئوری، تنها چیزی که از OpenBSD ایمن تر است، برخی از پروژه های میکروکرنل تحقیقاتی مورد استفاده در سیستم های بلادرنگ است.

آخرین نسخه سیستم عامل OpenBSD و ویژگی ها

OpenBSD 7.0 پنجاه و یکمین و جدیدترین نسخه است و در دسترس قرار گرفته است. در 14 اکتبر 2021. در مجموع 11325 بسته موجود است، از جمله PHP 7.3.30، 7.4.23، و 8.0.10، و MariaDB 10.6.4.

برخی از برنامه های خارجی اصلی موجود در OpenBSD 7.0 عبارتند از: 

  • LLVM/Clang 11.1. 0.
  • Xenocara (بر اساس X.Org 7.7 با xserver 1.20.13 + دیگران).
  • Perl 5.32.1.
برخی از برنامه های داخلی برای OpenBSD 6.9 عبارتند از: 
  • OpenSSH 8.8.
  • Libressl 3.4.1.
  • OpenSMTPD 7.0.0.

OpenBSD همچنین پروژه میزبانی فایروال فیلتر بسته (PF) برای استفاده در توزیع های فایروال PFsense، OpenSense و مالتی پلکسر ترمینال Tmux است. همه این برنامه ها در نصب پایه گنجانده شده است.

OpenBSD از یک چرخه انتشار شش ماهه با انتشار در آوریل یا مه و اکتبر یا نوامبر پیروی می کند و به ایمن نگه داشتن اطلاعات شما کمک می کند. علاوه بر این، نسخه ها به مدت یک سال پشتیبانی می شوند.

به روز نگه داشتن OpenBSD پس از چرخه های انتشار نسخه 6x دشوار بود. با انتشار sysupgrade و syspatch، ارتقا به نسخه جدید و نصب وصله های امنیتی برای نسخه فعلی آسان تر شده است.

بله، یک چرخه پشتیبانی یک ساله کمتر از ده سال انتشار RHEL (Red Hat Enterprise Linux) است، که استاندارد طلایی در پشتیبانی طولانی مدت است، اما OpenBSD می تواند با موفقیت در سرورها استفاده شود. حتی نسخه -CURRENT، نسخه‌ای که توسعه اصلی در آن اتفاق می‌افتد، همیشه قابل راه‌اندازی است و کار می‌کند. این باعث پایداری انتشار می شود. شاخه -STABLE که یک -RELEASE با نسخه اشتباه است، نیز پایدار است.

OpenBSD در چه سیستم هایی اجرا می شود؟

  • بیشترین AMD64 ( x86_64) سیستم‌ها، از سرورهای Dell گرفته تا لپ‌تاپ‌های Lenovo.
  • سخت‌افزار قدیمی 32 بیتی شامل پردازنده‌هایی به قدمت 486 از AMD و Intel.
  • سیستم‌های عجیب و غریب بیشتر، از جمله POWER 8 و 9 سرور مبتنی بر IBM و سرورهای SPARC64 از Sun Microsystems، Fujitsu و Oracle.

تاریخچه OpenBSD

OpenBSD ریشه های خود را به AT&T UNIX دهه 1970، به ویژه شعبه ای که در دانشگاه کالیفرنیا در برکلی ایجاد شد.

دو BSD منبع باز مدرن از کار در UC Berkeley ایجاد شد: NetBSD و FreeBSD. هر دو پروژه تقریباً همزمان از نسخه‌ای از BSD UNIX به نام BSD 4.4-Lite 2 شروع شدند. .

همه سیستم عامل های مدرن BSD می توانند ریشه های خود را به 4.4 BSD و پروژه های FreeBSD و NetBSD اولیه بازگردند. چند مثال عبارتند از:

  • IOS در تلفن‌های هوشمند Apple.
  • Apple OS X. 
  • سیستم عامل مورد استفاده در Sony Playstations 3 و 4.
  • چهار پروژه اصلی BSD FreeBSD، OpenBSD ، NetBSD و Dragonfly BSD.
  • شاخه های متعددی مانند BSD سخت شده، pfsense، FreeNAS/TrueNAS و GhostBSD.

OpenBSD انشعابی از نسخه اولیه NetBSD است. خالق OpenBSD، Theo de Raadt، یکی از همکاران NetBSD بود. پروژه

او فکر می‌کرد که امنیت باید یکی از دغدغه‌های اصلی پروژه باشد و در مورد آن بسیار صریح بود. متأسفانه، بحث‌های پر سر و صدای Raadt در نهایت منجر به از دست دادن دسترسی او به مخزن پروژه NetBSD شد.

پاسخ او این بود که NetBSD 1.0 را فورک کرد و پروژه OpenBSD را در اکتبر 1995 آغاز کرد.

top features of openbsd

5 دلیل برای اینکه OpenBSD انتخاب درستی است

1. قابلیت حمل

OpenBSD روی انواع سخت افزار، از سرورهای AMD64، لپ‌تاپ‌ها و رایانه‌های رومیزی گرفته تا روترهای MIPS و راه‌حل‌های سیستم روی تراشه ARM. همچنین بر روی سرورهای POWER و SPARC و همچنین آثار قدیمی‌تر از گذشته مانند رایانه‌های DEC VAX اجرا می‌شود.

OpenBSD به چند دلیل مختلف از پلتفرم های سخت افزاری مختلف پشتیبانی می کند:

  • نسب آن از NetBSD از پلتفرم های زیادی پشتیبانی می کند.
  • توسعه دهندگان OpenBSD مایلند به پشتیبانی از بسیاری از پلتفرم ها ادامه دهند.

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

پلتفرم‌های OpenBSD شامل پردازنده‌های 32 بیتی و 64 بیتی، ماشین‌های اندین کوچک و بزرگ و بسیاری از طرح‌های مختلف است. پشتیبانی از پلتفرم‌های غیرمعمول به تولید پایه کد با کیفیت بالاتر کمک کرده است.

2. Power

Dmesg OpenBSD حتی می‌تواند بر روی 486 کلون.

3. مستندات

OpenBSD دارای بیشترین مستندات گسترده است. از هر سیستم عامل خطاهای مستندات به عنوان اشکالات جدی تلقی می شوند.

4. آزادی

OpenBSD به هر دو معنی کلمه رایگان است: رایگان در هزینه و آزادی برای استفاده هر طور که می خواهید.

OpenBSD تحت شرایط مجوزهای BSD و ISC و چند مجوز مجاز دیگر برای برخی محتوا منتشر می شود. مجوز نسخه OpenBSD مجوز ISC تا حدی به شرح زیر است: 

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

این باعث می‌شود ISC از GPL مورد استفاده لینوکس دوستانه‌تر باشد، زیرا تغییرات نیازی به بالادستی نیست. برای مثال، اجرای OpenBSD OpenSSH در همه جا، از لینوکس تا ویندوز 10 استفاده می شود.

5. صحت

به این ترتیب، کد صحیح یک کد امن است. برخی از سیستم‌عامل‌ها استفاده پس از آزاد شدن (اشاره به حافظه‌ای که تخصیص داده شده، تخصیص داده نشده، سپس دوباره در زبان C استفاده شده است) را یک اشکال جدی در نظر نمی‌گیرند، اما در OpenBSD برطرف می‌شود. این موضوع مرتبط است، زیرا C یک زبان امن برای حافظه نیست. این زبان به سخت افزاری که می توانید بدون استفاده از زبان اسمبلی به دست آورید نزدیک است و پایین ترین سطح زبان برای برنامه نویسی قابل حمل است.

برخی نرم افزارها در OpenBSD بیشتر از سایر سیستم عامل ها خراب می شوند. رفتاری که در سایر سیستم عامل ها مجاز است در OpenBSD مجاز نیست. استفاده از OpenBSD به عنوان یک سیستم عامل دسکتاپ در گذشته ناامید کننده بود. امروزه، توسعه دهندگان به طور منظم کد را بهبود می بخشند و خرابی ها را برطرف می کنند تا همه سیستم عامل ها از آن بهره مند شوند. پروژه Chromium Google نمونه‌ای از این است.

برخی اشکالات فقط پیدا شده اند هنگام انتقال به معماری های جدید یا مبهم. به همین دلیل است که معماری‌های جدیدی مانند PowerPC 64 بیت در نسخه 6.8 اضافه شده است، چرا که نسخه 6.9 و v7.0 از پردازنده Apple M1 arm64 پشتیبانی می‌کنند، و نسخه 7.0 از RISC-V پشتیبانی می‌کند (معماری مبتنی بر مجموعه دستورات کاهش یافته معماری کامپیوتر مانند پردازنده های ARM هستند).

openbsd security

OpenBSD امن ترین سیستم عامل روی این سیاره است. چندین ویژگی OpenBSD وجود دارد که به آن کمک می کند تا یک سیستم عامل بسیار امن باشد.

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

جداسازی امتیاز سبک OpenBSD

فرض کنید سروری دارید که علاوه بر OpenBSD، سیستم عامل دیگری را اجرا می کند که از طریق تزریق SQL در معرض خطر قرار گرفته است. اگر آن سرور SQL به عنوان یک کاربر معمولی اجرا می شد، مهاجم می توانست سیستم را خراب کند. OpenBSD وب سرور داخلی خود را به عنوان کاربر www، یک حساب کاربری قفل شده، اجرا می کند. علاوه بر این، در داخل زندان chroot اجرا می شود. در نهایت، با پوسته ای اجرا می شود که اجازه ورود به سیستم را نمی دهد. مهاجم حتی نمی تواند برای اجرای دستورات به یک shell prompt دسترسی داشته باشد.

سیستم عامل های دیگر از chroot پشتیبانی می کنند اما به ندرت از آنها استفاده می کنند و مطمئناً به طور پیش فرض نه. Flatpack در لینوکس و زندان ها در FreeBSD نمونه هایی از بقیه دنیای متن باز هستند که OpenBSD را کپی می کنند.

نوشتن XOR Execute

ویژگی امنیتی بعدی که OpenBSD پیشگام شد، به عنوان نوشتن XOR execute (W ^ X) شناخته می شود. فضای آدرس یک فرآیند یا هسته می تواند قابل نوشتن یا اجرا باشد، اما نه هر دو. OpenBSD اولین سیستم عاملی بود که این ویژگی را در نسخه 3.3 در سال 2003 پیشگام کرد. 

برخی توزیع‌های لینوکس به تازگی شروع به گنجاندن این ویژگی کرده‌اند، در حالی که OpenBSD آن را برای تقریباً دو دهه ارائه کرده است.

صفحات نگهبان

به طور مشابه، صفحات محافظ در سال 2003 در OpenBSD گنجانده شد.

تصادفی سازی فضای آدرس

OpenBSD اجرای تصادفی سازی فضای آدرس را در سال 2003 آغاز کرد و به پایان رساند. اثر در سال 2013، که اکنون به عنوان قابل اجرا مستقل از موقعیت (PIE) شناخته می شود. الف>. با این ویژگی، لازم نیست کد در هر بار اجرای برنامه در یک مکان باشد. یک مهاجم نمی تواند با یک افست شناخته شده برای دسترسی به داده ها حمله کند.

برای مثال، فرض کنید برنامه های A و B را دارید. اگر برنامه B دارای نشت حافظه باشد و مهاجمان بدانند که برنامه A قبل از B در حافظه بارگذاری شده است، ممکن است برنامه A را با نوشتن در فضای حافظه آن با استفاده از اکسپلویت در برنامه B خراب کنند. . 

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

روش اخیراً معروفیکی دیگر از روش‌های منحصربه‌فرد PIE که خود را در OpenBSD نشان می‌دهد. > هسته پس از شروع هر بوت که در نسخه 6.2 شروع می شود، مجدداً خود را پیوند می دهد. کد منحصر به فرد زبان اسمبلی باید در ابتدای فایل قرار گیرد و همیشه در همان مکان نگهداری شود. کد زبان اسمبلی با یک شکاف با اندازه تصادفی دنبال می‌شود و سپس به دنبال شکاف، همه فایل‌های شی زبان .o C به‌طور تصادفی مرتب می‌شوند. یک مهاجم نمی تواند فاصله بین توابع و متغیرها را پیش بینی کند. اگر اشاره گر اطلاعاتی را در داخل هسته نشت کند، هیچ اشاره گر یا شی دیگری را فاش نمی کند.

فایل های اجرایی PIE یک روند داغ در امنیت هستند. محققان سعی کرده‌اند فایل‌های اجرایی PIE را روی لینوکس با موفقیت اجرا کنند، اما سال‌ها پیش در OpenBSD پیشگام شد. ویژگی یک هسته OpenBSD که هر بوت خود را دوباره سازماندهی می کند، اکنون در دنیای لینوکس و حتی هنوز ادغام نشده است.

تعهد و رونمایی

Pledge و Unveil دو روی یک سکه هستند: Pledge برای تماس های سیستمی و Unveil برای محدود کردن دسترسی به سیستم فایل استفاده می شود. جفت منحصر به فرد Pledge و Unveil باعث می شود که برنامه به طور مفید به خطر بیفتد. حتی اگر یک برنامه به خطر بیفتد، هکر فقط می تواند در یک فایل یا یک دایرکتوری بنویسد یا فقط سیستم های خاصی را فراخوانی کند. Pledge برای اولین بار در نسخه 5.9 OpenBSD و Unveil برای اولین بار در نسخه 6.4 در دسترس بود. Pledge و Unveil منحصر به فرد OpenBSD هستند و برخی از قوی ترین دارایی های آن هستند.

Pledge

بسیاری برنامه ها باید با امتیازات بیشتری نسبت به اجرای واقعی خود شروع کنند. به این فکر کنید که آیا یک فرآیند واقعاً برای انجام هر مرحله یا فقط یک قسمت از برنامه نیاز به دسترسی به شبکه دارد.

باب بک، یکی از سازندگان Pledge، می گوید که سرویس NTP OpenBSD دارای سه فرآیند است: 

  1. فرآیند NTP STDIO و inet را متعهد می‌کند.
  2. فرایند مدیریت DNS، STDIO و dns را متعهد می‌کند.
  3. فرایند اصلی برای زمان تنظیم تعهد. .

این برای فرآیندهایی مفید است که به صورت روت شروع می شوند و سپس امتیازات خود را به یک حساب کاربری معمولی یا حساب محدود مخصوص دیمون ها رها می کنند. Pledge می‌تواند ویژگی‌های امنیتی را به فرآیندهای غیر setuid نیز بیاورد، که فرآیندهایی هستند که به عنوان root شروع نمی‌شوند.

برنامه شبکه (NC) یکی از این برنامه ها است زیرا می تواند چندین عملکرد شبکه را انجام دهد که هر کدام دارای یک تعهد خاص هستند. مرورگر وب Chrome نیز در OpenBSD تعهد داده شده است.

SELinux و Capsicum برای FreeBSD فریمورک های مشابهی دارند، اما تقریباً به این شدت استفاده نمی شوند یا به طور پیش فرض فعال نیستند. از سوی دیگر، OpenBSD همه چیز را در پایه و حتی برخی از نرم افزارهای شخص ثالث را تعهد می کند.

رونمایی

شاید ساده ترین راه برای توضیح Unveil با مرورگر Chromium باشد. با شروع نسخه 6.5 OpenBSD، Unveil تنظیم شد فقط برای دسترسی به فهرست دانلودهای کاربران. بنابراین ذخیره یک فایل باید در دایرکتوری Downloads انجام شود.

با این حال، این بدان معناست که شما نمی توانید یک فایل را در یک پوشه دیگر، مانند پوشه Pictures ذخیره کنید، یا حتی خود دایرکتوری را بخوانید. این یک ناراحتی برای کاربر است، اما از خواندن دایرکتوری SSH که کلیدهای SSH خصوصی در آن نگهداری می شود، فرآیندهای وب سرکش یا سوء استفاده های مرورگر را باز می دارد.

OpenBSD Use Cases

در اینجا چند مورد استفاده محبوب OpenBSD آورده شده است:

  • به عنوان یک سیستم عامل دسکتاپ یا ایستگاه کاری، از آنجایی که OpenBSD شامل یک نسخه سفارشی بسیار امن X.org و درایورهای گرافیک AMD یا Intel.
  • به‌عنوان یک سرور ایمیل با نرم‌افزار ارائه‌دهنده نامه شامل OpenSMTPD (OpenBSD Simple Mail Transfer Protocol Protocol) با سیستم عامل ارسال می‌شود.
  • به عنوان یک وب سرور با httpd موجود یا با Apache یا Nginx استاندارد صنعتی.
  • به عنوان یک دستگاه فایروال با فایروال داخلی PF.
  • به عنوان روتر همراه با نرم افزار PF و OpenBGP (OpenBSD Border Gateway Protocol Daemon).

چرا امروز باید از OpenBSD استفاده کنید

OpenBSD یکی از سه توزیع پیشرو BSD (همراه با FreeBSD و NetBSD) است و در بین سیستم عامل های BSD از نظر امنیتی بیشتر است. . این نرم افزار بر روی انواع مختلفی از سخت افزارها مانند سرورهای کالا و لپ تاپ ها، سخت افزارهای قدیمی تر از آغاز هزاره و سخت افزارهای عجیب و غریب از Sun، Oracle و IBM اجرا می شود. OpenBSD تمرکز شدیدی بر امنیت و صحت کد و برخی ویژگی‌های کلیدی مانند Pledge و Unveil دارد. از زمان شروع پروژه، تنها با دو حفره از راه دور در نصب پیش فرض مواجه شده است که ثابت می کند OpenBSD چقدر امن است.

هنگام انتخاب سیستم عاملی که امنیت در آن هدف شماره یک و بالاترین اولویت است، OpenBSD پادشاه قلعه است.

Share the Load eBook

نوشته ها مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *