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