Monday, February 27, 2012

פיתוח תוכנת טרגט איי - רקע

פיתוח תוכנת טרגט איי - מאת מיכאל האפרתי

בשנת 2000 פיתחתי את תוכנת Target Eye או בשמה המלא: Target Eye Monitoring System.

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

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



רקע: תוכנת Target Eye Monitoring System , הייתה תוכנת הניטור והביון הראשונה בעולם. היא פותחה בשנת 2000 על ידי חברת Target Eye LTD והוגשו בגינה 4 בקשות פטנט בארה"ב ובישראל. הפטנט בישראל הוגש לאישור משרד הבטחון אשר נתן ב2003 היתר פרסום לפטנט, מה שאיפשר שיווק התוכנה לגופים בטחוניים.


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

נחזור לתהליך החשיבה והפיתוח. רובנו עובדים עם רשימת מטלות, הן על הנייר והן במחשב. כלים כגון outlook מאפשרים לנו לתאם משימה ולסמן V כאשר זו מושלמת. בזמנו עבדתי עם palm (שבעברו הרחוק נקרא palm pilot) ושם היה ה-todo list. תוך שימוש בpalm חשבתי על כך שכלי לאיסוף מודיעין צריך לנהל רשימה כזו של מטלות, אולם רשימה זו צריכה להיות אינטראקטיבית ודינאמית.

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


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

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

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

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


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

אם לחזור לTarget Eye, בקומפיילר ניתן להגדיר מועד פעולה (מועד התחלה ומועד סיום), שאילתות מנגנון "רשימת הקניות" שהוזכרה במאמר זה, ופעולות נוספות.

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

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

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

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


חלק מקוד המקור של תוכנת טרגט איי בגירסותיה הישנות (שנת 2000 ועד 2005), פורסם על ידי לאחרונה למטרות מחקר ולימוד:



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

©2000-2013 Michael Haephrati and Target Eye LTD
All materials contained on this site are protected by International copyright law and may not be used, reproduced, distributed, transmitted, displayed, published or broadcast without the prior written permission given by Michael Haephrati and Target Eye LTD. You may not alter or remove any trademark, copyright or other notice from copies of the content.

מיכאל האפרתי

Wednesday, February 22, 2012

אודות תוכנת טרגט איי

תוכנת Target Eye Monitoring System, הנה מערכת אשר פותחה על ידי מיכאל האפרתי החל משנת 2000, ככלי ניטור וביון במסגרת מיזם בשם זה אשר במסגרתו הוקמה חברת טרגט איי (ישראל) בע"מ וחברת Target Eye LTD בלונדון. במסגרת פיתוח התוכנה, הוגשו 4 בקשות פטנט בארה"ב ובישראל. התוכנה פותחה עבור רשויות אכיפת חוק, צבאות, שירותי בטחון ואף הורים שמעוניינים לפקח על ילדיהם או מעסיקים המעוניינים לפקח על עובדיהם. במסגרת מיזם זה, הוגשו ארבע בקשות פטנט על התוכנה והטכנולוגיות הניצבות בבסיסה, וזו אף קיבלה באחרונה סיווג בטחוני ("סודי"), וכן היתרי יצוא הנדרשים בחוק.

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

מספר מאמרים על Target Eye:
1. על מנגנון לכידות מקלדת
2. על מנגנון העדכון האוטומטי (איך ניתן לעדכן תוכנה נסתרת ללא התערבות המשתמש המנוטר)
3. על מנגנון "רשימת הקניות" הייחודי (איך מפעיל התוכנה מבקש מסמכים וחומרים ועוקב אחר מילוי בקשותיו)
4. על מנגנון צילום המסך

חברת Target Eye נוקטת ותמשיך לנקוט בכל באמצעי הזהירות הנחוצים לשם מניעת שימושים זדוניים בתוכנה, הן ברמה ההסכמית (disclaimer) והן ברמה הטכנית (מנגנונים שונים, לרבות הגבלת הפעלת התוכנה במדינות מסויימות, וכד'). התוכנה, מאפשרת ניטור מחשבים מרחוקים בדומה למצלמת אבטחה, תוך צפיה וקבלת חומרים ממחשבים מנוטרים מכל מקום בעולם. מדובר במוצר שהיה הראשון מסוגו בשנת 2000. כיום מוצעת התוכנה אך ורק לרשויות אכיפת חוק, בארץ ובעולם, כאשר כל עסקה מחוץ לגבולות ישראל, מחייבת קבלת היתרים של אפ"י אשר ניתנים לאחר קבלת היתר משתמש קצה מגוף המבקש.




©2000-2013 Michael Haephrati and Target Eye LTD

All materials contained on this site are protected by International copyright law and may not be used, reproduced, distributed, transmitted, displayed, published or broadcast without the prior written permission given by Michael Haephrati and Target Eye LTD. You may not alter or remove any trademark, copyright or other notice from copies of the content.