חצינו את נקודת האל-חזור של עולם הסייבר

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

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

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

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

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

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

פורסם ב כלכליסט

FaaS – Function as a Service – השלב האחרון במהפכת הענן?

בעשור האחרון עולם תשתיות המחשוב ובוודאי עולם היישומים של צד שרת עובר טלטלה רבה או אם תרצו רנסאנס. למרות שזה לא היה מזמן קשה לאתר את נקודת ההתחלה שבה עברנו מבניית יישומים שרצים על שרתים פיזיים לגל החדשנויות של מכונות ווירטואליות, Micro Services, Containers ושירותי ענן על כל מופעיו השונים. אבל מי שהיה עד לשינויים האלה בין אם כמפתח או כמנהל טכנולוגי חש שהיכולות המוגשות היום על ידי כלים אלה מעצימות אותנו בקצב הולך וגובר. לפני כשנתיים נתקלנו בסוג חדש של יכולות, נדמה לי שהפעם הראשונה שנחשפנו לכך היתה באירוע של אמזון ב-2014 עם השקת ה-AWS Lambda, מוצר ה-FaaS של AWS. יכולות אלה נושאות בהבטחה לשנות את המשחק מחדש ומבוססות על הבשורה של Serverless Computing או כפי שמאוחר יותר הוסכם על השם FaaS, Function as a Service.

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

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

מה זה FaaS

האבולוציה של תחום השרתים באה לידי ביטוי באספקטים רבים ואחד מהם הוא הדרך בה מפתחים תוכנה. בהתחלה התרגלנו לבנות יישומים כגוש אחד גדול ומונוליתי שהכיל את כל הפונקציונאליות הדרושה למימוש היישום בדבוקה אחת. החל מהפונקציונאליות היישומית עצמה עד השירותים התשתיתיים הדרושים להרצת היישום. הקפיצה הבאה הייתה פירוק הפונקציונאליות לגושים קטנים ושימוש בשירותי תשתית מבוססי API כאשר מבחינת מפתח התוכנה הסיבוכיות הפנימית של השירותים המוגשים דרך API מוסתרים ומאפשרים בניית פונקציונאליות עשירה במאמץ פחות. הפירוק היישומי מגוש אחד מונוליטי לקבוצות פונקציונאליות קטנות בא לידי ביטוי ברעיון של Micro Services כאשר כל שרות זעיר עוסק בנושאים ספציפיים המרכיבים ביחד את היישום עצמו. הקפיצה האבולוציונית הבאה הינה כמובן ה-FaaS בה המפתח מתמקד בבניית פונקציות פרטניות כאשר כל פונקציה מבצעת פעולה אחת וחיבור הפונקציות האלה לפונקציות אחרות או לשירותים מבוססי API בכדי להרכיב את היישום, אבני הבניין האטומיות ביותר של תוכנה. בהתחלה תשתיות היו זמינות כשירות בעולם ה- IaaS ולאחר מכן נולד הקונספט של פלטפורמות זמינות כשירותבעולם ה- PaaS שהקלו מאוד מבחינת סיבוכיות והגל החדש הינו ה-FaaS, פונקציות כשירות. ניתן לראות שיש תהליך מתמשך של פירוק הסיבוכיות והסתרת המורכבות הפנימית של כל רכיב שמשתתף ביישום.

יתרונות וחסרונות

