יש דבר כזה, קוד מאובטח?

בעיית פיתוח קוד מאובטח מטרידה לא מעט ארגונים שמפתחים בעצמם יישומים למובייל ולאינטרנט. אחת החברות הישראליות שמנסה לתת מענה לבעיה זו היא חברת צ'קמרקס [checkmarx]

עמית אשבל - יחצ

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

למרות העדר קונצנזוס בתעשייה, בעיית פיתוח קוד מאובטח מטרידה לא מעט ארגונים שמפתחים בעצמם יישומים למובייל ולאינטרנט. אחת החברות הישראליות שמנסה לתת מענה לבעיה זו היא חברת צ'קמרקס [checkmarx].

החברה שקיבלה לאחרונה השקעה של 84 מליוני דולרים מקרן ההשקעות Insight Venture Partners מפתחת מערכת לאבטחת קוד תוכנה בזמן אמת. המשמעות היא שהמפתח כותב קוד, שולח אותו לכלי של צ'קמרקס ומקבל תשובה מה הבעיות ואיך לפתור אותן.

"בהפשטה, ניתן לחלק את עולם בדיקת הקוד של היישומים לשניים", מסביר עמית אשבל, מנהל שיווק מוצר בחברה. "יש בדיקה בזמן הפיתוח שנקראת static code analysis [יכולה להיקרא גם white-box testing] ויש בדיקה דינמית של קוד שמתבצעת לאחר שהיישום הופץ ונסגר. בדיקה דינמית מנסה לפרוץ את היישום מהעיניים של ההאקר. בדיקה סטטית בוחנת את הקוד לפני שהיישום נסגר ומופץ. אנחנו עוסקים בבדיקה סטטית.

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

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

אשבל מסביר שיש לחברה גם פתרון לענן. דוגמא לכך היא חנות האפליקציות של חברת Sales Force. כל יישום שעולה לחנות הזו, עובר בדיקה על ידי המערכת של צ'קמרקס. "אנחנו אחת החברות הבודדות שתומכות ב-20 שפות תכנות כולל Swift של אפל ששוחררה בימים האחרונים", אומר אשבל. "גם ספקיות של פלטפורמות PaaS כמו אמזון או גוגל לא יכולות לתמוך בכל הרבה שפות. אנחנו בשוק מ-2006 ומעסיקים כ-200 עובדים בכל העולם עם מרכז פיתוח בישראל".  

איך מודדים הצלחה במוצר כמו שלכם?

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

"זה לא אומר שלא ניתן לפרוץ ליישום שלך בדרכים אחרות, אבל כן אפשר לצמצם את מרווח הפעולה של ההאקר. צריך לזכור שגם אם לא פרצו לתוכנה שלך שפותחה יחד עם הכלי שלנו, קשה לקבוע למה לא פרצו, ושזה בגלל הכלי שלנו. אבל אם כתבת נכון, יהיה יותר קשה לנצל את המערכת שלך. היום כבר די ברור לכל ארגון בעולם שמפתח יישומי מובייל או אינטרנט, שצריך בדיקה דינמית וסטטית, או לפחות אחת מהן. גם כאשר עושים לארגון בדיקת חדירות [Pen Test], בודקים את היישומים הללו. לרוב זו תהיה בדיקה דינמית, קרי, ינסו לפרוץ אותו מבחוץ.

"ממה שאנו רואים, השוק כרגע בכיוון של בדיקות סטטיות. אפשר לראות רגולוציות כמו PCI-DSS שמזכירות שצריך לנתח את הקוד. לאחרונה עשינו סקר עם חברת AppSec-Labs ובו מצאנו שאפליקציות שנכתבו ל-IOS כתובות פחות טוב מאלו של אנדרואיד בהיבט אבטחת מידע. ההנחה היא שמפתחי IOS מאד שלווים כי זו סביבה יותר מאובטחת. תהליך העלאת יישום לחנות של אפל כולל יותר בדיקות מאשר חנויות אחרות. אבל הוא לא בודק את רמת האבטחה של הקוד".

נקודה למחשבה

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