יחידה 12 / 12

גבולות: אבטחה, פרטיות, רישיון ואתיקה

רווחים:

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

מבחן מודול

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

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

תיאור: AI; זה יכול להאיץ משימות כמו שלד קוד, טיוטת בדיקה ותיעוד. עם זאת, באחריות המהנדס לבדוק, לבדוק ולאשר את הקוד שנוצר כדי לוודא שהוא נכון, בטוח ותואם את הדרישות, ולהוציאו לייצור; לא ניתן להאציל זאת ל-AI ללא אימות עצמאי.

2. בינה מלאכותית יצרה עבורכם פונקציה ונראה שהיא פועלת בדרך המאושרת. מה הצעד הטוב ביותר לפני הכנסתו לייצור?

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

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

3. AI הציע שיטה בשם 'array.sortStable()' שאינה קיימת בשפה שלך והסבירה אותה בצורה ברורה. מהי הפעולה הנכונה הראשונה לנקוט?

  • א) שימוש בשיטה ישירות מכיוון שה-AI נראה בטוח
  • ב) הגדירו את השיטה בעצמכם והשתמשו בשמה בדיוק
  • ג) וידוא קיום השיטה מהתיעוד הרשמי של השפה/ספרייה ✔
  • ד) סגור את אזהרת המהדר והמשך

הסבר: מודלים של שפה יכולים להרכיב באופן סביר שמות של ספרייה, חבילה או שיטה שאינם קיימים בפועל (הזוי). כל API מוצע צריך להיות מאומת מילה במילה מול התיעוד הרשמי והעדכני של השפה או הספרייה; אם זה לא כלול במסמך, אין להשתמש בו.

4. אתה רוצה להדביק את קוד המקור הסודי של החברה שלך ומפתח API משובץ לתוך כלי AI ציבורי ולבקש עזרה. מהי הגישה הנכונה ביותר?

  • א) הדבקת הקוד כפי שהוא עם מפתח ה-API למהירות
  • ב) מספיק פשוט למחוק את שם החברה ולשתף את כל השאר
  • ג) שיתוף הקוד ולאחר מכן בקשה מה-AI למחוק אותו
  • ד) הסרת סודות והיגיון נסתר וצמצום הבעיה לדוגמא מייצגת או שימוש בכלי מוסדי ✔

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

5. AI אמר שהמורכבות של פונקציית חיפוש שהוא כתב היא O(n); אבל יש שתי לולאות מקוננות בקוד. מהי ההתנהגות ההנדסית הנכונה?

  • א) נתחו את הקוד באופן ידני וחלצו בעצמכם את המורכבות ומדדו אותה במידת הצורך ✔
  • ב) קבלו O(n) והמשיכו כי AI אמר
  • ג) בהנחה שלמספר המחזורים אין שום קשר לביצועים
  • ד) פשוט שנה את שם הפונקציה

הסבר: מורכבות הזמן (Big-O) מראה כיצד מספר הפעולות גדל ככל שהקלט גדל. שתי לולאות מקוננות אומרות בדרך כלל O(n^2). יש לאמת את טענת המורכבות של AI על ידי ניתוח ידני של הקוד ומדידה עם כניסות גדלות במידת הצורך; הסתמכות על הטענה מייצרת הנחת ביצוע כוזבת.

6. קוד שנוצר בינה מלאכותית שמכניס ישירות קלט משתמש לשאילתת SQL על ידי שרשור טקסט. מה הבעיה המרכזית והפתרון הנכון כאן?

  • א) אין בעיה; מיזוג טקסט הוא השיטה המהירה ביותר
  • ב) קיים סיכון להזרקת SQL; יש להשתמש בשאילתה עם פרמטרים (משפט מוכן) המפרידה בין הקלט ✔
  • ג) מספיק רק להמיר את השאילתה לאותיות רישיות
  • ד) כתיבת השאילתה קצרה יותר תפתור את הבעיה

תיאור: הוספת קלט משתמש ישירות לטקסט השאילתה יוצרת פגיעות של הזרקת SQL; התוקף יכול לשנות את השאילתה באמצעות הקלט. הפתרון הנכון הוא להשתמש בשאילתה בעלת פרמטרים (משפט מוכן) המפרידה בין הקלט לטקסט השאילתה. זוהי אחת מטעויות האבטחה הנפוצות ביותר שהחמיצו בקוד AI.

7. יש לך זמן מוגבל בעת סקירת קטע קוד המיוצר על ידי AI. אילו נושאים עדיף לתעדף?

  • א) פורמט רק פרטים כגון הזחה וריווח
  • ב) רק אורך שמות משתנים
  • ג) נכונות לוגית, פגיעויות והתנהגות מקרה קצה ✔
  • ד) רק מספר השורות הכולל של הקובץ

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

