
تیمهای نرمافزاری مدرن دیگر نمیتوانند امنیت و کیفیت را به عنوان اهداف جداگانه در نظر بگیرند. همان رشته ای که از قبولی آزمون ها اطمینان می دهد باید از ایمن بودن کد نیز اطمینان حاصل کند. با ادغام Kiuwan SAST (تست امنیت برنامه استاتیک) مستقیما به TestRail، تیمها یافتههای امنیتی را در چرخه حیات مشابه تستهای عملکردی و رگرسیون قرار میدهند و یک دیدگاه واحد از سلامت برنامه ایجاد میکنند. این رویکرد، معروف به کیفیت از طریق امنیت، QA را توانمند می کند و DevSecOps تیمهایی برای شناسایی، ردیابی و اصلاح آسیبپذیریها به عنوان بخشی از فرآیندهای آزمایشی روزمره خود. بهجای مدیریت گزارشهای امنیتی بهصورت مجزا، توسعهدهندگان و آزمایشکنندگان میتوانند ببینند که کدام ساختها یا اجراهای آزمایشی حاوی مسائل مهم هستند، بهبود را در طول زمان اندازهگیری کنند، و «نرمافزار ایمن» را زودتر در معیارهای کیفیت و امنیت نشان دهند.
پیش نیازها #
قبل از ادغام:
-
شما باید یک حساب معتبر Kiuwan داشته باشید و دسترسی به API برای واکشی داده های تجزیه و تحلیل
-
شما باید بتوانید اسکن Kiuwan را اجرا کنید و نتایج را از طریق API صادر یا بازیابی کنید
-
نمونه TestRail شما باید اجازه دهد دسترسی به API
نمای کلی جریان یکپارچه سازی (با استفاده از TestRail CLI) #

