Secure Code Review, בדיקת קוד מאובטחת

📚 אבטחת מידע עם Claude ⏱️ 9 דק׳ 🎓 מתחילים ✓ חינם לגמרי
Secure Code Review, בדיקת קוד מאובטחת

למה Code Review הוא קו ההגנה הראשון, ולמה רוב הצוותים מפספסים אותו

ב-2025 גילה Check Point Research שניתן לגנוב API keys דרך PR content שגורם ל-Claude Code להריץ קוד זדוני. בשנה שעברה Anthropic עצמם גילו שני vulnerabilities קריטיים בקוד הפנימי שלהם, RCE דרך DNS rebinding ו-SSRF בcredential proxy, בדיוק בגלל שהשתמשו ב-Claude לsecurity review לפני deployment. ה-Veracode 2023 Report מצא ש-76% מהאפליקציות מכילות פגיעויות שניתן היה לזהות ב-code review רגיל.

המסקנה פשוטה: Security review הוא לא שלב שעושים לפעמים ב-big PRs. זה תהליך שחייב לקרות בכל PR, עם Claude כpartner שיטתי.

OWASP Top 10:2025, מה השתנה ולמה זה חשוב לך

OWASP פרסם את Top 10:2025 עם שינויים שמשנים סדרי עדיפויות. הנה מה שחשוב לביצוע code review:

דירוג 2025קטגוריהשינוי מ-2021
#1Broken Access Control (כולל IDOR + SSRF)נשאר ראשון, 90%+ מהאפליקציות
#2Security Misconfigurationקפץ מ-#5, CORS, headers, כלים חשופים
#3Software Supply Chain Failuresחדש, dependencies, build systems
#4Cryptographic Failuresירד מ-#2, כולל Sensitive Data Exposure
#5Injection (SQL, XSS, Command)ירד מ-#3
#10Mishandling of Exceptional Conditionsחדש, error handling שלא מחשיב edge cases

הנקודה: Security Misconfiguration עלה מאוד בדירוג. בישראל, סטארטאפים רבים בת"א מגדירים CORS כ-wildcard (*) כי "זה פשוט יותר", זו בדיוק הבעיה שCORS עולה ל-#2.

ה-Checklist המלא לביצוע Secure Code Review

OWASP Application Security Verification Standard (ASVS) מגדיר מה לבדוק. ל-SaaS רגיל, רמה L2 מספיקה:

פרומפט 1, Automated PR Security Review

זה הפרומפט הבסיסי שעובד על כל PR. כל שורה שלו עושה עבודה:

אתה security reviewer מנוסה.
Stack: Node.js + PostgreSQL + JWT auth
רמת רגישות: SaaS B2B עם נתוני לקוחות

בדוק את ה-diff הבא לפי OWASP Top 10:2025:

1. Broken Access Control:
   - כל endpoint חדש דורש authentication?
   - יש IDOR? object IDs מ-URL נבדקים כשייכים ל-user המחובר?
   - SSRF potential בבקשות HTTP חיצוניות?

2. Injection:
   - SQL queries, parameterized? אין string concatenation?
   - HTML rendering, escaped? אין unescaped user content?
   - Command injection בshell calls?

3. Secrets ו-Data:
   - hardcoded strings שנראים כsecrets?
   - PII חדש ב-logs?
   - Error handling חדש חושף stack traces?

4. Configuration:
   - CORS headers חדשים, wildcard?
   - Dependencies חדשות, npm audit לפני merge

לכל ממצא: [חומרה: CRITICAL/HIGH/MEDIUM/LOW], שורה מדויקת, הסבר קצר, תיקון מוצע.

Diff:
[הדבק git diff כאן]

ה-stack הספציפי בשורה 2 קריטי, SQL injection ב-Python עם SQLAlchemy נראה שונה מ-Node.js עם pg. Claude יודע את ההבדל.

פרומפט 2, GitHub Action לSecurity Gate אוטומטי

הפרומפט הזה מיועד לצוותים שרוצים security review על 100% מה-PRs, בלי שמישהו יצטרך לזכור:

כתוב GitHub Action שרץ על כל PR ומריץ security pre-check:

1. npm audit, נכשל אם יש CVE בdependency (CRITICAL או HIGH)
2. gitleaks, סורק secrets ב-diff החדש
3. semgrep עם OWASP ruleset על ה-changed files בלבד

ה-action:
- מוסיף PR comment עם summary של הממצאים
- נכשל ב-CRITICAL ו-HIGH; warning בMEDIUM; pass בLOW
- exclude: node_modules, dist, .env.example
- רץ רק על PRs, לא על pushes ישירות ל-main

החברה: SaaS ב-Node.js, repo ב-GitHub, secrets ב-GitHub Secrets.

זה security gate שעובד 24/7 ולא עולה שכר לאיש. בסטארטאפ ת"א עם 5 מפתחים, זה אומר שאף PR לא עובר בלי לפחות בדיקה בסיסית.

בדוק את ה-PR הזה לאבטחה
אתה security reviewer. Stack: Node.js + PostgreSQL + JWT. בדוק את ה-diff הבא לפי OWASP Top 10:2025, Broken Access Control (IDOR, ownership check), Injection (parameterized SQL, HTML escape), Secrets (hardcoded strings, PII בlogs), Configuration (CORS wildcard, new dependencies). לכל ממצא: [חומרה], שורה מדויקת, תיקון מוצע. Diff: [...]

טעויות נפוצות שכדאי להכיר

טעות 1, Security checklist כtick-box: לסמן checkboxes בלי לחשוב על ה-implementation הספציפי. כל שורת קוד חדשה שמקבלת user input = שאלה ספציפית על validation. לא מספיק לשאול "יש validation?", יש לשאול "איזה validation בדיוק, ואיפה?"

טעות 2, דילוג על dependency check בPRs קטנים: PR שמוסיף npm package אחד מוסיף את כל ה-transitive dependencies שלו. הרצת npm audit לפני merge היא שורת קוד אחת שיכולה לחסוך incident. בSemgrep research 2025 נמצא שClaude מצא IDOR ב-22% מהמקרים, אבל SQL injection cross-file רק ב-5%. כלים אוטומטיים משלימים, לא מחליפים.

Injection (SQL, XSS)
Security Misconfiguration, עלה מ-#5 ל-#2
Cryptographic Failures
Broken Access Control
כי IDOR הוא בעיית syntax פשוטה יותר לזיהוי
כי IDOR ניתן לזיהוי בקובץ יחיד, בעוד SQL injection דורש taint tracking על פני קבצים
כי Claude מריץ queries על ה-database בפועל
כי SQL injection כבר לא נפוץ ב-2025
כשהקוד מכיל יותר מ-1000 שורות
כשהקוד כתוב ב-Python
כשהקוד מכיל IP רגיש, נתוני לקוחות, או secrets ארגוניים
כשClaude.ai לא זמין

סיכום, מה לקחת מהשיעור הזה

מקורות: Anthropic claude-code-security-review (GitHub) | Automate Security Reviews, Anthropic Blog | OWASP Top 10:2025

רוצה ללמוד עם מעקב התקדמות, קוויזים ותעודה?

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