مایکروسافت ابزار تولید لایحه مواد نرمافزار داخلی، چند پلتفرمی خود را عمومی و منبع باز میکند.
سازش ابزار مدیریت سیستم SolarWinds مسائل جالب زیادی را برای هر کسی که از فرآیند ساخت CI/CD (ادغام پیوسته و تحویل مداوم) برای نرمافزار خود استفاده میکند، ایجاد کرد. چگونه می توانیم اطمینان حاصل کنیم که نرم افزاری که بین کاربران خود توزیع می کنیم، نرم افزاری است که قصد ساخت آن را داریم؟ آیا همه وابستگیهای کد ما همان وابستگیهایی است که میخواستیم داشته باشیم؟ اگر از ماژولهای شخص ثالث استفاده میکنیم، آیا همچنان همان چیزی هستند که انتظار داریم؟
این یک مشکل پیچیده است که با پایه لایهای و تودرتوی وابستگیهایی که در زیر همه کد خود قرار دادهایم، پیچیدهتر شده است. توسعه مدرن متکی به کدهای موجود در مخازن در سراسر جهان است که توسط تیم ها و افراد بی شماری توسعه یافته است که هرگز نخواهیم دید. با این حال، ما به کد آنها اعتماد داریم که همان چیزی است که می گوید – اعتمادی که به کاربران خود منتقل می کنیم.
همانطور که تد نلسون می گفت، همه چیز عمیقاً در هم تنیده است. شبکه ای از توسعه نرم افزار بسیار فراتر از میزها و مخازن ما است. برای اطمینان از اعتماد به کد خود چه کاری انجام می دهیم؟
چرا صورتحساب نرم افزاری مواد، و چرا اکنون؟
دولت ایالات متحده با یک “دستور اجرایی بهبود امنیت سایبری کشور” که مؤسسه ملی استانداردها و فناوری را ملزم به توسعه و انتشار دستورالعملهایی برای افزایش امنیت زنجیرههای تامین نرمافزار میکند. شبکههای ماژولها و مؤلفههایی که برای ساخت کد ما گرد هم میآیند. آن دستورالعمل ها اکنون در دسترس هستند. آنها به نرم افزاری نیاز دارند تا همراه با یک صورتحساب مواد نرم افزاری (SBOM) ارسال شود که جزئیات اجزای ارسال شده با کد شما را مشخص کند.
SBOM ها جدید نیستند. بسیاری از شرکت ها، از جمله مایکروسافت، آنها را با استفاده از مانیفست های اختصاصی در اختیار کاربران خود قرار می دهند. بدون استانداردسازی، قالب ها متفاوت هستند و اغلب توسط ماشین قابل خواندن نیستند. مایکروسافت در حال کار با کنسرسیوم برای اطلاعات و کیفیت نرم افزار در گروه کاری ابزار به ابزار SBOM خود بود تا استانداردی برای طرحواره SBOM ایجاد کند. فرمان اجرایی ایالات متحده به این فرآیند فوریت اضافه کرد و گروه کاری به سمت ادغام کار خود با مبادله داده بسته نرم افزاری بالغ تر حرکت کرده است. قالب SPDX).
مایکروسافت از ابزار خود برای تولید مانیفست های مؤلفه برای نرم افزار خود با فرمت های گزارش خود استفاده کرده است. در نتیجه پیوستن به فرآیند استانداردهای SPDX، ابزار داخلی مایکروسافت برای استفاده از این قالب جایگزین بهروزرسانی شده است و آن را در سراسر توسعه و ایجاد خطوط لوله خود منتشر میکند.
ابزارهایی مانند این باید به طور گسترده در دسترس باشند، استفاده از آنها آسان باشد و در همه پلتفرم هایی که احتمالاً برای کد خود استفاده می کنید کار کنند. آنها باید به ابزارهای توسعه رایج یا خطوط لوله CI/CD متصل شوند تا اطمینان حاصل کنند که اطلاعات مربوط به کد در جایی که توسعه یافته و در کجا کامپایل شده است گرفته می شود.
تولید دوبار SBOM ممکن است بیش از حد به نظر برسد، اما اگر خط لوله CI/CD شما در معرض خطر قرار گرفته باشد، مقایسه SBOM در ادغام با یکی در یک ساخت میتواند به شناسایی مشکلات احتمالی قبل از ارسال کد کمک کند. یک ابزار SBOM که به خوبی طراحی شده است، امضاهای دیجیتالی و هشهای مورد نیاز برای افزودن احراز هویت اضافی به فرآیند ساخت را ارائه میکند تا نه تنها شناسایی کند که آیا به خطر افتاده است، بلکه در کجا و چه زمانی این سازش اتفاق افتاده است.
از ابزار مایکروسافت در بیلدهای خود استفاده کنید
ابزار SBOM داخلی مایکروسافت اکنون منبع باز است، با باینری ها و کد منبع موجود در GitHub< /a>. این پروژه به سرعت در حال حرکت است و آشکارسازهای جدیدی را اضافه می کند تا به شناسایی کد و مکان آن کمک کند – و همچنین وابستگی هایی که به پایگاه کد شما می آورد. این آخرین نکته کلیدی است. ممکن است بدانید چه چیزی را از NuGet یا npm نصب می کنید، اما بینش بسیار کمتری نسبت به کدی که به آن بستگی دارد دارید. ممکن است فکر کنید که چیزی بیگناه ارسال میکنید، فقط متوجه میشوید که یکی از وابستگیهای کوچک این است که یک cryptominer بر روی سختافزار مشتریان شما اجرا میکند و ارز دیجیتال را برای مجرمان در آن سوی دنیا ارسال میکند. ناگهان نه تنها مشتریان شما کد ناامن و پرخطری را اجرا می کنند، بلکه اکنون شما مسئول این خطر و مشکلات ناشی از آن هستید.
نصب ابزار SBOM مایکروسافت به اندازه کافی ساده است. GitHub readme دارای اسکریپت هایی است که آخرین باینری ها را برای ویندوز با استفاده از PowerShell و برای Linux و macOS با استفاده از curl. یک بسته NuGet با API ابزار SBOM کار می کند که می توانید آن را به پروژه های دات نت اضافه کنید. این از مخزن بسته خود GitHub استفاده می کند که باید PackageReference فایل پروژه خود را اضافه کنید. هنگامی که csproj. کد خود را به روز کردید، dotnet restore
را اجرا کنید تا بسته را برای پروژه خود نصب کنید.
نسخه فعلی ابزار Microsoft SBOM یک برنامه خط فرمان است. پس از دانلود و نصب، آماده استفاده است. برای اجرای برنامه باید چند فایل ایجاد کنید. مهمترین آنها لیستی از فایل هایی است که باید در SBOM شما گنجانده شود. این می تواند از فهرست فهرستی از دایرکتوری های منبع برنامه شما و همچنین از ماژول هایی که توسط کد شما فراخوانی می شوند ایجاد شود. حتی میتوانید فهرستی از تصاویر Docker به آن بدهید تا اسکن شوند تا فهرستی از وابستگیهای سطح کانتینر خارج از کد و فرآیند ساخت شما ایجاد شود.
در زیر هود، یکی از اجزای کلیدی در ابزار SBOM تشخیص مؤلفه است، ابزاری که می تواند به صورت مستقل یا داخل ویژوال استودیو اجرا شود. این نرم افزار از اکثر اکوسیستم های نرم افزاری رایج، اسکن کد برای ماژول ها و در صورت امکان، ساخت یک نمودار وابستگی که می تواند نشان دهد چه ماژول هایی و از کجا نصب می شوند، پشتیبانی می کند. باز هم، این یک ابزار منبع باز است و اگر اکوسیستمی که استفاده میکنید پشتیبانی نمیشود، میتوانید از پشتیبانی برنامه افزودنی آن برای اضافه کردن اسکنهای خود استفاده کنید.
اسکریپت SBOM اسکن برای CI/CD
از آنجایی که یک ابزار CLI است، ابزار SBOM مایکروسافت قابل اسکریپت است. می توانید آن را در خط لوله CI/CD خود جاسازی کنید، یک SBOM را به عنوان بخشی از یک بیلد ایجاد کنید، و فایل های منبع خود را برای وابستگی ها و اجزاء اسکن کنید. SBOM حاصل یک سند SPDX JSON است. اگرچه برای انسان قابل خواندن است، ممکن است ترجیح دهید یک برنامه کاربردی جاوا اسکریپت ساده بنویسید تا داده ها را تجزیه کرده و در مرورگر نمایش دهید، یا حتی از آن به عنوان یک منبع اطلاعات امنیتی و مدیریت رویداد یا ابزار امنیتی مشابه برای گزارش تفاوت بین نسخه ها استفاده کنید. یک برنامه کاربردی در سادهترین حالت، میتواند مؤلفهها و وابستگیهای جدیدی را شناسایی کند که ممکن است نیاز به بررسی داشته باشند. در برنامههای پیچیدهتر، میتوانید فهرستی از مؤلفههای احتمالاً پرخطر ایجاد کنید که نیاز به بررسی بیشتر توسط یک تیم امنیتی دارد.
یکی از ویژگی های مفید پشتیبانی از ساخت های لایه ای است که SBOM ها را از اجزای مختلف یک برنامه ماژولار می پوشاند. در اینجا ساخت هر جزء SBOM خود را از درخت وابستگی خود تولید می کند. هنگامی که برنامه در مرحله ساخت نهایی بسته بندی می شود، ابزار یک SBOM ترکیبی برای کل برنامه ایجاد می کند که آماده اشتراک گذاری با مشتریان است. SBOMهای منفرد در مانیفست نهایی ارجاع داده می شوند و به آنها اجازه می دهد تا در برابر SBOM ساخت نهایی بررسی شوند تا اطمینان حاصل شود که نرم افزارهای ناخواسته در کنار کد شما بسته بندی نمی شوند.
SBOM ها ابزار مهمی برای توسعه نرم افزارهای مدرن هستند و در محیط امنیتی فعلی، باید آنها را ضروری دانست. ساخت خودکار SBOM ها مهم است زیرا درک عمق زنجیره وابستگی برای توسعه دهندگان تقریبا غیرممکن است. ابزار رایگان SBOM مایکروسافت با گنجاندن ابزارهایی برای شناسایی ماژولها و مؤلفهها و اسکن کانتینرها، راه طولانی را برای برآورده کردن الزامات نظارتی انجام میدهد و در عین حال به شما امکان میدهد با ارائه فعالانه SBOM و مانیفست مؤلفه به عنوان بخشی از هر نصب، از خواستههای مشتری جلوتر بروید.
پست های مرتبط
SBOM ها را با مولد SPDX SBOM مایکروسافت بسازید
SBOM ها را با مولد SPDX SBOM مایکروسافت بسازید
SBOM ها را با مولد SPDX SBOM مایکروسافت بسازید