הגדרת SAST (בדיקת אבטחה סטטית של יישומים) ב-CI/CD

פגיעויות בקוד נוטות להישאר בלתי מזוהות עד לשלב הייצור, וגורמות לעלויות תיקון גבוהות. אנחנו משלבים ניתוח SAST ישירות בתהליך ה-CI/CD שלכם כדי לאתר הזרקות SQL, XSS וסודות שדלפו לפני המיזוג. הצוות שלנו מספק את הפרויקט במפתח מלא—החל מבחירת הכלים, דרך האינטגרציה ועד לתמיכה שוטפת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הגדרת SAST (בדיקת אבטחה סטטית של יישומים) ב-CI/CD
בינוני
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

ביליתם שבועיים בניפוי תקלת ייצור — הזרקת SQL שסורק דינמי לא זיהה. נשמע מוכר? אנו משלבים SAST (בדיקת אבטחה סטטית של יישומים) ישירות לתוך צינור ה-CI/CD שלכם: ניתוח קוד מקור ללא ביצוע. הזרקות SQL, XSS, סודות מוטבעים, פונקציות לא בטוחות — אנו תופסים אותם לפני המיזוג. בפרויקט אחד עם 10 מפתחים המשתמשים ב-TypeScript ו-Python, פרסנו את Semgrep ו-CodeQL תוך 3 ימים. תוצאה: 12 נקודות תורפה קריטיות נחסמו בשלב ה-PR, וחוסכו 40% מזמן הבדיקה. אחת מנקודות התורפה שנמצאו הייתה הזרקת SQL דרך מחרוזות תבנית שמנתחים סטטיים לא זיהו עד שיישמנו כללים מותאמים אישית. לאחר הגדרת Semgrep עם כלל לשרשור SQL, שגיאות כאלה נחסמות אוטומטית. צרו קשר כדי שנעריך את הפרויקט שלכם.

אילו נקודות תורפה SAST מזהה?

SAST מכסה את כל OWASP Top Ten: הזרקות SQL, XSS, דה-סריאליזציה לא בטוחה, אימות שבור. לדוגמה, Semgrep תופס שרשור SQL ישיר במחרוזות, בעוד ש-CodeQL עוקב אחר זרימת נתונים עבור SSRF ו-RCE. Gitleaks מוצא מפתחות API, טוקנים וסיסמאות, גם אם הם נשלחו לפני שלוש שנים. בפרויקט אחד מצאנו מפתח AWS שהיה בהיסטוריית ה-git במשך שלוש שנים.

כלי SAST

Semgrep — מהיר, תומך ביותר מ-30 שפות, כללים מותאמים אישית. דוגמה לסריקה בסיסית ולכלל מותאם אישית לזיהוי שרשור SQL ישיר:

# Установка
pip install semgrep

# Сканирование с набором правил для безопасности
semgrep scan --config=p/security-audit \
    --config=p/owasp-top-ten \
    --config=p/typescript \
    --json > semgrep-results.json

# Кастомное правило: поиск прямой конкатенации SQL
cat > rules/sql-injection.yml << 'EOF'
rules:
  - id: raw-sql-concatenation
    patterns:
      - pattern: |
          "SELECT ... " + $VAR
      - pattern: |
          `SELECT ... ${$VAR}`
    message: "Potential SQL injection: use parameterized queries"
    severity: ERROR
    languages: [typescript, javascript]
EOF

semgrep scan --config=rules/sql-injection.yml src/

GitHub Advanced Security (CodeQL) — ניתוח זרימת נתונים לנקודות תורפה מורכבות:

# .github/workflows/codeql.yml
name: CodeQL
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '0 0 * * 1' # Еженедельно
jobs:
  analyze:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      actions: read
    strategy:
      matrix:
        language: [javascript-typescript]
    steps:
      - uses: actions/checkout@v4
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v3
        with:
          languages: ${{ matrix.language }}
          queries: security-and-quality
      - name: Autobuild
        uses: github/codeql-action/autobuild@v3
      - name: Analyze
        uses: github/codeql-action/analyze@v3
        with:
          category: "/language:${{ matrix.language }}"

סריקת סודות

# Gitleaks: поиск секретов в коде и истории git
docker run --rm -v $(pwd):/path \
  zricethezav/gitleaks:latest detect \
  --source /path \
  --report-format json \
  --report-path /path/gitleaks-report.json

# truffleHog: анализ git истории
trufflehog git file://. --json > secrets-report.json

# GitHub Actions: pre-commit hook на секреты
- name: Check for secrets
  uses: gitleaks/gitleaks-action@v2
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE }}

תוספי אבטחה של ESLint

npm install --save-dev eslint-plugin-security eslint-plugin-no-unsanitized @microsoft/eslint-plugin-sdl
cat > .eslintrc.json << 'EOF'
{
  "plugins": ["security", "no-unsanitized", "@microsoft/sdl"],
  "extends": [
    "plugin:security/recommended",
    "plugin:@microsoft/sdl/required"
  ],
  "rules": {
    "security/detect-object-injection": "error",
    "security/detect-non-literal-regexp": "warn",
    "security/detect-possible-timing-attacks": "error",
    "no-unsanitized/method": "error",
    "no-unsanitized/property": "error"
  }
}
EOF

