אימות פורמלי בעזרת Claude: הוכחת תכונות אבטחה, לא היעדר באגים
מחקר של Anthropic ב־123 ספריות קוד פתוח בוחן אימות פורמלי בעזרת Claude: הוכחת תכונות אבטחה מוגדרות בכפוף להנחות, ולא הבטחה שהתוכנה נקייה מבאגים.

Anthropic פרסמה ב־22 באוקטובר מחקר על שימוש ב־Claude לאימות פורמלי של קוד, במסגרת עבודה על 123 ספריות קוד פתוח ברמת הוראות המעבד. במרכזו עומדת אפשרות משמעותית לצוותי פיתוח וסייבר: להיעזר ב־AI לא רק כדי לחפש כשלים, אלא כדי להוכיח שתכונות אבטחה מוגדרות מתקיימות. ההבחנה החשובה היא בין הוכחה ממוקדת, הכפופה להנחות, לבין טענה שהתוכנה כולה נקייה מבאגים.
מה Anthropic פרסמה, ומה אין להסיק מהמספרים
המחקר עוסק באימות פורמלי, תחום שבו מנסחים טענה מדויקת על התנהגות תוכנה ובוחנים אותה באמצעות כלים מתמטיים וממוחשבים. העבודה המתוארת נעשתה ברמת הוראות המעבד, ולא רק באמצעות קריאת קוד המקור. זהו הבדל מהותי מסקירת קוד שבה מודל מצביע על שורה חשודה ומסביר מדוע היא עלולה לגרום לתקלה.
הנתון של 123 ספריות מתאר את היקף העבודה שדווח, אך אינו אומר שכל תכונה של כל ספרייה הוכחה כנכונה. גם אי אפשר להסיק ממנו לבדו מה היה חלקו המדויק של Claude בכל משימה, כמה עבודה אנושית נדרשה או מה תהיה עלות יישום השיטה בצוות אחר. כדי להעריך שימוש מעשי, חשוב לבחון את גבולות הטענות ולא רק את מספר הספריות.
החידוש כאן אינו הבטחה שמודל שפה הפך לפוסק סופי בענייני אבטחה. הוא השימוש ב־Claude במסגרת תהליך שנועד להפיק הוכחות ממוחשבות נגד סוגים מוגדרים של כשלים. לכן השאלה המקצועית אינה רק אם המודל נתן תשובה משכנעת, אלא מה בדיוק הוכח, באילו תנאים, ובאיזה מנגנון נבדקה ההוכחה.
בדיקה מוצאת דוגמה; הוכחה עוסקת בטענה מוגדרת
בדיקת תוכנה רגילה מפעילה קוד בתרחיש מסוים ובוחנת את התוצאה. גם אוסף בדיקות רחב מתייחס לתרחישים שנבדקו בפועל. אימות פורמלי מבקש לענות על שאלה אחרת: האם תכונה שנוסחה במדויק מתקיימת בכל המצבים שנכללים במסגרת המתמטית שהוגדרה? רוחב הטענה תלוי בהגדרה הזאת, ולא בכמה נחרץ נשמע ההסבר עליה.
למשל, אפשר לנסח דרישה שלפיה פעולה לא תיגש לזיכרון מחוץ לטווח מותר, בהינתן תנאים מסוימים לגבי הקלט והסביבה. זו דוגמה עקרונית לתכונה שאפשר לבקש להוכיח, ולא פירוט של תוצאה מסוימת במחקר. גם אם דרישה כזאת הוכחה, אין בכך הוכחה שמנגנון ההרשאות תקין, שהמערכת אינה מדליפה מידע או שהמוצר מממש נכון את הדרישה העסקית.
הוכחה שתכונה מסוימת מתקיימת אינה הוכחה שאין בתוכנה שום תקלה.
ההבחנה הזאת חשובה במיוחד כש־AI משתלב בתהליך. ניסוח רהוט של טיעון אינו שקול להוכחה שאומתה. הערך של תהליך פורמלי נובע מהאפשרות לבחון את הטענה לפי כללים מפורשים, ולא מהאמון שנותנים למודל. עם זאת, גם הוכחה תקינה עלולה לענות על השאלה הלא נכונה אם הדרישה המקורית נוסחה בצורה חלקית.

