Інструмент Fortify Static Code Analyzer (SCA) здійснює аналіз вихідного коду, точно встановлюючи першопричини вразливостей у системі безпеки.
Сканування за допомогою Fortify виявляє найкритичніші проблеми, визначаючи їх пріоритетність, а також надає розробникам конкретні інструкції щодо їхнього виправлення.
Аналізатор статичного коду Fortify
Fortify Static Code Analyzer містить різноманітні аналізатори вразливостей, зокрема аналізатори буфера, вмісту, потоку управління, потоку даних, семантичні, конфігураційні та структурні. Кожен з цих аналізаторів використовує певний тип правил, розроблених для забезпечення інформації, необхідної для конкретного виду аналізу.
До складу Fortify Static Code Analyzer входять наступні компоненти:
- Майстер сканування Fortify: інструмент, що надає опції для запуску скриптів до або після аналізу.
- Верстак аудиту: додаток з графічним інтерфейсом користувача для організації та управління результатами аналізу.
- Редактор спеціальних правил: інструмент, що дозволяє розробникам створювати та змінювати власні правила для аналізу.
- Плагін для IntelliJ та Android Studio: плагін, який відображає результати аналізу безпосередньо в інтегрованому середовищі розробки (IDE).
- Плагін для Eclipse: інструмент, інтегрований з Eclipse, що дозволяє переглядати результати аналізу в IDE.
- Плагін Bamboo: плагін для збору результатів аналізу, виконаного Bamboo Job.
- Плагін Jenkins: плагін для отримання результатів аналізу з Jenkins Job.
Функціональні можливості Fortify SCA
#1. Підтримка різних мов програмування
Fortify SCA підтримує широкий спектр мов програмування, включаючи: ABAP/BSP, ActionScript, ASP (з VBScript), COBOL, ColdFusion, Apex, ASP.NET, C# (.NET), C/C++, Classic, VB.NET, VBScript, CFML, Go, HTML, Java (включаючи Android), JavaScript/AJAX, JSP, Kotlin, Visual Basic, MXML (Flex), Objective C/C++, PHP, PL/SQL, Python, Ruby, Swift, T-SQL та XML.
#2. Різноманітні варіанти розгортання
- Fortify On-Prem: надання організації повного контролю над усіма аспектами Fortify SCA.
- Fortify On Demand: дозволяє розробникам працювати в середовищі “програмне забезпечення як послуга” (SaaS).
- Fortify Hosted: поєднання переваг On Demand та On-Prem, пропонуючи ізольоване віртуальне середовище з повним контролем даних.
#3. Проста інтеграція з інструментами CI/CD
- Легка інтеграція Fortify SCA з популярними IDE, такими як Visual Studio та Eclipse.
- Інтеграція з інструментами з відкритим кодом, такими як Sonatype, WhiteSource, Snyk і BlackDuck, для розширеного контролю за різними процесами.
- Можливість інтеграції з віддаленими репозиторіями коду, такими як Bitbucket і GitHub, для перевірки коду на наявність вразливостей при кожному внесенні змін та надсилання відповідних звітів.
#4. Сповіщення в реальному часі
Fortify SCA надає оновлення в режимі реального часу під час процесу кодування, усуваючи необхідність очікування завершення кодування для проведення тестування. Інструмент включає аналізатори конфігурації та структурні аналізатори, розроблені для забезпечення швидкості та ефективності, допомагаючи у створенні безпечних програм.
#5. Audit Assistant на основі машинного навчання
Audit Assistant, використовуючи алгоритми машинного навчання, прискорює процес аудиту. Він виявляє всі вразливості, розставляючи їх за пріоритетом на основі рівня достовірності, що дозволяє організаціям скоротити витрати на аудит завдяки автоматизованому створенню звітів.
#6. Гнучкість
Користувачі мають можливість обирати тип сканування відповідно до своїх потреб. Наприклад, для точних та детальних перевірок можна обрати комплексне сканування, а для швидкого виявлення основних загроз – швидке сканування.
Які функції виконує Fortify SCA?
Fortify SCA відіграє важливу роль у типовій екосистемі розробки, виконуючи ряд функцій:
Статичне тестування для покращення коду
Статичне тестування безпеки додатків (SAST) дозволяє виявити вразливості на початкових етапах розробки, що робить їх усунення менш затратним.
Цей підхід зменшує ризики безпеки, оскільки тестування забезпечує миттєвий зворотний зв’язок щодо проблем, що виникають у коді під час розробки.
Крім того, розробники отримують знання про безпеку через статичне тестування, що сприяє створенню більш безпечного програмного забезпечення.
Fortify SCA використовує розширену базу знань правил безпечного кодування та різноманітні алгоритми для аналізу вихідного коду на наявність вразливостей. Інструмент аналізує усі можливі шляхи, якими можуть рухатися дані та виконання, для виявлення вразливих місць та пропонує шляхи їх усунення.
Раннє виявлення проблем безпеки
Fortify SCA імітує компілятор. Після сканування, інструмент читає файли вихідного коду та трансформує їх у проміжну структуру, оптимізовану для аналізу безпеки.
Усі вразливості безпеки стають легко виявленими у цьому проміжному форматі. Інструмент включає в себе механізм аналізу, що складається з декількох спеціалізованих аналізаторів, які застосовують правила безпечного кодування для визначення, чи порушує код будь-які з цих правил.
Fortify SCA також має конструктор правил, що дозволяє розширювати можливості статичного аналізу та включати власні правила. Результати можна переглядати у різних форматах залежно від цільового призначення та аудиторії.
Центр безпеки програмного забезпечення Fortify (SSC) для управління результатами
Fortify Software Security Center (SSC) – це централізована платформа для управління, що забезпечує повну видимість стану безпеки додатків в організації. За допомогою SSC користувачі можуть відстежувати, переглядати, пріоритезувати та керувати зусиллями щодо усунення загроз безпеці.
Fortify SSC забезпечує точну картину стану безпеки додатків в організації. SSC розміщено на центральному сервері та отримує результати з різних видів тестування безпеки додатків, включаючи аналіз у реальному часі, динамічний і статичний аналіз.
Які типи аналізу коду виконує Fortify SCA?
Під час аналізу коду Fortify SCA використовує різноманітні підходи, серед яких:
- Перевірка та представлення вхідних даних: проблеми, що виникають через альтернативне кодування, числові представлення та метасимволи. Прикладами є переповнення буфера, атаки міжсайтового скриптингу (XSS) та SQL-ін’єкції, що трапляються, коли вхідним даним довіряють без належної перевірки.
- Зловживання API: найчастіше зустрічається, коли абонент не дотримується умов завершення контракту.
- Функції безпеки: аналіз, спрямований на відмінності між програмним забезпеченням безпеки та захищеним програмним забезпеченням. Оцінюються питання автентифікації, управління привілеями, контроль доступу, конфіденційність та криптографія.
- Час і стан: пошук дефектів, що виникають через неочікувану взаємодію між потоками, інформацією, процесами та часом.
- Помилки: перевірка, чи не розкривають повідомлення про помилки занадто багато інформації потенційним зловмисникам.
- Якість коду: низька якість коду може призвести до непередбачуваної поведінки, яку зловмисники можуть використати для маніпуляцій.
- Інкапсуляція: процес встановлення надійних меж, зокрема розрізнення між перевіреними та неперевіреними даними.
Завантаження та встановлення Fortify SCA
Перед початком інсталяції необхідно:
- Перевірити системні вимоги в офіційній документації.
- Отримати файл ліцензії Fortify. Виберіть потрібний пакет на сторінці завантажень Microfocus. Знайдіть Fortify Static Code Analyzer, створіть обліковий запис та отримайте файл ліцензії.
- Переконатися, що встановлено Visual Studio Code або інший підтримуваний редактор коду.
Інструкція з встановлення на Windows
Fortify_SCA_and_Apps_<версія>_windows_x64.exe
NB: <версія> – це номер версії програмного забезпечення.
- Прийняти ліцензійну угоду та натиснути “Далі”.
- Обрати місце встановлення Fortify Static Code Analyzer і натиснути “Далі”.
- Вибрати компоненти для встановлення і натиснути “Далі”.
- Вказати користувачів, якщо встановлюється розширення для Visual Studio 2015 або 2017.
- Вказати шлях до файлу fortify.license і натиснути “Далі”.
- Вказати параметри для оновлення вмісту безпеки. Можна використовувати сервер оновлення Fortify Rulepack, вказавши URL-адресу https://update.fortify.com. Натиснути “Далі”.
- Вибрати, чи встановлювати приклад вихідного коду. Натиснути “Далі”.
- Натиснути “Далі”, щоб інсталювати Fortify SCA та додатки.
- Після завершення встановлення натиснути “Оновити вміст безпеки після інсталяції” і “Готово”.
Інструкція з встановлення на Linux
Процес встановлення Fortify SCA на Linux аналогічний. Проте на першому етапі потрібно запустити файл інсталятора:
Fortify_SCA_and_Apps__linux_x64.run
Встановлення також можливе через командний рядок:
Відкрийте термінал та виконайте команду:
./Fortify_SCA_and_Apps__linux_x64.run --mode text
Слідуйте вказівкам в командному рядку для завершення процесу встановлення.
Запуск сканування Fortify
Після встановлення, налаштуйте інструмент для аналізу безпеки:
- Перейдіть до каталогу встановлення та відкрийте папку bin через командний рядок.
- Введіть scapostinstall. Потім введіть s для відображення налаштувань.
- Налаштуйте локаль за допомогою наступних команд:
Введіть 2 для вибору “Налаштування”.
Введіть 1 для вибору “Загальне”.
Введіть 1 для вибору “Мова”.
Введіть English: en для вибору англійської мови.
- Налаштуйте оновлення вмісту безпеки. Введіть 2 для вибору “Параметри”, а потім знову 2 для вибору “Зміцнити оновлення”. Використайте сервер оновлення Fortify Rulepack, вказавши URL-адресу https://update.fortify.com.
- Для перевірки встановлення, введіть sourceanalyzer.
Fortify SCA тепер працюватиме у фоновому режимі, перевіряючи ваш код на наявність вразливостей.
Підсумки
У сучасному світі почастішали випадки злому систем та компрометації даних. На щастя, існують такі інструменти, як Fortify Static Code Analyzer, що здатні виявляти загрози безпеці під час кодування, надсилати сповіщення та пропонувати рекомендації щодо їх усунення. Fortify SCA може підвищити продуктивність та зменшити експлуатаційні витрати при спільному використанні з іншими інструментами.
Рекомендуємо також ознайомитися з аналізом складу програмного забезпечення (SCA) для покращення безпеки вашої програми.