D1-kifpool

مهندسان کروم می‌گویند اکثر باگ‌های امنیتی با قابلیت‌های ایمنی حافظه مرتبط هستند

یک‌شنبه 4 خرداد 1399 - 11:30
مطالعه 5 دقیقه
مهندسان و متخصصان امنیت کروم در اظهار نظری ادعا کردند که مشکلات ایمنی حافظه در کامپیوترهای شخصی، دلیل عمده‌ی باگ‌های امنیتی هستند.
تبلیغات
D4-mcid4

مهندسان گوگل در هفته‌ی گذشته اظهارنظر قابل‌توجهی پیرامون باگ‌های امنیتی مطرح کردند. آن‌ها ادعا می‌کنند که ۷۰ درصد از باگ‌های رخ داده در کدهای کروم، مرتبط با مدیریت حافظه و ایمنی کاربر هستند. نیمی از ۷۰ درصد مذکور، مرتبط با آسیب‌پذیری‌هایی موسوم به use-after-free هستند. این مشکلات امنیتی، از مدیریت نادرست آدرس‌های حافظه (memory pointer) نشأت می‌گیرند و امکان نفوذ به ساختارهای داخلی کروم را برای مجرمان سایبری فراهم می‌کنند.

آمار جدید مهندسان کروم، پس از تحلیل ۹۱۲ باگ امنیتی صورت گرفت که از سال ۲۰۱۵ در نسخه‌ی پایدار گوگل کروم کشف شده بود. این باگ‌ها، رتبه‌بندی ریسک «بالا» یا «بحرانی» داشتند. آمار جدیدی که توسط مهندسان کروم منتشر شد، با آمار مشابه چند وقت پیش مایکروسافت، هماهنگی دارد. مهندسان مایکروسافت در کنفرانس امنیتی فوریه‌ی ۲۰۱۹ اعلام کردند که در ۱۲ سال گذشته، ۷۰ درصد از به‌روزرسانی‌های امنیتی برای محصولات مایکروسافت، با هدف رفع آسیب‌پذیری‌های ایمنی حافظه منتشر شده است.

کپی لینک

مشکل همیشگی مدیریت حافظه

هر دو غول دنیای فناوری، ظاهرا با مشکل مشابهی دست‌وپنجه نرم می‌کنند. کارشناسان امنیتی اعتقاد دارند دو زبان C و ++C که توسط این شرکت‌ها به‌صورت عمده استفاده می‌شوند، زبان‌های «ناامن» هستند. زبان‌های مذکور، عمر بالایی دارند و دهه‌ها پیش ساخته شدند. در دورانی که C و ++C توسعه می‌یافتند، نفوذهای امنیتی و حمله‌های سایبری، تهدید مرسومی نبودند و اولین توسعه‌دهنده‌های نرم‌افزار، نگاهی جدی به آن‌ها نداشتند.

امنیت کروم

به‌خاطر عدم توجه جدی به ساختارهای امنیتی زبان‌های C و ++C، این دو زبان کنترل کامل چگونگی مدیریت آدرس‌های حافظه را به برنامه‌نویس‌ها می‌دهند. درنتیجه زمانی‌که برنامه‌نویس درحال مدیریت اصول پایه‌ای حافظه بوده و دچار خطا شود، پیغام خطای جدی یا خاصی از سیستم دریافت نمی‌کند. همین خطاهای اولیه‌ی کدنویسی، منجر به آسیب‌پذیری‌های مدیریت حافظه می‌شوند که در اپلیکیشن‌های نهایی به چشم می‌خورند. از میان آسیب‌پذیری‌های حاصل نیز می‌توان به مواردی موسوم به use-after-free, buffer overflow, race conditions, double free, wild pointers و بسیاری موارد مشابه اشاره کرد.

استفاده از زبان‌های قدیمی و ناامن C و ++C به مشکل اصلی شرکت‌ها تبدیل شده است

