Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
terrier — Terrier — это инструмент для анализа образов и контейнеров, который может использоваться для сканирования образов и контейнеров с целью обнаружения и проверки наличия определённых файлов по их хэшам. | Kitploit
Инструменты/GitHubGitHub/heroku/terrier
Безопасность контейнеровАнализ уязвимостейАнализ хэшейБезопасность Цепочки Поставок
GitHubheroku/terrier

terrier

Terrier — это инструмент для анализа образов и контейнеров, который может использоваться для сканирования образов и контейнеров с целью обнаружения и проверки наличия определённых файлов по их хэшам.

Репозиторий
22715704 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Terrier Logo

Terrier

Terrier — это инструмент для анализа образов и контейнеров, который можно использовать для сканирования OCI-образов и контейнеров с целью идентификации и проверки наличия определённых файлов по их хэшам. Подробное описание Terrier можно найти в блоге Heroku: https://blog.heroku.com/terrier-open-source-identifying-analyzing-containers.

Установка

Бинарные файлы

Инструкции по установке из бинарных файлов доступны на странице релизов.

Через Go

$ go get github.com/heroku/terrier

Сборка из исходников

Через Go

$ go build

или

$ make all

Использование

$ ./terrier -h
Usage of ./terrier:
  -cfg string
        Load config from provided yaml file (default "cfg.yml")

Для сканирования требуется OCI TAR-архив образа, который передаётся Terrier через значение "Image" в конфигурационном файле cfg.yml.

Следующая команда Docker может быть использована для преобразования Docker-образа в TAR-архив, сканируемый Terrier.

# docker save imageid -o image.tar

$ ./terrier 
[+] Loading config: cfg.yml
[+] Analysing Image
[+] Docker Image Source:  image.tar
[*] Inspecting Layer:  05c3c2c60920f68b506d3c66e0f6148b81a8b0831388c2d61be5ef02190bcd1f
[!] All components were identified and verified: (493/493)

Пример конфигурации YML

Terrier обрабатывает YAML, ниже приведён пример конфигурации.

#THIS IS AN EXAMPLE CONFIG, MODIFY TO YOUR NEEDS

mode: image
image: image.tar
# mode: container
# path: merged
# verbose: true
# veryverbose: true

files:
  - name: '/usr/bin/curl'
    hashes:
      - hash: '2353cbb7b47d0782ba8cdd9c7438b053c982eaaea6fbef8620c31a58d1e276e8'
      - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2aaa'
      - hash: '9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96'
      - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521faa'
  - name: '/usr/bin/go'
    hashes:
      - hash: '2353cbb7b47d0782ba8cdd9c7438b053c982eaaea6fbef8620c31a58d1e276e8'

#UNCOMMENT TO ANALYZE HASHES
#     hashes:
#       - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521faa'
#       - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2aa'
#       - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41aa'

Что делает Terrier?

Terrier — это CLI-инструмент, который позволяет:

  • Сканировать OCI-образ на наличие одного или нескольких файлов, соответствующих одному или нескольким предоставленным SHA256-хэшам
  • Сканировать работающий контейнер на наличие одного или нескольких файлов, соответствующих одному или нескольким предоставленным SHA256-хэшам

Для чего полезен Terrier?

Сценарий 1

Terrier можно использовать для проверки того, использует ли конкретный OCI-образ определённый бинарный файл, что полезно в сценарии верификации цепочки поставок. Например, мы можем захотеть проверить, что конкретный Docker-образ использует определённую версию или версии cURL. В этом случае Terrier передаются SHA256-хэши доверенных бинарных файлов.

Пример YAML-файла для этого сценария может выглядеть так:

mode: image
# verbose: true
# veryverbose: true
image: golang1131.tar

files:
  - name: '/usr/local/bin/analysis.sh'
    hashes:
       - hash: '9adc0bf7362bb66b98005aebec36691a62c80d54755e361788c776367d11b105'
  - name: '/usr/bin/curl'
    hashes:
       - hash: '23afbfab4f35ac90d9841a6e05f0d1487b6e0c3a914ea8dab3676c6dde612495'
  - name: '/usr/local/bin/staticcheck'
    hashes:
       - hash: '73f89162bacda8dd2354021dc56dc2f3dba136e873e372312843cd895dde24a2'

Сценарий 2

Terrier можно использовать для проверки наличия определённого файла или файлов в OCI-образе в соответствии с набором предоставленных хэшей. Это может быть полезно для проверки, содержит ли OCI-образ вредоносный файл или файл, который необходимо идентифицировать.

Пример YAML-файла для этого сценария может выглядеть так:

mode: image
# verbose: true
# veryverbose: true
image: alpinetest.tar
hashes:
  - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521f'
  - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2'
  - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41'
  - hash: '9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96'

Сценарий 3

Terrier можно использовать для проверки компонентов контейнеров во время выполнения путём анализа содержимого /var/lib/docker/overlay2/.../merged. Пример YAML-файла для этого сценария может выглядеть так:

mode: container
verbose: true
# veryverbose: true
# image: latestgo13.tar
path: merged

files:
  - name: '/usr/local/bin/analysis.sh'
    hashes:
       - hash: '9adc0bf7362bb66b98005aebec36691a62c80d54755e361788c776367d11b105'
  - name: '/usr/local/go/bin/go'
    hashes:
       - hash: '23afbfab4f35ac90d9841a6e05f0d1487b6e0c3a914ea8dab3676c6dde612495'
  - name: '/usr/local/bin/staticcheck'
    hashes:
       - hash: '73f89162bacda8dd2354021dc56dc2f3dba136e873e372312843cd895dde24a2'
  - name: '/usr/local/bin/gosec'
    hashes:
       - hash: 'e7cb8304e032ccde8e342a7f85ba0ba5cb0b8383a09a77ca282793ad7e9f8c1f'
  - name: '/usr/local/bin/errcheck'
    hashes:
       - hash: '41f725d7a872cad4ce1f403938937822572e0a38a51e8a1b29707f5884a2f0d7'
  - name: '/var/lib/dpkg/info/apt.postrm'
    hashes:
       - hash: '6a8f9af3abcfb8c6e35887d11d41a83782b50f5766d42bd1e32a38781cba0b1c'

Использование

Пример 1

Terrier — это CLI-инструмент, использующий YAML. Пример конфигурации YAML:

mode: image
# verbose: true
# veryverbose: true
image: alpinetest.tar
files:
  - name: '/usr/local/go/bin/go'
    hashes:
      - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521f'
      - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2aaa'
      - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41aaa'
      - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521faa'
  - name: '/usr/bin/delpart'
    hashes:
      - hash: '9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96aaa'
  - name: '/usr/bin/stdbuf'
    hashes:
      - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521faa'
      - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2aa'
      - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41aa'
Скачать инструмент