מבוא: האיום הגדל של פיראטיות תוכנה ורשיונות

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

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

הבנה של הנדסה הפוכה בקונטקסט של אכיפת רישיון

הנדסה הפוכה (RE) היא התהליך השיטתי של הפקת ידע או מידע עיצוב ממוצר מוגמר - כלומר, תוכנה בינארית - כדי להבין את המבנה, ההתנהגות שלו ומקורו.בתרחישים של אנליזה, RE שואפת לענות על שאלה ספציפית: ⁇ :0) האם התוכנה כוללת קוד, אלגוריתמים, או אלמנטים עיצוב השייכים למישהו אחר ללא אישור הולם?

שימושים לגיטימיים ו-Illegitimate Uses

הנדסה הפוכה עצמה אינה בלתי חוקית מטבעה.תחומים רבים מאפשרים הגשמה של יכולת הדדית, מחקר אבטחה ומטרות חינוכיות בתנאים מסוימים.לדוגמה, ה-Association של האיחוד האירופי מאפשר פיזור כדי להשיג יכולת הדדית עם תוכניות שנוצרו באופן עצמאי. בדומה, חוק זכויות היוצרים של Digital Millennium Copyright (DMCA) מספק פטורים לבדיקות אבטחה ומחקר אקדמי.

כאשר המטרה היא לזהות הפרות רישיון, האנליסט פועל כ-FLT:0 (המוכרים) או הסוכן הסוכנת FLT:1 - כלומר התוכנה שנבחנה כבר מכוסה על ידי הסכם רישיון המעניק את הזכות לביקורת או לאכוף את הציות. בהקשר זה, RE הוא כלי חקירה לגיטימי ולא הפרה עצמה.

טכניקות ליבה לניתוח קוד מהנדסי הפוכה

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

1.זיהוי חתימה

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