آسیب‌پذیری‌های مدیریت حافظه که در بالا به آن‌ها اشاره کردیم، باگ‌هایی هستند که مجرمان سایبری بیش از همه برای سوءاستفاده و نفوذ به سیستم‌‌های قربانی، از آن‌ها بهره می‌برند. این باگ‌ها به مجرمان امکان می‌دهند تا کد را در حافظه‌ی دستگاه ذخیره کنند و درنهایت اپلیکیشن قربانی، آن‌ها را اجرا خواهد کرد (مرورگر، سرور، سیستم‌عامل و غیره). شرکت MITRE، سازمان مدیریت دیتابیس آسیب‌پذیری‌های امنیتی دولت ایالات متحده، در رتبه‌بندی که در ابتدای سال جاری منتشر کرد، فشار بیش از حد به بافر (buffer overflow) را خطرناک‌ترین آسیب‌پذیری امنیتی در سیستم‌‌ها نامید. دو آسیب‌پذیری دیگر مرتبط با مدیریت حافظه هم در میان ۱۰ آسیب‌پذیری خطرناک قرار داشتند (out-of-bounds و use-after-free در رتبه‌های پنجم و هفتم بودند).

با توسعه‌ و پیشرفت مهندسی نر‌م‌افزار در سال‌های اخیر، توسعه‌دهنده‌ها توانایی برطرف کردن اکثر آسیب‌پذیری‌های امنیتی و اضافه کردن حفاظ‌های امنیتی مناسب را آموخته‌اند. البته آن‌ها هنوز در مدیریت حافظه با چالش روبه‌رو هستند و حفره‌های امنیتی از آن سمت، هنوز خطرآفرین محسوب می‌شوند.

کپی لینک

گوگل به‌دنبال حل باگ‌های حافظه در کروم

گوگل می‌گوید از مارس ۲۰۱۹، ۱۲۵ مورد از ۱۳۰ آسیب‌پذیری امنیتی کروم با رتبه‌بندی شدت «بحرانی»، مرتبط با اشکال در مدیریت حافظه بوده‌اند. این آمار نشان می‌دهد که باوجود پیشرفت در مدیریت دیگر انواع آسیب‌پذیری، مهندسان هنوز در پیدا کردن راهی برای مدیریت بهینه‌ی حافظه، با چالش روبه‌رو هستند. درنهایت مشکل مدیریت باگ‌های مرتبط با حافظه به‌حدی در گوگل بزرگ شده است که مهندسان کروم اکنون باید از رویکردی به‌نام «قانون دو (The Rule of 2)» پیروی کنند. طبق قانون مذکور، هرگاه مهندسان قابلیت جدیدی برای کروم توسعه می‌دهند، کد آن‌ها نباید بیش از دو شرط زیر را زیر پا بگذارد:

  • کد جدید،‌ ورودی‌های غیر قابل اعتماد را دریافت می‌کند
  • کد جدید بدون سندباکس اجرا می‌شود
  • کد جدید در یک زبان برنامه‌نویسی ناامن نوشته شده است (C یا ++C)
امنیت کروم

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

مایکروسافت از شرکت‌های دیگری است که به‌صورت جدی به‌دنبال جایگزینی برای C و ++C می‌گردد. آن‌ها از پروژه‌ی ابتدایی Checked C به‌صورت جدی در این مسیر حرکت کردند و امروز هم درحال بررسی امکان استفاده از Rust هستند. به‌علاوه، ردموندی‌ها تلاش می‌کنند تا نسخه‌ی اختصاصی خود از زبان امن Rust را توسعه دهند که احتمالا به‌صورت بخشی داخلی در پروژه‌ی محرمانه‌ی Project Verona اجرا خواهد شد.

مایکروسافت در کنفرانس مجازی بیلد در هفته‌ی گذشته، از موفقیت تلاش‌های ابتدایی برای جایگزین کردن زبان‌های C و ++C صحبت کرد. آن‌ها همچنین اعلام کردند که با جدیت، وظیفه‌ی خود مبنی بر استفاده از یک زبان برنامه‌نویسی امن را پیگیری می‌کنند. گوگل نیز در هفته‌ی گذشته از برنامه‌های مشابهی خبر داد. اهالی مانتین ویو اعلام کردند که به‌دنبال برنامه‌هایی جدی برای حل مشکلات امنیتی حافظه در کروم هستند. به‌هرحال مرورگر آن‌ها امروز با دراختیار داشتن بیش از ۷۰ درصد از سهم بازار، محبوب‌ترین مرورگر است و باید هرچه بیشتر روی امنیت آن سرمایه‌گذاری شود.

مهندسان گوگل همیشه از پشتیبان‌های جدی سیستم سندباکس در توسعه‌ی کروم بودند. آن‌ها ده‌ها فرایند را در سندباکس خود حفظ می‌کردد و اخیرا ساختاری به‌نام Site Isolation هم توسعه داده‌اند. این قابلیت، منابع هر وب‌سایت را در سندباکس اختصاصی فرایندها در همان وب‌سایت، نگه‌داری می‌کند. امروز مهندسان گوگل می‌گویند که به حداکثر قابلیت استفاده از سندباکس رسیده‌اند. درواقع اگر بیش از این از قابلیت سندباکس استفاده شود، بهره‌وری و سرعت استفاده از کروم، آسیب می‌بیند. درنتیجه آن‌ها باید به‌دنبال راهکارهای جایگزین باشند.

گوگل می‌گوید برای ارائه‌ی راهکار جایگزین به‌جای سیستم سندباکس، به‌دنبال توسعه‌ی کتابخانه‌های اختصاصی ++C برای کدهای کروم است. کتابخانه‌هایی که در مقابل باگ‌های مرتبط با حافظه، امن‌تر هستند. آن‌ها همچنین پروژه‌ای به‌نام MiraclePtr را نیز در دست بررسی دارند که به‌طور خلاصه برای مدیریت بهتر باگ‌های use-after-free توسعه یافت. گوگل در پایان نیز اعلام کرد که به‌دنبال زبان‌های برنامه‌نویسی امن‌تر برای جایگزینی نمونه‌های موجود هم می‌رود. از نامزدهای احتمالی آن‌ها می‌توان به Rust, Swift, JavaScript, Kotlin و Java اشاره کرد.

مقاله رو دوست داشتی؟
نظرت چیه؟

داغ‌ترین مطالب روز
وام ودیعه مسکن
وام ودیعه مسکن ۱۴۰۴ | وام مستاجری چند درصد است؟

در این مطلب مبلغ وام ودیعه مسکن 1404، تعداد اقساط و شرایط دریافت وام مستاجرین را بررسی می‌کنیم.

36
حدود 1 ساعت قبل
موشک بالستیک روسیه
سلاح‌های هسته‌ای مدرن چقدر ویرانگرتر از بمب‌های انداخته‌شده روی ژاپن هستند؟

هشتاد سال از زمان بمباران اتمی ژاپن می‌گذرد و در این مدت ساخت سلاح‌های هسته‌ای تغییراتی را پشت سر گذاشته است.

91
2 روز قبل
بهترین گوشی های زیر ۱۵ میلیون تومان بازار
بهترین گوشی ها تا ۱۵ میلیون تومان [مرداد ۱۴۰۴]

با صرف هزینه‌ای کمتر از ۱۵ میلیون تومان، چه گوشی‌هایی در بازار ایران ارزش خرید بالایی دارند؟ در مقاله‌ی پیش‌ رو بهترین مدل‌ها را معرفی خواهیم کرد.

343
حدود 24 ساعت قبل
تانک آبرامزX از نمای سه‌چهارم عقب
«سوپرتانک» آمریکایی؛ سلاح فوق پیشرفته‌ای که نبردها را متحول می‌کند

«آبرامزایکس» پاسخ آمریکا به بحران تانک‌های سنگین در میدان نبرد است؛ تانکی سبک‌تر و پیشرفته‌تر که می‌تواند جنگ‌ها را متحول کند.

47
حدود 24 ساعت قبل
نگهداری از پمپ آب
چطور از پمپ آب‌ مراقبت کنیم و عملکرد آن را افزایش دهیم؟

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

12
حدود 24 ساعت قبل
لوگو OCR در پس‌زمینه تیره
بهترین ابزارهای تبدیل عکس به متن؛ چطور نوشته‌ها را از عکس استخراج کنیم؟

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

18
حدود 4 ساعت قبل
بهترین ویدیو پروژکتورهای بازار
بهترین ویدئو پروژکتورهای بازار [بهار و تابستان ۱۴۰۴]

با بهترین ویدئو پروژکتورهای بازار برای فیلم دیدن و مصارف خانگی، جلسات اداری و ارائه‌های درسی و گیمنیگ آشنا شوید.

8
1 روز قبل
تبلیغات
DN-DNShatel

نظرات

با چشم باز خرید کنید
زومیت شما را برای انتخاب بهتر و خرید ارزان‌تر راهنمایی می‌کند
ورود به بخش محصولات