Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
terrier — Terrier هي أداة تحليل للصور والحاويات يمكن استخدامها لمسح الصور والحاويات لتحديد والتحقق من وجود ملفات محددة وفقاً لهاشاتها. | Kitploit
أدوات/GitHubGitHub/heroku/terrier
أمن الحاوياتتحليل الثغرات الأمنيةتحليل التجزئةأمن سلسلة التوريد
GitHubheroku/terrier

terrier

Terrier هي أداة تحليل للصور والحاويات يمكن استخدامها لمسح الصور والحاويات لتحديد والتحقق من وجود ملفات محددة وفقاً لهاشاتها.

عرض المستودع
22715منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
Terrier Logo

تيرير

تيرير هي أداة لتحليل الصور والحاويات يمكن استخدامها لمسح صور OCI والحاويات لتحديد والتحقق من وجود ملفات معينة وفقًا لقيم الهاش الخاصة بها. يمكن العثور على شرح مفصل لتيرير في مدونة هيروكو، https://blog.heroku.com/terrier-open-source-identifying-analyzing-containers.

التثبيت

الملفات الثنائية

لتعليمات التثبيت من الملفات الثنائية، يرجى زيارة صفحة الإصدارات.

عبر Go

root@kitploit:~
$ go get github.com/heroku/terrier

البناء من المصدر

عبر go

root@kitploit:~
$ go build

أو

root@kitploit:~
$ make all

الاستخدام

root@kitploit:~
$ ./terrier -h
استخدام ./terrier:
  -cfg string
        تحميل الإعدادات من ملف yaml المقدم (الافتراضي "cfg.yml")

مطلوب ملف TAR بصيغة OCI للصورة المراد مسحها، ويتم توفيره لتيرير عبر قيمة "Image" في cfg.yml.

يمكن استخدام أمر Docker التالي لتحويل صورة Docker إلى ملف TAR يمكن لتيرير مسحه.

root@kitploit:~
# docker save imageid -o image.tar

root@kitploit:~
$ ./terrier 
[+] جارٍ تحميل الإعدادات: cfg.yml
[+] جارٍ تحليل الصورة
[+] مصدر صورة Docker:  image.tar
[*] فحص الطبقة:  05c3c2c60920f68b506d3c66e0f6148b81a8b0831388c2d61be5ef02190bcd1f
[!] تم التعرف على جميع المكونات والتحقق منها: (493/493)

مثال على إعدادات YML

يقوم تيرير بتحليل YAML، فيما يلي مثال على إعدادات.

root@kitploit:~
#هذا مثال على إعدادات، قم بتعديله حسب احتياجاتك

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'

#أزل التعليق لتحليل الهاشات
#     hashes:
#       - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521faa'
#       - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2aa'
#       - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41aa'

ماذا يفعل تيرير؟

تيرير هي أداة سطر أوامر تتيح لك:

  • مسح صورة OCI للبحث عن وجود ملف واحد أو أكثر تطابق هاش SHA256 واحد أو أكثر
  • مسح حاوية قيد التشغيل للبحث عن وجود ملف واحد أو أكثر تطابق هاش SHA256 واحد أو أكثر

فيمَ يفيد تيرير؟

السيناريو 1

يمكن استخدام تيرير للتحقق مما إذا كانت صورة OCI معينة تستخدم برنامجًا ثنائيًا معينًا، وهو أمر مفيد في سيناريو التحقق من سلسلة التوريد. على سبيل المثال، قد نرغب في التحقق من أن صورة Docker معينة تستخدم إصدارًا أو إصدارات معينة من cURL. في هذه الحالة، يتم تزويد تيرير بهاشات SHA256 للبرامج الثنائية الموثوقة.

قد يبدو ملف YAML مثال لهذا السيناريو كالتالي:

root@kitploit:~
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

يمكن استخدام تيرير للتحقق من وجود ملف أو ملفات معينة في صورة OCI وفقًا لمجموعة من الهاشات المقدمة. يمكن أن يكون هذا مفيدًا للتحقق مما إذا كانت صورة OCI تحتوي على ملف ضار أو ملف مطلوب تحديده.

قد يبدو ملف YAML مثال لهذا السيناريو كالتالي:

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

السيناريو 3

يمكن استخدام تيرير للتحقق من مكونات الحاويات في وقت التشغيل من خلال تحليل محتويات /var/lib/docker/overlay2/.../merged قد يبدو ملف YAML مثال لهذا السيناريو كالتالي:

root@kitploit:~
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

تيرير هي أداة سطر أوامر تستخدم YAML. مثال على إعدادات YAML:

root@kitploit:~
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'

في المثال أدناه، تم توجيه تيرير عبر YAML أعلاه للتحقق من ملفات متعددة.

root@kitploit:~
$./terrier 
[+] جارٍ تحميل الإعدادات: cfg.yml
[+] جارٍ تحليل الصورة
[+] مصدر صورة Docker:  alpinetest.tar
[*] فحص الطبقة:  05c3c2c60920f68b506d3c66e0f6148b81a8b0831388c2d61be5ef02190bcd1f
[*] فحص الطبقة:  09c25a178d8a6f8b984f3e72ca5ec966215b24a700ed135dc062ad925aa5eb23
[*] فحص الطبقة:  36351e8e1da92268d40245cfbcd499a1173eeacc23be428386c8fc0a16f0b10a
[*] فحص الطبقة:  7224ca1e886eeb7e63a9e978b1a811ed52f4a53ccb65f7c510fa04a0d1103fdf
[*] فحص الطبقة:  7a2e464d80c7a1d89dab4321145491fb94865099c59975cfc840c2b8e7065014
[*] فحص الطبقة:  88a583fe02f250344f89242f88309c666671042b032411630de870a111bea971
[*] فحص الطبقة:  8db14b6fdd2cf8b4c122824531a4d85e07f1fecd6f7f43eab7f2d0a90d8c4bf2
[*] فحص الطبقة:  9196e3376d1ed69a647e728a444662c10ed21feed4ef7aaca0d10f452240a09a
[*] فحص الطبقة:  92db9b9e59a64cdf486203189d02acff79c3360788b62214a49d2263874ee811
[*] فحص الطبقة:  bc4bb4a45da628724c9f93400a9149b2dd8a5d437272cb4e572cfaec64512d98
[*] فحص الطبقة:  be7d600e4e8ed3000e342ef6482211350069d935a14aeff4d9fc3289e1426ed3
[*] فحص الطبقة:  c4cec85dfa44f0a8856064922cff1c39b872b506dd002e33664d11a80f75a149
[*] فحص الطبقة:  c998d6f023b7b9e3c186af19bcd1c2574f0d01b943077281ac5bd32e02dc57a5
[!] تم التعرف على جميع المكونات والتحقق منها: (493/493)

يقوم تيرير بتعيين رمز الإرجاع الخاص به بناءً على نتيجة الاختبارات، في حالة الاختبار أعلاه، سيكون رمز الإرجاع "0" مما يشير إلى اختبار ناجح حيث تم التعرف على مثيل واحد لكل مكون مقدم والتحقق منه.

مثال 2

يتم توجيه تيرير لتحديد أي ملفات في الصورة المقدمة تطابق هاشات SHA256 المقدمة. ملف YAML cfg.yml

root@kitploit:~
mode: image
# verbose: true
# veryverbose: true
image: 1070caa1a8d89440829fd35d9356143a9d6185fe7f7a015b992ec1d8aa81c78a.tar
hashes:
  - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521f'
  - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2'
  - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41'
  - hash: '9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96'

تشغيل تيرير.

root@kitploit:~
./terrier 
[+] جارٍ تحميل الإعدادات: cfg.yml
[+] مصدر صورة Docker:  golang.tar
[*] فحص الطبقة:  1070caa1a8d89440829fd35d9356143a9d6185fe7f7a015b992ec1d8aa81c78a
[*] فحص الطبقة:  414833cdb33683ab8607565da5f40d3dc3f721e9a59e14e373fce206580ed40d
[*] فحص الطبقة:  6bd93c6873c822f793f770fdf3973d8a02254a5a0d60d67827480797f76858aa
[*] فحص الطبقة:  c40c240ae37a2d2982ebcc3a58e67bf07aeaebe0796b5c5687045083ac6295ed
[*] فحص الطبقة:  d2850df0b6795c00bdce32eb9c1ad9afc0640c2b9a3e53ec5437fc5539b1d71a
[*] فحص الطبقة:  f0c2fe7dbe3336c8ba06258935c8dae37dbecd404d2d9cd74c3587391a11b1af
        [!] تم العثور على ملف 'f0c2fe7dbe3336c8ba06258935c8dae37dbecd404d2d9cd74c3587391a11b1af/usr/bin/curl' بهاش: 9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96
[*] فحص الطبقة:  f2d913644763b53196cfd2597f21b9739535ef9d5bf9250b9fa21ed223fc29e3
echo $?
1

مثال 3

يتم توجيه تيرير لتحليل والتحقق من محتويات الحاوية المدمجة الموجودة في "merged" حيث قد تكون merged موجودة في /var/lib/docker/overlay2/..../merged . قد يبدو ملف YAML مثال لهذا السيناريو كالتالي:

root@kitploit:~
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'

تشغيل تيرير لتحليل الحاوية قيد التشغيل.

root@kitploit:~
[+] جارٍ تحميل الإعدادات: cfg.yml
[+] جارٍ تحليل الحاوية
[!] تم العثور على مثيل مطابق لـ '/usr/local/bin/analysis.sh' في: merged/usr/local/bin/analysis.sh بهاش:9adc0bf7362bb66b98005aebec36691a62c80d54755e361788c776367d11b105
[!] تم العثور على مثيل مطابق لـ '/usr/local/bin/errcheck' في: merged/usr/local/bin/errcheck بهاش:41f725d7a872cad4ce1f403938937822572e0a38a51e8a1b29707f5884a2f0d7
[!] تم العثور على مثيل مطابق لـ '/usr/local/bin/gosec' في: merged/usr/local/bin/gosec بهاش:e7cb8304e032ccde8e342a7f85ba0ba5cb0b8383a09a77ca282793ad7e9f8c1f
[!] تم العثور على مثيل مطابق لـ '/usr/local/bin/staticcheck' في: merged/usr/local/bin/staticcheck بهاش:73f89162bacda8dd2354021dc56dc2f3dba136e873e372312843cd895dde24a2
[!] تم العثور على مثيل مطابق لـ '/usr/local/go/bin/go' في: merged/usr/local/go/bin/go بهاش:23afbfab4f35ac90d9841a6e05f0d1487b6e0c3a914ea8dab3676c6dde612495
[!] تم العثور على مثيل مطابق لـ '/var/lib/dpkg/info/apt.postrm' في: merged/var/lib/dpkg/info/apt.postrm بهاش:6a8f9af3abcfb8c6e35887d11d41a83782b50f5766d42bd1e32a38781cba0b1c
[!] تم التعرف على جميع المكونات والتحقق منها: (6/6)

التكامل مع CI

تم تصميم تيرير للمساعدة في منع هجمات سلسلة التوريد. لاستخدام تيرير مع أنظمة CI مثل Github actions أو CircleCI، قد تكون التهيئات المثال التالية مفيدة.

مثال CircleCI

config.yml

root@kitploit:~
version: 2
jobs:
build:
  machine: true
  steps:
    - checkout
    - run:
       name: بناء صورة Docker
       command: |
             docker build -t builditall .
    - run:
       name: حفظ صورة Docker محليًا
       command: |
             docker save builditall -o builditall.tar
    - run:
       name: التحقق من برامج صورة Docker الثنائية
       command: |
             ./terrier_linux_amd64

تيرير cfg.yml

root@kitploit:~
mode: image
image: builditall.tar
files:
- name: '/bin/wget'
 hashes:
   - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521f'
   - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2a'
   - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41a'
- name: '/sbin/sulogin'
 hashes:
   - hash: '9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96aaa'

مثال Github Actions

go.yml

root@kitploit:~
name: Go
on: [push]
jobs:
build:
  name: Build
  runs-on: ubuntu-latest
  steps:

  - name: Get Code
    uses: actions/checkout@master
  - name: Build Docker Image
    run: |
      docker build -t builditall .
  - name: Save Docker Image Locally
    run: |
      docker save builditall -o builditall.tar
  - name: Verify Docker Image Binaries
    run: |
      ./terrier_linux_amd64

تيرير cfg.yml

root@kitploit:~
mode: image
image: builditall.tar
files:
- name: '/bin/wget'
 hashes:
   - hash: '8b7c559b8cccca0d30d01bc4b5dc944766208a53d18a03aa8afe97252207521f'
   - hash: '22e88c7d6da9b73fbb515ed6a8f6d133c680527a799e3069ca7ce346d90649b2a'
   - hash: '60a2c86db4523e5d3eb41a247b4e7042a21d5c9d483d59053159d9ed50c8aa41a'
- name: '/bin/sbin/sulogin'
 hashes:
   - hash: '9a43cb726fef31f272333b236ff1fde4beab363af54d0bc99c304450065d9c96aaa'

تحويل هاشات SHASUM 256 إلى ملف إعدادات تيرير

أحيانًا يتم إنتاج هاشات SHA256 من أدوات أخرى بالتنسيق التالي:

root@kitploit:~
6a8f9af3abcfb8c6e35887d11d41a83782b50f5766d42bd1e32a38781cba0b1c  ./var/lib/dpkg/info/apt.postrm
6374f7996297a6933c9ccae7eecc506a14c85112bf1984c12da1f975dab573b2  ./var/lib/dpkg/info/mawk.postinst
fd72e78277680d02dcdb5d898fc9e3fed00bf011ccf31deee0f9e5f4cf299055  ./var/lib/dpkg/info/lsb-base.preinst
fd72e78277680d02dcdb5d898fc9e3fed00bf011ccf31deee0f9e5f4cf299055  ./var/lib/dpkg/info/lsb-base.postrm
8a278d8f860ef64ae49a2d3099b698c79dd5184db154fdeaea1bc7544c2135df  ./var/lib/dpkg/info/debconf.postrm
1e6edefb6be6eb6fe8dd60ece5544938197b2d1d38a2d4957c069661bc2591cd  ./var/lib/dpkg/info/base-files.prerm
198c13dfc6e7ae170b48bb5b997793f5b25541f6e998edaec6e9812bc002915f  ./var/lib/dpkg/info/passwd.postinst

التنسيق أعلاه يحتوي على البيانات التي نحتاجها لتيرير ولكنه بالتنسيق الخاطئ. لقد أدرجنا سكريبتًا يسمى convertSHA.sh يمكن استخدامه لتحويل ملف يحتوي على مسارات الملفات وقيم الهاش كما هو موضح أعلاه إلى ملف إعدادات صالح لتيرير.

يمكن رؤية ذلك في المثال التالي:

root@kitploit:~
# cat hashes-SHA256.txt
6a8f9af3abcfb8c6e35887d11d41a83782b50f5766d42bd1e32a38781cba0b1c  ./var/lib/dpkg/info/apt.postrm
6374f7996297a6933c9ccae7eecc506a14c85112bf1984c12da1f975dab573b2  ./var/lib/dpkg/info/mawk.postinst
fd72e78277680d02dcdb5d898fc9e3fed00bf011ccf31deee0f9e5f4cf299055  ./var/lib/dpkg/info/lsb-base.preinst
fd72e78277680d02dcdb5d898fc9e3fed00bf011ccf31deee0f9e5f4cf299055  ./var/lib/dpkg/info/lsb-base.postrm
8a278d8f860ef64ae49a2d3099b698c79dd5184db154fdeaea1bc7544c2135df  ./var/lib/dpkg/info/debconf.postrm
1e6edefb6be6eb6fe8dd60ece5544938197b2d1d38a2d4957c069661bc2591cd  ./var/lib/dpkg/info/base-files.prerm
198c13dfc6e7ae170b48bb5b997793f5b25541f6e998edaec6e9812bc002915f  ./var/lib/dpkg/info/passwd.postinst

# ./convertSHA.sh hashes-SHA256.txt output.yml
جارٍ تحويل hashes-SHA256.txt إلى Terrier YML: output.yml

# cat output.yml
mode: image
#mode: container
image: image.tar
#path: path/to/container/merged
#verbose: true
#veryverbose: true
files:
 - name: '/var/lib/dpkg/info/apt.postrm'
   hashes:
      - hash: '6a8f9af3abcfb8c6e35887d11d41a83782b50f5766d42bd1e32a38781cba0b1c'
 - name: '/var/lib/dpkg/info/mawk.postinst'
   hashes:
      - hash: '6374f7996297a6933c9ccae7eecc506a14c85112bf1984c12da1f975dab573b2'

تنزيل الأداة