היתרונות של FaaS באים לידי ביטוי ב:

  1. ייעול השימוש במשאבי מחשוב מכיוון שאתה משלם רק על הזמן והמשאבים שהפונקציה שלך צרכה בזמן שהייתה פעילה וייעול זה דרמטי מכיוון שהוא פתר בעיות תכנון משמעותיות של תשתית בכדי להגיע לכמות השרתים והמשאבים האופטימלית עבור היישום בזמנים שהשימוש נמוך או גבוה ומתנודד.
  2. הסרת הסיבוכיות של בניית תשתית המאפשרת את הגמישות בזמנים שהשימוש ביישום גבוה או נמוך או כפי שנקרא בעגה המקצועית אלסטיות טבעית. לדוגמא אם יש לך אפליקציה שרתית שמחפשת דירות להשכרה אז אם בלילה אף אחד לא משתמש בה למעשה שום משאב לא מבוזבז ואם במשך היום הייתה קפיצה גבוהה בשימוש הודות לאירוע יחצ״ני של השירות ומיליון אנשים מחפשים דירה באותו רגע אז המשאבים הדרושים לפונקציה בכדי לשמר זמן תגובה קבוע מוקצים ומשוחררים מיד לאחר שקצב השימוש יורד. וכל זה ללא ידיעת המפתח או כל מאמץ תכנוני או ביצועי מצידו.
  3. היכולת לבנות את הפונקציות בכל שפות התכנות והטענתן בצורה פשוטה לפלטפורמת ה-FaaS כאשר היא דואגת להרצת הקוד בצורה הנכונה.
  4. הסרת הדאגה שמשאבי המחשוב הדרושים יהיו זמינים תמיד – Fault Tolerance, טיפול בכשלים בהרצת הפונקציה כתשתית לטרנזקציות אטומיות, אמינות וזמני תגובה לפי התחייבות.
  5. שירותי תשתית בסיסיים אינטגרטיביים המאפשרים מעקב אחר ביצועי היישום.
  6. צמצום הסיבוכיות של היישום על ידי היכולת לחבר בצורה קלה פונקציות בודדות לשירותים (API) כמו אבני לגו. יכולת זו מאפשרת לבנות יישומים מורכבים בצורה פשוטה ומהירה תוך כדי התמקדות בבעיה שהיישום מנסה לפתור ולא באיך לאפשר אותו יישום לרוץ. צמצום הסיבוכיות באופן טבעי תורם ליציבות של היישום שנבנה ולקלות התחזוקה שלו.
  7. ארכיטקטורת תוכנה טובה יותר המשמשת בסיס רחב לשימוש חוזר בפונקציות שנבנו – Code Reuse.

כל פונקציה ב-FaaS מופעלת בעקבות התרחשות אירוע מערכת מסוים בין אם זה לקוח שניגש לפונקציה, העלאת קובץ לספרייה מסוימת או זיהוי שינוי בתנאי סביבתי כמו שינוי מחיר מניה. הקונספט הזה מבוסס על Event Driven Programming והוא מותאם יותר לסוג החדש של היישומים שהולכים ונבנים בעולם המשתנה.

הרעיון הרדיקלי הזה של בניית פונקציות כאבני בניין של יישום ולא יישומים מלאים מעוררים גם קשיים בין אם הם קשיים זמניים שנובעים כתוצאה מקשיי הסתגלות לפרדיגמה ועד קשיים מבניים בתפיסה של ה-FaaS:

  1. כל פונקציה שנבנית היא Stateless משמע שהפונקציה לא יכולה לשמור דברים בזיכרון או על הדיסק ולסמוך על זה שבפעם הבאה שהפונקציה תרוץ הנתונים יהיו זמינים. כל פונקציה צריכה להניח שסביבת ההרצה המיידית שלה תיעלם עם סיום ההרצה של הפונקציה וזה שינוי מחשבתי שקיים גם בעולם ה-Containers ולוקח למפתחים זמן להבין זאת. כמובן שהפונקציות יכולות להשתמש בשירותי אחסון מרכזיים מבוססי זיכרון או דיסק כגון S3 או Redis אבל הגישה אליהם היא דרך API.
  2. פונקציות לרוב מוגבלות בזמן הריצה ולמפתחים שרגילים לחוסר מגבלה הנושא יכול להיות מאתגר. כמובן שמי שמטמיע את הארכיטקטורה החדשה יכול לתכנן את הפונקציות בצורה כזאת שהמגבלה לא תהיה מורגשת.
  3. ישנו עיכוב מסוים בהפעלת הפונקציה מזמן התרחשות האירוע שהעיר אותה ועד תחילת ריצת הקוד של הפונקציה. העיכוב קטן מאוד ולרוב היישומים יהיה בלתי מורגש. יישומי זמן אמת רגישים לנושא.
  4. קל מאוד למתכנן היישום שלא באמת הטמיע את החשיבה החדשה לייצר ערימה של פונקציות שלא בהכרח מהוות בסיס תכנוני נכון ולמעשה להגדיל את הסיבוכיות של היישום. קושי נוסף טמון בניהול גרסאות הקוד שפתאום הופך להיות מפוזר ובלתי תלוי עקב הפירוק לפונקציות. בהחלט מזכיר את עולם ה-Stored Procedures של עולם מסדי הנתונים שהוליד בעיות רבות.
  5. דיבאגינג ומעקב אחר הפונקציות בזמן ריצה בכדי לאתר בעיות ביישום הם נושאים לא פתורים עדיין ומהווים אתגר לא קטן למפתחים.

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

