מפתחי Java, .NET נוטים לפגיעויות תכופות יותר

מפתחי Java, .NET נוטים לפגיעויות תכופות יותר

צומת המקור: 1901108

ליותר משלושה רבעים מהיישומים שנכתבו ב-Java ו-NET יש לפחות פגיעות אחת מ-OWASP Top 10, רשימה של חולשות תוכנה שמפתחים משתמשים בהן בדרך כלל כבסיס לאבטחת יישומים.

כך על פי חברת בדיקות התוכנה Veracode, שמצאה בניתוח של כמעט 760,000 יישומים שלכאחד מכל חמישה יישומים המשתמשים בשתי המערכות האקולוגיות התכנות הללו היו לפחות פגיעות אחת בדרגת חומרה גבוהה או קריטית.

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

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

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

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

לדוגמה, יישומי Java ו-.NET, שהיוו 71% מסך היישומים שנותחו על ידי המחקר, ראו מחצית מהפגמים שעדיין משפיעים על היישומים לאחר 243 ימים ו-158 ימים, בהתאמה.

מחצית חיים של פגיעויות לפי שפת תכנות

מקור: דוח "מצב אבטחת התוכנה" של Veracode

לנפיחות היישום ולגיל שניהם הייתה השפעה שלילית משמעותית על אבטחתם. האפליקציה הממוצעת צברה כ-40% יותר קוד וסביר יותר שיהיו לו פרצות. לכ-54% מהבקשות בנות שנתיים יש פגמים, בעוד ש-69% מהבקשות בנות חמש פגמים, הניתוח שנמצא.

האבטחה המפתיעה של JavaScript

באופן מפתיע, יישומים שנכתבו ב-JavaScript או באמצעות אחת ממסגרות ה-JavaScript נטו להצליח יותר בסריקות פגיעות. בעוד שלכ-80% מיישומי Java ו-NET הייתה פגיעות, רק ל-56% מיישומי JavaScript היו. ובעוד שלכ-20% מיישומי Java ו-NET היו פגיעות בחומרה גבוהה, פחות מ-10% מיישומי JavaScript היו.

מסגרות JavaScript הן חדשות יותר, בעלות אבטחה רבה יותר ויש להן את היתרונות של מערכת אקולוגית בקוד פתוח, ש-Java הרוויחה ממנה רק לאחרונה, אומר ג'ארט.

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

יתרה מכך, כאשר פגיעות באפליקציית Java היא בעיה של צד ראשון - שמותירה למפתח לתקן את הבעיות - ב-JavaScript ובמסגרת Node.js, פגיעויות הן לרוב בעיה של צד שלישי, מכיוון שהפגיעות התרחשה ברכיב שבו תלויה התוכנה.

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

שפות תכנות חדשות Languish

נתוני הדוח מדגישים גם את ההבדל בין שפות התכנות שמפתחים לומדים לבין השפות בהן נעשה שימוש בפועל ברוב הארגונים. השפות והמערכות האקולוגיות המובילות - Java, .NET ו-JavaScript - שנראו על ידי Veracode אינן הבחירה של מפתחים בטכנולוגיית התכנות.

בעוד שמסגרות מבוססות JavaScript ו-JS - כגון Node.js, React.js ו-Angular - שולטות ברשימות הטכנולוגיה המועדפת על מפתחים, Java היא אחת משפות התכנות הפחות אהובות, כאשר 54% מהמשיבים חוששים מהשפה, בהשוואה עם 46% שאהבו את זה, לפי סטאק אוברפלוס סקר מפתחים 2022

עם זאת, Java שלטה בנתח היישומים שנסרקו על ידי לקוחות Veracode (44%) לעומת 14% עבור JavaScript. 

בנוסף, שפת התכנות האהובה ביותר, Rust, אפילו לא מופיעה בנתונים של Veracode, בעוד מספר 6 של מפתחים, Python, מהווה רק פחות מ-4% מהיישומים הסרוקים.

חלק מהסיבה לניתוק היא שיישומים מבוססים כתובים בשפות תכנות מבוססות, אומר ג'ארט של Veracode.

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

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

"יישומים ישנים לעולם לא מתים, למרבה הצער, אז יש הרבה מסה קריטית בארגונים עם בסיסי הקוד הגדולים האלה של Java ובסיסי הקוד של NET", הוא אומר.

בול זמן:

עוד מ קריאה אפלה