-
اجرا کنید تجزیه و تحلیل Kiuwan SAST
اسکن Kiuwan را به عنوان بخشی از فرآیند CI یا CD خود بگنجانید. شما می توانید آن را از طریق Kiuwan Local Analyzer یا API فعال کنید تا هر ساخت یا commit به طور خودکار برای آسیب پذیری ها تجزیه و تحلیل شود. -
نتایج تجزیه و تحلیل را در قالب JUnit صادر کنید
پس از اتمام اسکن، صادرات نتایج از کیوان در JUnit XML فرمت با استفاده از تحویل API. این باعث می شود آن را با TestRail CLI. کیوان ارائه می کند نقطه پایانی REST API برای تولید مستقیم این فرمت. -
TestRail CLI را نصب و پیکربندی کنید
TestRail CLI به شما این امکان را می دهد که نتایج آزمون را به صورت خودکار از فرمت های پشتیبانی شده مانند JUnit آپلود کنید. را ببینید مستندات دقیق در مورد نحوه راه اندازی TestRail CLI همراه با اطلاعات استفاده. -
نتایج Kiuwan را با استفاده از CLI در TestRail بارگذاری کنید
استفاده کنیدparse_junitدستور در TestRail CLI برای وارد کردن گزارش Kiuwan JUnit به اجرای تست TestRail جدید یا موجود. به عنوان مثال (GitHub Action):pip install trcli trcli -y \ -h $TESTRAIL_URL \ -u $TESTRAIL_USER \ -p $TESTRAIL_PASS \ parse_junit \ --title "Kiuwan SAST Results" \ --run-description "Automated Kiuwan scan results for build ${{ github.run_id }}" \ -f kiuwan-audit.xml -
مثال GitHub Actions YAML Workflow
مثال زیر نحوه خودکارسازی را نشان می دهد ادغام کامل Kiuwan به TestRail در یک گردش کاری GitHub Actions. نظرات درون خطی هر مرحله را توضیح می دهند:name: Kiuwan SAST to TestRail Integration # Run this workflow on push, pull requests, or manual trigger on: push: branches: - main pull_request: workflow_dispatch: jobs: sast_testrail_integration: runs-on: ubuntu-latest # Shared environment variables for the integration env: APP_NAME: "Sample Application Name" SRC_PATH: "." TESTRAIL_USER: your_testrail_username@example.com TESTRAIL_URL: https://yourcompany.testrail.io/ PROJECT_NAME: Your TestRail Project Name steps: # Step 1: Checkout repository code - name: Checkout code uses: actions/checkout@v4 # Step 2: Setup Python (required for TestRail CLI) - name: Setup Python uses: actions/setup-python@v4.5.0 with: python-version: '3.10' # Step 3: Download Kiuwan Local Analyzer - name: Download Kiuwan Local Analyzer run: | echo "Downloading Kiuwan Local Analyzer..." curl -sSL "https://www.kiuwan.com/pub/analyzer/KiuwanLocalAnalyzer.zip" -o kla.zip unzip -oq kla.zip -d kla # Step 4: Run a Kiuwan SAST scan - name: Run Kiuwan SAST Scan env: KIUWAN_USER: ${{ secrets.KIUWAN_USER }} KIUWAN_PWD: ${{ secrets.KIUWAN_PWD }} run: | cd kla/KiuwanLocalAnalyzer chmod u+x bin/agent.sh echo "Running Kiuwan scan for $APP_NAME" ./bin/agent.sh \ -s "$SRC_PATH" \ -n "$APP_NAME" \ -c \ -wr \ -as completeDelivery \ --user "$KIUWAN_USER" \ --pass "$KIUWAN_PWD" echo "Kiuwan scan completed." # Step 5: Retrieve the last successful delivery code from the Kiuwan API - name: Fetch Last SAST Scan Code id: fetch_delivery env: KIUWAN_USER: ${{ secrets.KIUWAN_USER }} KIUWAN_PWD: ${{ secrets.KIUWAN_PWD }} KIUWAN_API: "https://api.kiuwan.com" run: | echo "Fetching last successful delivery code from Kiuwan API..." encoded_app=$(printf "%s" "$APP_NAME" | jq -sRr @uri) response=$(curl -sSL --user "$KIUWAN_USER:$KIUWAN_PWD" \ "$KIUWAN_API/deliveries/last_analysis?application=$encoded_app") echo "Raw API response:" echo "$response" code=$(echo "$response" | jq -r '.lastSuccessfulDelivery.code // .analysisCode // empty') if [ -z "$code" ] || [ "$code" = "null" ]; then echo "Unable to extract delivery code from response." exit 1 fi echo "Last Successful Delivery Code: $code" echo "delivery_code=$code" >> $GITHUB_OUTPUT # Step 6: Download the JUnit XML report from Kiuwan for that delivery - name: Download JUnit XML Report id: fetch_junit env: KIUWAN_USER: ${{ secrets.KIUWAN_USER }} KIUWAN_PWD: ${{ secrets.KIUWAN_PWD }} KIUWAN_API: "https://api.kiuwan.com" DELIVERY_CODE: ${{ steps.fetch_delivery.outputs.delivery_code }} run: | echo "Downloading JUnit XML for delivery code: $DELIVERY_CODE" curl -sSL --user "$KIUWAN_USER:$KIUWAN_PWD" \ "$KIUWAN_API/deliveries/junit?deliveryCode=$DELIVERY_CODE" \ -o kiuwan_sast.xml if [ ! -s kiuwan_sast.xml ]; then echo "Failed to retrieve kiuwan_sast.xml" exit 1 fi echo "JUnit XML successfully saved as kiuwan_sast.xml" # Step 7: Upload the JUnit XML results to TestRail using the CLI - name: Upload Results to TestRail run: | pip install trcli trcli -y \ -h ${{ env.TESTRAIL_URL }} \ --project "${{ env.PROJECT_NAME }}" \ -u ${{ env.TESTRAIL_USER }} \ -p "${{ secrets.TESTRAIL_PASSWORD }}" \ parse_junit \ -f "kiuwan_sast.xml" \ --title "Kiuwan SAST Audit Checkpoint Tests"

منابع اضافی #
برای اطلاعات بیشتر در کیوان، از جمله مستندات مربوط به پیکربندی اسکن، استفاده از API، و صادرات نتایج، بازدید کنید:
https://www.kiuwan.com/documentation/
برای راهنمایی دقیق در مورد استفاده از TestRail CLI، از جمله گزینه های فرمان، تجزیه نتیجه، و نمونه های اتوماسیون، ببینید:

