اوپن‌بی‌اس‌دی
ویژگی‌ها > امنیت

مقالهٔ اصلی: قابلیت‌های امنیتی اوپن‌بی‌اس‌دی
همچنین ببینید: W^X
یکی از آرمان‌ها و اولویت‌های اصلی پروژه اوپن‌بی‌اس‌دی، امنیت این سیستم‌عامل است و این پروژه تاکنون چندین فناوری گوناگون در رابطه با امنیت سیستم‌عامل ارائه کرده‌است که در دیگر سیستم‌عامل‌ها هم به کار گرفته شده‌اند. کدهای منبع اوپن‌بی‌اس‌دی، پیوسته بازنگری می‌شوند. یکی از سیاست‌های پروژهٔ اوپن‌بی‌اس‌دی در رابطه با امنیت سیستم، این است که مشکلات و باگ‌های امنیتی را به آگاهی کاربران برسانند و آن‌ها را از کاربران پوشیده نگه ندارند، کاری که بسیاری از شرکت‌ها، حتی برخی از پروژه‌های نرم‌افزار آزاد، از انجام آن سر باز می‌زنند. «ایمن به‌طور پیش‌فرض» یکی از شعارهای پروژهٔ اوپن‌بی‌اس‌دی است. این سخن به این معنی است که در اوپن‌بی‌اس‌دی، همهٔ سرویس‌ها به گونهٔ پیش‌فرض خاموش و غیرفعال هستند تا اینکه کاربر به خواست خود آن‌ها را راه‌اندازی کند. هرچند که شاید این کار کاربر را ناچار کند که تنظیمات بیشتری را نسبت به دیگر سیستم‌عامل‌های شبه یونیکس انجام دهد؛ اما به جای آن، زمان کمتری برای انجام تنظیمات امنیتی هزینه خواهد کرد.
اوپن‌بی‌اس‌دی نخست دیوار آتشی آی‌پی‌فیلتر که دارن رید نوشته بود را بکار می‌برد. در مه ۲۰۰۱، دارن رید، پروانهٔ دیوار آتش آی‌پی‌فیلتر را تغییر داد و بند «[...] آری، این [حرف] به معنی آن است که آثار اشتقاقی یا تغییریافته، بدون کسب رضایت پیشین نویسندهٔ [نرم‌افزار]، مجاز نیستند.» را به آن افزود. افزودن این بند باعث شد برنامه آی‌پی‌فیلتر دیگر یک نرم‌افزار آزاد نباشد. پیامدی که داشت این بود که در ۲۹ می، آی‌پی‌فیلتر از درخت کد منبع اوپن‌بی‌اس‌دی زدوده شد. با کنارگذاشتن آی‌پی‌فیلتر، پروژه اوپن‌بی‌اس‌دی چندی بدون یک دیوار آتش ماند. آن‌ها دنبال جایگزین‌کردن آی‌پی‌فیلتر بودند تا اینکه دانیل هارتمیر یک دیوار آتش نو به نام پی‌اف نوشت و در درخت کدهای منبع اوپن‌بی‌اس‌دی گنجانده شد.
در بخش‌های گوناگون اوپن‌بی‌اس‌دی، تدابیر امنیتی اندیشیده شده‌است. دو تابع تازه به نام‌های strlcat و strlcpy، جایگزین توابع strncat و strncpy در کتابخانه استاندارد سی شده‌اند.
اوپن‌بی‌اس‌دی یک سازوکار حفاظت از حافظه به نام W^X دارد. به کمک این سازوکار، هر صفحه در فضای آدرس یک فرایند، یا خواندنی است یا نوشتنی، اما نمی‌تواند هم‌زمان هم خواندنی و هم نوشتنی باشد؛ به این گونه که اگر برنامه بتواند بر روی صفحه‌ای عمل نوشتن اطلاعات را انجام دهد، به صورت هم‌زمان قادر به اجرا کردن اطلاعات موجود در همان صفحه نخواهد بود. به‌طور مشابه، اگر برنامه بتواند اطلاعات یک صفحه را اجرا کند، در همان حالت اجازه ندارد که اطلاعات را در آن بنویسد. نام این قابلیت از عملگر بولی XOR آمده‌است. این توانایی از بروز برخی حملات سرریز بافر پیشگیری می‌کند.
در اوپن‌بی‌اس‌دی، یک فضای خالی (گپ) با اندازهٔ تصادفی در بالای پشتهٔ برنامه گذاشته می‌شود تا انجام حملات تخریب پشته سخت‌تر شود. همچنین یک مقدار تصادفی به نام مقدار قناری در بین قاب‌های پشته گذاشته می‌شود. پیش از اینکه تابع برگردد، این مقدار قناری بررسی می‌شود. اگر تغییر نکرده بود، سرریز رخ نداده است، وگرنه، سرریز رخ داده است. این قابلیت در کامپایلر جی‌سی‌سی گنجانده شده‌است. مقدار قناری، که در هر بار فراخوانی شدن تابع به صورت تصادفی گزینش می‌شود، می‌تواند ۲۳۲ حالت گوناگون داشته باشد که احتمال اینکه مهاجم بتواند آن را حدس بزند بسیار بعید است.
فراخوان سیستمی mmap به گونه‌ای پیاده‌سازی‌شده که بسته به نیاز برنامه‌نویس، می‌تواند حافظه را از جایی تصادفی به برنامه اختصاص دهد. بدین گونه، برنامه در هر بار اجرا، یک فضای آدرس متفاوت و تصادفی خواهد داشت. همچنین تابع malloc در کتابخانه استاندارد سی هم هنگامی که میزان فضای درخواستی برنامه‌نویس، از اندازه یک صفحه بیشتر باشد، از فراخوان سیستمی mmap برای واگذاری حافظه به برنامه‌ها استفاده می‌کند؛ بنابراین قابلیت تصادفی‌سازی که در mmap در دسترس بود، در malloc هم بکار گرفته می‌شود.
از آنجایی که پایگاه پروژه اوپن‌بی‌اس‌دی در کانادا است، قوانین و محدودیت‌های وابسته به صادرات نرم‌افزار از ایالات متحده آمریکا در مورد آن صدق نمی‌کند. این ویژگی می‌گذارد تا اوپن‌بی‌اس‌دی بتواند به همراه یک چارچوب رمزنگاری توکار پخش شود. رمزنگاری در بیشتر بخش‌های سیستم بکار گرفته شده‌است. برای نمونه، فضای swap در اوپن‌بی‌اس‌دی به بخش‌های کوچکتری بخش می‌شود و هر بخش هم با کلید ویژهٔ خود رمزنگاری می‌شود. تولیدکننده‌های اعداد شبه تصادفی هم در اوپن‌بی‌اس‌دی گنجانده شده‌اند تا این اطمینان به‌دست آید که اعداد تصادفی را نمی‌توان بر پایهٔ وضعیتی کنونی سیستم، پیش‌بینی کرد.
در بخش‌های گوناگون اوپن‌بی‌اس‌دی، از روش تصادفی‌سازی بهره گرفته شده تا رفتار برنامه‌ها پیش‌بینی‌نشدنی شود و احتمال آسیب‌پذیری آن‌ها کاهش یابد. برای نمونه، در اوپن‌بی‌اس‌دی، شناسه فرایندها به گونهٔ تصادفی ساخته شده و به فرایندها داده می‌شود، تابع bind از شماره پورت‌های تصادفی بکار می‌برد، پرونده‌ها با آی‌نودهای تصادفی ساخته می‌شوند، دیتاگرامهای آی‌پی شناسه‌های تصادفی دارند و موارد دیگر.
برای کمتر کردن خطرات برآمده از آسیب‌پذیری‌های امنیتی و همچنین کاهش خطرات برآمده از پیکربندی اشتباه نرم‌افزارها، که شاید بگذارند یک مهاجم بتواند دسترسی خود به سیستم را بالا ببرد، برخی از برنامه‌ها با روش جداسازی امتیازی و بازپس‌دهی امتیازی نوشته شده‌اند یا اینکه در یک محیط chroot اجرا می‌شوند. جداسازی امنیتی شگردی است که به‌دست توسعه‌دهندگان اوپن‌بی‌اس‌دی و متأثر از اصل حداقل بودن اختیارات آفریده شده‌است. در این شگرد، یک برنامه به چندین بخش بخش‌بندی می‌شود که یکی از این بخش‌ها، به انجام دادن کارهایی می‌پردازد که نیازمند دسترسی بالا هستند و دیگر بخش‌های برنامه، بدون داشتن هر گونه امتیازی، اجرا می‌شوند. بازپس‌دهی امتیازی هم شگردی همگون است؛ در این شگرد، یک برنامه نخست با دسترسی بالا اجرا می‌شود؛ سپس نخست به انجام دادن کارهایی که نیازمند دسترسی بالا هستند می‌پردازد و پس از پایان آنها، دسترسی‌های خود را به سیستم پس می‌دهد و با دسترسی پایین‌تر به اجرای خود ادامه می‌دهد. شگرد chroot شگرد است که در آن یک برنامه به بخش خاصی از سیستم فایل محدود می‌شود و از دستیابی به منابعی که در بیرون از آن محدوده قرار دارند، بازداشته می‌شود. وب‌سرور آپاچی که به گونهٔ پیش‌فرض در اوپن‌بی‌اس‌دی گنجانده شده، از این شگرد بهره می‌برد.
مقالهٔ اصلی: اوپن‌اس‌اس‌اچ
برنامهٔ اوپن‌اس‌اس‌اچ یک جایگزین آزاد و ایمن برای telnet، rlogin و ftp است که برخلاف این برنامه‌ها، همهٔ اطلاعات را به صورت ایمن و رمزنگاری‌شده بر روی شبکه می‌فرستد تا این اطمینان به‌دست آید که اطلاعات در بین راه، به‌دست بدخواهان و مهاجمان نخواهد افتاد. این برنامه یکی از زیرپروژه‌های اوپن‌بی‌اس‌دی است و امروزه به گونهٔ گسترده‌ای در دیگر سیستم‌های شبه یونیکس بکار گرفته می‌شود.