Service Monitor

כלי שינטר לנו את השירותים(services) הרצים במערכת, וידווח על שינויים שיכולים להיות קריטיים עבורנו כאנשי SOC. בדומה לכלי Zenoss - המנטר לנו שירותים. את הכלי נפתח בשפת פייתון.

לכלי שלנו יהיו כמה מצבים:

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

במצב זה נכתוב ל2 קבצי לוג שונים: serviceList – לקובץ זה נדפיס את דגימות הסרביסים שכרגע רצים (בכל פעם את הדגימה האחרונה). בכל פעם קובץ זה יתמלא בכל דגימה שלנו, וישמור את כל הדגימות שעשינו במהלך מצב המוניטור לפי תאריך ושעה. Status_Log.txt – קובץ לוג זה הוא למטרת מעקב. נדפיס לקובץ כל שינוי שהוצג לנו במצב המוניטור. לדוגמה service חדש שנוצר, service שהפסיק לעבוד וכו'. במילים אחרות: כל מה שהודפס לממשק המשתמש בטרמינל במצב המוניטור יודפס ללוג זה.

מצב ידני – במצב זה נרצה להשתמש בקובץ Status_Log.txt על מנת לטעון 2 דגימות מטווחי זמן שונים ולבצע השוואה. התכנית תקבל תאריך ושעה ל2 אירועים, תטען מהקובץ את 2 הדגימות, ותציג שינויים בדומה למצב הmonitor (תהליך חדש שנוצר בדגימה העדכנית יותר, תהליך שכבר אינו רץ בדגימה העדכנית יותר וכו'). אפשר להסתמך על קירוב השעות, כלומר אם אין דגימה מטווח הזמן המדויק, אז לעגל בהתאם לרצונכם.

UI – כדי לאפשר למשתמש לנווט בנוחות בין המצבים, צרו תפריט UI לכלי. לא חובה GUI, אפשר גם תפריט command line.

דגשים חשובים:

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

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

  • הכלי מיועד להיות cross platform

  • הכלי מיועד לבדיקה עבור שרת בודד ולא עבור רשת, כלומר הכלי ינטר את השירותים הרצים על אותו מחשב המריץ את התוכנה.