כתיבת קוד — שיעור 24
Network Security
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T2 · בסיסי200 נק'~15 דק'algorithmic
מנוע חוקי Firewall (First-Match)
ממש firewall(rules, packet). rules היא רשימת חוקים (action, proto, port) כאשר action הוא 'ALLOW'/'DENY' ו-'*' הוא תו-כללי. packet הוא (proto, port). החזר את פעולת החוק *הראשון* שמתאים; אם אף חוק לא מתאים — 'DENY' (ברירת-מחדל בטוחה).
דוגמאות
firewall([('ALLOW','tcp',80),('DENY','*','*')], ('tcp',80)) → 'ALLOW'
...('tcp',22) → 'DENY'
הפתרון נשמר מקומית אוטומטית.
T3 · בינוני350 נק'~25 דק'algorithmic
זיהוי Port Scan (IDS)
ממש detect_portscan(logs, threshold, window). logs הם (time, src, dst_port). כתובת מקור 'חשודה' אם פנתה ל-≥ threshold פורטים *ייחודיים* בתוך חלון זמן של ≤ window שניות. החזר רשימה ממוינת של כתובות המקור החשודות.
דוגמאות
A פונה ל-80,81,82,83 בתוך 3ש', threshold=3, window=5 → ['A']
הפתרון נשמר מקומית אוטומטית.