Iris Levari Security Consultant CISSP ISC 2 CISSP Lead lecturer ISO LA 27001 מבדקי חדירה ופיתוח מאובטח
תוכן ענינים מבדקי חוסן תכולה תוצרים ולו"ז פיתוח מאובטח תכולה תוצרים ולו"ז
מבדקי חוסן מטרה: כיסוי וגילוי מלא של בעיות אבטחה באפליקציה או מערכת שיטות: ההבדלים: כמות הידע של הבודק אודות המערכת Box )full disclosure) White - מידע מלא: שרטוט רשת, קוד מקור, גרסאות תוכנה. Box "blind" Black אין כל ידע מוקדם )ארכיטקטורה, גרסאות תוכנה, קוד( Box "partial disclosure" Grey קיים מידע חלקי
מבדקי חוסן - מבדק תשתיתי מערכות הפעלה שרת WEB שרת אפליקציה, שרת בסיס נתונים, תשתיות תוכנה )framework( ומוצרי תשתית צד שלישי: Web services, EBS enterprise service Plug-ins,bus מקור הבעיה: ארכיטקטורה או מימוש פגיע גרסאות פגיעות קונפיגורציה פגיעה
מבדקי חוסן - סוגים - מימוש פגיע של מנגנונים כגון: בדיקה אפליקטיבית מנגנון הזדהות פגיע אי אכיפה של מורכבות סיסמא אי אכיפה של נעילת משתמשים מנגנון שחזור סיסמא מנגנון הרשאות פגיע גישה לבסיס הנתונים מנגנון חיפוש ממשקים מול אפליקציות אחרות ארכיטקטורה שאינה תואמת לשימוש בפועל סינון קלט משתמש פגיע מנגנון בקרה פגיע
מבדקי חוסן - מבדק אפליקטיבי טעויות עסקיות לוגיות: Restrictions Business Limits and מגבלות עסקיות האם הן נאכפות בפועל באפליקציה? האם מותר לבצע החזר כספי מעל גובה של?XXX האם מותר לרכוש מוצר בסכום שלילי? האם למשתמש בעל הרשאה מסוימת מותר לאשר הלוואות מעל סכום?XXX דורש: הבנה של המערכת והחוקים העסקיים שלה מסלולי שימוש use cases מסלולי עקיפה ניצול abuse cases מסלולי שימוש workflow משתמשים בעלי הרשאות שונות
מבדקי חוסן - בדיקות אוטומטיות מול ידניות בדיקות אפליקטיביות אוטומטיות: מגבלות: בעיות לוגיות, בעיות עסקיות, עקיפה של תהליך רב שלבי. קושי באבחון בעיות כגון: SQL injection, CSRF בעיה בזיהוי סינון קלט, בעיה בזיהוי ספריות צד שלישי המריצות פקודות SQL )בעיקר אם אינן זמינות(. יתרונות: רמת ידע נמוכה, in-house service ניתן לפעיל תקופתית ע"י עובדי חברה בדיקות ידניות או ידניות משולבות עם אוטומטיות: יתרונות: אבחון פגיעות לוגיות ועסקיות, זיהוי פגיעות של עקיפה של תהליך רב שלבי. חסרונות: קשה להגיע לכיסוי מלא של הקוד
מבדקי חוסן - סוגים מבדק חוסן אלקטרוני: שימוש באמצעים אלקטרונים בלבד מבדק כנגד הגורם האנושי :Social Engineering בדיקה שעובדים ממלאים אחר מדיניות ונהלי אבטחת המידע מבדק פיזי : Physical שערים, מנעולים, מצלמות מעגל סגור, גלאים, שלטים מרתיעים. : דרישות מקדימות: אפליקציה פועלת בסביבת בדיקות, פונקציונליות מלאה משתמש וסיסמא: משתמש רגיל, משתמש בעל הרשאות ניהוליות
מבדקי חוסן - שלב במחזור חיי המוצר מבדק חוסן אלקטרוני בשלב : User unit test or.acceptance tests יש לבצע תיקון ובדיקה חוזרת לפני עליה לאוויר של האפליקציה/שירות מבדק כנגד הגורם האנושי - Engineering Social מקובל שנתית עבור תקינה/סרטיפיקציה כגון iso.27001 מבדק פיזי : Physical מקובל שנתית עבור תקינה/סרטיפיקציה כגון.ISO 27001 או עבור תהליך קבלה של מערכת אבטחת פיזית חדשה.
מבדקי חוסן - תדירות חזרה על מבדק מבדק חוסן אלקטרוני בכל שינוי מהותי של האפליקציה. בשלב : User unit test or.acceptance tests יש לבצע תיקון ובדיקה חוזרת לפני עליה לאוויר של האפליקציה/שירות מבדק כנגד הגורם האנושי - Engineering Social מקובל שנתית עבור תקינה/סרטיפיקציה כגון iso.27001 מבדק פיזי : Physical מקובל שנתית עבור תקינה/סרטיפיקציה כגון.ISO 27001 או עבור תהליך קבלה של מערכת אבטחת פיזית חדשה.
מבדקי חוסן - תוצרים דוח מפורט: דרישות מינימליות מהדוח: שחזור עצמי של הבעיה ע"י תוכנתן האפליקציה הסבר מפורט לרמת התכניתן ולרמת מנהל על משמעות הבעיה ואופן התיקון. ברמת פירוט שתאפשר לתכניתן לתקן ולבדוק את הישנות הבעיה לאחר ביצוע התיקון.
פיתוח מאובטח מטרה: שילוב שיקולי אבטחת מידע בתהליך הפיתוח ובמחזור חיי המוצר דרישות אבטחת מידע, תכן על ארכיטקטורת אבטחת מידע למוצר תכנון על של בקרות אבטחת מידע שיכללו במוצר, תכן מפורט של בקרות אבטחת מידע. תכנון אבטחת מידע כולל תואם מדיניות חבר ונהלי אבטחת המידע שלה או תואם דרישות חוק או רגולציה )חוק הגנת הפרטיות, תקן.SOX isox,pci מתודולוגיות שיטות: מיקרוסופט SDL secure development lifecycle (agile and waterfall)
SDL Security Activities Training Requirements Security Requirements Quality Gates/Bug Bars Security and Privacy Risk Assessment Design Design Requirements Attack Surface Reduction Threat Modeling Implementation Use Approved Tools Deprecate Unsafe Functions Static Analysis Verification Dynamic Program Analysis Fuzz Testing Threat Model and Attack Surface Review Release Incident Response Plan Final Security Review Release/Archive Optional Activities Manual Code Review Penetration Testing
Classic
מבדקי חוסן - בדיקות אוטומטיות מול ידניות בדיקות אפליקטיביות אוטומטיות: מגבלות: בעיות לוגיות, בעיות עסקיות, עקיפה של תהליך רב שלבי. קושי באבחון בעיות כגון: SQL injection, CSRF יתרונות: רמת ידע נמוכה, in-house service לפעיל תקופתית ע"י עובדי חברה ניתן בדיקות ידניות או ידניות משולבות עם אוטומטיות: יתרונות: אבחון פגיעות לוגיות ועסקיות, פגיעות של עקיפה של תהליך רב שלבי. זיהוי
מבדקי חוסן - סוגים מבדק חוסן אלקטרוני: שימוש באמצעים אלקטרונים בלבד מבדק כנגד הגורם האנושי :Social Engineering בדיקה שעובדים ממלאים אחר מדיניות ונהלי אבטחת המידע מבדק פיזי : Physical שערים, מנעולים, מצלמות מעגל סגור, גלאים, שלטים מרתיעים. : דרישות מקדימות: אפליקציה פועלת בסביבת בדיקות, פונקציונליות מלאה משתמש וסיסמא: משתמש רגיל, משתמש בעל הרשאות ניהוליות
פיתוח מאובטח- שלב במחזור חיי המוצר לעומת בדיקות חוסן אלקטרוני שמבוצעות בשלב tests:. unit test or User acceptance פיתוח מאובטח מלווה את כל שלבי מחזור החיים. שערי אבטחת המידע: איסוף דרישות, תכן על, תכן מפורט, יישום, בדיקות, post release הגורמים העורבים: מעצבים, ארכיטקטים, תוכניתנים, תשתיות
פיתוח מאובטח - תדירות חזרה על מבדק בכל שינוי מהותי של האפליקציה. יש לוודא שרמת אבטחת המידע של מהערכת לא נפגעת עקב השינוי. דורש בדיקה של כל CR תהליך קצר בהרבה של סינון שינויים תהליך ארוך רק אם מדובר בשינוי יעוד של מערכת
פיתוח מאובטח - תוצרים מסמך דרישות אבטחת מידע סעיף אבטחת מידע במסמך התכן על סעיף אבטחת מידע במסמך התכן המפורט מסמך ניהול סיכונים Privacy( )Security & מסמך Threat Modeling מסמך Incident Response Plan
פיתוח מאובטח יתרונות חיסכון בעלויות קיצור לוחות זמנים לתיקון לעיתים לא ניתן לתקן בעיות הנובעות מארכיטקטורה לא נכונה בשלב ה user acceptance tests תוצר לוואי :הכשרת תוכניתנים, ארכיטקטים לכתיבת נכונה, שילוב כלים אוטומטיים ברמת התוכניתן.
Average Time to Fix
Source: Barry Boehm & V Basili IEEE computer
What do we Gain?
What *IS* the SDL? A set of design, development, testing and post-release security and privacy-related software process improvements The goal is to improve security and privacy by: Reducing the number of vulnerabilities in shipping software Reducing the severity of remaining vulnerabilities
SDL Methodology Security training for developers and designers Security sections in development phases tasks & gates: Secure requirements Secure architecture (3 tier application, server location, Web services security) Secure design
Benefits & Deliverables Cost reduction Security issues eliminated at earlier development stages Eliminating cost related with late security fixing (devlopment, unit test & user acceptance tests) Security training & practice enhances developers market attractiveness Secure development guidelines Adding security sections to project documents: Requirement Design (HLD, DD) Adding SDL tools and methods in software coding phase (implementation)
Code Scanning Tools Microsoft Tool Applies To Microsoft FxCop (VS2010 integrated).net Framework languages Microsoft Visual Studio Code Analysis Feature (/analyze) Microsoft Source Code Analyzer for SQL Injection (in ASP code).net Framework languages Legacy ASP Code 28
Required and Recommended Compilers, Tools Compiler/ Tool Minimum Required Version and Switches/Options C/C++ Compiler Microsoft Visual Studio.NET 2008 cl.exe Version 14.00.50727.42 Use /GS Use /GS Version 8.00.50727.762 Link.exe Use /SAFESEH Use /NXCOMPAT and don t use /NXCOMPAT:NO. See Appendix F: SDL Requirement: No Executable Pages for more information. 29
Required and Recommended Compilers, Tools Compiler/ Tool Minimum Required Version and Switches/Options C# Compiler Visual Studio 2008 csc.exe Version 8.0.50727.42.NET Framework Version 2.0.50727 30
Required and Recommended Compilers, Tools Tool AppVerifier Minimum Required Version and Switches/Options Most recent version Run tests as described in Appendix J: SDL Requirement: Application Verifier 31
SDL Tools Tool Code Analysis for C/C++ Anti-Cross Site Scripting (Anti-XSS) Library FxCop Minimum Required Version and Switches/Options Code Analysis for C/C++ is a static analyzer. looks for C/C++ coding patterns and incorrect code usage that may indicate a programming error. Anti-XSS library is specifically designed to help mitigate the potential of Cross- Site Scripting (XSS) attacks in webbased applications. FxCop is a static analyzer for managed code assemblies reports information about the assemblies, such as possible design, localization, performance, and security improvements. 32
SDL Tools Tool banned.h SiteLock ATL Template Microsoft Code Analysis Tool.NET (CAT.NET) Minimum Required Version and Switches/Options The banned.h header file is a sanitizing resource that supports the SDL requirement to remove banned functions from code. It lists all banned APIs and allows any developer to locate them in code. enables ActiveX control developers to restrict the use of an ActiveX control to a predetermined list of domain names or security zones. CAT.NET is a binary code analysis tool that helps identify common variants of certain prevailing vulnerabilities 33
Thank you Iris Levari Security Consultant CISSP ISO LA 27001 CISSP Lead lecturer irisle@gmail.com http://il.linkedin.com/pub/iris-levari/1/318/44b