חברות הייטק בינלאומיות רבות, וביניהן חברת אימפרבה המהווה כוח חלוץ בקבוצת תאלס העולמית, בוחנות מזה זמן את אופן השילוב המיטבי של כלי בינה מלאכותית בתהליך פיתוח המוצרים. אין ספק, הכלים האלו מאיצים תהליכי פיתוח, משנים את אופיים, ויוצרים שורה של הזדמנויות מלהיבות, אך לא ניתן להתעלם מהבעיות שהם מביאים איתם, ובראשן, בעיות אבטחת מידע.
בנובמבר 2022 פרץ לחיינו ChatGPT, כלי בינה מלאכותית גנרטיבית, המסוגל לבצע מטלות שנחשבו קודם לכן כמעט דמיוניות. בניגוד למנועי חיפוש כדוגמת גוגל או אתרי מידע כגון Stack Overflow (שאלות ותשובות בתחומים הקשורים לפיתוח קוד), כלי מסוג זה (קיים מגוון רחב) נשאל על ידי המשתמש שאלות ממוקדות ומפיק (generates) תשובה התפורה לצרכיו המהווה, לכאורה, תוכן מקורי. כך למשל ניתן לבקש ממנו לכתוב עבורנו דוא"ל, לתמצת טקסט, להסביר לנו תחום ידע, ואף לנהל איתו דו-שיח של ממש, וכך לדייק הן את ״הבנת״ הכלי את הצרכים שלנו והן את ההבנה שלנו את תשובותיו. אלו הן יכולות שקרובות ליכולות של בן אנוש, ולמעשה באמצעות בינה מלאכותית ניתן כיום לכתוב קוד שנועד למטרה ספציפית, ובצורה מהירה יותר מעובד אנושי.
בנקודה זו יש לחדד ולהבהיר כי למרות שיש כבר כלים רבים בשוק המיועדים לכתיבת קוד אוטומטית הרי שבפועל זה לא ממש קורה, בעיקר משום שאין תחליף למפתח אנושי מנוסה. אז איך בכל זאת ניתן לרתום את כלי הבינה המלאכותית הגנרטיבית לטובתנו? אם כן, מה שכבר כיום ניתן לעשות באמצעות בינה מלאכותית הוא להאיץ את תהליך הפיתוח, לחסוך מחקר רב לפני כתיבת הקוד, לספק קוד ראשוני כנקודת התחלה טובה, ולטפל בצדדים הטכניים כגון כתיבת בדיקות תוכנה או תיעוד של הקוד. יכולות אלו מאפשרות למפתחים להתמקד באתגרים שבינה מלאכותית מתקשה בהם.
נוכח השימוש המשני בלבד בבינה מלאכותית לצרכי הליך הפיתוח, עולה מאליה השאלה מה כבר עלול להשתבש? ובכן, הבעיה המרכזית שנובעת מן השינוי היא סיכוני אבטחת מידע. צריך להבין, מפתח שחוקר נושא מסוים בעצמו, מתעמק ומבין לעומק את הקוד שהוא כותב, יכתוב בסופו של יום קוד פחות פגיע. בחברות כמו אימפרבה, אנו מקדישים מאמצים רבים להעלאת המודעות לכתיבת קוד בטוח, מספקים הכשרות בנושא ועומלים על שילוב אבטחת מידע בתהליכי העבודה שלנו. כתיבת קוד מוקפד לפי שיטות מיטביות לא רק תספק קוד הממלא את המטלה עבורה נכתב, אלא גם תספק קוד שיהיה עמיד יותר בפני אתגרים ותנאים לא צפויים.
מאידך כלי בינה מלאכותית גנרטיבית היא מעין קופסה שחורה. שיקוליו אינם ברורים ואין כל ערובה שהקוד שנוצר מקפיד על שיקולים כגון אבטחת מידע. וכך המאמץ שהושקע במודעות לנושאי אבטחת מידע יורד לטמיון. בסופו של דבר, ככל שהכלי מאומן על קוד שאיננו בהכרח בטוח, כך גדלים הסיכויים שהוא יציע קוד לא בטוח למשתמשים. לכן מפתח שמשתמש בכלי הזה באופן עיוור וללא מחקר עצמי, עלול לא להבחין בסכנות הפוטנציאליות שבקטעי הקוד שהכלי מציע לו.
נקודה נוספת היא שהכלי לא מכיר את הלוגיקה העסקית ואת הסביבה העסקית הייחודית לחברה, ולכן הוא עלול ליצור כשלים שונים בהתאמת הקוד לבעיה בתחום הספציפי בו פועלת החברה.
 
