تولیدکننده نرمافزار پزشکی همچنین رویکردی به شدت ناسالم نسبت به امنیت داشت. این هفته با خوانندهای آشنا میشویم که او را «راوُل» نامگذاری میکنیم، کسی که درباره زندگی پیشینش به عنوان مشاور پشتیبانی لینوکس تجاری برایمان تعریف کرد.
«مشتری برای ارزیابی سلامت سرور بزرگ خود که یک برنامه کاربردی حیاتی کسب و کار را اجرا میکرد با ما تماس گرفت.» او در مصاحبه با On Call گفت. راوُل یک هفته فرصت داشت تا این وظیفه را انجام دهد.
مشتری، یک مرکز درمانی بود و نرمافزاری که اجرا میشد، یک برنامه وب جاوا پیچیده بود که وظایفی مانند زمانبندی بیماران، مدیریت رزرو و حتی پرداختها را بر عهده داشت. این نرمافزار روی ماشینهای مجازی، پایگاه داده Postgres، آرایه ذخیرهسازی خارجی و در سه سرور (یکی از آنها یک جایگزین گرم برای پایگاه داده) اجرا میشد.
راوُل توضیح داد: «در ساعات اوج بار صبحگاهی، سیستم متوقف شده و غیرقابل دسترس میشد تا ۳۰ دقیقه طول میکشید.» متخصصان پزشکی، کارکنان اداری و بیماران همگی منتظر بودند تا برنامه عملکرد داشته باشد؛ وضعیتی به شدت نامطلوب.
وقتی راوُل برای تشخیص مشکل رسید، تکنسینهای محلی در حال مشاجره با یکدیگر بودند.
او گفت: «بخش مجازیسازی سیستم ذخیرهسازی را مقصر میدانستند، بخش ذخیرهسازی برنامه کاربردی را مقصر میدانستند و توسعهدهندگان برنامه سیستم عامل را مقصر میدانستند.» رابطه مشتری با فروشنده نرمافزار نیز سمی بود زیرا یکی از افراد مرکز درمانی نظراتی نامناسب در فرومهای پشتیبانی فروشنده نوشته بود. تهدید به اقدام قانونی نیز دنبال شد.
روز بعد، راوُل درست به موقع رسید تا سیستم را حدود ساعت ۱۰:۰۰ صبح متوقف ببیند. او سرور برنامه کاربردی را بررسی کرد – که مشکلی نداشت – اما متوجه شد که سرور پایگاه داده بسیار شلوغ است.
راوُل آرامش خود را حفظ کرد و در سومین روز کارش منتظر ماند تا سیستم دوباره قفل شود.
او نوشت: «من مستقیماً به سرور پایگاه داده رفتم و دیدم که کسی یک وظیفه بهروزرسانی طولانی مدت در حال اجرا است که ردیفهای جدول را قفل میکند، به این معنی که تمام تراکنشهای دیگر باید منتظر بمانند.»
راوُل کمی عمیقتر بررسی کرد و متوجه شد که فروشنده نرمافزار یک اشکال در محصولات خود پیدا کرده و در حال وصله کردن خطاهای پایگاه داده در سیستم زنده، در ساعات کاری و بدون اطلاع رسانی به مشتری بوده است.
او به On Call گفت: «من مدارک را جمعآوری کردم، گزارش خود را نوشتم و آن را به مدیریت ارائه دادم. توسعهدهندگان برنامه اعتراف کردند که از این مشکل برای ماهها آگاه بودهاند، یک ‘راه حل’ تقریباً آماده اجرا دارند و همه چیز درست خواهد شد.»
راوُل به زودی متوجه شد که وضعیت از آنچه تصور میشد دورتر است زیرا در دو روز آخر کارش تصمیم گرفت یک بررسی سلامت از پایگاه داده Postgres انجام دهد.
او به On Call گفت: «پایگاه داده تولید، اطلاعات پزشکی، اطلاعات شخصی و تراکنشهای مالی را ذخیره میکرد هیچ کنترل دسترسی نداشت. این با پیکربندی ‘همه همه همه’ تنظیم شده بود، بنابراین هر کاربری در هر سیستمی میتوانست به عنوان هر کاربری به هر پایگاه دادهای دسترسی پیدا کند.»
او نوشت: «من تقریباً از صندلیام افتادم، آن را به مدیریت گزارش کردم و آنها گفتند که توسعهدهندگان گفتهاند این پیکربندی مورد نیاز است و نگران نیستند.»
او نتیجه گرفت: «من با یادداشت ذهنی اینکه هرگز از آن فروشنده استفاده نکنم، به خانه رفتم.»
📌 توجه: این مطلب از منابع بینالمللی ترجمه و بازنویسی شده است.