گوگل از Rust ، یک زبان برنامه نویسی ایمن برای حافظه، به عنوان عامل مهمی در توانایی آن در کاهش آسیب پذیری ها به عنوان بخشی از ابتکار برنامه نویسی ایمن خود استقبال کرده است.
آسیبپذیریهای دسترسی به حافظه اغلب در زبانهای برنامهنویسی رخ میدهد که ایمن نیستند. در سال 2019، مشکلات ایمنی حافظه 76 درصد از آسیبپذیریهای اندروید را تشکیل میداد.
در پاسخ، بسیاری از توسعهدهندگان و غولهای فناوری به سمت استفاده از زبانهای ایمن حافظه حرکت میکنند که به آنها کمک میکند نرمافزار و فناوری ایمن به طراحی تولید کنند.
آسیب پذیری ها از بین می روند
گوگل در وبلاگ خود شبیهسازی انتقال به زبانهای ایمن حافظه را از طریق استفاده تدریجی از کد امن حافظه در پروژهها و پیشرفتهای جدید در یک دوره پنج ساله ارائه کرد. نتایج نشان داد که علیرغم افزایش تدریجی کد نوشته شده در زبان های ناامن حافظه، آسیب پذیری های ایمنی حافظه به طور قابل توجهی کاهش یافته است.
گوگل او میگوید این به این دلیل است که آسیبپذیریها به صورت تصاعدی کاهش مییابند. کد جدیدی که در زبانهای ناامن حافظه نوشته میشود، اغلب حاوی اشکالات و آسیبپذیریها است، اما با بازبینی کد و بهروزرسانی، آسیبپذیریها به تدریج حذف میشوند و به مرور زمان کد را ایمنتر میکنند. پس ، منبع اصلی آسیبپذیریها، کدهای جدید است و با اولویتبندی استفاده از زبانهای برنامهنویسی ایمن حافظه هنگام شروع پروژهها و پیشرفتهای جدید، تعداد آسیبپذیریها به میزان قابل توجهی کاهش مییابد.
در تغییر خود گوگل به سمت استفاده از زبان های برنامه نویسی ایمن حافظه، کاهش قابل توجهی در تعداد آسیب پذیری های مرتبط با حافظه داشته است، به طوری که آسیب پذیری های ایمن حافظه به 24 درصد در سال 2024 کاهش یافته است - یک تضاد فاحش از سال 2019 و بسیار پایین تر از استاندارد صنعت 70٪. .
با این حال، استفاده از زبانهای ایمن حافظه یک گلوله نقرهای نیست، و گوگل اذعان میکند که «با بهرهمندی از آینده نگری، بدیهی است که ما هنوز به یک راهحل واقعا مقیاسپذیر و پایدار دست یابیم که به سطح قابل قبولی از ریسک دست یابد».
استراتژیها برای نزدیک شدن به آسیبپذیریهای ایمنی حافظه با وصله واکنشی آغاز شد، جایی که آسیبپذیریهای ایمن حافظه توسط تولیدکنندگان نرمافزار اولویتبندی میشوند و باعث میشود سایر مسائل با سرعت بیشتری مورد سوء استفاده قرار گیرند.
رویکرد دوم شامل کاهش پیشگیرانه بود، که در آن توسعه دهندگان تشویق شدند تا اقدامات کاهشی مانند قناری های پشته ای و یکپارچگی کنترل جریان را به قیمت سرعت اجرا، عمر باتری، تأخیرهای دم و استفاده از حافظه لحاظ کنند. توسعه دهندگان همچنین نتوانستند با توانایی مهاجمان برای سوء استفاده از آسیب پذیری ها به روش های جدید و خلاقانه همراه شوند.
سوم، کشف آسیبپذیری فعال بود، که در آن تمرکز بر شناسایی آسیبپذیریها از طریق «فازی» بود، جایی که آسیبپذیریها از طریق علائم حافظه ناایمن ردیابی میشوند. با این حال، همانطور که گوگل اشاره میکند، استفاده از این ابزارها برای تیمها ناکارآمد و زمانبر است و اغلب حتی با پاسهای متعدد، همه آسیبپذیریها را شناسایی نمیکنند.
تاکتیک چهارم گوگل این است که در نتیجه در پیشگیری با اطمینان بالا و توسعه ایمن با طراحی مشارکت کند. با استفاده از زبانهای برنامهنویسی مانند Rust، توسعهدهندگان آپشن های کدی را که نوشتهاند میدانند و میفهمند و میتوانند آسیبپذیریها را بر اساس آن ویژگیها استنباط کنند. این امر با کاهش تعداد آسیبپذیریها از همان ابتدا، از جمله آسیبپذیریهای خارج از مسائل ایمنی حافظه، هزینه توسعهدهندگان را کاهش میدهد. این کاهش هزینه انباشته همچنین دارای مزیت گفت ه ای برای بهره وری بیشتر توسعه دهندگان است.
وبلاگ گوگل خاطرنشان می کند: "مفهوم ساده است:" هنگامی که ما شیر آسیب پذیری های جدید را می بندیم، به طور تصاعدی کاهش می یابد، همه کد ما ایمن تر می شود، کارایی طراحی امنیتی افزایش می یابد، و چالش های مقیاس پذیری مرتبط با موجود را کاهش می دهد. استراتژیهای ایمنی حافظه به گونهای که میتوان آنها را به شکلی هدفمندتر بهطور مؤثرتر به کار برد.»
ارسال نظر