چهارشنبه, ۱۲ اردیبهشت, ۱۴۰۳ / 1 May, 2024
مجله ویستا

بهای آسیب پذیری ها


بهای آسیب پذیری ها
یافتن آسیب پذیری ها ارزنده است. هنوز بسیاری از مردم معتقدند که آسیب پذیری وجود ندارد مگر زمانیکه بصورت عمومی برهمگان افشا گردد . ما می دانیم که آسیب پذیری ها باید افشا گردند ولی تولیدکنندگان محصولات نرم افزاری چه نقشی در افشاگری عمومی آسیب پذیری های محصولات خود دارند .
یکی از مطالبی که در مورد امنیت اطلاعات من خیلی دوست دارم تعداد زیاد تکنولوژی هایی است که در آن دخالت دارند. تنها با کامپیوتر های شخصی ٬ انواع بسیاری از ساختار ها ٬ سیستمهای عامل ٬ وسایل جانبی و پروتکلها را باید یاد گرفت. هیچ گاه با کمبود منابع اطلاعاتی برای دست و پنجه نرم کردن مواجه نمی شویم و باید سعی کنیم در فرا گرفتن اندکی از همه چیز و عمیق شدن در بعضی موضوعات مشخص و مطلوب ، تعادل را حفظ نماییم که امری بس دشوار است .
وقتی از آسیب پذیری ها صحبت به میان می آید٬ به همراه آن طیف گسترده ای از اطلاعات منتقل می شود. در یک دید ابتدایی و سطحی این اطلاعات می تواند در مورد تکنولوژی هایی که تحت تاثیر قرار گرفته و نیز نتایج سوء استفاده از آنها باشد. در مقابل ٬ اگر از عمیق ترین سطوح و یک دید حرفه ای به موضوع نگاه کنیم ٬ بعنوان محقق شما می توانید آسیب پذیری ها را در جزئیات مهیب و مخرب مورد بررسی قرار دهید ( دقیقا" تکه برنامه آسیب پذیرچقدرحساس شناخته شده و این موضوع چگونه می تواند مورد سوء استفاده قرار گیرد.) حتی در این سطح ٬ دانستن اینکه چطور می شود از یک تکه برنامه آسیب پذیر سوءاستفاده کرد٬ با انجام دادن عملی این کار تفاوت زیادی دارد.طبیعتا" در این بین یک سطح میانی یا به نوعی نیمه حرفه ای نیز وجود دارد٬ بین یک دید سطحی و دیدی که یک محقق می تواند داشته باشد . این بسترمیانی ( نیمه حرفه ای) گاهی ممکن است به مردم در جهت بهبود یک آسیب پذیری کمک کند٬ یا حتی بدون اینکه متوجه جزئیات پیچیده تکنیکی شوند٬ تا حدی بر موضوع مورد آسیب پذیرعمیق شده که یک سری راهکار نیز در مقابل مجموعه حملات احتمالی به آسیب پذیری ارائه کنند.
گاهی فاصله بین این سطوح ( مبتدی – نیمه حرفه ای – حرفه ای) کم و اندک است ٬ مانند آسیب پذیری ساده نسبت به SQL Injection ( تزریق دستورات SQL از طریق مرورگر وب ). در اینجا شخصی با دید کاملا سطحی نیز احتمالا" مشکل زیادی برای یافتن راهی برای سوء استفاده و exploit نخواهد داشت. از طرف دیگر آسیب پذیری هایی وجود دارند که فاصله بین این سطوح در آنها بسیار عمیق است. سر ریز شدن پشته دیوار آتش DNS parsing kernel stack overflow شرکت سیمانتک در سال ۲۰۰۴ مثال بسیار خوبی برای این مورد می باشد . سوء استفاده از این آسیب پذیری ( Exploit ) چیزی است که فقط ممکن است گروه بسیار معدودی از مردم در مدت زمانی چشمگیر و قابل توجه موفق به انجامش شوند.
برای آنکه زیاد از بحث منحرف شویم ٬ اجازه دهید فقط بگویم ٬ به نظر من آسیب پذیری ها چیزهای کوچک و جذابی هستند. هرکدام موردی یگانه و بی همتا ست و هر کدام به مجموعه اطلاعات پیش نیاز خودش برای فهمیدن کامل ، وابسته است .
● آسیب پذیری ها از کجا می آیند؟
با اینکه این سئوال بسیار ساده به نظر می رسد ولی پاسخ آن همیشه ساده نیست . در مورد اینکه آسیب پذیری ها از کجا می آیند ( چطور پیدا می شوند ) دو مکتب فکری وجود دارد که در مورد هر کدام در ادامه متن صحبت خواهیم کرد.
اغلب آسیب پذیری ها توسط یک محقق امنیتی فاش می شوند ( و یا گاهی به ندرت نیز ممکن است در لیست ایمیل های یک وب سایت غول پیکر مربوط به مسایل امنیتی مانند Bugtraq بر ملا شود. ) یک محقق امنیتی می تواند از کارمندهای یک شرکت ٬ یک محقق امنیتی تمام وقت مستقل ٬ ویا حتی یک بازرس امنیتی شبانه باشد که در اوقات فراغتش نگاهی به تکه برنامه ها می اندازد. در بعضی از موارد٬ فردی که آسیب پذیری را کشف می کند ممکن است بصورت کاملا" اتفاقی و تصادفی به آن رسیده باشد. در اکثر موارد ٬ تحقیق در مورد یک آسیب پذیری و کشف آن بصورت ریشه ای ٬ پروسه ای متمرکز و بسیار فشرده است که یک فرد متخصص باید زمان زیادی برای آن صرف کند.
حالا به هر دلیل٬ افشای عمومی یک آسیب پذیری توسط شرکت سازنده نرم افزار اغلب با تولد (وجود) آن آسیب پذیری همزمان می گردد. حتی لغت مصطلح ( zero-day به معنی کمتر از یک روز) توسط شرکت های سازنده نرم افزار که حاوی آسیب پذیری هستند٬ به نظر می رسد چنین بیان می کند که گویا آسیب پذیری افشا نشده، در حقیقت وجود ندارد. این باور اشتباهی است که بسیاری از مردم مرتکب می شوند. مثل اینکه مردم تحت تاثیر چنین باوری هستند که اصلا" تا یک آسیب پذیری بصورت عمومی اعلام نشود هیچگونه خطری برای کسی ایجاد نکرده و هیچ تهدیدی محسوب نمی شود. اگر یک آسیب پذیری وسط یک بیابان بی آب و علف پیدا شود و کسی چیزی در مورد آن نشنود٬ آنگاه مردم تصور می کنند که در حقیقت این یک آسیب پذیری نیست و اصلا" ارزش آن را ندارد که در موردش صحبت کنند .
روند اعلام رسمی و پذیرفتن یک آسیب پذیری توسط یک شرکت سازنده نرم افزار (Responsible Disclosure) نیازمند آن است که محققان امنیتی بنشینند بر روی اطلاعاتشان و دست روی دست بگذارند تا تولید کنندگان محصول نرم افزاری وصله ( Patch ) ای برای آسیب پذیری مذکور به مشتریانشان ارائه دهند . در گذشته ما حتی شاهد ستیز و دشمنی بین تولید کنندگان نرم افزار و محققان امنیتی بوده ایم که دو ایده کاملا" متفاوت از یکدیگر در آشکار سازی این نواقص و آسیب پذیری های امنیتی داشته اند. تولید کنندگان نرم افزارها نیازمند زمان برای اصلاح کردن نرم افزارهایشان بودند که می تواند در نوع خود امری بسیار زمان بر و پر پیچ و خم باشد . محققان امنیتی می خواستند که این آسیب پذیریها و ضعفها مورد بررسی قرار گرفته و بر طرف شود ، حال بگذریم که هدف اصلی آنها از فاش ساختن این اطلاعات این مطلب بوده با نه ؟! و با اینکه این دو هدف یکسان به نظر می رسد ولی اختلافات از همینجا ناشی می شود.
در حال حاضر چنان به نظر می رسد که بصورت کلی صنعت امنیت خواستار تایید و بر ملا شدن نواقص و آسیب پذیریهای امنیتی درزمان دقیق افشای نقص و آسیب پذیری می باشد. در حالی که این آسیب پذیریها و ضعفهای امنیتی در بعضی موارد بعد از هفته ها ، ماه ها و یا حتی سالها به تولید کنندگان نرم افزار گزارش شده اند. هیچ تضمین و گارانتی ای وجود ندارد، بنابر این من معتقدم باور این مطلب بسیار ساده لوحانه است که کسی که یک آسیب پذیری و نقص امنیتی را گزارش می کند ، تنها کسی بوده که ازوجود این آسیب پذیری اطلاع داشته است . که خود این مطلب اگر با دقت به آن بیندیشید بسیار هراسناک است.
● بها و ارزش برای آسیب پذیری ها
با گذشت زمان آسیب پذیری ها کم کم تبدیل به متاع با ارزشی می شوند . اخیرا" شایعاتی پیرامون آسیب پذیری جدید WMF منتشر شد که ، پیش از آنکه این آسیب پذیری اعلان عمومی شود و مردم در مورد آن اطلاع پیدا کنند ، به مبلغ ۴۰۰۰ دلار فروخته شد . ( هر چند این مطلب در سطح شایعه باقی ماند و مورد تایید مسوولان قرار نگرفت ) . با فرض اینکه این مطلب صحیح باشد ، من شک دارم که اولین مورد از چنین واقعه ای باشد ، و مطمئن هستم که آخرین پیشامد نیز نخواهد بود.حتی شرکت هایی مانند iDefense و ۳Com وجود دارند که حاضرند به محققین برای منتشر نساختن آسیب پذیری ها و ضعفهای امنیتی شان پول پرداخت کنند. شما فکر می کنید این مطلب چه تاثیری بر روی آسیب پذیری ها خواهد گذاشت ؟ مهم نیست که شما چه فکری در این مورد می کنید، آسیب پذیری ها حکم یک پول جرینگی و قلنبه را دارند.
در حالیکه وجوه پرداختی از طرف شرکتهای iDefense و ۳Com برای موسسات و شرکتهای بزرگ با تیمهای امنیتی بسیار قوی چیز چشمگیری به حساب نمی آید، این مبالغ برای محققان امنیتی مستقل چنان قابل توجه است که تمام وقت خود را وقف این موضوع نمایند. این افراد می توانند با تسلط داشتن بر یافتن ضعفهای امنیتی و آسیب پذیری ها هزینه زندگی خود را به خوبی از این راه تامین نمایند. این نوع فعالیت می تواند تبدیل به یک تلاش تمام وقت برای این افراد شود که به نظر من فوق العاده است .
● وجدان و اخلاق در آسیب پذیری ها
بعضی از افراد ممکن است تصور کنند فروش آسیب پذیری ها از نظر اخلاقی پسندیده نیست و سؤال برانگیز است . آیا نباید محققان امنیتی این اطلاعات را از روی خیر خواهی و رقت قلب منتشر نمایند ؟! شاید. اما در این صورت آیا ما باید از مححققان امنیتی انتظار داشته باشیم که بصورت رایگان از محصولات و نرم افزارهای تجاری دیگران ، که با منافع مالی هنگفت فروخته شده اند ، نگهبانی و پشتیبانی کنند. اگر فروش آسیب پذیری ها از نظر اخلاقی صحیح نیست پس تکلیف فروش و کسب درآمد از طریق نرم افزارهای بسیار نا امن چه می شود ؟ آیا این مطلب اخلاقی است ؟! در حالی که تولید نرم افزارهای کاملا" ایمن و بدون آسیب پذیری امری غیر ممکن است، کاملا" طبیعی است که بعضی از شرکتها حتی تلاش نکنند که نرم افزارها و محصولاتشان از ایمنی برخوردار باشند، و بنابر این مسائل اخلاقی و وجدانی برای شرکتهایی که در فکر فروش محصولاتشان هستند و به فقط به درامد نهایی فکر می کنند هیچ نقشی را ایفا نمی کند. تولید نرم افزارهای ایمن پر هزینه و زمان بر است و شرکتها در صورتی که این مطلب تاثیرخاص و قابل توجهی بر درآمد و سود دهی آنها نداشته باشد ، توجه خاصی نشان نمی دهند .
شما از کدامیک جانبداری می کنید ؟ آیا معتقدید آسیب پذیری ها تنها زمانی یک تهدید جدی به حساب می آیند که بصورت عمومی اعلام و منتشر شوند ؟ یا اینکه آسیب پذیری ها در هر صورت فارغ از اینکه بصورت عمومی انتشار پیدا کنند یا نکنند یک تهدید و خطر به حساب می آیند ؟
‌ ● چرا ما نیاز به انتشار و اعلان عمومی یک آسیب پذیری از طرف تولید کننده نرم افزار داریم ؟
من شخصا" معتقدم آسیب پذیری ها خیلی پیش تر از آنکه بصورت عمومی منتشر شوند یک خطر و تهدید جدی به حساب می آیند. این باور که افشای عمومی و اعلان یک آسیب پذیری مردم را به خطر انداخته و برای آنها ریسک به همراه دارد ، آن هم مدتها پس از آنکه تولید کننده محصول نرم افزاری از وجود آن آگاه شده و ماه ها و حتی شاید سالها بدون هیچگونه اطلاع رسانی عمومی از این آسیب پذیری سپری گشته ، به نظر امری جاهلانه می آید و تنها فریب دادن خودمان است. همچنین این نظر تنها تلاشی است برای شکستن کاسه و کوزه ها بر سر دیگری و جز انداختن تقصیر استفاده از یک نرم افزار لاعلاج اصلاح ناپذیر بر گردن دیگری نیست : دیگرانی غیر از آنها که نرم افزار را تولید کرده اند. نتیجه و ماحصل این است که پس از اینکه یک آسیب پذیری و ضعف کشف شده و و به تولید کننده نرم افزار گزارش می گردد سیستمها همچنان آسیب پذیر و نا امن هستند، فارغ از اینکه این اطلاعات بطورت عمومی منتشر شود یا نه .
برای روشن شدن بهتر موضوع ، من نمی گویم ارسال یک exploit برای Bugtraq حتی پیش از آنکه به تولید کننده نرم افزار اطلاع داده شود ( و یا شاید درست پس از تماس با شرکت تولید کننده نرم افزار) مسئولیتی در پی دارد! ندارد. و نیز نمی گویم که این مطلب مردم را به خطر نمی اندازد. این موضوعات جای بحث زیادی دارد و همچنین من سعی در پایین آوردن ارزش ساختن وصله های نرم افزاری و ساده جلوه دادن آنها برای نرم افزارهایی که بصورت گسترده و تجاری فروخته شده اند را نیز ندارم .به هر حال باید محدودیتی در اینجا وجود داشته باشد( فروشنده ای که سر خود را در برف فرو برده و از اعلان عمومی آسیب پذیری نرم افزارش امتناع می کند ، هیچ کمکی به کسی نکرده است).
من فکر می کنم زمان آن فرا رسیده که شرکت های تولید کننده نرم افزار پیش از آنکه وصله های امنیتی خود را منتشر کنند ، آسیب پذیری ها و ضعف های امنیتی خود را بصورت عمومی اعلام کنند ، مخصوصا" زمانی که تهیه چنین وصله هایی ممکن است ماه ها به طول بیانجامد ( یا در مواردی حتی بیش از یک سال ). حد اقل ضعف امنیتی و آسیب پذیری راقبول کرده و مشتریان خود را از نقص و آسیب پذیری آگاه کرده و راهکارهایی به کاربرانشان ارائه کنند تا شاید آنرا کم خطرتر کرده و اندکی از آسیب پذیری کاربرانشان بکاهند.
سر انجام من معتقدم محققان امنیتی به همه ما لطف بزرگی می کنند. این چیزی است که آنها بخاطرش سزاوار پاداش هستند. در حالی که پذیرفتن متعهدانه و آشکار سازی آسیب پذیری ها توسط شرکت های تولید کننده نرم افزار امری بسیار مهم است ، محدودیتهایی نیز برای زمان پاسخگویی آنها وجود دارد( زیرا که مردم خیلی پیش تر از اعلان عمومی آسیب پذیری در ریسک و خطر قرار دارند). در پایان محققان امنیتی کسانی نیستند که آسیب پذیری ها را ایجاد نمایند ، آنها تنها کسانی هستند که این آسیب پذیری ها را کشف می کنند.
منبع : آژانس خبری هک و امنیت


همچنین مشاهده کنید