Міністерство освіти і науки України Тернопільський національний технічний університет імені Івана Пулюя (повне найменування вищого навчального закладу) Кафедра кібербезпеки (повна назва кафедри, циклової комісії) КУРСОВИЙ ПРОЕКТ " Технології створення та застосування систем з дисципліни захисту інформаційно-комунікаційних систем" (назва дисципліни) на тему: Студента (ки) 5 курсу __ групи спеціальності ________________________________ ___ (прізвище та ініціали) Керівник ________________________ ___________________________________ (посада, вчене звання, науковий ступінь, прізвище та ініціали) Національна шкала ________________ Кількість балів: __________Оцінка: ECTS _____ Склад комісії ________________ ___________________________ (підпис) (прізвище та ініціали) ________________ ___________________________ (підпис) (прізвище та ініціали) ________________ ___________________________ (підпис) м. Тернопіль - 2022 рік 4 (прізвище та ініціали) 5 Зміст ВСТУП ................................................................................................................................. 6 ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ ....................................................... 8 1 ЗАГАЛЬНІ ВІДОМОСТІ.................................................................................................. 10 1.1 Основні поняття SAST і DAST ......................................................................... 10 1.1.1 SAST.................................................................................................................... 10 1.1.2 DAST ................................................................................................................... 12 1.2 Чим відрізняється DAST від SAST? .......................................................................... 12 1.2.1 Плюси DAST: ...................................................................................................... 12 1.2.2 SAST проти DAST ............................................................................................... 13 1.2 Особливості розробки SAST ................................................................................ 14 2 ІНФОРМАЦІЙНА СИСТЕМА.......................................................................................... 16 2.1 Аналіз ситеми ......................................................................................................... 16 2.1.1Хибні спрацьовування: ........................................................................................ 22 Висновок SAST ........................................................................................................... 23 2.2 DAST сканування...................................................................................................... 24 2.2.1 Центр безпеки програмного забезпечення .......................................................... 24 2.2.2 LIM ..................................................................................................................... 25 2.2.3 DAST API ............................................................................................................ 25 2.2.4 DAST Global Services ........................................................................................... 25 2.2.5 База даних ScanCentral DAST ............................................................................. 26 2.2.6 Датчик WebInspect.............................................................................................. 26 ВИСНОВОК ....................................................................................................................... 28 СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ........................................................................ 29 ВСТУП Сучасні методи обробки, передачі та накопичення інформації сприяли появі загроз, пов'язаних з можливістю втрати, перекручування та розкриття даних, які адресовані або належать кінцевим користувачам. Тому 6 забезпечення інформаційної безпеки комп'ютерних систем і мереж є одним з провідних напрямків розвитку ІТ. Інформаційна безпека комп'ютерних систем досягається забезпеченням конфіденційності, цілісності та достовірності даних, що обробляються, а також доступності та цілісності інформаційних компонентів і ресурсів системи. При розробці комп'ютерних систем, вихід з ладу або помилки в роботі можуть призвести до тяжких наслідків, питання комп'ютерної безпеки стають першочерговими. Відомо багато заходів, спрямованих на забезпечення комп'ютерної безпеки, основними серед них є технічні, організаційні та правові. Захищеність інформаційної системи від випадкового або навмисного втручання, що завдає шкоди власникам або користувачам інформації, залежить, в основному, від доступності (можливість за розумний час отримати необхідну інформаційну послугу); цілісності (актуальність і несуперечність інформації, її захищеність від руйнування і несанкціонованого зміни); конфіденційності (захист від несанкціонованого прочитання). Сучасна інформаційна система являє собою складну систему, що складається з великого числа компонентів різного ступеня автономності, які пов'язані між собою і обмінюються даними. Практично кожен компонент може піддатися зовнішньому впливу або вийти з ладу. 7 ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ SAST (Static Application Security Testing) – тестування «білої скриньки», існує вже понад десять років. Дозволяє розробникам знаходити вразливість безпеки у вихідному коді програми на ранніх етапах життєвого циклу розробки програмного забезпечення. SAST також забезпечує відповідність посібникам та стандартам кодування без фактичного виконання базового коду. DAST (Dynamic Application Security Testing) – тестування «чорної скриньки», може виявляти вразливості та слабкі місця в працюючій програмі, зазвичай веб-додатках. Це досягається за рахунок використання методів впровадження помилок у додатку, таких як передача шкідливих даних у програмне забезпечення, для виявлення поширених уразливостей безпеки, наприклад SQL-ін'єкцій та міжсайтових сценаріїв. ІТ (information technologies) — сукупність методів, виробничих процесів і програмно-технічних засобів, об'єднаних з метою збирання, опрацювання, зберігання і розповсюдження інформації в інтересах її користувачів. БД (база даних) — сукупність даних, організованих відповідно до концепції, яка описує характеристику цих даних і взаємозв'язки між їх елементами; ця сукупність підтримує щонайменше одну з областей застосування. ІC (інформацíйна система) — сукупність організаційних і технічних засобів для збереження та обробки інформації з метою забезпечення інформаційних потреб користувачів. УСД (уніфікована система документації) — система документації, що створена за єдиними правилами та вимогами і містить інформацію, необхідну для управління у певній сфері діяльності. 8 ІБ (інформаційна безпека) — це стан захищеності систем обробки і зберігання даних, при якому забезпечено конфіденційність, доступність і цілісність інформації, використання й розвиток в інтересах громадян або комплекс заходів, спрямованих на забезпечення захищеності інформації особи, суспільства і держави від несанкціонованого доступу, використання, оприлюднення, руйнування, внесення змін, ознайомлення, перевірки запису чи знищення 9 1 ЗАГАЛЬНІ ВІДОМОСТІ 1.1 Основні поняття SAST і DAST 1.1.1 SAST Незважаючи на те, що розшифровку будь-якої абревіатури можна легко знайти на просторах мережі, я все ж таки не ігноруватиму цей обов'язок ознайомлювальної статті. SAST (Static Application Security Testing) – це процес тестування програми на наявність помилок та вразливостей у вихідному коді із застосуванням статичного аналізу. Основне завдання SAST – подолати розрив між розробкою та безпекою. На зорі часів, коли технологія SAST тільки починала свій розвиток, процес роботи по ній виглядав так: фахівці з безпеки тестували код на наявність уразливостей та після цього передавали результати попереднього сканування розробникам для виправлення; після отримання результатів від "безпеків" розробники намагалися розібратися з великим обсягом неясних результатів і помилкових спрацьовувань, які часто з'являються на пізніх етапах SDLС (Software Development Life Cycle життєвий цикл безпечної розробки). На щастя, сучасні технології SAST значно спростили описуваний процес, змістивши акцент на розробників. 10 SAST по праву вважається одним із основних методів для пошуку вразливостей у вихідному коді програми. Статичний аналіз проводиться на етапі написання коду - це дозволяє знаходити помилки та вразливості на ранніх стадіях розробки продукту, що знижує витрати на їх усунення. Крім того, цей метод працює з більшістю мов програмування. Як плюси SAST також виокремлю: можливість інтеграції статичного аналізу у процес розробки, в IDE; автоматичне виявлення критичних уразливостей, таких як переповнення буфера, SQL-ін'єкція, міжсайтовий скриптинг (XSS) та інших; і найкласніше – вказівка на точне розташування підозрілого фрагмента коду, що особливо актуально для великих проектів із сотнями тисяч та мільйонами рядків коду. Але, звичайно, не все так райдужно, як хотілося б: у SAST є недоліки. Одним із основних – вважається велика кількість хибних спрацьовувань. Через це існує ризик тривалої перевірки кожного такого результату. Розробники статичних аналізаторів приділяють пильну увагу роботі з хибними спрацьовуваннями та створюють рішення для їх нівелювання. 11 Присутність потенційних уразливостей у вихідному коді несе серйозні ризики безпеки. Використання інструментів SAST знижує ці ризики і допомагає контролювати якість розробки. 1.1.2 DAST У попередньому розділі я писав про статичне тестування, у цьому – я приділю увагу динамічному тестуванню. DAST (Dynamic Application Security Testing) – це процес тестування додатків, що імітує шкідливі зовнішні атаки, які намагаються використовувати найпоширеніші вразливості. Головне завдання DAST – виявлення вразливостей до того, як їх виявить хтось, окрім розробників. Такі інструменти шукають проблемні місця, перевіряючи точки доступу та моделюючи роботу користувачів. Динамічне тестування дозволяє виявляти вразливості, зумовлені різними ін'єкціями коду в запит (наприклад, до веб-сторінки) або пов'язані з некоректною конфігурацією (найпростіший приклад - можливість аутентифікації по порожньому паролю). 1.2 Чим відрізняється DAST від SAST? 1.2.1 Плюси DAST: аналіз дозволяє розробникам виявляти проблеми під час виконання, потім SAST не здатний. Це можуть бути недоліки автентифікації та конфігурації мережі або проблеми, що виникають лише після входу до системи; 12 знаходить помилки, що виникають під час роботи користувача з додатком; дозволяє протестувати додаток та виявити недоліки, які не були знайдені звичайними тестами; DAST не прив'язаний до мов програмування. Спочатку DAST-інструменти використовувалися рідше за статичний аналіз. Але у зв'язку з попитом, що збільшується, на безпеку і високу динаміку поширення смартфонів, в яких стає все більше додатків, пов'язаних з конфіденційною інформацією, частка DAST-рішень значно збільшилася і продовжує зростати. IndustryARC провели дослідження " Dynamic Application Security Testing Market - Forecast (2020-2025) ", згідно з яким ринок DAST-рішень у середньому збільшується на 17,4% за рік. 1.2.2 SAST проти DAST Як вважаєте, який із зазначених типів AST найбільш поширений? Якщо ви скажете, що в даному питанні очевидна перевага у SAST, ви будете неправі. Але якщо виберете варіант DAST, знову помилитеся. Згідно з даними Grand View Research (посилання недоступне для перегляду з Росії) про розподіл типів аналізаторів за частками продажів у масштабах світового ринку частки SAST та DAST практично рівні. 13 Чому саме ці два види AST найпоширеніші? Насамперед це пов'язано з тим, що вони існують довше за інших, безліч початкових недоліків вже виправлено і більшість фахівців упевнено з ними працюють. Чи можна сказати, що рівність означає, що ці інструменти є альтернативою один одному? Ні. Для більшої захищеності вихідного коду та продукту в цілому розробники використовують і SAST, і DAST, тому що обидва методи нівелюють слабкі сторони один одного: DAST працює з різними наборами вхідних даних, що дозволяє виявити їхню некоректну/небезпечну обробку; SAST добре показує себе при виявленні помилок у вихідному коді, але сумно відомий великою кількістю помилкових спрацьовувань; технології DAST не дозволяють відзначати помилки кодування до номера рядка коду; SAST легко інтегрувати у роботу над проектом та автоматизувати процеси. Це допомагає усунути частину проблем, пов'язаних із тестуванням кодової бази на безпеку; DAST розуміє виклики функцій та аргументи; SAST вміє працювати з викликами функцій та аргументами, але лише частково. 1.2 Особливості розробки SAST 14 З Fortify ScanCentral SAST (ScanCentral), Fortify Користувачі Static Code Analyzer можуть краще керувати свої ресурси, перевантажуючи завдання аналізу коду з машин для збирання на хмару машин (датчики), передбачені для цієї мети. Його простий у використанні інтерфейс дозволяє інтегрувати статичний аналіз з процесом побудови та забезпечує можливість динамічного масштабування датчиків, необхідних для виконання роботи, необхідні для конвеєра CI/CD щодо виконання сканувань. Ви можете розпочати аналіз вашого коду Fortify Static Code Analyzer із клієнта ScanCentral в одному з два способи: Ви можете виконати фазу перекладу на локальній машині або комп’ютері збірки, щоб створити мобільну збірку сесії (MBS). Потім клієнт ScanCentral передає MBS контролеру ScanCentral, який розподіляє MBS на датчики. Потім датчики виконують фазу сканування аналізу. Якщо ваша версія програми написана мовою, яка підтримується для віддаленого перекладу, ви також можете перевантажте фазу трансляції аналізу на свої датчики. Якщо ваш код написаний мовою, відмінною від тієї, яка підтримується для розвантажувального перекладу проекту, етап перекладу (з меншою витратою процесора та часу, ніж етап сканування) завершується будівельна машина. Після завершення перекладу ScanCentral створює пакет проекту, який він потім переміщується до розподіленої хмари машин (датчиків) для сканування. На додаток до звільнення збірки машини, цей процес полегшує додавання додаткових ресурсів до хмари та розвиток системи без необхідності переривати процес збирання. Контролер ScanCentral може керувати вивести FPR до Fortify Software Security Center. 15 2 ІНФОРМАЦІЙНА СИСТЕМА 2.1 Аналіз ситеми Ризик - це ймовірні збитки, які залежать від захищеності системи. За визначенням ризик завжди вимірюється в грошах. Останнє є важливим: 90 % інцидентів у безпеці виникають внаслідок використання зловмисниками відомих програмних помилок. Усунення вразливостей на етапі розробки програм значно знижує ризики в інформаційній безпеці. Для пошуку вразливостей у додатках, що створюються, існують окремі класи інструментів, ринки яких зараз активно розвиваються. 1. У цьому прикладі ми використовуємо програму WebGoat, яка є навмисно розробленою незахищеною програмою, яка дозволяє зацікавленим розробникам лише тестувати вразливості, які зазвичай зустрічаються в програмах на основі Java, які використовують поширені та популярні компоненти з відкритим кодом. Завантажте код проекту, розпакуйте його в папку. 2. Запуск майстра сканування Fortify: у Windows виберіть Пуск > Усі програми > Fortify SCA та програми > Майстер сканування. Інформацію про запуск будь-якої іншої ОС ю 3. Додайте папку проекту у вікні майстра сканування: 16 4. Перегляньте вихідні файли: він самостійно визначить усі залежності у вашій програмі. Ви також можете включати та виключати залежності та версії вручну. Перевірте ліву частину вікна майстра сканування, вона надаватиме інформацію про кожен крок під час переходу вікном. 17 5. Якщо у вашому проекті встановлено Центр безпеки програмного забезпечення ( SSC ), який є необов’язковим і використовується в проекті, якщо у вас є кілька програм і вам потрібна спільна робота команди безпеки та групи розробників, інакше ви можете перейти до кроку 6 . Коли ви надасте URL-адресу SSC і ввійдете в SSC, він надасть маркер завантаження, за яким ваш код буде скановано, а результат буде завантажено та доступний для перевірки відповідності команді безпеки. 18 6. Після того, як ви натиснете «Далі» та переміститесь у вікно, він створить файл .bat у вказаному конкретному місці 7. Запустіть bat-файл. 19 8.Цей bat-файл створить локально scan.fpr, який можна конвертувати у pdf за допомогою Audit Work bench , який буде встановлено у вашій системі вже після встановлення інсталятора SCA. Якщо у вас встановлено SSC , він сканує та завантажує результат, який буде видно на панелі інструментів. Після завершення сканування ви можете завантажити файл scan.fpr, конвертувати його в PDF і поділитися ним із відповідними командами. 20 Визначені приклади проблем Критично: 1. CWE ID 079 2. CWE ID 200 Високий: 1. CWE ID 287 2. CWE ID 022 21 2.1.1Хибні спрацьовування: Одним із недоліків SAST є поширеність хибних позитивних результатів. Командам потрібно відсортувати та перевірити окремі кандидати на помилку безпеки, щоб переконатися, що це не помилковий результат. У випадку Fortify інструмент Audit Workbench (AWB) використовується для видалення цих помилкових спрацьовувань. Відкрийте scan.fpr в Audit Workbench. Знайдіть подробиці для конкретної проблеми. На вкладці «Підсумок» установіть для поля «Аналіз» значення «Не проблема» (тобто «хибнопозитивний результат»). Є й інші доступні варіанти, зокрема Проблема з надійністю, Погана практика, Підозрілий і Можливий використання. Цей процес розмітки проблем називається «аудит результатів», і він дозволяє вашій команді визначати пріоритети та перевіряти проблеми, виявлені автоматизованим інструментом. По суті, ваша можливість «Довіряй, але перевіряй». Коли ці ідентичні проблеми надходять під час наступних сканувань, цей параметр аналізу має залишатися незмінним. 22 Висновок SAST Оскільки SAST виявляє проблеми на дуже ранніх етапах циклу розробки, він став невід’ємною частиною всього життєвого циклу розробки програмного забезпечення. Ще одна перевага SAST полягає в тому, що 23 його легко впровадити та прийняти. На ринку є багато інших інструментів, перерахованих вище. Ми можемо з упевненістю сказати, що SAST буде використовуватися в осяжному майбутньому. 2.2 DAST сканування Зміцніть ScanCentral DAST це інструмент динамічного тестування безпеки програми, який складається з Fortify WebInspect датчика слу- жби та інші допоміжні технології, які можна використовувати разом із Fortify Software Security Center. На наступній діаграмі показано архітектуру DAST Fortify ScanCentral. Наступні параграфи описують ці компоненти більш детально. 2.2.1 Центр безпеки програмного забезпечення Інтерфейс користувача Fortify Software Security Center надає спосіб перегляду списку сканувань DAST, списку датчиків, пулів датчиків, налаштувань і сканування розклади. Ви також можете отримати доступ до майстра налаштування параметрів DAST з інтерфейсу користувача. 24 ScanCentral DAST спілкується з Fortify Software Security Center за допомогою програмного забезпечення Software Security Center Rest API. ScanCentral DAST отримує інформацію про програму та версію та дозволи користувача з бази даних Fortify Software Security Center. ScanCentral DAST завантажує скани для сортування до бази даних як FPR . файли 2.2.2 LIM Контейнер Docker License and Infrastructure Manager (LIM) надає службу ліцензування для Компоненти ScanCentral DAST. Щоб отримати додаткові відомості про LIM, перегляньте посібник із встановлення та використання ліцензій Micro Focus Fortify і Infrastructure Manager . 2.2.3 DAST API Контейнер ScanCentral DAST REST API Docker забезпечує зв’язок між датчиком і База даних ScanCentral DAST. Він також взаємодіє з LIM для ліцензування та Fortify Software Security Center. Назва контейнера scancentral-dast-api. 2.2.4 DAST Global Services Контейнер ScanCentral DAST Global Service Docker виконує такі дії: Початок сканування (включаючи сканування за розкладом) Передає повідомлення до та від ScanCentral DAST Sensor Service 25 Імпортує результати сканування до бази даних Fortify Software Security Center Виконує додаткові фонові завдання Примітка . Глобальна служба ScanCentral DAST використовує SmartUpdate для отримання найновішої версії Назва контейнера scancentral-dast-globalservice. 2.2.5 База даних ScanCentral DAST Параметри конфігурації для ScanCentral DAST зберігаються в База даних ScanCentral DAST. ScanCentral DAST REST API та Глобальна служба ScanCentral DAST підключається до бази даних під час запуску, щоб отримати налаштування конфігурації. 2.2.6 Датчик WebInspect Датчик Fortify WebInspect — це або контейнер Docker, або комп’ютер з ОС Windows, який запускає службу датчиків ScanCentral DAST і датчик Fortify WebInspect. Датчик виконує такі дії: Запускає та виконує сканування Повідомляє статистику сканування до глобальної служби ScanCentral DAST Завантажує скан в ScanCentral DAST Rest API Примітка . ScanCentral DAST Sensor використовує SmartUpdate для отримання останніх оновлень SecureBase. 26 27 ВИСНОВОК Важливим є захист інформації і у всесвітній мережі Internet. Якщо раніше мережа використовувалась лише в якості середи передачі файлів та повідомлень електронної пошти, то сьогодні вирішуються складніші завдання розподіленого доступу до ресурсу. Internet, який раніше слугував виключно дослідницьким та учбовим групам, стає все більш популярною у діловому світі. Компанії спокушають швидкість, дешевий глобальний зв'язок, зручність для проведення спільних робіт, доступні програми, унікальна база даних мережі. Вони розглядають глобальну мережу, як доповнення до власних локальних мереж. 28 СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 1. Богуш В. М., Кривуца В. Г., Кудін А. М., «Інформаційна безпека: Термінологічний навчальний довідник» За ред. Кривуци В. Г. — Київ. 2004. — 508 с. 2. Дейт К. Дж. Введение в системы баз данных. :Пер. с англ. – 6-е изд. – К.: Диалектика, 1998. – 784 с. 3. Поздняков Е. Защита объектов. – М.: БДЦ, 1997. 4. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с. 29