שילוב CI/CD

שלבו את Semgrep ו-Gitleaks בצינור אחד (דוגמה ל-GitHub Actions):

---
# .github/workflows/sast.yml
name: SAST
on: [push, pull_request]
jobs:
  combined:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Semgrep
        uses: returntocorp/semgrep-action@v1
        with:
          config: >-
            p/security-audit
            p/owasp-top-ten
            p/typescript
          auditOn: push
        env:
          SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }}
      - name: Secrets scan (Gitleaks)
        uses: gitleaks/gitleaks-action@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

השוואת כלי SAST

כלי היקף שפות מהירות נקודות תורפה אופייניות
Semgrep AST + התאמת תבניות 30+ <1 דקה/10k שורות SQLi, XSS, סודות מוטבעים
CodeQL ניתוח זרימת נתונים <10 2–5 דקות/10k שורות SSRF, RCE, מעבר נתיבים
Gitleaks רגקס לסודות כל <30 שניות/מאגר מפתחות API, טוקנים, סיסמאות

שלבי יישום SAST

שלב משך תוצאה
ניתוח דרישות 0.5 ימים רשימת כלים וכללים
הכנת תצורה יום אחד קבצי workflow וכללים מותאמים אישית
שילוב CI/CD יום אחד צינור עובד עם חסימה
בדיקה וכיוונון 0.5 ימים הסרת חיובי שווא, הגדרת ספים
הדרכת צוות שעה אחת סדנה לפירוש תוצאות

כיצד לפרש תוצאות SAST?

כל אזהרה כוללת תיאור נקודת תורפה, שורת קוד ומחסנית קריאות. HIGH ו-CRITICAL חוסמים PRs — יש לתקן אותם מיד. WARNING ו-INFO נכנסים ל-backlog ומשויכים לבעל הקוד. אנו ממליצים על טריוז' שבועי של ממצאים חדשים. זה מפחית נקודות תורפה מתעלמות ושומר על קוד נקי.

כיצד להגדיר SAST ב-CI/CD תוך 1–2 ימים?

אנו מחברים את הכלים הנבחרים למאגר שלכם: יוצרים קובץ workflow, מגדירים כללים לסטack שלכם (React, Node, Python — מושכים ערכות מוכנות). לאחר מכן אנו מכווננים ספי חסימה: HIGH ו-CRITICAL מכשילים את הבנייה; כל השאר נכנס ל-backlog. הצוות שלכם מקבל דוח דרך לשונית האבטחה של GitHub או לוח המחוונים של Semgrep.

למה Semgrep על פני סקריפטים מותאמים אישית?

רגקסים מותאמים אישית נכשלים על קוד מוסתר וחסרי הקשר. Semgrep מנתח את ה-AST — הוא מבחין בין # Установка pip install semgrep # Сканирование с набором правил для безопасности semgrep scan --config=p/security-audit \ --config=p/owasp-top-ten \ --config=p/typescript \ --json > semgrep-results.json # Кастомное правило: поиск прямой конкатенации SQL cat > rules/sql-injection.yml << 'EOF' rules: - id: raw-sql-concatenation patterns: - pattern: | "SELECT ... " + $VAR - pattern: | `SELECT ... ${$VAR}` message: "Potential SQL injection: use parameterized queries" severity: ERROR languages: [typescript, javascript] EOF semgrep scan --config=rules/sql-injection.yml src/ ל-# .github/workflows/codeql.yml name: CodeQL on: push: branches: [main] pull_request: branches: [main] schedule: - cron: '0 0 * * 1' # Еженедельно jobs: analyze: runs-on: ubuntu-latest permissions: security-events: write actions: read strategy: matrix: language: [javascript-typescript] steps: - uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} queries: security-and-quality - name: Autobuild uses: github/codeql-action/autobuild@v3 - name: Analyze uses: github/codeql-action/analyze@v3 with: category: "/language:${{ matrix.language }}" . בפרויקטים שלנו, זה מפחית חיובי שווא ב-40% בהשוואה לגישות מבוססות grep. בנוסף, כללים מותאמים אישית נכתבים תוך 15 דקות ומיושמים על מאות קבצים.

מה כלול בהגדרת SAST

  • בחירה והתקנה של כלי אחד או יותר (Semgrep/CodeQL/Gitleaks)
  • התאמת כללים לסטack הטכנולוגי שלכם
  • שילוב ב-CI/CD (GitHub Actions, GitLab CI, Jenkins)
  • תיעוד לפירוש תוצאות
  • הדרכת צוות (סדנה של שעה)
  • שבועיים של תמיכה לאחר הפריסה

עם ניסיון של 5+ שנים ו-50+ פרויקטים, הגדרת SAST מתבצעת ללא הפרעות. אנו מבטיחים שנקודות תורפה קריטיות נחסמות לפני המיזוג. צרו קשר כדי שנעריך את הפרויקט שלכם — נבצע הערכה תוך יום אחד.

כלל SAST: אנו לא חוסמים PRs על כל אזהרה, רק על HIGH ו-CRITICAL. השאר נכנסים ל-backlog של חוב אבטחה.