مدل مؤلفه Wasm آسیبپذیریهای زنجیره تأمین را با اجازه میدهد تا بهروزترین نسخههای کتابخانههای واردشده در زمان اجرا متصل شوند و پلتفرمها را قادر میسازد تا تعمیر و نگهداری برنامههای رایج را خودکار کنند.
گزارشهای اخیر به موضوع آسیبپذیری نرمافزاری ارثی توجه بیشتری را جلب کرده است. بسیاری نمی دانند که این مشکل چقدر در زنجیره تامین نرم افزار گسترده است و چه تعداد از مشاغل در معرض خطر هستند. در اینجا، ما به این مشکل آسیب زا می پردازیم و توضیح می دهیم که چگونه مدل مؤلفه WebAssembly یک مسیر پیشرونده رو به جلو ارائه می دهد.
SBOM: تشخیص هزینه رایگان
همه ما با آسیبپذیریهای بدنامی مانند آسیبپذیری Log4shell در Log4j آشنا هستیم. برای نشان دادن آسیبهایی که به آن وارد کرد، زمانی که یک نقص امنیتی به مجرمان سایبری اجازه داد تا سیستمهای حیاتی را با یک دوز کد مخرب آلوده کنند، عملیات در ۴۰ درصد از کسبوکارهای جهانی متوقف شد. با توجه به هزینه متوسط برای رفع یک نقض Log4j ۴.۶۲ میلیون دلار، طبق گفته IBM، و برای حل آن به ۱۲٪ از منابع عملیاتی نیاز دارد، تاثیر بسیار زیادی دارد.
علیرغم تلاشهای گسترده صنعت برای توسعه سیاستها، شیوهها، ابزارها و آموزش در مورد امنیت منبع باز، که توسط بنیاد امنیت نرمافزار منبع باز (OpenSSF)، رهبری میشود، تحقیق نشان می دهد که بیش از ۷۰ درصد شرکت ها در برابر Log4shell آسیب پذیر هستند. این نشان میدهد که ریشهکن کردن آسیبپذیریها چقدر میتواند فراگیر و دشوار باشد.
حتی در یک حالت عملیاتی “عادی”، توسعهدهندگان به دلیل انطباق و بارهای عملیاتی توسعه برنامه تحت فشار قرار میگیرند. یک مطالعه داخلی اخیر از Deloitte نشان داد که توسعه دهندگان ۸۰٪ از زمان خود را صرف مدیریت عملیات و نگهداری برنامه می کنند. و فقط چه چیزی را حفظ می کنند؟ کد منبع باز رایج که ۹۵٪ یا بیشتر از یک برنامه معمولی را تشکیل می دهد. در حالی که راهاندازی برنامههای ما با کتابخانههای منبع باز، توسعه برنامهها را تسریع و سادهتر میکند، به قیمت حفظ این مؤلفهها تمام میشود.
محاسبات جدید مصون نیست
پارادایمهای محاسباتی جدیدتر – برای مثال کانتینرها – مصون نیستند. گزارش امنیت و استفاده ۲۰۲۳ Cloud-Native Sysdig این کمبود را آشکار می کند سیاستهای امنیتی مناسب به افزایش آسیبپذیریهای مرتبط با پیکربندی نادرست دامن میزند. این گزارش ادعا میکند که ۸۷ درصد از تصاویر کانتینری که در حال تولید هستند، دارای آسیبپذیریهای بحرانی یا با شدت بالا هستند که ۱۳ درصد افزایش نسبت به سال گذشته نشان میدهد.
حتی در Rust (زبان امنیتی و امنیتی)، آسیبپذیریهایی در کتابخانههای محبوب مانند Hyper وجود دارد که زیربنای بسیاری از چارچوبهای Rust است. طبق JFrog، ۲۵۷۹ پروژه فهرست شده در مخزن بسته Rust، crates.io، به Hyper بستگی دارد که بیش از ۶۷ میلیون بار دانلود شده است. آسیبپذیری Hyper، بدنه HTTP ورودی را به هزاران بایت تبدیل میکند که میکروسرویسها و برنامهها را از کار میاندازد. به عنوان توسعه دهندگان، ممکن است کاملاً از آن بی اطلاع باشیم. اگر همان کد در ۲۰۰۰۰ برنامه اجرا شود، به کابوس لجستیکی برای شرکتها تبدیل میشود که در مقیاس آن را حفظ کنند.
NFR ها، حقیقتی ناخوشایند
۹۰٪ از تمام آسیبپذیریهای موروثی در نیازمندیهای غیرعملکردی (NFR) قرار دارند، که به نوبه خود ۹۵٪ از محتوای بیشتر برنامهها را تشکیل میدهند. NFR ها مجموعه ای از مشخصات هستند که قابلیت ها، ویژگی ها و محدودیت های یک برنامه کاربردی را تعریف می کنند. آنها گاهی اوقات به عنوان کد “بویلرپلیت” شناخته می شوند – چیزهای استانداردی که بارها و بارها وارد می شوند. مشکل این است که برنامه ها آسیب پذیری های کتابخانه های وارداتی خود را به ارث می برند.
NFR ها همچنین منابع زیادی را تخلیه می کنند. سازمان ها ۶۰ تا ۷۰ درصد از زمان توسعه را صرف نگهداری و عملیات برنامه می کنند و زمان کافی برای تحویل ویژگی های اصلی ندارند. همانطور که شرکتهای مدرن پراکندهتر میشوند – ابتدا برنامههای وب بومی، ابرها و لبههای متعدد را در نظر بگیرید – برنامهها را برای اجرای بیشتر خارج از هسته (محلی که دادهها و کاربران هستند) دوباره فاکتور میکنیم. همانطور که ما به این پلتفرمهای جدید سرویس میدهیم و روی آن نصب میکنیم، منطق تجاری موجود خود را با NFRهای بیشتری همراه میکنیم—و بار NFR ما همچنان در حال افزایش است.
NFRها به سرعت در بین شرکتها استاندارد میشوند و اغلب بخشی از قالبهای کاربردی طلایی میشوند. هنگامی که یک برنامه جدید ایجاد می کنید، تمام کتابخانه ها، از نظر تئوری، به روز و وصله شده هستند. با این حال، آسیبپذیریها به ناچار کشف میشوند و ممکن است برنامه اکنون در معرض خطر قرار گیرد.
اگرچه برخی از آسیبپذیریها را میتوان به طور سیستماتیک وصله کرد، اما بیشتر آنها بر اساس یک برنامه کاربردی نگهداری میشوند. راه حل چیست؟ ما نمی توانیم به عقب برگردیم و هر کتابخانه را بازنویسی کنیم. پاسخ این است که راهی برای انتزاع NFR ها به طور کامل از تجربه توسعه پیدا کنید. اگر اتصال محکم NFR های خاص را به برنامه های خاص کاهش دهیم، مدیریت آسیب پذیری ها را ساده می کنیم. مدل مؤلفه WebAssembly (Wasm) برای این کار طراحی شده است.
انتزاع آسیب پذیری ها با WebAssembly
شکل ۱: دوره های فناوری در سفر به انتزاع.
در ۲۰ سال گذشته، شاهد نوآوری از پایین به بالا بوده ایم که بسیاری از بار نگهداری برنامه ها را از برنامه های خاص خارج کرده است. از لحاظ تاریخی، برنامهها در کنار سختافزار طراحی و ساخته میشدند – یک سرور با نام خاص روی یک رک. به تدریج، ما به انتزاع از آن لایههای زیرین ادامه میدهیم، پیچیدگیها را کنار میزنیم، وظایفی را که بهطور سنتی بر اساس برنامه به برنامه انجام میشد، حذف و تجمیع میکنیم. ما ماشینهای مجازی، مراکز داده، سیستمعاملها و پلتفرمهای هماهنگسازی را مدولار کردهایم.
با در نظر گرفتن اصل امنیتی حداقل ردپاها، هدف فعلی به حداقل رساندن پیکربندی و نگهداری خاص برنامه بر روی هر تیم توسعه است. وقتی برنامههایی را که در یک کانتینر بارگذاری میکنیم در نظر میگیریم، یک انتزاع نهایی برای ایجاد باقی میماند – NFRs.
زندگی توسعه دهندگان سازمانی مملو از وظایف ناامیدکننده انطباق است. حفظ لایه برنامه بر اساس برنامه کاربردی یک بار بسیار زیاد است. WebAssembly سرانجام برای توسعه دهندگانی که با پیچیدگی های مداوم نگهداری برنامه ها دست و پنجه نرم می کنند، تسکین لازم را به ارمغان می آورد. پست اخیر وبلاگ کوین هافمن را در محاسبات بدون اعتماد در Wasm بررسی کنید و wasmCloud برای اطلاعات بیشتر.
مدل مؤلفه WebAssembly سرانجام با ارائه انتزاعهایی برای NFRهای رایج – سرورهای وب، پایگاههای داده، ورود به سیستم و صفهای پیام، آرامش را برای توسعهدهندگان به ارمغان میآورد. بهجای تعبیه شدن در هر برنامه در زمان کامپایل، بهروزترین نسخه از این انتزاعها را میتوان در زمان اجرا پیوست کرد. این انتزاع ساده حجم عظیمی از نگهداری مداوم را به پلتفرمی که میتوان آن را خودکار کرد، تخلیه میکند.
معنی این برای شرکت ها این است که ما توسعه دهندگان را از وظیفه طاقت فرسا نگهداری دیگ برنامه کاربردی خود بر اساس برنامه به برنامه آزاد می کنیم. این به توسعه دهندگان این امکان را می دهد که وقت خود را صرف نوآوری و ارائه ویژگی های جدید کنند تا مشتریان خود را خوشحال کنند. علاوه بر این، استانداردسازی به شرکتها اجازه میدهد تا این وظایف زمانبر را خودکار کنند و تضمین میکند که آنها در زمان واقعی انجام میشوند.
این یک جهش بزرگ نسبت به فرآیندهای دستی است که امروزه در تعمیر و نگهداری مییابیم. Brooks Townsend و Bailey Hayes را که روشهایی را توصیف میکنند که wasmCloud و پلتفرم Cosmonic برای حذف آسیبپذیریها در سطح مؤلفه توصیف میکنند، ببینید.
نهایی شدن مدل مؤلفه WebAssembly
کانتینرها راه را برای تقسیم یکپارچه به میکروسرویسها باز کردند تا بتوانیم روی یک میکروسرویس جداگانه کار کنیم بدون اینکه روی همه چیز تأثیر بگذاریم. Wasm این مدل را به سطح بعدی می برد – برنامه را به اجزای جداگانه تقسیم می کند. مدل کامپوننت یک روش واقعی برای استخراج، تغییر و اصلاح اجزای جداگانه در یک برنامه کاربردی بدون تأثیر بر بقیه اجزای اطراف آن است.
چرا این مهم است؟ مدل مؤلفه NFRهای جفت شده محکم را که آسیبپذیریها معمولاً در آنها وجود دارند حذف میکند – و اتصال سخت برنامهها به برنامههای خاص را از بین میبرد. در مقاله اخیرش برای InfoWorld، بیلی هیز (مدیر کمیته راهبری فنی Bytecode Alliance و Cosmonic) دنیایی را توصیف میکند که در آن توسعهدهندگان میتوانند بخشهایی از برنامههای کاربردی خود را که به زبانهای مختلف پیادهسازی شدهاند، بهعنوان گزارههای ارزشی متفاوت انتخاب و انتخاب کنند. با شروع شکلگیری کتابخانههای مؤلفه Wasm، توسعهدهندگان از همه نوع آنها را بهعنوان بزرگترین جعبه «لگو» در جهان خواهند دید.
آنچه باقی میماند، قطعات کوچکی از منطق تجاری است که از آسیبپذیریهای تعبیهشدهای که ما تمایل داریم در حجم عظیمی از کدها که زیربنای اکثر برنامهها هستند، بیابیم، رنج نمیبرند. ارزش برای توسعه دهندگان این است که آنها فقط کد راست را می نویسند و برنامه ها ۹۵٪ کوچکتر از برنامه های کاربردی اولیه ابری می شوند که به معنای ۹۵٪ آسیب پذیری های موروثی کمتر است.
CNCF wasmCloud اولین زمان اجرای برنامه است که از مدل مؤلفه WebAssembly پشتیبانی می کند. این نوع رویکرد Zero Trust، ایمن به پیشفرض را به ارمغان میآورد که آسیبپذیریهای زنجیره تامین را ریشه کن میکند و این مشکل رایج را به تاریخ میسپارد.
لیام رندال مدیر عامل Cosmonic و رئیس CNCF Cloud Native Wasm Day.
—
New Tech Forum مکانی برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.
پست های مرتبط
حل بحران SBOM با اجزای WebAssembly
حل بحران SBOM با اجزای WebAssembly
حل بحران SBOM با اجزای WebAssembly