הגבולות שצריך לקרוא לפני שמכריזים על קוד מאובטח
העבודה ברמת הוראות המעבד מעניקה למחקר מוקד טכני ברור, אך אינה מבטלת את הצורך לבדוק את הנחותיו. בכל אימות כזה צריך להבין איזו התנהגות של סביבת הריצה מיוצגת, אילו תנאי קלט הונחו ומה נמצא מחוץ להיקף הבדיקה. אלה אינם פרטים שוליים: הם חלק ממשמעות התוצאה עצמה.
אין לתרגם את המחקר לחותמת ״ללא באגים״. כל שימוש בתוצאה לצורך החלטת אבטחה צריך לציין את התכונה שהוכחה, את הקוד שאליו היא מתייחסת ואת ההנחות והמגבלות שלה.
גם שינוי בקוד מחייב תשומת לב. הוכחה שמתייחסת למימוש מסוים אינה עוברת אוטומטית למימוש שעודכן, לספרייה אחרת או לשילוב אחר בתוך מוצר. עבור צוות הנדסי, השאלה היא לא רק איך מגיעים להוכחה ראשונה, אלא איך שומרים על הקשר בינה לבין הקוד שנבנה ונפרס לאורך זמן.
מה זה אומר לצוותי פיתוח וסייבר בישראל
לחברת סייבר ישראלית שמשלבת ספריית קוד פתוח ברכיב רגיש, המחקר מציע כיוון לבדיקה: לבחור תכונה מצומצמת וחשובה, ולבחון אם אפשר לקבל לגביה ראיה חזקה יותר מבדיקות בלבד. זו אינה המלצה להחליף את מערך הבדיקות הקיים, אלא לבחון היכן הוכחה מוגדרת עשויה להשלים אותו באופן מועיל.
גם בבנק, בחברת אשראי או בחברת תוכנה שמוכרת לארגונים בחו״ל, התועלת האפשרית קשורה ליכולת להסביר מה נבדק ועל מה מסתמכים. הצגת תכונה מוכחת יכולה להיות עניינית יותר מהצהרה כללית שהקוד עבר בדיקת AI. היא אינה מחליפה דרישות רגולטוריות או ביקורת אבטחה, אבל עשויה להוסיף ראיה טכנית שאפשר לבחון.
- להגדיר יעד ממוקד: איזו התנהגות אסורה רוצים לשלול, ובאיזה רכיב.
- לבדוק את ההנחות: האם תנאי הקלט וסביבת הריצה תואמים למוצר האמיתי.
- לברר מה ניתן לשחזר: כיצד בודקים את ההוכחה בנפרד מההסבר של המודל.
- לתכנן תחזוקה: מי בוחן מחדש את התוצאה כאשר הקוד או התלויות משתנים.
לצוות ישראלי קטן, צעד זהיר יהיה ניסוי ברכיב מוגבל עם דרישה ברורה, ולא התחייבות לאמת את המוצר כולו. לפני הכנסת קוד רגיש לתהליך שמערב שירות AI, צריך לבדוק גם את תנאי הטיפול במידע. אלה שיקולי הטמעה ארגוניים, שאינם נפתרים מעצם פרסום המחקר.
מה הלאה: המבחן הוא תהליך שאפשר לבדוק ולתחזק
כדי להעריך אם הגישה מתאימה למוצר מסחרי, כדאי לבחון את מידת ההתערבות האנושית, את האפשרות לשחזר תוצאות ואת המאמץ הנדרש לאחר שינוי בקוד. עצם היקף הספריות אינו מספק תשובות לכל השאלות האלה. ההחלטה לאמץ תהליך כזה צריכה להתבסס על התאמתו לרכיב ולסיכון המסוים, ולא על כותרת כללית על יכולות AI.
המשמעות של המחקר היא הצבת יעד מדויק יותר לשימוש במודלי שפה באבטחת תוכנה: לא רק להפיק קוד או להציע תיקון, אלא לסייע בבניית טענה שאפשר לבדוק באופן פורמלי. עבור מפתחים בישראל, זה כיוון ראוי לבחינה, כל עוד שומרים על ההבחנה בין מה שהוכח לבין כל מה שעדיין דורש בדיקה.
שאלות נפוצות
מהו אימות פורמלי של קוד בעזרת Claude?
אימות פורמלי בוחן באמצעות הוכחה ממוחשבת אם תכונה מוגדרת מתקיימת בקוד, תחת הנחות מפורשות. במחקר שפרסמה Anthropic ב־22 באוקטובר 2026 נעשה שימוש ב־Claude במסגרת עבודה על 123 ספריות קוד פתוח ברמת הוראות המעבד.
האם המחקר של Anthropic מוכיח שהקוד נקי מבאגים?
לא. הוכחה פורמלית מתייחסת לתכונות שהוגדרו ולהנחות שבמסגרתן נבדקו, ולא לכל התנהגות אפשרית של התוכנה. היא אינה מעידה שאין תקלות אחרות או חולשות מחוץ להיקף ההוכחה.
האם אימות פורמלי יכול להחליף בדיקות אבטחה רגילות?
לא באופן גורף. הוא יכול להשלים בדיקות תוכנה, סקירת קוד ובדיקות אבטחה באמצעות הוכחת תכונות מסוימות. עדיין צריך לבדוק את התאמת ההנחות למערכת האמיתית ואת התנהגות הרכיבים שלא נכללו בהוכחה.
דרגו את הכתבה
הדירוג עוזר לנו לדעת מה שווה לכם.



תגובות