8. אתה רוצה ש-AI יפתור באג. איזה קלט יעזור בצורה הטובה ביותר ל-AI למצוא את סיבת השורש?

  • א) רק אומר 'הקוד לא עובד, תקן את זה'
  • ב) רק תן את שם הקובץ
  • ג) רק אומר את התוצאה הצפויה, ללא טקסט השגיאה
  • ד) ספק הודעת שגיאה מלאה, מעקב מחסנית, קוד רלוונטי ודוגמה לשעתוק מינימלי ✔

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

9. כל בדיקות היחידה המיוצרות על ידי AI עוברות בריצה הראשונה. מאיזה סיכון אסור להתעלם במצב זה?

  • א) בדיקות עשויות לאשר את המצב הנוכחי של הקוד אך לא התנהגות בפועל/צפויה ✔
  • ב) הקוד נטול שגיאות לחלוטין מכיוון שכל הבדיקות עברו
  • ג) איכות מובטחת אם מספר הבדיקות גדול
  • ד) עמידה במבחן מוכיחה כי הכיסוי הושלם

הסבר: ייתכן שבדיקות מאמתות את ההתנהגות הנוכחית (אולי באגי) של הקוד, לא את ההתנהגות המיועדת שלו; או שהוא עשוי שלא להכיל טענה משמעותית והוא תמיד מועבר. כדי לראות שהבדיקות בודקות את הציפייה האמיתית, יש צורך לשבור במודע את הקוד ולאשר שהבדיקה הופכת לאדום.

10. AI יצרה לך בלוק קוד מוכן לבעיה. אתה חושד שייתכן שהקוד הועתק מילה במילה מפרויקט קוד פתוח. מהי הגישה הנכונה?

  • א) שימוש ברישיון מבלי לחשוב כי הקוד עובד
  • ב) בדיקת מקור/רישיון הקוד, כתיבה מחדש במידת הצורך ועמידה במדיניות הארגונית ✔
  • ג) פשוט שנה את שמות המשתנים וראה שהבעיה נפתרה
  • ד) בהנחה שהרישוי נוגע רק לחברות גדולות

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

11. AI הציע לך לעבור מיד לארכיטקטורת microservices עבור הפרויקט שלך. מהי הגישה ההנדסית המתאימה ביותר בעת הערכה של הצעה זו?

  • א) חלקו מיד את כל המערכת לשירותי מיקרו כי AI מציע
  • ב) בהנחה שמיקרו-שירות הוא תמיד הבחירה הטובה ביותר
  • ג) העריכו את ההצעה לפי הצורך האמיתי, העומס, מבנה הצוות והאיזון פלוס מינוס ✔
  • ד) קבלת ההחלטה על סמך הפופולריות של הארכיטקטורה בלבד

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

12. AI הפיקה תיעוד README ו-API יעיל עבור הקוד שלך; אבל כמה נקודות קצה ופרמטרים לא תואמים בקוד. מהי ההתנהגות הנכונה?

  • א) פרסום המסמך כפי שהוא כי הטקסט שוטף
  • ב) פשוט תקן את הכותרת והשאיר את השאר כפי שהוא
  • ג) הוספת המסמך למחסן מבלי לקרוא אותו
  • ד) השווה כל נקודת קצה ופרמטר לקוד בפועל ותקן כל נקודת קצה ופרמטר שאינה תואמת ✔

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

13. איזו גישת קלט מתאימה לפלט האיכותי ביותר בעת בקשת קוד מ-AI?

  • א) מתן שפה/גרסה ברורה, חוזה קלט-פלט, אילוצים ומצבי שגיאה ✔
  • ב) רק אומר 'כתוב לי קוד עובד'
  • ג) כתוב את הבקשה הקצרה ביותר מבלי לתת שום הקשר
  • ד) רק לציין כמה שורות קוד יהיו

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

14. בינה מלאכותית יצרה תצורה עבור צינור ה-CI/CD (איטגרציה/פריסה מתמשכת) שלך והטמיעה בה את סיסמת מסד הנתונים בטקסט רגיל. מה התיקון הנכון?

  • א) השארת הסיסמה כטקסט פשוט כי היא עובדת
  • ב) העברת סודות החוצה באמצעות משתנה סביבה או כלי ניהול סודות, לא לשים טקסט רגיל במאגר ✔
  • ג) העבר את הסיסמה רק לשורת ההערות
  • ד) שינוי שם הקובץ פותר את הבעיה

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