Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БИВСиСС 8.docx
Скачиваний:
0
Добавлен:
24.04.2026
Размер:
1.55 Mб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

ИСПОЛЬЗОВАНИЕ СТАТИЧЕСКОГО АНАЛИЗАТОРА ДЛЯ ТЕСТИРОВАНИЯ ПО

Отчет по лабораторной работе №8

по дисциплине «Безопасность интернета вещей и сенсорных систем»

Студент гр.

____________

Руководитель

Ст. преподаватель каф. КИБЭВС

Калинин Е.О.

____________

Введение

Цель работы: ознакомление с инструментами статического анализа исходного кода и освоение их использования для выявления потенциальных ошибок.

1 Ход работы

Первоочередно был загружен сервис Docker и добавлен текущий пользователь в группу docker, что представлено на рисунке 1.1.

Рисунок 1.1 – Загрузка Docker

Далее запущен сервис и проверен доступ к образам Docker, что представлено на рисунке 1.2.

.

Рисунок 1.2 – Запуск сервиса Docker

Далее загружен образ SonarQube и произведен вход в него с заменой стандартного пароля, что представлено на рисунках 1.3 – 1.4.

Рисунок 1.3 – Запуск SonarQube

Рисунок 1.4 – Установка нового пароля

Далее был добавлен существующий проект в SonarQube и произведена генерация токена, что представлено на рисунках 1.5 – 1.6.

Рисунок 1.5 – Создание проекта

Рисунок 1.6 – Генерация токена

Далее было произведено сканирование на уязвимости Python-проекта представленного в рамках задания с помощью утилиты «sonar-scanner», что представлено на рисунках 1.7 – 1.9.

Рисунок 1.7 – Установка утилиты и начало сканирования

Рисунок 1.8 – Первая часть отчета по сканированию

Рисунок 1.9 – Вкладка Issues отчета по сканированию

Далее было произведено сканирование на уязвимости С++-проекта, представленного в приложении А, скаченного с GitHub’а при помощи утилиты «cppcheck», что представлено на рисунке 1.10.

Рисунок 1.10 – Сканирование С++-проекта

На основе сканирования С++-проекта были заполнены таблицы 1.1 и 1.2.

Таблица 1.1 – Общие результаты выполнения анализа

Параметр

Значение

Язык программирования тестируемого проекта

C++

Наименование используемого анализатора исходного кода

CppCheck (версия 2.13+, Ubuntu 24.04)

Число ошибок, уязвимостей и несоответствий качеству ПО, обнаруженных анализатором

6 (все категории – style: 2 × variableScope, 2 × constParameter, 2 × unreadVariable)

Общая оценка качества проекта, предоставленная выбранным анализатором

B (Код функционален, критических ошибок не выявлено; присутствуют замечания по стилю: область видимости переменных может быть сужена, параметры функций могут быть объявлены const, имеются неиспользуемые переменные)

Таблица 1.2 – Наименование ошибок

Примеры сообщений об ошибках, уязвимостях и несоответствиях, обнаруженных анализатором

1

[data_estimation_test.cpp:287:21]: (style) The scope of the variable 'input' can be reduced. [variableScope] Переменная input объявлена в широкой области видимости, хотя используется только в локальном блоке. Рекомендуется объявлять переменные непосредственно перед использованием.

2

[data_estimation_test.cpp:388:26]: (style) Parameter 'word' can be declared with const [constParameter] Параметр функции encryptWord не модифицируется внутри функции, но объявлен без квалификатора const. Добавление const повысит читаемость и защитит от случайных изменений.

3

[data_estimation_test.cpp:263:14]: (style) Variable 'any' is assigned a value that is never used. [unreadVariable] Переменная any получает значение через getch(), но далее не используется. Это указывает на избыточный код или незавершённую логику отладки.

4

[data_estimation_test.cpp:474:9]: (style) The scope of the variable 'temp' can be reduced. [variableScope] Временная переменная temp объявлена в широкой области видимости, хотя используется только внутри одного блока. Рекомендуется сузить область видимости.

5

[data_estimation_test.cpp:493:37]: (style) Parameter 'guess' can be declared with const [constParameter]

Параметр guess функции checkWord не изменяется в теле функции. Объявление const char* guess улучшит безопасность и читаемость интерфейса функции.

Соседние файлы в предмете Безопасность интернета вещей и сенсорных систем