برنامه نویسی

تشخیص نادرست زیرساخت ها با استفاده از Coguard: Sast for Terraform و IAC

مقدمه

زیرساخت ها به عنوان کد (IAC) یک رویکرد مدرن برای تهیه زیرساخت های ابری با استفاده از ابزاری مانند Terraform ، Pulumi یا Opentofu است. این فن آوری ها مقیاس پذیری ، تکرارپذیری و اتوماسیون را بهبود می بخشند – اما در صورت عدم تنظیم کد می توانند خطرات امنیتی را نیز معرفی کنند. به عنوان مثال ، قرار دادن یک سطل S3 در معرض دید عموم یا غیرفعال کردن رمزگذاری می تواند منجر به نقض جدی داده شود.

در این مقاله معرفی شده است قصبه، یک ابزار تست امنیتی کاربردی استاتیک (SAST) که به طور خاص برای تجزیه و تحلیل پرونده های پیکربندی مورد استفاده در کد زیرساخت طراحی شده است. ما نحوه اسکن کد Terraform ، تفسیر نتایج و خودکار سازی فرآیند اسکن را در یک گردش کار CI/CD نشان می دهیم.

Coguard چیست؟

قصبه یک ابزار تجزیه و تحلیل استاتیک خط فرمان برای امنیت پیکربندی زیرساخت است. این پیش فرض ها و غلط های نادرست را قبل از استقرار تشخیص می دهد و یافته های خود را با چارچوب های امنیتی مانند: تراز می کند:

  • معیارهای CIS
  • OWASP Cloud-Native 10 برتر
  • سیاست های امنیتی داخلی

این از انواع قالب های IAC و پیکربندی سیستم پشتیبانی می کند ، از جمله:

  • شکل
  • kubernetes yaml
  • دکترهای
  • شکل ابری
  • پیکربندی های Apache/nginx
  • postgresql ، mysql
  • SSH ، خدمات لینوکس

بر خلاف ابزارهای SAST با هدف کلی که کد منبع را برای نقص های منطقی تجزیه و تحلیل می کنند ، Coguard بر زیرساخت ها و غلط های نادرست در سطح سیستم ، مانند ACL های ضعیف ، رمزگذاری گمشده و درگاه های شبکه باز تمرکز دارد.

ویژگی های کلیدی

  • کل دایرکتوری ها را برای پرونده های زیرساخت غلط تنظیم شده اسکن می کند
  • مسائل مربوط به میزان شدت و مشاوره اصلاح را برجسته می کند
  • یافته های نقشه به استانداردهای امنیتی شناخته شده (به عنوان مثال ، CIS ، OWASP)
  • گزارش های مفصلی را با فرمت ترمینال یا SARIF تهیه می کند
  • با ابزارهای CI/CD مانند اقدامات GitHub یا Gitlab CI ادغام می شود

نصب و اسکن اول

مرحله 1: تصویر Docker را بکشید

docker pull coguard/coguard-cli
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: اسکن را در پروژه Terraform خود اجرا کنید

اطمینان حاصل کنید که در فهرست پروژه Terraform خود هستید و اجرا می کنید:

docker run --rm -v $(pwd):/mnt coguard/coguard-cli scan /mnt
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور پروژه محلی شما را نصب می کند و تمام پرونده های پیکربندی زیرساخت را در داخل آن اسکن می کند. Coguard گزارشی را نشان می دهد که نشان دهنده هرگونه سوء استفاده ، شدت آنها و توصیه های اصلاح است.

اگر یک رابط کاربری گرافیکی را ترجیح می دهید ، می توانید برای بارگذاری و تجزیه و تحلیل پرونده های پیکربندی نیز از پلت فرم وب Coguard استفاده کنید.

مثال: کد Terraform آسیب پذیر

در اینجا یک عمداً ناامن است main.tf پرونده:

resource "aws_s3_bucket" "example" {
  bucket = "open-bucket"
  acl    = "public-read"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آنچه Coguard تشخیص می دهد:

  • دسترسی عمومی: ACL public-read سطل را در دسترس هر کسی قرار می دهد.
  • بدون رمزگذاری: هیچ پیکربندی رمزگذاری برای داده ها در حالت استراحت وجود ندارد.
  • نسخه از دست رفته: هیچ خط مشی نسخه ای فعال نیست.

این مسائل با شدت آنها گزارش شده و مطابق با استانداردهایی مانند معیار بنیادهای CIS AWS V1.4 وت برنامه OWASP Cloud-Native Security 10 برتربشر

ادغام CI/CD

شما می توانید Coguard را در گردش کار استقرار خود با استفاده از اقدامات GitHub ادغام کنید:

name: CoGuard Terraform Scan

on:
  push:
    branches: [ "main" ]

jobs:
  coguard-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Run CoGuard
        run: |
          docker pull coguard/coguard-cli
          docker run --rm -v ${{ github.workspace }}:/mnt coguard/coguard-cli scan /mnt
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

صادر کردن گزارش های Sarif

برای ادغام با داشبورد امنیتی GitHub می توانید نتایج SARIF را صادر کنید:

docker run --rm -v $(pwd):/mnt coguard/coguard-cli scan /mnt --output-format sarif > report.sarif
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نتایج و تفسیر

در یک اسکن نمونه ، Coguard تشخیص داد:

  • 3 موضوع با جدایی بالا (به عنوان مثال ، سطل S3 عمومی ، ذخیره بدون رمزگذاری)
  • 2 مسئله مربوط به افزایش متوسط ​​(به عنوان مثال ، ورود به سیستم از دست رفته)
  • 1 مسئله کم سن و سال (به عنوان مثال ، برچسب های ابرداده از دست رفته)

هر نتیجه شامل نام پرونده ، شماره خط و راهنمایی اصلاح روشنی است.

نتیجه گیری

Coguard ابزاری قابل اعتماد SAST است که برای زیرساخت ها به عنوان کد متناسب است. نقاط قوت آن عبارتند از:

  • تشخیص زودهنگام از سوء استفاده از ابر
  • تراز کردن با معیارهای امنیتی مانند CIS و OWASP
  • تنظیم آسان با استفاده از Docker
  • ادغام CI/CD بدون درز
  • گزارش تولید برای ممیزی و داشبورد

با ادغام Coguard ، تیم ها می توانند زیرساخت های ایمن و سازگار را حتی قبل از استقرار تضمین کنند.

منابع

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا