→ חזרה למדריכים

האקר AI מצא 17 באגים בקוד שלי בלילה אחד

הרצתי כלי pentest מבוסס AI על הקוד שלי. בלילה אחד הוא מצא 17 פגיעויות אמיתיות, כולל שתי קריטיות שיכלו להוביל להשתלטות חשבון. המדריך הזה מראה לכם איך להריץ את זה בעצמכם, בלי להפיל את הפרודקשן. 18 עמודים, הכל בעברית, צעד אחרי צעד

נא להזין שם
נא להזין אימייל תקין
יש לאשר את התנאים כדי להמשיך
יש לאשר את מדיניות הפרטיות כדי להמשיך

שלחנו לכם את המדריך למייל!

בדקו את תיבת המייל - המדריך מגיע תוך דקה או שתיים. לא רואים? שווה לבדוק גם בספאם

תנאי שימוש ומדיניות פרטיות

מי אוסף את המידע: פלג דרור, יוצר תוכן ומדריך בתחום ה-AI.

מה נאסף: שם פרטי וכתובת אימייל בלבד.

מטרת האיסוף: משלוח המדריך החינמי למייל, ובנוסף שליחת עדכונים, טיפים ותכנים שיווקיים בנושא AI ו-Claude Code.

הסרה מרשימת התפוצה: ניתן להסיר את עצמכם בכל רגע נתון באמצעות קישור ההסרה שמופיע בכל מייל, בהתאם לסעיף 30א לחוק התקשורת (בזק ושידורים), התשמ"ב-1982.

אבטחת מידע: המידע נשמר באופן מאובטח ולא יועבר לצדדים שלישיים שלא לצורך מתן השירות.

דין חל: תנאים אלה כפופים לדיני מדינת ישראל. סמכות השיפוט הבלעדית נתונה לבתי המשפט בתל אביב-יפו.

עודכן: 13 באוקטובר 2026

המדריך המלא: Pentest AI לאפליקציה שלך עם Shannon

Shannon קורא את קוד המקור שלך ומריץ exploits אמיתיים על ה-URL, לא סורק רגיל. כדי להריץ בצורה בטוחה, בונים Sandbox מקומי עם העתק של הקוד בלי קבצי ה-.env. בסוף מקבלים דוח עם פגיעויות מוכחות, בלי לגעת בפרודקשן.

למה בדיוק עכשיו

מייסדי SaaS ישראלים חיים עם א-סימטריה בסיסית - כל יום האפליקציה שלכם מקבלת תעבורה, וחלק ממנה מגיע מבוטים שסורקים בדיוק את הבאגים שאתם לא יודעים שקיימים. אתם בונים, הם סורקים. לא צריך שמישהו יטען עליכם פרסונלית - מספיק שהדומיין שלכם הופיע ב-Certificate Transparency logs של Let's Encrypt.

דוגמה מהשטח: חשבון Gmail רדום שהיה פעם של מנהל בחברה. התוקף רואה שהדומיין של המייל הישן פג, קונה אותו מחדש ב-12 שקל, יוצר תיבת דואר בכתובת הישנה, ולוחץ "Forgot Password" על ה-SaaS שלכם. עכשיו הוא מחזיק בחשבון admin. זה לא תיאוריה - זה מה שקורה באמת, בשקט, כל יום.

וחשוב לזכור: גם אם אתם רוצים להריץ pentest על האפליקציה שלכם בעצמכם, יש הגבלות של ספק הענן. Vercel למשל דורשים בסעיף 2.4 של תנאי השירות אישור מפורש לכל בדיקת חדירה - גם על מוצר שבבעלותכם.

האם הכלי עצמו בטוח

לפני שמריצים כלי אבטחה על הקוד שלכם, צריך לבדוק את הכלי עצמו. זו מטא-מיומנות שמתאימה לכל כלי AI שאתם מתקינים - Shannon הוא רק דוגמה. ההנחה שלי תמיד: כלי AI שרץ על המכונה שלי ויש לו גישה לקוד שלי - חייב לעבור בדיקה ידנית של כמה דקות לפני התקנה.

# Clone + check for eval/Function/atob
$ git clone --depth 1 https://github.com/KeygraphHQ/shannon.git
$ grep -rn "eval(\|Function(\|atob(" shannon/apps/
$ grep -rn "pastebin\|webhook.site\|ngrok" shannon/apps/
$ cat shannon/.npmrc # Look for: ignore-scripts=true

מה זה Shannon ולמה זה שונה

Shannon הוא autonomous white-box AI pentester - לא סורק. הוא קורא את קוד המקור שלכם וגם תוקף את ה-URL הפעיל. מתחת למכסה הוא משתמש ב-Claude, ורץ כולו בתוך Docker - אין לו מגע עם המערכת המקומית שלכם חוץ מתיקיית הקוד שתצביעו עליה.

התקנת Docker

Shannon רץ כולו בתוך Docker. צריך Docker Desktop על macOS או Windows, או לחלופין OrbStack. OrbStack יותר קל, מתחיל מהר יותר, ומשתמש בפחות זיכרון - שניהם עובדים מצוין.

$ brew install --cask docker
$ open -a Docker
$ sudo mkdir -p /usr/local/cli-plugins
$ sudo chown -R
$ (whoami):admin /usr/local/cli-plugins
$ brew install --cask docker

התקנת Shannon ו-Auth

אין התקנה מקומית - מריצים את Shannon דרך npx. האימות שלו מול Claude יכול להיות דרך OAuth token שמתחבר למנוי Claude שלכם (בלי חיוב נוסף), או דרך API key שמחייב לפי tokens.

$ npx @keygraph/shannon@latest --help
$ claude setup-token # generates sk-ant-oat01-... token

למה אסור להריץ בפרודקשן

עצירה של רגע. Shannon הוא לא סורק עדין שקורא headers ומחזיר דוח. הוא מפעיל ממש exploits על המטרה. חשבו שנייה מה זה אומר ש-AI agent שלכם עומד לנסות SQL injection על ה-DB הפרודקשני שלכם.

ה-Sandbox Pattern

הפתרון פשוט: מעתיקים את הקוד לתיקייה זמנית שלא פעילה בשום מקום אמיתי, ומריצים את Shannon על זה. Shannon עושה ניתוח white-box - הוא קורא את קוד המקור - אבל תעבורת ה-exploit האמיתית הולכת ל-URL שתתנו לו. אז נותנים לו שרת dev מקומי עם נתונים זמניים.

$ mkdir -p ~/sandbox-myapp
$ rsync -a \ --exclude='.env' --exclude='.env.*' \ --exclude='node_modules' \ --exclude='.next' --exclude='.git' \ ~/myapp/ ~/sandbox-myapp/

Sandbox - DB ו-env

מרימים Postgres על פורט לא סטנדרטי - 5433 במקום 5432 - כדי שלא יתנגש עם DB אחר שאתם מריצים לעבודה יומיומית. Alpine כי הוא קל ומתחיל מהר.

$ docker run -d --name sandbox-db --rm \ -e POSTGRES_PASSWORD=sandbox \ -e POSTGRES_USER=myapp \ -e POSTGRES_DB=myapp_sandbox \ -p 5433:5432 postgres:16-alpine
# ~/sandbox-myapp/.env.local - sandbox only DATABASE_URL="postgresql://myapp:sandbox@localhost:5433/myapp_sandbox" AUTH_SECRET="
$ (openssl rand -base64 32)" STRIPE_SECRET_KEY="sk_test_mock_not_real" RESEND_API_KEY="mock_not_real" NEXT_PUBLIC_APP_URL="http://localhost:3002"

Sandbox - התקנה, seed ו-git

$ cd ~/sandbox-myapp
$ npm install
$ npx prisma db push
$ npm run db:seed # creates test admin/user accounts

ל-Shannon יש preflight check שמסרב להריץ אם התיקייה לא git repo. זה gotcha חשוב - אפילו אם העתקתם קוד מ-repo קיים, כשמעתיקים בלי .git צריך לאתחל מחדש.

$ cd ~/sandbox-myapp && git init -q
$ git add -A
$ git -c user.email=s@local -c user.name=s \ commit -q -m "sandbox"

מריצים את שרת ה-dev על פורט 3002, לא 3000. ככה לא מתנגש אם יש לכם פרויקט אחר שרץ באותו רגע.

$ PORT=3002 npm run dev

קובץ הקונפיגורציה

Shannon צריך קובץ YAML שמסביר לו איך להתחבר, לאן להתמקד, ומה להימנע ממנו. שומרים כקובץ shannon-config.yaml בתוך ה-sandbox.

description: "My Next.js SaaS sandbox" authentication: login_type: form login_url: "http://host.docker.internal:3002/login" credentials: username: "admin@sandbox.io" password: "123456" login_flow: - "Type
$ username into the email field" - "Type
$ password into the password field" - "Click the login button" success_condition: type: url_contains value: "/dashboard" rules: focus: - description: "API routes are highest priority" type: path url_path: "/api/*" - description: "Admin routes" type: path url_path: "/admin/*" avoid: - description: "Don't log out during scan" type: path url_path: "/api/auth/signout"

הרצת הסריקה

פקודה אחת מפעילה את הכל - מושכת את ה-image, מפעילה את Temporal (מנוע ה-workflow שמנהל שלבי סריקה), ופותחת worker שמתחיל לעבוד.

$ npx @keygraph/shannon@latest start \ -u http://host.docker.internal:3002 \ -r ~/sandbox-myapp \ -c ~/sandbox-myapp/shannon-config.yaml \ -w first-audit

קריאת הדוח

אחרי שהסריקה מסתיימת, הדוח נוחת ב-~/.shannon/workspaces/<workspace>/deliverables/. הקובץ שאתם באמת צריכים לקרוא הוא comprehensive_security_assessment_report.md. כל השאר זה ניתוחים גולמיים וראיות ל-exploitation שאפשר לחזור אליהן אם תרצו לוודא פרטים.

דוגמאות מהשטח

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

ה-webhook URL blocklist בדק /^127\./ כדי לחסום localhost - אבל פספס [::ffff:127.0.0.1] שמתורגם לאותו לולאה. תוקף רשם webhook פנימי, הפעיל אותו, והשרת שלח POST עם PII של חברים (מיילים, טלפונים) אל ה-127.0.0.1 של עצמו.

// VULNERABLE const BLOCKED = [/^127\./, /^10\./, /^192\.168\./]; // MISSING: // /^\[::ffff:/i (IPv6-mapped IPv4) // /\.internal
$ /i (Docker/GCP metadata)

Zod.url() בודק את תחביר ה-URI אבל לא את ה-scheme. data:text/html,<script>alert(1)</script> עבר את ה-validation, נשמר ב-DB, ונרנדר ב-<a href> וב-<img src>.

// VULNERABLE imageUrl: z.string().url() // SAFE imageUrl: z.string().url().refine( (u) => /^https?:\/\//i.test(u), "Only http/https allowed" )

עלות אמיתית

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

מה עושים עם הממצאים

יש לכם דוח של 17 פגיעויות. עכשיו מה? הפיתוי הראשון הוא לנסות לתקן הכל באותו יום, אבל זה בדיוק המקום שבו מייסדים נופלים - מתפזרים בין כל הממצאים ולא סוגרים שום דבר עד הסוף. יש playbook פשוט בן 4 שלבים שעובד.

חלק 2 - תיקון בעזרת AI

מצאנו 17 באגים. יפה. אבל עוד צריך לתקן אותם. תיקון ידני של 17 פגיעויות אבטחה בקפידה, ב-codebase מורכב - זה 2-3 ימי עבודה ממוקדים. אין קיצורי דרך כי טעות אחת בתיקון אבטחה = פגיעות חדשה.

המדריך הבא בסדרה מכסה איך תיקנתי את כל ה-17 בפחות משעתיים, בעזרת 12 AI agents במקביל, שכל אחד מחזיק קבוצת קבצים שונה, מבצע commit אטומי, ועובר בדיקה סופית של TypeScript ו-build לפני שהכל מתמזג יחד.

סיכום

הרצתם Shannon. מצאתם באגים. תיקנתם. מעולה. מה עכשיו?

שאלות נפוצות

כמה עולה להריץ Pentest AI עם Shannon?

יש שני מסלולים: OAuth דרך מנוי Claude Max שלך, בחינם לחלוטין. אם הסריקה ארוכה ונתקלים ב-rate limits, עוברים ל-API key שעולה בין 50 ל-80 דולר לסריקה. למדריך הראשון מומלץ להתחיל עם OAuth.

למה אסור להריץ Shannon ישירות על הפרודקשן?

Shannon מריץ exploits אמיתיים, לא סורק עדין. על פרודקשן זה אומר: חשבונות זבל ב-DB, מיילים שנשלחים ללקוחות, ניסיונות לעקוף תשלום, וסיכון שהספק יחסום את ה-IP. מריצים תמיד על Sandbox מקומי.

מה Shannon בודק ואיזה סוגי פגיעויות הוא מוצא?

הוא בודק 5 קטגוריות: Authentication, Authorization, Injection, XSS ו-SSRF. בניגוד לסורק סטטי, הוא כותב exploit בפועל ומריץ אותו. כל פגיעות בדוח מגיעה עם הוכחה שהוא הצליח לנצל אותה.

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