From 27e8b2484be2fc28ab215a4d693d4deaf14b9bc0 Mon Sep 17 00:00:00 2001 From: ironveils Date: Wed, 17 Jun 2026 21:00:37 +0300 Subject: [PATCH 1/3] feat(lab3): add submission file --- submissions/lab3.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 submissions/lab3.md diff --git a/submissions/lab3.md b/submissions/lab3.md new file mode 100644 index 000000000..f20f1650a --- /dev/null +++ b/submissions/lab3.md @@ -0,0 +1,27 @@ +# Lab 3 — Submission + +## Task 1: SSH Commit Signing + +### Local configuration +- `git config --global gpg.format` → +- `git config --global user.signingkey` → +- `git config --global commit.gpgsign` → + +### Local verification +Output of `git log --show-signature -1`: + +### GitHub verification +- Direct link to your most recent commit on GitHub: +- Screenshot of the Verified badge: + +### One-paragraph reflection + +## Task 2: Pre-commit + gitleaks + +### `.pre-commit-config.yaml` + +### `pre-commit install` output + +### The blocked commit + +### Tune-out exercise \ No newline at end of file From f7e8426bafdc55c9d6032d88aefa17f1f0a9c8df Mon Sep 17 00:00:00 2001 From: ironveils Date: Wed, 17 Jun 2026 21:38:29 +0300 Subject: [PATCH 2/3] feat(lab3): SSH signing + gitleaks pre-commit --- .pre-commit-config.yaml | 12 ++++++++++ submissions/lab3.md | 52 +++++++++++++++++++++++++++++++++++------ 2 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..de8b20067 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,12 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.23.0 + hooks: + - id: gitleaks + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: detect-private-key + - id: check-added-large-files + args: ['--maxkb=500'] \ No newline at end of file diff --git a/submissions/lab3.md b/submissions/lab3.md index f20f1650a..b8bc563ec 100644 --- a/submissions/lab3.md +++ b/submissions/lab3.md @@ -3,25 +3,63 @@ ## Task 1: SSH Commit Signing ### Local configuration -- `git config --global gpg.format` → -- `git config --global user.signingkey` → -- `git config --global commit.gpgsign` → +- `git config --global gpg.format` → ssh +- `git config --global user.signingkey` → ~/.ssh/id_ed25519.pub +- `git config --global commit.gpgsign` → true ### Local verification -Output of `git log --show-signature -1`: +Output of `git log --show-signature -1`: Good "git" signature for its.rinsss@gmail.com ### GitHub verification -- Direct link to your most recent commit on GitHub: -- Screenshot of the Verified badge: +- Direct link to your most recent commit on GitHub: https://github.com/ironveils/DevSecOps-Intro/commit/27e8b2484be2fc28ab215a4d693d4deaf14b9bc0 +- Screenshot of the Verified badge: ![alt text](image.png) ### One-paragraph reflection +A forged-author commit in a codebase could allow an attacker to inject malicious code while pretending a trusted developer. Without signatures, the team would have no way to prove who actually authored the change. The Verified badge makes this attack visible by showing that the commit was signed with a key that GitHub associates with a specific account, so an unsigned commit from the same author name would be suspicious. ## Task 2: Pre-commit + gitleaks ### `.pre-commit-config.yaml` +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.23.0 + hooks: + - id: gitleaks + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: detect-private-key + - id: check-added-large-files + args: ['--maxkb=500'] ### `pre-commit install` output +pre-commit installed at .git\hooks\pre-commit ### The blocked commit +Detect hardcoded secrets.................................................Failed +- hook id: gitleaks +- exit code: 1 + +○ + │╲ + │ ○ + ○ ░ + ░ gitleaks + +Finding: GH_PAT=REDACTED +Secret: REDACTED +RuleID: github-pat +Entropy: 4.143943 +File: submissions/leak-attempt.txt +Line: 2 +Fingerprint: submissions/leak-attempt.txt:github-pat:2 + +9:21PM INF 1 commits scanned. +9:21PM INF scanned ~104 bytes (104 bytes) in 62.7ms +9:21PM WRN leaks found: 1 + +### Tune-out exercise +1. **Inline allowlist** (`[allowlist]` block in `.gitleaks.toml`) — This is OK when the secret is really a documentation example and the team is aware of it. However, the risk is that someone might accidentally copy a real secret into a file that is covered by the allowlist, and gitleaks would ignore it. -### Tune-out exercise \ No newline at end of file +2. **Path exclusion** (`paths: [docs/]` in `.gitleaks.toml`) — This is risky because a developer could place a file with a real secret inside the docs/ folder, and gitleaks would skip scanning it entirely. It's safer to use inline allowlisting at the string level rather than excluding entire directories, as path exclusions create blind spots that attackers could exploit. \ No newline at end of file From 470d447473c87f30124402a0ae799eed1325bc92 Mon Sep 17 00:00:00 2001 From: ironveils Date: Wed, 17 Jun 2026 21:43:04 +0300 Subject: [PATCH 3/3] feat(lab3): add verified badge screenshot --- submissions/image.png | Bin 0 -> 28522 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 submissions/image.png diff --git a/submissions/image.png b/submissions/image.png new file mode 100644 index 0000000000000000000000000000000000000000..f48ed21cbe1e5ab58ac6632b9080bfa599df8491 GIT binary patch literal 28522 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 HFz~+siNs4X literal 0 HcmV?d00001