Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
git-secrets — Impedisce il commit di segreti e credenziali nei repository git | Kitploit
Strumenti/GitHubGitHub/awslabs/git-secrets
Analisi del CodiceAudit di ConfigurazioneDevSecOpsRilevamento SegretiTop in Rilevamento Segreti n.4
GitHubawslabs/git-secrets

git-secrets

Impedisce il commit di segreti e credenziali nei repository git

Vedi Repository
13.4k1.3k1101 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

============= git-secrets


Impedisce di committare password e altre informazioni sensibili in un repository git.

.. contents:: :depth: 2

Sinossi

::

git secrets --scan [-r|--recursive] [--cached] [--no-index] [--untracked] [<files>...]
git secrets --scan-history
git secrets --install [-f|--force] [<target-directory>]
git secrets --list [--global]
git secrets --add [-a|--allowed] [-l|--literal] [--global] <pattern>
git secrets --add-provider [--global] <command> [arguments...]
git secrets --register-aws [--global]
git secrets --aws-provider [<credentials-file>]

Descrizione

git-secrets analizza commit, messaggi di commit e merge --no-ff per impedire l'aggiunta di segreti nei tuoi repository git. Se un commit, un messaggio di commit o qualsiasi commit in una cronologia di merge --no-ff corrisponde a uno dei tuoi pattern di espressioni regolari proibiti configurati, il commit viene rifiutato.

Installazione di git-secrets

git-secrets deve essere posizionato da qualche parte nel tuo PATH in modo che venga riconosciuto da git quando si esegue git secrets.

*nix (Linux/macOS)


Puoi usare il target ``install`` del Makefile fornito per installare ``git secrets`` e la pagina man.
Puoi personalizzare il percorso di installazione usando le variabili PREFIX e MANPREFIX.

::

    make install

Windows
~~~~~~~

Esegui lo script powershell ``install.ps1`` fornito. Questo copierà i file necessari
in una directory di installazione (``%USERPROFILE%/.git-secrets`` di default) e aggiungerà
la directory al ``PATH`` dell'utente corrente.

::

    PS > ./install.ps1

Homebrew (per utenti macOS)

::

brew install git-secrets

.. warning::

**Non hai ancora finito! DEVI installare i git hook per ogni repo in cui**
**desideri usare** ``git secrets --install``.

Ecco un rapido esempio di come assicurarsi che un repository git venga analizzato per segreti ad ogni commit::

cd /path/to/my/repo
git secrets --install
git secrets --register-aws

Configurazione avanzata

Aggiungi un template di configurazione se vuoi aggiungere hook a tutti i repository che inizializzerai o clonerai in futuro.

::

git secrets --register-aws --global

Aggiungi hook a tutti i tuoi repository locali.

::

git secrets --install ~/.git-templates/git-secrets
git config --global init.templateDir ~/.git-templates/git-secrets

Aggiungi provider personalizzati per analizzare le credenziali di sicurezza.

::

git secrets --add-provider -- cat /path/to/secret/file/patterns

Prima di rendere pubblico un repository

Con git-secrets è anche possibile analizzare un repository includendo tutte le revisioni:

::

git secrets --scan-history

Opzioni

Modalità operative


Ciascuna di queste opzioni deve apparire per prima sulla riga di comando.

``--install``
    Installa i git hook per un repository. Una volta che gli hook sono installati per un repository git,
    i commit e i merge non-fast-forward per quel repository verranno impediti
    di committare segreti.

``--scan``
    Analizza uno o più file alla ricerca di segreti. Quando un file contiene un segreto, il
    testo corrispondente dal file analizzato verrà scritto su stdout e lo
    script terminerà con un codice di uscita diverso da zero. Ogni riga corrispondente verrà scritta con
    il nome del file che ha corrisposto, due punti, il numero di riga che ha corrisposto,
    due punti e poi la riga di testo che ha corrisposto. Se non vengono forniti file,
    vengono analizzati tutti i file restituiti da ``git ls-files``.

``--scan-history``
    Analizza il repository includendo tutte le revisioni. Quando un file contiene un segreto, il
    testo corrispondente dal file analizzato verrà scritto su stdout e lo
    script terminerà con un codice di uscita diverso da zero. Ogni riga corrispondente verrà scritta con
    il nome del file che ha corrisposto, due punti, il numero di riga che ha corrisposto,
    due punti e poi la riga di testo che ha corrisposto.

``--list``
    Elenca la configurazione di ``git-secrets`` per il repo corrente o nella configurazione git globale.

``--add``
    Aggiunge un pattern proibito o consentito.

``--add-provider``
    Registra un provider di segreti. I provider di segreti sono eseguibili che quando
    invocati generano pattern proibiti che ``git-secrets`` deve trattare come
    proibiti.

``--register-aws``
    Aggiunge pattern AWS comuni alla configurazione git e garantisce che le chiavi
    presenti in ``~/.aws/credentials`` non vengano trovate in nessun commit. Vengono aggiunti i seguenti
    controlli:

    - ID di chiave di accesso AWS tramite ``(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}``
    - Chiavi API Amazon Bedrock. A lunga durata tramite ``ABSK[A-Za-z0-9+/]{109,}=*`` e a breve durata tramite ``bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t``
    - Assegnazioni di chiave segreta di accesso AWS tramite ":" o "=" circondate da virgolette opzionali
    - Assegnazioni di ID account AWS tramite ":" o "=" circondate da virgolette opzionali
    - Pattern consentiti per chiavi AWS di esempio (``AKIAIOSFODNN7EXAMPLE`` e ``wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY``)
    - Credenziali note da ``~/.aws/credentials``

    .. note::

        Sebbene i pattern registrati da questo comando dovrebbero intercettare la maggior parte
        delle istanze di credenziali AWS, questi pattern **non** garantiscono di intercettarle
        **tutte**. ``git-secrets`` dovrebbe essere usato come un mezzo aggiuntivo di
        assicurazione: devi comunque fare la dovuta diligenza per assicurarti di non
        committare credenziali in un repository.

``--aws-provider``
    Provider di segreti che genera le credenziali trovate in un file INI. Puoi
    opzionalmente fornire il percorso di un file INI.


Opzioni per ``--install``

-f, --force Sovrascrive gli hook esistenti se presenti.

<target-directory> Quando fornito, installa i git hook nella directory specificata. La directory corrente viene assunta se <target-directory> non viene fornito.

Se la ``<target-directory>`` fornita non si trova in un repository git, la
directory verrà creata e gli hook verranno posizionati in
``<target-directory>/hooks``. Questo può essere utile per creare directory template git
da usare con ``git init --template <target-directory>``.

Puoi eseguire ``git init`` su un repository già inizializzato.
Dalla documentazione di `git init <https://git-scm.com/docs/git-init>`_:

    Dalla documentazione di git: Eseguire ``git init`` in un repository esistente
    è sicuro. Non sovrascriverà cose già presenti. Il
    motivo principale per rieseguire ``git init`` è raccogliere template appena aggiunti
    (o spostare il repository in un altro posto se viene fornito ``--separate-git-dir``).

Vengono installati i seguenti git hook:

1. ``pre-commit``: Usato per verificare se uno qualsiasi dei file modificati nel commit
   utilizza pattern proibiti.
2. ``commit-msg``: Usato per determinare se un messaggio di commit contiene un
   pattern proibito.
3. ``prepare-commit-msg``: Usato per determinare se un commit di merge
   introdurrà una cronologia che contiene un pattern proibito in qualsiasi punto.
   Tieni presente che questo hook viene invocato solo per merge non fast-forward.

.. note::
Scarica lo strumento