ובאמת, חוקרים בדקו ומצאו שהקוד המוצע על ידי כלי בינה מלאכותית גנרטיבית עלול להכיל כשלי אבטחת מידע רבים, ומפתח לא מיומן, או כזה שאינו מתעמק בקוד המוצע, עלול לשלב את הקוד כמו שהוא במוצר. מכיוון שהקוד מבצע את הפונקציונליות עבורה נכתב, קל לפספס את הבעיות. בתרחישים חמורים יותר האקרים יכולים לנסות להשפיע על הקוד המוצע, למשל במניפולציה של קטעי הקוד עליהם מאומן המודל.
אז נכון, כל זה לא אומר שצריך לוותר על היתרונות העצומים של הבינה המלאכותית, אך בהחלט אפשר ורצוי לגדר את הסיכונים ובעלויות זניחות: כלי בינה מלאכותית גנרטיבית מסייעים לנו בביצוע מחקר מהיר ויעיל, ויתירה מכך, הם יכולים לסייע בהבנת הקוד שהם עצמם מציעים. ניתן לשוחח עם הכלי, להציג בפניו שאלות ממוקדות לגבי בטיחות הקוד שהציע ולבקש ממנו שיפורים. לדוגמה, ניתן לבקש להוסיף לקוד המוצע בדיקה של הקלט, או שהקוד ישתמש בספריות העדכניות ביותר, יקפיד על היבטים קריפטוגרפיים וכדומה.
חשוב גם שתהליך פיתוח קוד יהיה חלק מתהליך פיתוח מאובטח, כלומר, מתווה המשלב שיקולי אבטחת מידע יהיה חלק אינטגרלי מתהליך הפיתוח. ארכיטקט אבטחת מידע צריך לבחון כל תכונה חדשה; לשלב כלי בדיקה אוטומטיים במערכות אינטגרציה רציפה ובכלל זה להטמיע כלי בדיקות אבטחה סטטיות בקוד שמסוגלים לנתח את הקוד ולאתר כשלים ללא הרצת הקוד עצמו, וכלים לאיתור ספריות לא בטוחות שהקוד עורך בהן שימוש. לבסוף, רצוי לקיים מבחני חדירה איכותיים כחלק ממתווה הפיתוח הכולל.
בשורה התחתונה, אנו מצויים בפתחו של עולם חדש ומופלא, עולם שישנה את האופן בו אנו עובדים ויביא אותנו להישגים רבים במהירות הבזק. אך כגודל הפוטנציאל כך גודל הסכנה ורק חברה שתפתח מראש מודעות לסיכוני אבטחת מידע בעולם החדש הזה, תוכל לחסוך לעצמה בטווח הארוך משברים בינלאומיים מביכים. צריך להפנים גם שכלי בינה מלאכותית אמנם מקלים על בדיקה מהירה של רעיונות חדשים, מרחיבים ידע ותומכים ביצירתיות, אך יחד עם זאת אינם מהווים תחליף למקצוענות ו"עיניים" אנושיות", כך שאסור להשליך לפח את הניסיון רב-השנים שנצבר בקרב המפתחים בבניית תהליכי פיתוח קוד.
מאת נדב קדם - TechLead, CI/CD Security, אימפרבה
d&b – לדעת להחליט