کمیته رکن چهارم – فناوری ها و راهکارهای دیجیتالی مانند طبیعت، انسانها و ماشینها یک چرخه حیات داشته و بدون رسیدگی، انجام مراقبتهای لازم و بهروزرسانیهای مداوم همیشه در بهترین وضعیت خودشان باقی نخواهند ماند. منسوخ شدن نرمافزار، استهلاک و فاسد شدن کد و همچنین استهلاک دادهها نمونههایی از ناپایداریهای دیجیتالی در دنیای فناورانه امروزی هستند. برای مثال افت کیفیت رسانههای ذخیرهساز دیجیتال (مثل سیدی، دیویدی، کارت حافظه SD، هارددرایو و غیره) که ناشی از خوردگی، گرد و خاک، ارتعاشات الکترومغناطیسی، اکسیده شدن و خراشهای فیزیکی است باعث کاهش کیفیت دادهها میشود.
یکی از راهکارهای توصیه شده برای جلوگیری از وقوع چنین مشکلی ذخیره دادهها بر روی سرورهای ابری است. در این مطلب از فراست ابتدا مروری بر مفهوم افت کیفیت نرمافزار و انواع آن داشته و سپس پیامدهای ناشی از وقوع چنین رویدادی را بررسی میکنیم.
افت کیفیت نرمافزار چیست؟
کاهش کیفیت یا تخریب تدریجی کیفیت نرمافزار شامل افت کیفیت کد، فرسودگی، فاسد شدن یا آنتروپی نرمافزار بوده و به مرور زمان منجر به کاهش واکنشپذیری نرمافزار میشود. در نهایت نیز نرمافزار بدون استفاده شده یا اینکه نیاز به ارتقا و بهروزرسانی دارد. چنین رویدادی یک پدیده فیزیکی نیست زیرا نرمافزار واقعاً فاسد نشده و فقط با توجه به تغییرات موجود در محیطی که در آن قرار گرفته دچار مشکلات خاصی شده است.
انواع تخریب کد و افت کیفیت نرمافزار شامل موارد زیر هستند:
- تغییر محیط (فرسودگی خفته)
- فساد تدریجی (فرسودگی فعال)
- نامگذاری نامناسب روشها
در ادامه، هر کدام از موارد بالا را به صورت مختصر توضیح میدهیم.
تغییر محیط (فرسودگی خفته)
این گروه شامل مواردی است که یک قطعه کد برای مدت طولانی مورد استفاده قرار نگرفته است (مثل زمانی که نیازی به یک عملکرد خاص نیست). ممکن است در این بازه زمانی، محیطی که کد در آن قرار گرفته تغییر کند در حالی که در قطعه کد مدنظر هیچ تغییری ایجاد نشده است. در چنین شرایطی این کد با محیط اطرافش سازگاری لازم را نداشته و به مرور زمان منسوخ میشود.
فساد تدریجی (فرسودگی فعال)
این احتمال وجود دارد که یک نرمافزار به مرور زمان فاسد شود. فرض کنید توسعهدهندگان بدون توجه به تصویر کلی از یک کد، تغییراتی را در بخشی از آن که به صورت مداوم مورد استفاده قرار میگیرد ایجاد می نمایند. از آنجا که جزئیات کوچک کد مورد توجه قرار نگرفته و ممکن است دچار مشکل شود بنابراین این تغییرات، پیامدهای نامطلوبی را به همراه خواهد داشت.
نامگذاری نامناسب روشها
با افزایش تغییرات موجود در کدهای مرتبط با عملکرد یک روش خاص ممکن است نامهای پیشین کدها دیگر مناسب نباشند. در بسیاری از موارد نامهایی که برای کدها انتخاب میشوند چندان صحیح نبوده و بیانگر عملکرد واقعی آنها نیستند.
دلایل منسوخ شدن نرمافزار
بعضی از عوامل مختلفی که در منسوخ شدن نرمافزارها مؤثر هستند، عبارتند از:
کپیبرداری از الگوهای موجود: ممکن است قابلیتهای جدیدی به بخشی از کد یک نرمافزار اضافه شود. در چنین شرایطی نه تنها نباید از الگوی سایر قسمتهای کد کپیبرداری شود بلکه می بایست آنها را هم مورد بررسی قرار داده و در صورت نیاز، تغییراتی در آنها ایجاد کرد. در غیر این صورت این احتمال وجود دارد که نرمافزار مربوطه به مرور زمان منسوخ شود.
ایجاد تغییرات کوچک: گاهی وقت ها تغییرات کوچک کد میتواند منجر به ایجاد خطا شود. توجه کنید که حتی کوچکترین تغییرات نیز ممکن است مخاطراتی را ایجاد نموده و موجب منسوخ شدن کد شوند. اگرچه ایجاد تغییرات کوچک در کدهایی که آشنایی چندانی با آنها ندارید طبیعی است ولی حتی این تغییرات هم پیامدهای مخرب بسیار زیادی را به همراه خواهند داشت.
فشار زمانی: توسعه دهندگانی که باید در بازههای زمانی کوتاه و با توجه به ضربالاجلهای سختگیرانه کار کنند، ممکن است به جای ایجاد تغییرات بزرگتری که میتواند ساختار کد را بهبود بخشد، مجبور به پیادهسازی تغییرات کوچکتری شوند که به زمان زیادی نیاز ندارند.
عدم تعیین قوانین: اگر هیچ قانون و مقرراتی در زمینه چگونگی و زمان اصلاح فاسد شدن تدریجی کد وجود نداشته باشد، مشکلات درون کد با گذشت زمان بزرگتر و غیرقابل حلتر خواهند شد.
توسعهدهندگان: ممکن است توسعهدهندگانی که قرار است یک قطعه کد خاص را اصلاح کنند تجربه انجام این کار را نداشته یا کیفیت کلی و خروجی کار، اهمیت چندانی برای آنها نداشته باشد.
نشانههای منسوخ شدن کد
کاربران نهایی و توسعهدهندگان به راحتی میتوانند تشخیص دهند آیا یک کد و نرمافزار منسوخ شده است یا خیر؟ «شکنندگی» و «افزایش زمان تحویل قابلیتها» از جمله مواردی هستند که ممکن است در اثر فاسد شدن کد ایجاد شده باشند.
یک نرمافزار شکننده با ایجاد کوچکترین تغییری حتی در حوزههایی که مرتبط با تغییر نیستند نیز دچار نقص خواهد شد. در نتیجه نگهداری از چنین نرمافزاری دیگر کار چندان آسانی نخواهد بود. البته مجموعهای از ابزارهای تست خودکار وجود دارند که قابلیت تشخیص این نقایص را در سریعترین زمان ممکن دارند ولی متأسفانه ممکن است این نقصها وارد محیط عملیاتی شده و کاربران نهایی بسیار زیادی را درگیر کنند. اگرچه نشانههای منسوخ شدن نرمافزار برای آنها نیز قابل شناسایی است ولی احتمال دارد که آنها از همان ابتدا متوجه این قضیه نشده و کل برنامه کاربردی یا بخشهایی از آن با افت سرعت مواجه شود یا اینکه به صورت کامل از کار بیافتد.
همچنین افزایش زمان مورد نیاز برای افزودن قابلیتهای جدید، از جمله نشانه های منسوخ شدن کد است. اگر نرمافزار فاسد شود پیادهسازی یک تغییر جدید میتواند باعث شکلگیری تغییرات پی در پی در پیمانههای کد وابسته به آن شود. به این ترتیب، تیمهای امنیتی معمولاً تمایل چندانی به رسیدگی به مشکلات غیرحیاتی ندارند چون با تأثیرات آن و همچنین مدت زمانی که این تغییرات برای پیادهسازی نیاز دارند، به خوبی آشنا نیستند.
منسوخ شدن نرمافزار، نرمافزارهای قدیمی و اینترنت اشیا
منسوخ شدن نرمافزارها را میتوان به نرمافزارهای قدیمی و سنتی نسبت داد. بنا به گفته یکی از کارشناسان امنیت به نام “Miriam” «نرمافزارهای قدیمی شامل تمام نرمافزارهایی هستند که امکان دریافت وصلههای امنیتی یا پشتیبانی از سمت توسعهدهندگانشان را نداشته یا اینکه نمیتوانند با استانداردهای قانونی مورد اعمال به آن سازگاری یابند». Miriam معتقد است اگرچه نرمافزارهای سنتی همیشه خطرناک نیستند اما تهدید ایجاد شده توسط آنها برای امنیت هر کسبوکاری جدی است.
آسیبپذیر شدن نرمافزار در برابر حملات سایبری یا امکان نشت دادهها، کند شدن فعالیت نرمافزار به دلیل افت کارایی یا نیاز به اصلاح دستی مشکلات و همچنین عدم سازگاری نرمافزار با استانداردهای قانونی از جمله تهدیداتی هستند که در اثر منسوخ و قدیمی شدن نرمافزار به وجود میآیند. هر کدام از این تهدیدات به تنهایی پیامدهای مخربی به همراه داشته و مخاطرات بسیار زیادی را برای کسب و کارها به وجود خواهند آورد. بعضی از مهمترین مشکلاتی که در اثر این تهدیدات ایجاد میشوند، شامل موارد زیر هستند:
پیامدهای ناشی از نشت دادهها: کاهش درآمد، آسیب به اعتبار برند، از دست دادن مالکیت معنوی، پیامدهای قانونی، هزینههای پنهان و خسارتهای مالی زیاد، از جمله پیامدهای این گروه از تهدیدات بوده و در آیندهای نه چندان دور پس از وقوع نشت دادهها شما را درگیر خواهند کرد.
پیامدهای ناشی از افت کارایی: به طور کلی پیامدهایی که در اثر افت کارایی ایجاد میشوند مشابه پیامد نفوذهای امنیتی هستند. در صورت کاهش کارایی یک فناوری از یک برند خاص، برخی از مشتریان فعلی آنها جهت دسترسی به محصولات و خدمت مورد نظرشان ترجیح به انتخاب شرکت رقیب میدهند. همچنین در صورت انتشار چنین خبری ممکن است آسیب جدی به برند شما وارد شود.
پیامدهای ناشی از عدم سازگاری با استانداردهای قانونی: بعضی از این پیامدها که در سایت Corpnet.com منتشر شدهاند، عبارتند از:
- برداشتن حجاب سازمان: حجاب سازمان (که به آن سپر سازمان هم گفته میشود) تمایز قانونی در بین یک شرکت و مالکان آن بوده و فعالیتها، داراییها و مسئولیتهای شرکت را مستقل از مالکانش میداند. اگر یک سازمان نتواند متناسب با استانداردهای قانونی رفتار کند، ممکن است دادگاه به این نتیجه برسد که حجاب قانونی برداشته شده و افرادی که مالک یا ناظر یک کسب و کار هستند مسئولیت بدهیها یا تخلفات قانونی شرکت را بر عهده خواهند داشت.
- بازرسیها: پیروی نکردن از استانداردهای قانونی باعث موشکافی دقیق فرایندها و امور مالی یک کسب و کار میشود.
- جریمههای مالی: عدم پیروی از قوانین میتواند پیامدهای مالی چشمگیری داشته باشد. ممکن است چنین شرکتهایی با جریمه، افزایش مالیات و سایر تنبیههای مالی مواجه شوند.
- تعلیق یا خاتمه عملکرد کسب و کار: اگر تعداد یا شدت عدم پیروی از استانداردهای قانونی در یک سطح خاص باشد، ممکن است کسب و کار مربوطه مجبور به تعلیق عملیات یا تعطیلی کامل شود. چنین شرایطی میتواند برای هر کسب و کاری مهلک و فاجعهبار باشد.
- زندان: عدم پیروی از استانداردهای قانونی ممکن است موجب وارد شدن اتهام ارتکاب اعمال مجرمانه شده و در صورت تشخیص قصور یا جرم مالکان، مدیران و ناظران یک کسب و کار، پیامدهایی مثل زندان را برای آنها در پی داشته باشد.
- آسیب رسیدن به اعتبار برند: با انتشار خبر بیتوجهی یک سازمان نسبت به استانداردهای قانونی ممکن است به اعتبار آن کسب و کار آسیب وارد شود. این مسئله میتواند موجب نابودی اطمینان مشتریان و شرکتهای همکار شده و همچنین باعث شود که شرکتهای وام دهنده از ارایه خدمات مالی به کسب و کار مربوطه خودداری کنند.
همچنین اگر شرکت شما وابسته به دستگاههای اینترنت اشیا بوده یا در سازمانتان از آنها استفاده میکنید، مخاطره ایجاد شده در اثر فرسودگی نرمافزار میتواند افزایش یابد. ممکن است برای حسگرهای درون یک دستگاه متصل به اینترنت (مثل یخچال، ماشین لباسشویی و خودروها)، مشکلات نرمافزاری ایجاد شده و کار کردن با آنها برای کاربران دشوار شود. در صورت بروز چنین مشکلاتی در تجهیزات و دستگاههای پزشکی متصل به اینترنت، جان انسانها نیز به خطر خواهد افتاد.
در صورت مواجهه با یک نرمافزار یا کد منسوخ شده چه اقداماتی باید انجام داد؟
کاربران معمولاً به نرمافزارها و برنامههای کاربردی شخص ثالث دسترسی ندارند. از این رو آنها قادر به انجام اقدام خاصی برای جلوگیری از منسوخ شدن نرمافزارها نیستند. توصیه کارشناسان امنیتی به کاربران این است که در صورت مواجهه با پیامدهای یک نرمافزار منسوخ شده، اقدامات زیر را انجام دهند:
پشتیبانگیری: پشتیبانگیری از دادههای حساس به شما کمک میکند تا از امن بودن آنها در صورت بروز هر گونه مشکلی برای شبکه و نقاط انتهایی اطمینان یابید.
روشن و خاموش کردن دستگاه: خاموش نکردن رایانه میتواند مشکل افت سرعت آن را تشدید کند. بر اساس مطلبی که در سایت armortechs.com منتشر شده، «یکبار روشن و خاموش کردن دستگاه برای حل مشکلاتی همچون نشت حافظه مفید است زیرا بعضی از برنامههای کاربردی مشکلات خاصی دارند که منجر به نشت حافظه شده و رم مورد استفاده توسط آنها ممکن است هرگز آزاد نشود». بنابراین یکبار روشن و خاموش کردن رایانه باعث خاتمه دادن چنین فرایندهایی شده و حافظه را دوباره آزاد خواهد کرد.
بهروزرسانی: حدود ۸۰ درصد بدافزارها از طریق نرمافزارها و برنامههای کاربردی منسوخ شده وارد رایانهها میشوند. به همین خاطر استفاده از یک راهکار مدیریت وصلههای امنیتی برای اطمینان از بهروز بودن تمام نرمافزارها ضروری است.
جمعبندی
جلوگیری از فاسد شدن نرمافزارها برخلاف فرسودگی دادهها که امری اجتنابناپذیر است کاملاً قابل پیشگیری میباشد. توسعهدهندگان نرمافزارها و مالکان آنها با کمی دقت و توجه به محصولشان میتوانند مانع از منسوخ شدن آن شوند.
منبع: فراست