אחד הבאזוורדס שמסתובבים בעולם ה-FaaS זה ה-#NoOps משמע אין צורך בניהול הפעילות עצמה אלא רק במפתחים וזה בהחלט חלום ורוד אך עדיין די רחוק מלהתממש.

התחנה האחרונה

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

פורסם במגזין Globes IT מהדורה ינואר 2017

Rent my Brain and Just Leave me Alone

Until AI will be intelligent enough to replace humans in complex tasks there will be an interim stage and that is the era of human brain rental. People have diverse intelligence capabilities and many times these are not optimally exploited due to live circumstances. Other people and corporations which know how to make money many times lack the brain power required to scale their business. Hiring more people into a company is complicated and the efficiency level of new hires decelerates with scale. With a good reason – all the personality and human traits combined with others disturb  efficiency. So it makes sense that people will aspire to build tools for exploiting just the intelligence of people (better from remote) in the most efficient manner. The vision of the Matrix of course immediately comes into play where people will be wired into the system and instead of being a battery source we be a source of processing and storage. In the meanwhile we can already see springs of such thinking in different areas: Amazon Mechanical Turk which allows you to allocate scalable amount of human resources and assign to them tasks programmatically, the evolution of communication mediums which make human to machine communications better and active learning as a branch in AI which reinforces learning with human decisions.

In a way it sounds a horrible future and unromantic but we have to admit it fits well with the growing desire of future generations for convenient and prosperous life – just imagine plugging your brain for several hours a day, hiring it, you don’t really care what it does at that time and in the rest of the day you can happily spend the money you have earned.

Are Chat Bots a Passing Episode or Here to Stay?

Chat bots are everywhere. It feels like the early days of mobile apps where you either knew someone who is building an app or many others planning to do so. Chat bots have their magic. It’s a frictionless interface allowing you to naturally chat with someone. The main difference is that on the other side there is a machine and not a person. Still, one as old as I got to think whether it is the end game in terms of human machine interaction or are they just another evolutionary step in the long path of human machine interactions.

How Did We Get Here?

I’ve noticed chat bots for quite a while and it piqued my curiosity in terms of the possible use cases as well as the underlying architecture. What interests me more is Facebook and other AI superpowers ambitions towards them. And chat bots are indeed a next step in terms of human machine communications. We all know where history began when we initially had to communicate via a command line interface limited by a very strict vocabulary of commands. An interface that was reserved for the computer geeks alone. The next evolutionary step was the big wave of graphical user interfaces. Initially the ugly ones but later on in major leaps of improvements making the user experience smooth as possible but still bounded by the available options and actions in a specific context in a specific application. Alongside graphical user interfaces we were introduced to search like interfaces where there is a mix of a graphical user interface elements with a command line input which allows extended textual interaction  – here the GUI serves as a navigation tool primarily. And then some other new human machine interfaces were introduced, each one evolving on its own track: the voice interface, the gesture interface (usually hands) and the VR interface. Each one of these interaction paradigms uses different human senses and body parts to express communications onto the machine where the machine can understand you to a certain extent and communicate back. And now we have the chat bots and there’s something about them which is different. In a way it’s the first time you can express yourself freely via texting and the machine will understand your intentions and desires. That’s the premise. It does not mean each chat bot is able to respond on every request as chat bots are confined to the logic that was programmed to them but from a language barrier point of view a new peak has been reached.

So do we experience now the end of the road for human machine interactions?  Last week I’ve met a special women, named Zohar Urian (the lucky hebrew readers can enjoy her super smart blog about creative, innovation, marketing and lots of other cool stuff) and she said that voice will be next which makes a lot of sense. Voice has less friction then typing, its popularity in messaging is only growing and technology progress is almost there in terms of allowing free vocal express where a machine can understand it. Zohar’s sentence echoed in my brain which made me go deeper into understanding the anatomy of the human machine interfaces evolution. 

The Evolution of Human-Machine Interfaces 

mechtree

The progress in human to machine interactions has evolutionary patterns. Every new paradigm is building on capabilities from the previous paradigm and eventually the rule of survivor of the fittest plays a big role where the winning capabilities survive and evolve. Thinking about its very natural to evolve this way as the human factor in this evolution is the dominating one. Every change in this evolution can be decomposed into four dominating factors:

  1. The brain or the intelligence within the machine – the intelligence which contains the logic available to the human but also the capabilities that define the semantics and boundaries of communications.
  2. The communications protocol which is provided by the machine such as the ability to decipher audio into words and sentences hence enabling voice interaction.
  3. The way the human is communicating with the machine which has tight coupling with the machine communication protocol but represents the complementary role.
  4. The human brain.

The holy 4 factors

Machine Brain <->

Machine Protocol <->

Human Protocol <->

Human Brain

In each paradigm shift there was a change in one or more factors:

Paradigm Shift Description Machine
Brain
Machine Protocol Human Protocol Human Brain
Command Line 1st Gen The first interface used to send restricted commands to the computer by typing it in a textual screen Dumb and restricted to set of commands and selection of options per system state Textual Fingers typing Smart
Graphical User Interfaces A 2D interface controlled by a mouse and a keyboard allowing text input, selection of actions and options Dumb and restricted to set of commands and selection of options per system state 2D positioning and textual 2D hand movement and fingers actions as well as fingers typing Smart
Adaptive Graphical User Interfaces Same as previous one though here the GUI is more flexible in its possible input also thanks to situational awareness to the human context (location…) Getting smarter and able to offer different set of options based on profiling of the user characteristics. Still limited to set of options and 2D positioning and textual inputs. 2D positioning and textual 2D hand movement and fingers actions as well as fingers typing Smart
Voice Interface 1st Gen The ability to identify content represented as audio and to translate it into commands and input Dumb and restricted to set of commands and selection of options per system state Listening to audio and content matching within audio track Restricted set of voice commands Smart
Gesture Interface The ability to identify physical movements and translate them into commands and selection of options Dumb and restricted to set of commands and selection of options per system state Visual reception and content matching within video track Physical movement of specific body parts in a certain manner Smart
Virtual Reality A 3D interface with the ability to identify full range of body gestures and transfer them into commands A bit smarter but still restricted to selection from a set of options per system state Movement reception via sensors attached to body and projection of peripheral video  Physical movement of specific body parts in a free form Smart
AI Chat bots A natural language detection capability which is able to identify within supplied text the rules of human language and transfer them into commands and input Smarter and flexible thanks to AI capabilities but still restricted to selection of options and capabilities within a certain domain Textual Fingers typing in a free form Smart
Voice Interface 2nd Gen Same as previous one but with a combination of voice interface and natural language processing Same as previous one Identification of language patterns and construct from the audio content and translation into text Free speech Smart
What’s next?  uf1 Smart

Observations

There are several phenomenons and observations from this semi structured analysis:

  • The usage of combination of communication protocols such as voice and VR will extend the range of communications between human and machines even without changing anything in the computer brain.
  • Within time more and more human senses and physical interactions are available for computers to understand which extend the boundaries of communications. Up until today smell has not gone mainstream as well as touching. Pretty sure we will see them in the near term future.
  • The human brain always stays the same. Furthermore, the rest of the chain always strives to match into the human brain capabilities. It can be viewed as a funnel limiting the human brain from fully expressing itself digitally and within time it gets wider.
  • An interesting question is whether at some point in time the human brain will get stronger if the communications to machines will be with no boundaries and AI will be stronger. 
  • We did not witness yet any serious leap which removed one of the elements in the chain and that I would call a revolutionary step (still behaving in an evolutionary manner). Maybe the identification of brain waves and real-time translation to a protocol understandable by a machine will be as such. Removing the need for translating the thoughts into some intermediate medium. 
  • Once the machine brain becomes smarter in each evolutionary step then the magnitude of expression grows bigger – so the there is a progress even without creating more expressive communication protocol.
  • Chat bots from a communications point of view in a way are a jump back to the initial protocol of command line though the magnitude of the smartness of the machine brains nowadays make it a different thing. So it is really about the progress of AI and not chat bots.

    I may have missed some interfaces, apologies, not an expert in that area:)

Now to The Answer

So the answer to the main question – chat bots indeed represent a big step in terms of streamlining natural language processing for identifying user intentions in writing. In combination with the fact that users favourite method of communication nowadays is texting makes it a powerful progress. Still the main thing that thrills here is the AI development and that is sustainable across all communication protocols. So in simple words it is just an addition to the arsenal of communication protocols between human and machines but we are far from seeing the end of this evolution. From the FB and Google point of view these are new interfaces to their AI capabilities which makes them stronger every day thanks to increased usage.

Food for Thought

if one conscious AI meets another conscious AI in cyber space will they be communicate via text or voice or something else?

Breaching the Air Gap with GSM Frequencies

Another excellent research from the Cyber Security Research Center @ Ben-Gurion University where your humble servant is serving as a CTO. The third one in the series of air-gap hacking breakthroughs where this time Mordechai Guri the lead researcher achieved data leakage via GSM radio frequencies to a dumb feature phone.

What is so earth-shaking about it? The fact feature phones are allowed in secure places since they are considered harmless as they don’t have networking capabilities. Well…, no more.

Here’s the proof of concept video:


And here is the excellent coverage on Wired by Kim Zetter.

Is It GAME OVER?

Targeted attacks come in many forms, though there is one common tactic most of them share: Exploitation. To achieve their goal, they need to penetrate different systems on-the-go. The way this is done is by exploiting unpatched or unknown vulnerabilities. More common forms of exploitation happen via a malicious document which exploits vulnerabilities in Adobe Reader or a malicious URL which exploits the browser in order to set a foothold inside the end-point computer. Zero Day is the buzzword today in the security industry, and everyone uses it without necessarily understanding what it really means. It indeed hides a complex world of software architectures, vulnerabilities and exploits that only few thoroughly understand. Someone asked me to explain the topic, again, and when I really delved deep into the explanation I was able to comprehend something quite surprising. Please bear with me, this is going to be a long post 🙂

Overview

I will begin with some definitions of the different terms in the area: These are my own personal interpretations on them…they are not taken from Wikipedia.

Vulnerabilities

This term usually refers to problems in software products – bugs, bad programming style or logical problems in the implementation of software. Software is not perfect and maybe someone can argue that it can’t be such. Furthermore, the people whom build the software are even less perfect—so it is safe to assume such problems will always exist in software products. Vulnerabilities exist in operating systems, runtime environments such as Java and .Net or specific applications whether they are written in high level languages or native code. Vulnerabilities also exist in hardware products, but for the sake of this post I will focus on software as the topic is broad enough even with this focus. One of the main contributors to the existence and growth in the number of vulnerabilities is attributed to the ever-growing pace of complexity in software products—it just increases the odds for creating new bugs which are difficult to spot due to the complexity. Vulnerabilities always relate to a specific version of a software product which is basically a static snapshot of the code used to build the product at a specific point in time. Time plays a major role in the business of vulnerabilities, maybe the most important one.

Assuming vulnerabilities exist in all software products, we can categorize them into three groups based on the level of awareness to these vulnerabilities:

  • Unknown Vulnerability – A vulnerability which exists in a specific piece of software to which no one is aware. There is no proof that such exists but experience teaches us that it does and is just awaiting to be discovered.
  • Zero Day – A vulnerability which has been discovered by a certain group of people or a single person where the vendor of the software is not aware of it and so it is left open without a fix or awareness to it its presence.
  • Known Vulnerabilities – Vulnerabilities which have been brought to the awareness of the vendor and of customers either in private or as public knowledge. Such vulnerabilities are usually identified by a CVE number – where during the first period following discovery the vendor works on a fix, or a patch, which will become available to customers. Until customers update the software with the fix, the vulnerability is kept open for attacks. So in this category, each respective installation of the software can have patched or un-patched known vulnerabilities. In a way, the patch always comes with a new software version, so a specific product version always contains un-patched vulnerabilities or not – there is no such thing as a patched vulnerability – there are only new versions with fixes.

There are other ways to categorize vulnerabilities: based on the exploitation technique such as buffer overflow or heap spraying, the type of bug which lead to the vulnerability, or such as a logical flaw in design or wrong implementation which leads to the problem.

Exploits

A piece of code which abuses a specific vulnerability in order to cause something unexpected to occur as initiated by the attacked software. This means either gaining control of the execution path inside the running software so the exploit can run its own code or just achieving a side effect such as crashing the software or causing it to do something which is unintended by its original design. Exploits are usually highly associated with malicious intentions although from a technical point of view it is just a mechanism to interact with a specific piece of software via an open vulnerability – I once heard someone refer to it as an “undocumented API” :).

This picture from Infosec Institute describes a vulnerability/exploits life cycle in an illustrative manner:

042115_1024_ZeroDayExpl1

The time span, colored in red, presents the time where a found vulnerability is considered a Zero Day and the time colored in green turns the state of the vulnerability to un-patched. The post disclosure risk is always dramatically higher as the vulnerability becomes public knowledge. Also, the bad guys can and do exploit in higher frequency than in the earlier stage. Closing the gap on the patching period is the only step which can be taken toward reducing this risk.

The Math Behind a Targeted Attacks

Most targeted attacks today use the exploitation of vulnerabilities to achieve three goals:

  • Penetrate an employee end-point computer by different techniques such as malicious documents sent by email or malicious URLs. Those malicious documents/URLs contain malicious code which seeks specific vulnerabilities in the host programs such as the browser or the document reader. And, during a rather naïve reading experience, the malicious code is able to sneak into the host program as a penetration point.
  • Gain higher privilege once a malicious code already resides on a computer. Many times the attacks which were able to sneak into the host application don’t have enough privilege to continue their attack into the organization and that malicious code exploits vulnerabilities in the runtime environment of the application which can be the operating system or the JVM for example, vulnerabilities which can help the malicious code gain elevated privileges.
  • Lateral movement – once the attack enters the organization and wants to reach other areas in the network to achieve its goals, many times it exploits vulnerabilities in other systems which reside on its path.

So, from the point of view of the attack itself, we can definitely identify three main stages:

  • Attack at Transit Pre Breach – This state means an attack is moving around on its way to the target and in the target prior to exploitation of the vulnerability.
  • Attack at Penetration – This state means an attack is exploiting a vulnerability successfully to get inside.
  • Attack at Transit Post Breach –  This state means an attack has started running inside its target and within the organization.

The following diagram quantifies the complexity inherent in each attack stage both from the attacker and defender sides and below the diagram there are descriptions for each area and the concluding part:

Ability to Detect an Attack at Transit Pre Breach

Those are the red areas in the diagram. Here an attack is on its way prior to exploitation, on its way referring to the enterprise that can scan the binary artifacts of the attack, either in the form of network packets, a visited website or specific document which is traveling via email servers or arriving to the target computer for example. This approach is called static scanning. The enterprise can also emulate the expected behavior with the artifact (opening a document in a sandboxed environment) in a controlled environment and try to identify patterns in the behavior of the sandbox environment which resemble a known attack pattern – this is called behavioral scanning.

Attacks pose three challenges towards security systems at this stage:

  • Infinite Signature Mutations – Static scanners are looking for specific binary patterns in a file which should match to a malicious code sample in their database. Attackers are already much out smarted these tools where they have automation tools for changing those signatures in a random manner with the ability to create infinite number of static mutations. So a single attack can have an infinite amount of forms in its packaging.
  • Infinite Behavioural Mutations – The evolution in the security industry from static scanners was towards behavioral scanners where the “signature” of a behavior eliminates the problems induced by static mutations and the sample base of behaviors is dramatically lower in size. A single behavior can be decorated with many static mutations and behavioral scanners reduce this noise. The challenges posed by the attackers make behavioral mutations of infinite nature as well and they are of two-fold:
    • Infinite number of mutations in behaviour – In the same way attackers outsmart the static scanners by creating infinite amount of static decorations on the attack, here as well, the attackers can create either dummy steps or reshuffle the attack steps which eventually produce the same result but from a behavioral pattern point of view it presents a different behavior. The spectrum of behavioral mutations seemed at first narrower then static mutations but with advancement of attack generators even that has been achieved.
    • Sandbox evasion – Attacks which are scanned for bad behavior in a sandboxed environment have developed advanced capabilities to detect whether they are running in an artificial environment and if they detect so then they pretend to be benign which implies no exploitation. This is currently an ongoing race between behavioral scanners and attackers and attackers seem to have the upper hand in the game.
  • Infinite Obfuscation – This technique has been adopted by attackers in a way that connects to the infinite static mutations factor but requires specific attention. Attackers in order to deceive the static scanners have created a technique which hides the malicious code itself by running some transformation on it such as encryption and having a small piece of code which is responsible for decrypting it on target prior to exploitations. Again, the range of options for obfuscating code are infinite which makes the static scanners’ work more difficult.

This makes the challenge of capturing an attack prior to penetration very difficult to impossible where it definitely increases with time. I am not by any means implying such security measures don’t serve an important role where today they are the main safeguards from turning the enterprise into a zoo. I am just saying it is a very difficult problem to solve and that there are other areas in terms of ROI (if such security as ROI exists) which a CISO better invest in.

Ability to Stop an Attack at Transit Post Breach

Those are the black areas in the diagram. An attack which has already gained access into the network can take infinite number of possible attack paths to achieve its goals. Once an attack is inside the network then the relevant security products try to identify it. Such technologies  surround big data/analytics which try to identify activities in the network which imply malicious activity or again network monitors which listen to the traffic and try to identify artifacts or static behavioral patterns of an attack. Those tools rely on different informational signals which serve as attack signals.

Attacks pose multiple challenges towards security products at this stage:

  • Infinite Signature Mutations, Infinite Behavioural Mutations, Infinite Obfuscation – these are the same challenges as described before since the attack within the network can have the same characteristics as the ones before entering the network.
  • Limited Visibility on Lateral Movement – Once an attack is inside then usually its next steps are to get a stronghold in different areas in the network and such movement is hardly visible as it is eventually about legitimate actions – once an attacker gets a higher privilege it conducts actions which are considered legitimate but of high privilege and it is very difficult for a machine to deduce the good vs. the bad ones. Add on top of that, the fact that persistent attacks usually use technologies which enable them to remain stealthy and invisible.
  • Infinite Attack Paths – The path an attack can take inside the network’ especially taking into consideration a targeted attack is something which is unknown to the enterprise and its goals, has infinite options for it.

This makes the ability to deduce that there is an attack, its boundaries and goals from specific signals coming from different sensors in the network very limited. Sensors deployed on the network never provide true visibility into what’s really happening in the network so the picture is always partial. Add to that deception techniques about the path of attack and you stumble into a very difficult problem. Again, I am not arguing that all security analytics products which focus on post breach are not important, on the contrary, they are very important. Just saying it is just the beginning in a very long path towards real effectiveness in that area. Machine learning is already playing a serious role and AI will definitely be an ingredient in a future solution.

Ability to Stop an Attack at Penetration Pre Breach and on Lateral Movement

Those are the dark blue areas in the diagram. Here the challenge is reversed towards the attacker where there are only limited amount of entry points into the system. Entry points a.k.a vulnerabilities. Those are:

  • Unpatched Vulnerabilities – These are open “windows” which have not been covered yet. The main challenge here for the IT industry is about automation, dynamic updating capabilities and prioritization. It is definitely an open gap which can be narrowed down potentially to become insignificant.
  • Zero Days – This is an unsolved problem. There are many approaches towards that such as ASLR and DEP on Windows but still there is no bulletproof solution for it. In the startups scene I am aware that quite a few are working very hard on a solution. Attackers identified this soft belly long time ago and it is the main weapon of choice for targeted attacks which can potentially yield serious gains for the attacker.

This area presents a definite problem but in a way it seems as the most probable one to be solved earlier than the other areas. Mainly because the attacker in this stage is at its greatest disadvantage – right before it gets into the network it can have infinite options to disguise itself and after it gets into the network the action paths which can be taken by it are infinite. Here the attacker need to go through a specific window and there aren’t too many of those out there left unprotected.

Players in the Area of Penetration Prevention

There are multiple companies/startups which are brave enough to tackle the toughest challenge in the targeted attacks game – preventing infiltration – I call it, facing the enemy at the gate. In this ad-hoc list I have included only technologies which aim to block attacks at real-time – there are many other startups which approach static or behavioral scanning in a unique and disruptive way such as Cylance and CyberReason or Bit9 + Carbon Black (list from @RickHolland) which were excluded for sake of brevity and focus.

Containment Solutions

Technologies which isolate the user applications with a virtualized environment. The philosophy behind it is that even if there was an exploitation in the application still it won’t propagate to the computer environment and the attack will be contained. From an engineering point of view I think these guys have the most challenging task as the balance between isolation and usability has inverse correlation in productivity and it all involves virtualization on an end-point which is a difficult task on its own. Leading players are Bromium and Invincea, well established startups with very good traction in the market.

Exploitation Detection & Prevention

Technologies which aim to detect and prevent the actual act of exploitation. Starting from companies like Cyvera (now Palo Alto Networks Traps product line) which aim to identify patterns of exploitations, technologies such as ASLR/DEP and EMET which aim at breaking the assumptions of exploits by modifying the inner structures of programs and setting traps at “hot” places which are susceptible to attacks, up to startups like Morphisec which employs a unique moving target concept to deceive and capture the attacks at real-time. Another long time player and maybe the most veteran in the anti exploitation field is MalwareBytes. They have a comprehensive offering for anti exploitation with capabilities ranging from in-memory deception and trapping techniques up to real time sandboxing.

At the moment the endpoint market is still controlled by marketing money poured by the major players where their solutions are growing ineffective in an accelerating pace. I believe it is a transition period and you can already hear voices saying endpoint market needs a shakeup. In the future the anchor of endpoint protection will be about real time attack prevention and static and behavioral scanning extensions will play a minor feature completion role. So pay careful attention to the technologies mentioned above as one of them (or maybe a combination:) will bring the “force” back into balance:)

 

Advise for the CISO

Invest in closing the gap posed by vulnerabilities. Starting from patch automation, prioritized vulnerabilities scanning up to security code analysis for in-house applications—it is all worth it. Furthermore, seek out for solutions which deal directly with the problem of zero days, there are several startups in this area, and their contributions can have much higher magnitude than any other security investment in post or pre breach phases.

 

Turning a page

After a long and deep contemplation on my current internet activities, Aggreg, Strategicboard, King Ping and Trendmapper I decided to shut it off. I really could not find how can I monetize this sites and after long three years of hard work and devotion I decided to turn the page.

Apologies to the users  of these services although not too many still there are few who were loyal during all the bad and good times and I thank you for this.

Anyway, it is the time for something new…

Cheers,

Dudu

UPDATE: Thanks everyone for the warm feelings. Of course I will be around and will soon talk about the new thing I am working on.

UPDATE: King Ping is alive again thanks to Rodney Trotter, the new owner. Check it out and all the best to Rodney!

Changes in Aggreg

Hi All,

We are currently re-architecturing Aggreg infrastructure to address the increasing blogosphere. The site will be down for the whole duration of Augost and we expect to relaunch Strategicboard again on beginning of september. The changes we take include distributed processing and aggregation of content aiming to increase our coverage from 1M blogs to 100M and more. We will still maintain the simplicity of Strategicboard blog search while providing better results.

Thanks for your patience,

Dudu