همه ما می دانیم که تکامل با مشتری ، قابلیت اطمینان یا امنیت چقدر مهم است.
در واقع ، برای شکل دادن به ذهنیت در یک منطقه خاص ، زمان و تلاش لازم است.
در مورد موضوعی به گستردگی امنیت برنامه و همچنین برنامه ای که توسعه دهندگان هر از چندگاهی با آن روبرو می شوند ، یادگیری و ایمن نگه داشتن کد ما بیش از اراده لازم است.
ما به ابزارهای خوبی احتیاج داریم.
برخی از آنها را قبلاً بررسی کرده ایم: [19659002] 🦟 11 ابزار جالب برای حسابرسی و مدیریت کیفیت کد
🐛 نحوه نصب ابزار بازرسی کد SonarQube بر روی CentOS
🐳 تجزیه و تحلیل کد با SonarQube در Docker
در مرحله بعدی ، 5 ابزار دیگر را بررسی خواهیم کرد
ویژگی مشترک آنها ترکیبی از ویژگی های زیر است:
- راه اندازی آسان: سخت ترین کار شروع کار است و من محصولات را خیلی دوست دارم. که توجه ویژه ای به سازگاری دارند. توانایی شروع بدون نیاز به خواندن بسیاری از اسناد ، انگیزه خوبی برای ادامه استفاده از این فناوری است.
- ادغام با گردش کار برنامه نویس: بازخورد در زمان واقعی در مورد درخواست ها و تغییرات ، بنابراین می توانید با اطمینان استقرار دهید.
- و قابلیت ها و مالکیت: ابزارهای خوب به شما کمک می کنند کار خود را به بهترین وجه انجام دهید و آنها را بدون نیاز به دردسر و هزینه اضافی در کار خود ادغام کنید.
Dependency Scanning
به روزرسانی های به موقع وابستگی یکی از پایه های آسیب پذیری در کد شما است.
در اوایل ما راهزنی ، ایمنی و البته بررسی وابستگی را بررسی کردیم:
OWASP DependencyCheck – آسیب پذیری های آشکار شده در برنامه ها را تشخیص می دهد
دو ابزار دیگر وجود دارد مواردی که یافتن مشکلات وابستگی را آسان تر می کند عبارتند از "وابستگی" و "نوسازی".
1 Dependabot
Dependabot – اکنون یک راه حل اختصاصی Github است – دارای یک گردش کار ساده و سرراست است: درخواست های کشش خودکار برای نسخه های جدید وابستگی ها را باز کرده و نسبت به وابستگی های آسیب پذیر هشدار می دهد.
Dependabot همچنین روابط PR را به وضوح متمایز می کند. با امنیت و به روزرسانی های وابستگی معمول ، با ذکر [Security] در عنوان و برچسب ، و از جمله تغییرات تغییرات آسیب پذیری های وصله شده.
اگرچه Dependabot قابل تنظیم است ، شامل گزینه های اساسی مانند امکان تنظیم فرکانس به روزرسانی ،
و از آنجا که همه ما می دانیم سعی در ارتقا فقط برای دریافت گزارش روابط عمومی از 20+ شکست در آزمون چیست ، یکی از ویژگی های جالب توانایی از بین بردن وابستگی هایی است که همانطور که می دانید ، تغییراتی خرابکننده داشته باشید که به سادگی نمی توانید برای آنها وقت بگذارید.
پیکربندی YAML نسبت به n است کوچک است و به اندازه کارهایی که در پروژه های زیرساختی ایجاد می کند اذیت نمی شود.
نسخه : 2
به روزرسانی :
- بسته-اکوسیستم : " npm"
فهرست : " /"
برنامه :
فاصله : " هفتگي" "
برچسب :
- " وابستگی "
مشخصه Dependabot این است كه از 15 زبان پشتیبانی می كند ، از جمله Terraform ، Rust و Github Actions.
برای فعال كردن Dependabot برای به روزرسانی نسخه ، فایل independentabot.yml را به مخزن اضافه كنید ، سپس به تنظیمات → Security & Analysis رفته و به روزرسانی های امنیتی Dependabot را فعال كنید. [19659020] 2. Renovate
مانند Dependabot ، Renovate نیز یک برنامه GitHub یا CLI است که وابستگی های شما را کنترل کرده و در صورت ظاهر شدن موارد جدید ، درخواست های pull را باز می کند.
اگرچه از زبان های کمتری نسبت به Dependabot پشتیبانی می کند ، اما مزیت اصلی Renovate این است که
آیا تا به حال خواسته اید در تنظیمات خود یک "جدول زمانی" بنویسید: "در اولین روز هفته"!
Well Renovate به شما امکان می دهد این کار را انجام دهید!
همچنین کنترل دقیق ادغام وابستگی ها را بر اساس در مورد قوانین تنظیم شده در پیکربندی.
به عنوان مثال ، می توانید به طور خودکار به روزرسانی های جزئی devDependency را ادغام کنید.
"packageRules" : [
{
"depTypeList" : [19659062] [ "devDependency" ]،
"updateTypes" : [ "جزئی" ] ،
"اتومرج" : [19659076] درست
}
]
رن ovate به شما امکان می دهد به جای ایجاد موارد جداگانه ، به روزرسانی های وابستگی monotepository را در یک PR منفرد قرار دهید ، که می تواند به طور قابل توجهی تلاش تیمی را کاهش دهد ، به خصوص برای monorepositories یا پروژه های با وابستگی های زیاد.
Renovate برای نصب یک برنامه میزبان و پیکربندی آن پیکربندی شده است با افزودن یک پرونده Renovate. json به ریشه مخزن.
همچنین می توانید برای بازخورد در مورد تمام تعهدات خود ، ابزار Renovate CLI را نصب و اجرا کنید.
Code Analyzers
توانایی ارزیابی امنیت کد شما همراه با وابستگی هایی که به آن اعتماد می کنند بسیار مهم است. برای اطمینان از اینکه تغییرات اعمال می شوند و به طور کلی خطرات مشتریان ، تجارت و قابلیت اطمینان خدمات شما را به طور کلی مهم می دانند.
لازم به ذکر نیست ، کاهش اضطراب هنگام ارسال کد سرعت توسعه ، مالکیت بسیار تأثیر می گذارد و به ما اجازه می دهد شب ها کمی بهتر بخوابیم.
قبلا ، موارد زیر را در نظر نگرفتیم ابزار Snyk ، GitGuardian و Webhint است.
3. Snyk
Synk محصولی است که بدون در نظر گرفتن تجربه امنیتی قبلی برای توسعه دهندگان ساخته شده است.
اگرچه Snyk یک محصول پولی برای تجارت است + ، گزینه رایگان آنها پروژه های منبع باز ، پروژه های شخصی و تیم های کوچک را شامل می شود که آن را به یک منبع عالی تبدیل می کند برای پروژه های شخصی و یادگیری ، حتی اگر فرصتی برای استفاده از آن در کار خود ندارید.
اسنیک اساساً مجموعه ای از محصولات برای یافتن و رفع آسیب پذیری در وابستگی ها ، کد و کانتینرهای شما است.
Snyk مدیریت امنیت منبع آزاد بسیار شبیه Dependabot و Renovate است و به شناسایی و رفع وابستگی های آسیب پذیر کمک می کند.
Snyk از تجزیه و تحلیل معنایی برای شناسایی اشکالات امنیتی و عملکردی استفاده می کند.
و در گزارشی که ایجاد کرده است
با یافتن هر آسیب پذیری ، توضیحات مفصلی درباره مشکل ، جریان داده ها و تجزیه و تحلیل اصلاح و چگونگی جلوگیری از آن در آینده ، که یک تجربه یادگیری امنیتی عالی را ایجاد می کند.
علاوه بر این ، هر آسیب پذیری یک طبقه بندی شدت را دریافت می کند ، و شما می توانید PR را برای رفع آن درست از صفحه کنترل باز کنید .
Snyk Container به توسعه دهندگان این امکان را می دهد تا آسیب پذیری های تصاویر کانتینر و برنامه های Kubernetes را بیابند.
Snyk علاوه بر سیستم عامل خود ، یکپارچه سازی CI را نیز ارائه می دهد تا بتوانید در مورد هر درخواست کشیدن بازخورد در زمان واقعی دریافت کنید.
فاش كردن اطلاعاتی مانند گواهینامه ها یا اسرار پایگاه داده ، زیرساخت استقرار كلید ، ایمیل و گذرواژه ها به مهاجم این توانایی را می دهد كه به اطلاعات محدود دسترسی پیدا كند یا آسیب بزرگی به بار آورد.
بنابراین اگر صداها باشد با ایجاد رعب و وحشت یا اینکه مجبور شده اید در مورد حادثه ای از اسرار کار کنید یا همه چیز را برای تنظیم مجدد اعتبار خود بیاندازید ، شما واقعاً GitGuardian را دوست خواهید داشت.
GitGuardian اساساً سرویسی است برای کشف و رفع خودکار اسرار در کد شما.
با Github ادغام می شود و با مخازن عمومی و خصوصی و قلاب های git کار می کند.
GitGuarding به عنوان ابزاری متمرکز بر توسعه دهنده ساخته شده است همچنین می تواند با گردش کار CI / CD برای دریافت بازخورد در مورد هر متعهد ادغام شود.
ویژگی مهم دیگر ادغام با Slack / Discord ، PagerDuty است ، که اجازه می دهد تا توسعه دهندگان را در کنار هشدارهای امنیتی قرار می دهد.
همچنین همه موارد را بررسی می کند ، حتی در صورت معتبر بودن اسرار ، نه فقط test1234.
5. Webhint
در واقع Webhint فقط یک ابزار امنیتی نیست ، بلکه یک چارچوب قدرتمند است!
Webhint ابزاری با منبع باز و قابل تنظیم است که به بهبود قابلیت دسترسی سایت یا برنامه شما ، سرعت آن کمک می کند ، سازگاری بین مرورگر ، امنیت و غیره
این برنامه برای توسعه دهندگان در نظر گرفته شده و کاملاً رایگان است.
{
"اتصال دهنده": {...} ،
"قالب سازها": [...]
"نکات": {
"no-vulnerable-javascript-libraries": ["error", {
"severity": "low|medium|high"
}] ،
...
} ،
...
}
از نظر امنیتی ، خزنده نه تنها به کد ، بلکه به هدرها نیز نگاه می کند ، که فوق العاده مفید است.
همراه با هدرها ، او یکی از ویژگی های rel من را برای پیوندها پیدا کرد. Snyk توجه نکرده است.
Webhint مثالهایی را بیان می کند که نکاتی را بیان می کند ، همراه با توضیحی در مورد مهم بودن این نکته ، که به یادگیری عالی نیز کمک می کند
به عنوان مثال ، اگر تعجب می کنید که چرا موارد فوق شکست خوردند و باید اصلاح شود ، می توانید در مورد آن بخوانید!
Webhint به عنوان یک راه حل مبتنی بر مرورگر و پسوند VScode و همچنین یک رابط خط فرمان است که می تواند در خطوط لوله CI / CD موجود باشد ، بنابراین در توسعه دهنده ادغام می شود گردش کار و ارائه چندین سطح بازخورد.
به طور کلی ، Webhint جامعه خارق العاده ای در پشت خود دارد و کیفیت ابزار و اسناد قابل توجه است.
نتیجه گیری
از این ابزارها ، من دوست دارم تجربه شما را با آنها بشنوم ، و اگر گزینه دیگری دارید که برای شما مفید باشد!