כלים כמו FLT:0 ;YIRFLT:1 ו- (FLT:2BinDiffeurFLT 3: 3 מצטיינים בהשוואות מבוססות חתימה. YARA כללים ניתן לכתוב כדי להתאים את כל חלקי הקבצים או נתונים מובנים, בעוד BinDiff מבצע binary-level-levelffing כדי להדגיש פונקציות זהות או ליד זהות.

2.חוק דומה ניתוח

לעתים קרובות, violator ינסה למקם סמלים או למקם מחדש כדי למנוע גילוי חתימה פשוטה.במקרים כאלה, FLT:0code דומה ניתוח sFLT:1 הופך הכרחי.טכניקה זו משווה את גרפים זרימה שליטה, רצפי הוראה, ותלויים בנתונים של הקוד המוקצב לאחור נגד המקור המקורי או הפניה.

כלים המשמשים כוללים:

  • (FLT:0)MOSS (Measure of Software Identity) אנדרל 1) - שפותחה על ידי סטנפורד, במקור עבור גילוי plagiarism במסגרות אקדמיות.זה יכול להיות מותאם להשוות קוד על ידי המרת הוראות מכונה לזרמים אסימונים תקינים.
  • (ב) [ה]:0] ,[דרוש מקור], [ה]], [ה], [ה], [ה]]], [ה], [ה]]]]]], [ה'[ה]'[ה']'[ה']'[ה']'[ה'[ה']'[ה']'[ה']'[ה'[ה']']'[ה'[ה']']'[ה'[ה']'[ה'[ה'[ה'[ה'[ה'[ה']']'[ה'[ה'[ה']'[ב']']']'[ה']']'[ה'[ב'[ה'[ה']']']']']'[ה'[ה']']'[ה'[ה'[ה'[ב']']'[ה']']'[ה'[ה'[ה'[ב']']'[ה']']'[ה'[ה'[ה'[ה'[
  • (ב) [ה]בנדיב"ד]: [ב-[[1924]], [[1924]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]

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

3.התעלל בזיהוי

ניסיונות להסתיר שימוש בלתי מורשה לעתים קרובות כרוכים בטכניקות ⁇ 0obscation 1:Freascation 1 (כמו שליטה זרימה שטוחה, ⁇ predicates, או ⁇ מחרוזת. Detecting טכניקות אלה יכול כשלעצמו להצביע על כוונה להימנע מאכיפה רישיון.האנליסט מחפש תבניות אטומיות: כמויות מופרזות של קוד מת, הצהרות מתג בלתי רגילות, או כל ההוראות המופיעות על ידי מתכנתים אנושיים.

(ב) ויקרא י"א): "כלים כמו [ב-]ב[61]:2 [ה][32] ,[32] ,[32] ,[32]] ,[32]] , ‭ ‬הההההההההההתערות‭ ‬הקוד‭ ‬המוגדרי‭ ‬ההקוד‭ ‬המוגדרי‭ ‬ההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההתערו]‭ ‬ההתערו]‭ ‬התערו[ההתערו[ה']]]] [הההתערו[ברכת‭ ‬הההההההה

מנהל רישיון ו- Metadata Identification

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

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

ניתוח דינמי של התנהגות ריצה

ניתוח סטטי יכול להיות מופרש על ידי הצפנה או אריזה.במקרים כאלה, (FLT:0דינמית ניתוח FLT:1 הוא חיוני.האנליסט פועל החשוד בינארי בסביבה מבוקרת ארגז חול (למשל, באמצעות FLT:2VirtualBoxFLT 3: 3FLT או FLT:4QEMUFLT:5) ומפקחים שלה:

(ב) ויקרא י"א): "כלים כמו ויקרא:2 [ה] [ה] [ה] [ה]]] [ה'] [ה']] [ב]]]] [ה'[ה']]] [ה'[ה']'[ה']'[ה']']']'[ה']'[ה']']'[ה']']']'[ה'[ה']'[ה'[ה']']'[ה'[ה'[ה'[ה'[ה']']'[ה']'[ה'[ה']'[ה'[ה']']'[ה']']'[ה'[ה'[ה'[ה']'[ה']']'[ה'[ה']']']'[ה']']'[ה']']'[ה']']'[ה'[ה'[ה'[ה']']'[ה']']'[ה'[ה'[ה'[ה'[ה

כלים ומשאבים לניתוח הנדסה הפוכה

בחירת הכלים הנכונים תלויה בפלטפורמה, המורכבות של בינארי, ואת החוויה של האנליסט.למטה הוא הפניה מורחבת של הכלים הנפוצים ביותר.

כלי ניתוח סטטי

  • (ב) ,0)IDA ProveFLT:1 - תקן הזהב של disassembly ו decompilation.It cross-references, מערכת אקולוגית ותסריט (Python / IDC) הופך אותו אידיאלי לניתוח בינארי עמוק.FLT:2 למד יותר באתר Hex-Rayssssss LT 3.
  • [ה]ב"ה]: [ה] [ה] [ה]]"[דרוש מקור] [ה], [ה] [ה]], [ה] [ה]]]]"[ה]"[ה]"[ה]"[ה]"[ה']"[ה']"[ה']"ה']"[ה']"ה']"ה'[ה']"ה'[ה']"ה']"ה'[ה']"ה'[ה'[ה'[ה'[ה'[ה'[ה'], ו[[ה']"ה']"ה'[ה']"ב[[ה']"ה']"ה']"ב[[ה'[ה']'], ה'], ה'], ה'[ה'[ה'], ה'[ה'], ה'[ה'], ה'[ה'], ה']'[ה'[ה'[ה'[ה']']'[ה']'[ה'[ה'[ה'[ה'[ה
  • (ב) [ה]ב]: [ה] [ה] [ה]] [ה]] [ה]]] [ה]]], [ה], [ה]הההההההתמדה הרצינית, ההולכת ומתועתעתעתה של ה-[[1924]], ו[[המאה ה-20]],]], היא [[המאה ה[[המאה ה-20]].
  • (FLT:0)BinwalkofLT:1 - המתמחה בשחיקה וניתוח. Helps לזהות מערכות קבצים, עומסי מגפים, ודימויים דחוסים בתוך נפיחות בינארית.
  • (FLT:0) Hopper Disa להרכיבrFLT:1 - מאגד מסחרי עבור macOS ולינוקס עם ממשק נקי ותמיכה בניתוח אובייקטיבי-C ו Swift.

כלי ניתוח דינמי

  • (FLT:0)x64dbiggFLT:1 - bugger חזק עבור 64 סיביות Windows executables.מערכת ה- GUI הידידותית למשתמש שלה ו- plugin System (למשל, ScyllaHide) הופכת אותו מועדף עבור אימות רישיון באמצעות ניתוח עקף.
  • (FLT:0)Fridaph1 (FLT:0) - ערכת כלי דינמית המאפשרת זריקת JavaScript או Python תסריטים לתוך תהליכים פועל.מושלם עבור ניטור שיחות API ופענוח נתונים בזמן ריצה.
  • (ב) [ה]התרשים [ה]: כלי חינם לצפייה ולשליטה בתהליכים, שירותים, ומטפלים.
  • (FLT:0)WiresharkveFLT:1 - חיוני לניתוח תקשורת ברשת, במיוחד כאשר התוכנה ברישיון משתמשת בדיקות בית או רישיון.

השוואה וחיבור כלים דומים

  • (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) כלי מתאים לדגם:0) ,(המכונה: כלי שתואם לתבניות קוד זדוני וחתימות בינאריות.

שיקולים משפטיים ואתיים

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

תגית: Scope

(ב) יש צורך לקבל אישור מפורש ל- 1FLT כדי להפוך את התוכנה החשודה לתוכנה.

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

ללא אישור, הנדסה הפוכה עבור איסוף ראיות עלולות לפגוע ב- DMCA (אם לעקוף את בקרת הגישה) או חוק הונאה ושימוש לרעה במחשב (CFAA) בארה"ב, או חקיקה שווה ערך במדינות אחרות.

פרטיות נתונים וסודיות

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

שימוש הוגן ובודדויות

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

זרימת עבודה מעשית: מ Binary to Evidence

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

  1. (FLT:0) Secure the SampleFLT:1 - Obtain binary ממקור לגיטימי (למשל, דוח לקוחות מורשה או הורדה רשמית מאתר ה- violator).
  2. (ב) ,0) ,Preliminaryische ScanFLT:1 - Run מחרוזים, לזהות חתימות, ולחפש ראשי רישיון ידועים באמצעות חוקי YARA.
  3. (FLT:0)Static AnalysisofLT:1 - לטעון את בינארי לתוך IDA Pro או Ghidra. לחפש מחרוזת חשודה, סמלים לא מתאימים, או אזורים של קוד שונים מפלט איסוף רגיל.
  4. (FLT:0) השוואות קוד השוואות FLT:1 - אם יש לך את המקור או המקור המקורי, לבצע דיפרף בינארי עם BinDiff או Diaphora. Document תואם פונקציות וכל דפוסים של obscation.
  5. (FLT:0) ניתוחי אנליזה (Dynamicential AnalysisFLT:1) – הוציאו להורג את בינארי בתיבת חול.תפסו שיחות API, מפתחות הרישום ותנועת הרשת.זהה בדיקות רישיון בזמן ריצה שעשויות להיות נעדרות מהגרסה הלגיטימית.
  6. [ה]הסברה:0 [ה]: [ה], [ה], [ה], [ה], [ה],] יצירת דו"ח מפורט הכולל צילומי מסך, קוד נייחים, ונרטיב המסביר כיצד כל אחד מהם מצביע על שימוש בלתי מורשה.
  7. [ה]הראה [ה]: [ה]] [ה]] [ה]]], [ה], [ה], [ה]], [ה], [ה]]]], [ה], [ה], [ה], [ה], [ה]], [התחילה] [ה] [ה] [ה] [ה]] [ה] [ה] [ה]]] [ה]] [ה] [ה]]]] [ה]]] [ה] [ה] [ה] [ה] [הה] [ההה] [ה] [ה] [ה]]] [ה] [ה]]]]]]]] [ה] [הההההה[ה] [ה]]]]]]] [ה]] [ה] [ה[ה] [ה]]]]]] [ה] [ה] [ה] [ה] [ה]] [ה] [ה[ה] [ה] [ה]]]]]]]]]]] [התקבלה]] [ה] [ה]

אתגרים ומלכודות

אין ניתוח מושלם.מכשולים משותפים כוללים:

  • (FLT:0)False PositiveigsFLT:1 - דפוסים נפוצים (למשל, פונקציות בספריה סטנדרטית) יכולים להופיע דומים גם כאשר לא התרחשות העתקה.
  • (ב) ⁇ :0) , קידוד והצפנה (FLT:1), ייתכן שהבתר יהיה ארוז או מוצפן, הדורש פענוח ללא אריזה או רצף לפני הניתוח יכול להתחיל.
  • (FLT:0)Compilers ו- Optimization DifferencesFIRLT:1) - קוד המכיל מדגמים שונים או רמות אופטימיזציה ייצור בינאריות שונות, מה שהופך את הניתוח לאתגר יותר.
  • (FLT:0)-ForensicsFLT:1) - בור מתוחכם רשאי להשתמש בטכניקות נגד הדבקה, לבדוק סביבות וירטואליות, או לשנות את הפעמים לניתוח שגוי.

אכיפה בלנקום עם חדשנות

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

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

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