معرفی Microsoft DevSkim

سه شنبه 28 مرداد 1399

این مقاله در مورد Microsoft DevSkim است. DevSkim فریم‌ورک اکستنشن‌های IDE و تحلیلگرهای زبان است که همچنان که توسعه‌دهنده کد را می‌نویسد، تحلیل امنیت درون خطی در محیط توسعه را فراهم می‌کند. برای کار با چندین IDE طراحی شده است (VS، VS Code، Sublime Text، و غیره) و یک مدل قوانین انعطاف‌پذیر دارد که از چندین زبان برنامه‌نویسی پشتیبانی می‌کند.

معرفی Microsoft DevSkim

شما می‌توانید از DevSkim در ویژوال استودیو 2019، VS Code و CLI استفاده کنید. مشابه سایر تحلیلگرها پیشنهاداتی که با نمای لامپ است و گزینه‌هایی برای رفع مشکلات را نشان می‌دهد. می‌توانید DevSkim را در ویژوال استودیو از منوی Extensions > Manage Extensions نصب کنید.

بعد از نصب، DevSkim در بک گراند اجرا شده و مشکلات موجود در برنامه شما را شناسایی می‌کند. در اینجا نمونه‌ای از هشدارهای DevSkim در برنامه ASP.NET Core وجود دارد. در DevSkim قانونی مثل (همه کنترلرها باید از کلاس Controller ارث‌بری کنند) وجود دارد. ما یک کنترلر ایجاد کردیم و ارث‌بری Controller را حذف کردیم و DevSkim به این کنترلر اخطار می‌دهد، به این صورت:

لینک show details صفحه گیت‌هاب DevSkim را با جزئیات اخطار باز می‌کند و لینک Show potential fixes گزینه‌های مختلفی مثل رفع خطا، از بین بردن پیغام خطا و غیره را فراهم می‌کند.

شما می‌توانید قوانین خود را بنویسید و در DevSkim درج کنید. می‌توانید از طریق ریپازیتوری GitHub DevSkim اطلاعات بیشتری را در مورد آن کسب کرده و با آن همکاری کنید.

ادغام DevSkim با Azure DevOps

Azure DevOps از DevSkim بدون هیچ پیکربندی خاصی پشتیبانی نمی‌کند. شما می‌توانید با استفاده از Powershell، DevSkim را با Azure DevOps pipeline ادغام کنید.

برای شروع کار، powershell task را به pipeline اضافه کرده و از کد زیر استفاده کنید.

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Host "Devskim Download Starting"
      Invoke-WebRequest https://github.com/microsoft/DevSkim/releases/download/v0.4.118/DevSkim_windows_0.4.118.zip -o $(Agent.ToolsDirectory)/DevSkim-Windows.zip
      Write-Host "Devskim Download Completed"
      Write-Host "Devskim Extraction - Starting"
      Expand-Archive -LiteralPath $(Agent.ToolsDirectory)/DevSkim-Windows.zip -DestinationPath $(Agent.ToolsDirectory)/DevSkim-Windows
      Write-Host "Devskim Extraction - Completed"
      Write-Host "DevSkim Execution starting"
      $(Agent.ToolsDirectory)/DevSkim-Windows/DevSkim_0.4.118/devskim.exe analyze $(Build.SourcesDirectory)
      Write-Host "DevSkim Execution - Completed"
    errorActionPreference: 'silentlyContinue'
    ignoreLASTEXITCODE: true

اگر DevSkim CLI مشکلی را پیدا کند، کد خروجی را با 1 ست می‌کند. اگر مقادیر ignoreLASTEXITCODE و errorActionPreference را کانفیگ نکنید، می‌تواند باعث شکست build شود.

در اینجا نتیجه دستور DevSkim که در Azure DevOps اجرا شده است را می‌بینید.

شما می‌توانید DevSkim CLI را کانفیگ کنید تا یافته‌ها را در یک فایل ذخیره کند. و می‌توانید DevOps را کانفیگ کنید تا فایل خروجی را در پوشه Artifacts  قرار داده و آن را دانلود کنید.

جمع‌بندی

DevSkim فریم‌ورکی از IDE extensions و تحلیلگرهای زبان است که تحلیل امنیتی درون خطی را در محیط توسعه ارائه می‌دهد و برای IDEهای متعدد طراحی شده است که با توجه به مدل قوانینی که دارد می‌تواند از چندین زبان برنامه‌نویسی پشتیبانی کند. با استفاده از DevSkim می‌توانید سورس کد خود را برای مسائل امنیتی اعتبارسنجی کنید، مثل استفاده از الگوریتم‌های امنیتی منسوخ‌شده، توکن‌های hardcod در سورس کد و غیره. اکستنشن یا CLI را دانلود کرده و آن را بررسی کنید.

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید