
یکی از مشکلات میلیارد دلاری در دنیای رایانه ها، گرفتن نرم افزار برای اعتماد به نفس است. اساسا، هنگامی که نرمافزار به درستی کار می کند، منجر به نقص می شود که می تواند بر عملکرد، قابلیت اطمینان و امنیت تاثیر بگذارد.
یکی از بهترین چیزهایی که در مورد رایانه ها است این است که آنها دقیقا همان چیزی را که شما به آنها می گویند انجام می دهند. یکی از بدترین چیزها در مورد کامپیوترها این است که آنها دقیقا همان چیزی را که شما به آنها می گویند انجام می دهند.
رایج ترین مسئله در خطا در کد است، در حالی که برنامه نویس اشتباه را از طریق تایپ یا اشتباه تفکر برخی از عملکرد و ایجاد یک اشکال. زرادخانه محصولات، برنامه ها و محیط های توسعه برای تلاش برای کم کردن اشکالات وجود دارد.
اما مشکلی در کامپایل کردن کد وجود دارد، یعنی گرفتن کد ای که در زبانی است که انسان (کد منبع) آن را می فهمد
محیط های کامپایل ناسازگار منجر به رفتار غیرمستقیم
هنگامی که یک برنامه نویس یک برنامه را تکمیل می کند یا کاربر منبع کد را برای رایانه خود کامپایل می کند، آنها می توانند با استفاده از یکی از چندین کامپایلر مختلف، با نسخه های مختلف و به روز رسانی درست مانند هر برنامه دیگر.
فقط زمانی که شما با کامپایلر برخورد، کامپایلر های مختلف کد ماشین های مختلف، حتی از کد منبع یکسان تولید می کنند. این ناسازگاری یکی از منابع بسیاری از نرم افزارهای غیر قابل اعتماد است، زیرا این برنامه های مختلف کامپایل شده دارای رفتارهای متفاوت و مشکلات مختلفی هستند. برنامه ای که به طور کامل در هنگام کامپایل یک راه عمل می کند ممکن است با کامپایلر دیگری کار نکند.
حتی بدتر از همه، به دلیل ترکیبات مختلف کد منبع، سخت افزار، نسخه های کامپایلر، تنظیمات و سایر عوامل محیطی، سخت است که بدانیم که آیا نرم افزار شما اساسا امن است یا خیر.
آیا این کد منبع به خطر افتاده است؟
مشکل دیگری که توسط نرم افزارهای متناقض ارائه شده است این است که معلوم نیست که آیا نرم افزاری که از برنامه کامپایلر شما خارج می شود دقیقا چیست نویسنده در نظر گرفته شده است. یک برنامه کامپایلر مخرب می تواند کد ماشین را که دارای آسیب پذیری های عمدی است ایجاد کند و نظارت بر سیستم ها را کنترل می کند یا سیستم را به طور کامل از بین می برد. مشکل کامپایلر مخرب یکی از مواردی است که از دهه 1980 مورد بحث بوده است. کن تامپسون معروف به هک کامپایلر مدرک مفهومی ساخته بود که تنها به خودی خود به خطر نیفتاده بود، اما هر بروزرسانی به خودی خود را به خطر می انداخت و برای شناسایی تقریبا غیرممکن بود.
جالب ترین قطعه این مدرک مفهومی این است که چطور این حتی نباید یک نوع خاص از کامپایلر باشد. قطعات دیگر کد ماشین، مانند بوت لودرها و اساسی ترین نرم افزار و سیستم عامل بر روی یک کامپیوتر، می تواند خطرناک باشد برای معرفی سیستم پشتی در سراسر سیستم و بسیار دشوار برای شناسایی آن است.
به همین دلیل است که کل حرکت (CoreBoot و LibreBoot پشت در حال حرکت همه این قطعات اساسی به راه حل های منبع باز است.این مکان را برای چیزی شبیه به این پنهان می کند.
چطور می توانیم در مورد این اقدام کنیم؟
پروژه دبیان یک رویکرد جالب برای این دارد. در حال تلاش برای گرفتن کل سیستم عامل لینوکس و ایجاد فایل های ویژه است که به کامپیوتر دقیقا همان چیزی را که محیط، کامپایلر و تنظیمات برای ایجاد برنامه مورد استفاده قرار گرفته است استفاده می کند. این اطمینان را می دهد که محیط دقیقا مطابق آنچه که نویسنده قصد دارد. آنچه که برنامهنویس در نظر دارد، شما می توانید کد کامپایل شده را بررسی کنید تا ببینید آیا آن یکسان است.این بدان معنی است که ما می توانیم کد (کد ماشین) را که انسان نمی تواند بخواند، و ببینید آیا کد کامپایل شده با آنچه که انتظار می رود، منطبق است.
این اولین مشکل بزرگ، نرم افزاری ناسازگار ایجاد شده توسط محیط های نامناسب است. این امر به قابلیت اطمینان و قابلیت اطمینان بیشتر منجر خواهد شد.
از طرح های متن باز متن مورد علاقه خود در صورت تغییر در ساختن قابل بازیافت استفاده کنند. این دیگر ایمنی را به قابلیت اطمینان نرم افزاری اضافه می کند و به شما اجازه می دهد تا دستگاه های خود را برای سازش بررسی کنید.
برای برنامه نویسان: اگر می خواهید نسخه قابل بازیابی باشد، در tonibleablebuilds.org
درباره Derek Zimmer
Derek رمزگشایی، متخصص امنیت و فعال حقوق خصوصی است. او دارای دوازده سال تجربه امنیتی و شش سال تجربه در طراحی و اجرای سیستم های حریم خصوصی است. وی تأسیس صندوق بهبود فناوری متن باز (OSTIF) را که بر ایجاد و بهبود راهکارهای امنیتی منبع باز از طریق ممیزی، رفع مشکلات و جمع آوری و مدیریت منابع تأکید می کند.