Threatspec – это open source инструмент, который реализует моделирование угроз путем добавления специальных аннотаций в исходный код. Кроме основного назначения, идея инструмента заключается в устранении стены между командами разработки и специалистами ИБ за счет совместной работы по интеграции процесса моделирования угроз на самом начальном этапе.
Работу с утилитой можно сгруппировать на 3 основных блока:
🍡Установка. Выполняется через pip. После установки утилита инициализируется в конкретном репозитории, в рамках этого процесса генерируется конфиг-файл, который можно скорректировать, например, указать другие репозитории для сканирования
🍡Настройка. Выполняется добавление аннотаций в исходный код (пример приведен далее)
🍡Запуск и генерация отчета. Запускается threatspec, на выходе получается графический отчет с блоками кода и потенциальными проблемами
Аннотации
Внутри threatspec находится парсер, который разбирает файлы с исходным кодом и выполняет поиск аннотаций. Парсер реализован на питоне и поддерживает работу с несколькими MIME типами для понимания какие комментарии необходимо разобрать (например, C, C++/C#, XML…).
Пример использования аннотации может выглядить следующим образом:
После запуска threatspec можно получить отчет (для примера картинка прилагается далее).
Более детальную информацию об инструменте и полном перечне аннотаций можно получить здесь: https://github.com/threatspec/threatspec
Работу с утилитой можно сгруппировать на 3 основных блока:
🍡Установка. Выполняется через pip. После установки утилита инициализируется в конкретном репозитории, в рамках этого процесса генерируется конфиг-файл, который можно скорректировать, например, указать другие репозитории для сканирования
🍡Настройка. Выполняется добавление аннотаций в исходный код (пример приведен далее)
🍡Запуск и генерация отчета. Запускается threatspec, на выходе получается графический отчет с блоками кода и потенциальными проблемами
Аннотации
Внутри threatspec находится парсер, который разбирает файлы с исходным кодом и выполняет поиск аннотаций. Парсер реализован на питоне и поддерживает работу с несколькими MIME типами для понимания какие комментарии необходимо разобрать (например, C, C++/C#, XML…).
Пример использования аннотации может выглядить следующим образом:
// @accepts arbitrary file writes to WebApp:FileSystem with filename restrictions
// @mitigates WebApp:FileSystem against unauthorised access with strict file permissions
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
Где accepts означает «принятие» конкретной угрозы, а mitigates – устранение угрозы с использованием определенной меры. После запуска threatspec можно получить отчет (для примера картинка прилагается далее).
Более детальную информацию об инструменте и полном перечне аннотаций можно получить здесь: https://github.com/threatspec/threatspec