Contact

@ialleejy

ialleejy@gmail.com

ESC or click outside to close

Portfolio · 2026

Hacker handle · @ialleejy

ialleejy: offensive cloud research, web exploitation, and security tooling.

Jong-Yun Lee works under the handle ialleejy, researching cloud / AI-agent attack surfaces and shipping reproducible labs, web exploitation scenarios, and tools.

Scroll

At a glance

World CTF Finals #7qualifier The Seoul Sauna Shogunate · 8,641 pts · Aug 2026
Now ENKI WhiteHat · Content Team Offensive cloud · web exploitation R&D
CTF Wins 2× 1st place SPACE WAR URANUS Web · Gamgyul CTF
Challenge Author CODEGATE · HACKTHEON · INC0GNITO Web challenges shipped through 2026
Research AWS Bedrock Agent · KB Poisoning RAG attack-path scenarios (GnawLab)

Focus

ENKI WhiteHat - Content Team
Offensive security research · Cloud / AI-agent attack scenario research · Web exploitation content R&D
- Present
Offensive Cloud AI Agent Security Attack Scenario Research Web Exploitation Security Content R&D
Offensive Cloud Research - GnawLab / Bedrock Agent
Researching AWS Bedrock Agent knowledge-base poisoning and RAG-backed AI-agent attack paths
- Present
AWS Bedrock Agents RAG / KB Poisoning IAM / S3 Attack Path
External Security Research Content - CODEGATE · HACKTHEON
Designing realistic web exploitation scenarios with reference exploits, write-ups and reproducible deployment artifacts
2026
CODEGATE 2026 HACKTHEON Sejong 2026 Web Exploitation Docker / Nginx

Timeline

Six milestones, from internal vulnerability disclosure to offensive cloud research.

2022 - 2023

DIA Security

Internal web vulnerability disclosure (XSS / CSRF / SQLi / file upload bypass) and a DevTools-blocking policy tool. Excellence Award.

vuln disclosure policy tool
2024

MJSEC Founded

Founded and led Myongji's only security club. Built event web stack, MJSEC CTF and BOJ contest infrastructure.

founder platform ops
2025

WHS · DBREACH

White Hat School 3rd cohort: Semantic Gap research (WEAVE). Reproduced the DBREACH compression side-channel on MariaDB / InnoDB.

semantic gap side-channel
2025

CTF Operations

Co-hosted MSG CTF (×2). Built React + Spring + Discord-bot platform with full SCA/SAST/DAST CI/CD.

MSG CTF DevSecOps
2026 · Q1

Offensive Cloud

Joined ENKI WhiteHat Content Team and RubiyaLab. Authored Bedrock AI-Agent KB poisoning scenario for GnawLab.

Bedrock Agent RAG poisoning
2026 · Q1-Q2

External Authoring

Lead-organized INC0GNITO Quals 2026 (108 teams). Authored Web challenges for CODEGATE 2026 & HACKTHEON Sejong 2026.

INC0GNITO CODEGATE HACKTHEON

Education

Myongji University
B.S. in Information & Communication Engineering · 4th year (expected graduation: )
2020 - 2026.08 (expected)
Dongpae High School
Graduated

Certifications

SQLD
SQL Developer (KDATA)
2024-06-21
Craftsman Information Processing
National Technical Qualification (KR)
2021-10

Security Training

White Hat School, 3rd Cohort
KITRI (Korea IT Research Institute)
-
Team Project
Team: Gajima Webao
Topic: Building a classification taxonomy for Semantic Gap attacks
Web Security Vulnerability Taxonomy

Skills

Languages
Python JS/TS Java SQL
Web / Frameworks
React Django/DRF Spring
DevOps / Infra
Nginx Docker Docker Compose GitHub Actions GCP Ubuntu
DB / Cache
MySQL/MariaDB Redis SQLite
Offensive Security
Web Pentest Offensive Research Content anti-LLM Challenge Design Vulnerability Research Red Team
DevSecOps
SCA SAST DAST Secret Scan SBOM Image Scan
Cloud / AI Security
AWS Bedrock Agents Bedrock Knowledge Base Terraform RAG / Prompt Injection IAM Privilege Analysis

Security Experience

ROK Army - Information Security Soldier (1 year 6 months)
DIA (Defense Intelligence Agency) - Security appliance operations & policy management
2022.04 - 2023.10
Security appliance ops / UTM policy management / Web vulnerability reporting / SOC monitoring

Security appliances I can operate

List of security appliances
Vendor / Org Appliance
GenianNAC
AhnlabTrusGuard (UTM)
SGARedCastle
ROK Armed ForcesTACS (Tri-service security audit system)
IGLOOSPiDERTM (SIEM)
SoosanSMeWalker SWG, DLP
SECUISECUI MF2 (UTM)
SaferzoneSaferzone
WaterwallsystemWaterwall
FASOOFASOO DRM
HAURIVIROBOT MANAGER 1.0

Key Achievements

World Hacking Championship · Capture The Flag

DEF CON 34
CTF FINALIST

Placed 7th worldwide (8,641 pts) at the 2026 CTF qualifier with team The Seoul Sauna Shogunate. Competing at the DEF CON 34 CTF Finals in Las Vegas, August 2026.

Quals Rank#7worldwide
Score8,641points
TeamSeoul SaunaThe Seoul Sauna Shogunate
FinalsAUG 2026Las Vegas
Vulnerability Report
DIA Website Vulnerability Disclosure
2022.12 · 2023.02
DIA website vulnerability report PoC/screenshot

Identified and reported multiple vulnerabilities (XSS, CSRF, SQL Injection). The affected pages were patched.

In particular, Namo Web Editor allowed arbitrary file upload due to weak extension validation and filename-based Stored XSS; weak form action filtering further enabled CSRF.

File Upload Bypass Stored XSS CSRF SQLi
  • File Upload: Weak extension / Content-Type validation enabled dangerous file upload.
  • Stored XSS: Filename allowed script injection.
  • CSRF: Critical requests lacked tokens / proper validation.
  • SQLi: Suspicious surfaces with weak input validation / binding.
  • Remediation: Submitted reproduction steps and guidance, recommending whitelist + Content-Type checks and CSRF tokens.
  • Outcome: Pages were patched and monitoring was enhanced.
Excellence Award (2-Star General level)
DIA Security Competition
Award certificate - DIA Security Competition

Won an Excellence Award by realizing an internal-network hardening idea as a combined tool + policy solution (automated DevTools blocking + NAC enforcement).

Python3 BAT scripts Windows Registry NAC Policy Internal Network
  • DevTools Removal Tool: Python3 + BAT writes registry keys to disable/block DevTools across major browsers.
  • NAC Policy: Codified checks for DevTools process execution / installation and blocking-registry-key presence, with auto-quarantine on non-compliance.
  • Impact: Systematically restricted DevTools, standardized rollout/operations and strengthened internal-network security infrastructure.
1st place (Individual)
SPACE WAR URANUS - WEB
Host: HSPACE · 116 participants

Achieved 1st place in the Web track among 116 participants (CTF hosted by HSPACE).

Focused on understanding challenge intent and exploit strategy, then published a clean write-up centered on root-cause reasoning.

Tistory SPACE WAR URANUS - WEB Write-up ialleejy.tistory.com/54
CTF WEB Exploit strategy Write-up
  • Analyzed challenge intent and requirements
  • Designed attack surface & solving strategy
  • Documented core vulnerabilities and underlying principles
  • Published the full write-up publicly
1st place (Individual)
Gamgyul (Tangerine) CTF
156 participants

Took 1st place out of 156 participants in this CTF competition.

Solved a wide range of Web / Misc challenges focused on root-cause analysis and attack-chain construction.

CTF Web Individual 1st
CTF Operations & Authoring
MSG CTF 2025 - Co-host · Operations · Challenge Author

10:00-22:00 event · 26 challenges authored · 65 participants across 3 universities.

Validated server stability with prior load testing; ran with zero downtime via a Discord bot that handled live announcements / incident response.

We designed a beginner-friendly CTF so new club members hesitant about their security skills could participate without pressure. The goals were nurturing security talent, strengthening core skills, and promoting inter-university exchange and collaboration.

- The event is scheduled to be renewed and held offline on 2025.11.08 with sponsorship from HSPACE.

26 challenges 65 participants 3 university clubs Load test passed Discord bot ops
Co-hosts
Myongji Univ. - MJSEC Sejong Univ. - SSG Konkuk Univ. - seKUrity
Upcoming
Myongji - MJSEC Chung-Ang - Securious Konkuk - seKUrity Soonchunhyang - Security First Sangmyung - CodeCure
  • Featured Challenge A - Django Session: .git forensics → SECRET_KEY recovery → HMAC session forging chain.
  • Featured Challenge B - reCAPTCHA bypass: Bypassing reCAPTCHA v2 / v3 + GeeTest via PoW / HMAC / Pulse / YOLOv8 / OpenCV automation.
  • Operations: Co-hosted 1st & 2nd MSG CTF (2025.03 / 2025.11): ~100 participants · ~50 teams · 24 challenges.
CTF Lead Organizer & Web Author
INC0GNITO Festival CTF - Quals 2026

Led overall operations & planning and authored 3 Web challenges for INC0GNITO Quals 2026 (108 teams · 315 participants).

Designed multi-stage exploit scenarios that explicitly suppress one-shot LLM solutions through staged solving flows and verification checkpoints (anti-LLM challenge engineering). All challenges were packaged as reproducible Docker Compose deployments and published with reference write-ups.

INC0GNITO Lead Organizer Web Challenge Author anti-LLM Design Docker Compose
  • Edge Gate - HTTP Request Smuggling → RCE chain on a CDN/edge-proxy topology.
  • INVISIBLE - CSS side-channel exfiltration against a state-rendering oracle.
  • MJSEC Forge Console - DNS Rebinding + Cache Poisoning → SSRF primitive against an admin console.
  • Operations: Ran the entire competition: challenge design, infra packaging, scoreboard ops and live announcements / hint distribution.
External CTF Challenge Author
CTF Challenge Authoring - CODEGATE 2026 · HACKTHEON Sejong 2026
·

Authored official Web challenges for two of Korea's flagship security competitions in 2026.

Designed challenges that emphasize realistic web vulnerability classes, clear root-cause learning, and resistance to unintended solutions. Each challenge was delivered with reference exploits, intended write-ups and hardened deployment configurations (Docker / Nginx / WAF-aware).

CODEGATE 2026 ·
Web · Sealed Board
HACKTHEON Sejong 2026 ·
Web · Phantompass Web · Observatory
CODEGATE HACKTHEON Sejong Web Challenge Challenge Author Docker
  • CODEGATE 2026 - Sealed Board (Web): Authored a Web challenge for the preliminary round of one of Korea's most renowned international hacking competitions (Online · 2026.03.28).
  • HACKTHEON Sejong 2026 - Phantompass (Web): Authored a Web challenge focused on authentication / credential-handling pitfalls (Online prelim · 2026.04.25).
  • HACKTHEON Sejong 2026 - Observatory (Web): Authored a Web challenge centered on observation-side / information-leak primitives (Online prelim · 2026.04.25).
  • Operations: Delivered reference solutions, intended write-ups and reproducible deployment artifacts (Dockerfile / Compose) for the organizers.

Activities

Undergraduate Research - DBREACH Compression Side-Channel

- Present

When the secret and the guess overlap, the compression ratio increases and on-disk size (Δsize) decreases. We implemented and evaluated the DBREACH attack, which iteratively observes only this length signal to recover the secret, on MariaDB (InnoDB) in a reproducible Docker environment.

Dockerized reproduction Pinned MariaDB version K-of-N attack Noise-normalized scoring Singleton re-verification

What is a Compression Side Channel?

A pre-encryption compression step changes the output length based on data redundancy, so an attacker can recover parts of a secret by observing only length.

  • Core idea: The more a guess overlaps the secret, the higher the compression ratio → packet length or file/page size on disk decreases.
  • Observation points: InnoDB / WiredTiger on-disk size, WAL bytes, etc.
  • Threat model: chosen-plaintext/insert - the attacker injects/reflects guesses and repeatedly observes length changes.
  • Why dangerous: Leaks via length alone, with no application logs needed; encryption alone doesn't defend.
  • Mitigations: Don't compress secrets together with attacker-controlled input, disable page compression on sensitive tables, enforce fixed length / padding, control flush schedules, and add change-detection monitoring (Δsize threshold).

Why it matters (Security perspective)

  • Encryption is not enough: Even with encryption, post-compression length and page/file size metadata can still be measurable.
  • Low visibility: Exploits file-size changes, which are hard to detect from application logs alone.
  • Realism: Whereas web-side CRIME / BREACH observe network length, DBREACH observes storage-medium length.

My role

  • Attack loop automation: insert → sync → size sampling → normalize/score → update candidates.
  • Scorer: applied Z-normalization / median over Δsize to suppress disk/cache noise.
  • K-of-N attack: designed a query-efficient structure with singleton re-verification to manage false positives.
  • Experiments / Deployment: paper-aligned pinned MariaDB version isolated via Docker, with InnoDB page compression (zlib) and file-per-table.
  • Documentation: organized procedure / results in GitHub (compression-side) and Notion.

Design Highlights (Tech)

  • Signal (Δsize): Compare .ibd size (or page size) before / after guess insertion.
  • Normalization: Standardize per-round distributions (Z, median) to suppress environmental noise (buffer flush, background tasks).
  • Selection: Promote only the top k candidates by Δsize to the next round (K-of-N); stabilize via singleton re-verification.

Attack Flow

  1. Build baseline with filler data.
  2. Prepare table containing the secret.
  3. Insert guesses (sequential / group) and measure Δsize.
  4. Score & normalize → select top candidates.
  5. Converge: iterate K-of-N + singleton re-verification.

Scoring (simplified)

MariaDB

Score the point at which size first decreases while incrementally adding bytes:
score = 1 / bytesShrunkForCurrentGuess
Fewer bytes → bigger drop → higher score → higher overlap.

WiredTiger (reference experiment)

score = 1 - (b_yes - b) / max(b_yes - b_no, 1)
b_no: invalid baseline · b_yes: ideal · b: current measurement.
Victim table creation and experiment setup
Compression-size signal extraction loop based on guess/secret overlap
K-of-N attack candidate convergence example

Results

  • Reproduction success: Stable Δsize signals via pinned-version MariaDB + Docker.
  • Validated efficiency design: K-of-N + normalized scorer improved search efficiency.
  • Shared assets: Public code & environment so others can reproduce.

Limitations · Next

  • Noise sources: Filesystem cache / background compression scheduler variation.
  • Assumption: Need write/influence over guess insertion (even with low-priv).
  • Next: Page padding & fixed-size writes, Encrypt-then-Compress structure, and change-detection monitoring as defensive experiments.

Competitions

CTFs and other security competitions (newest first)
DEF CON CTF Qualifier 2026 - The Seoul Sauna Shogunate
UofTCTF 2026 - RubiyaLab
0xL4ugh CTF v5 - RubiyaLab
0xFUN CTF 2026 - RubiyaLab
Gamgyul (Tangerine) CTF
CCE 2025 - General Track (Participant)
White Hat School CTF 2025 (Participant)
HSPACE - SPACE WAR URANUS [WEB] (Participant)
Hackathon Sejong 2025 (Participant)
LG U+ 2024 Security Hackathon (Participant)
FIESTA 2024 (Participant)
CCE 2024 - General Track (Participant)
CCE 2023 - Public Sector Track (Participant)
CCE 2022 - Public Sector Track (Participant)

Security Club Activities

HACKTHEON Sejong 2026 - Web Challenge Author
CODEGATE 2026 - Web Challenge Author
INC0GNITO Festival CTF - Quals 2026 (Lead Organizer · Web Author)
MJSEC Seminar - Talk: Google reCAPTCHA v2 Bypass
MJSEC Mentoring - 2.5th Cohort
MJSEC CTF 2025
MJSEC Mentoring - 2nd Cohort
MJSEC BOJ CONTEST 2025
MJSEC Mentoring - 1.5th Cohort
MJSEC Mentoring - 1st Cohort
MJSEC BOJ CONTEST 2024
MJSEC CTF 2024
MJSEC Founding · Founding President
seKUrity

Featured Projects

Watchdog - Bug Bounty AI Agent (Monorepo)
- Present
Watchdog cover image

A bug-bounty AI Agent monorepo. Fixed API contract + verified pipelines first: Django/DRF backend stub, dummy findings, Dockerized E2E smoke and CI/CD with secret-scan, image-scan and SBOM.

Role: Lead Developer · Architecture · DevSecOps GitHub Details
GnawLab - Bedrock AI Agent KB Poisoning Scenario
- Present
GnawLab cover image

Contributor to GnawLab, a community-driven offensive cloud security training ground (Beaver Dam Community). Authored a Bedrock AI Agent - Knowledge Base Poisoning scenario showing how RAG-backed agents can be hijacked through poisoned S3 documents.

Role: Scenario Author · Offensive Cloud / AI GnawLab Details
WHS 3rd Project: WEAVE
-
WEAVE cover image Visit →
Live semanticgap.mjsec.kr

A Root-Cause-oriented classification platform for Web Semantic Gap vulnerabilities.

Role: Web Builder · Researcher Repo Docs Backup Details
Reagan - Malicious-URL Detection (3-stage AI)
-
Reagan cover image

A Chrome extension that automatically classifies malicious URLs through a 3-stage pipeline: URL Detection AI, Packet Analysis AI and Break-CAPTCHA AI.

Role: PM · DevOps · reCAPTCHA bypass AI Reagan reCAPTCHA AI Details
MSG CTF Platform
- Present
MSG CTF cover image

A custom CTF platform built without CTFd: front-end, back-end and Discord bot all developed in-house.

Role: PM · DevOps · FirstBlood Bot Front Back Discord Bot Details
MJSEC Homepage (LMS Front)
- Present
MJSEC homepage cover image Visit →
Live mjsec.kr

React + Vite front-end. Ubuntu host with port-forwarding + Nginx reverse proxy; automated build & deploy via GitHub Actions.

Role: PM · DevOps (CI/CD) GitHub Details
MJSEC BOJ CONTEST
-
MJSEC BOJ CONTEST cover image

Baekjoon programming-contest platform powered by the Solved.ac API. GCP E2 + Docker / Compose, Nginx + Gunicorn, Django.

Role: Solo Developer GitHub Details
DELDEVTOOL
-
DELDEVTOOL cover image

A Windows local utility that disables / enables browser DevTools via the registry; ships as a single exe via PyInstaller.

Role: Solo Developer GitHub Details

Project Details

Architecture, threat model, attack flow and defensive takeaways for each project.

Watchdog - Bug-Bounty AI Agent (Monorepo) - Details

- Present

A monorepo for a "bug-bounty AI Agent" system. Current focus: fixed API contract + verified pipelines with a backend stub and CI/CD (E2E smoke included).

Watchdog is a long-term project for an AI Agent that autonomously discovers, validates and triages web vulnerabilities. The current iteration locks down the API contract first and proves out the entire delivery pipeline so that the agent can later be plugged in safely with a stable interface.


Repository Layout

  • backend/backend/: Django + DRF API, persists data in PostgreSQL.
  • agent/: Agent area (WIP).
  • docker/: Local E2E docker-compose + smoke script.
  • infra/: CI/CD recommendations and GitHub Environments operations guide.

Current Flow

  1. The client / agent issues POST /api/scan-runs/ to create a scan run.
  2. The backend stores the run in PostgreSQL and creates one demo dummy finding.
  3. Results are inspected via GET /api/scan-runs/<run_id>/ and GET /api/findings/?run_id=....

Server / Infra
Docker Docker Compose Nginx GitHub Actions
Framework
Django / DRF
Languages
Python
DB / Security tooling
PostgreSQL gitleaks Trivy Syft (SBOM)
Links

CI / CD (Summary)

  • CI (.github/workflows/ci.yml): gitleaks secret scan · Trivy image scan (fail on HIGH/CRITICAL) · Syft SBOM generation & upload · docker-compose-based E2E smoke.
  • CD (.github/workflows/cd.yml): GitHub Environments - staging automatic, production approval-gated · post-deploy smoke when BASE_URL / SMOKE_TARGET_URL are configured.

Quickstart

  • Backend (local): cd backend/backend && python -m venv .venv && pip install -r requirements.txt && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
  • Health: curl -sf http://localhost:8000/health/
  • E2E smoke (Docker): docker compose -f docker/docker-compose.e2e.yml up -d --buildpython3 docker/e2e/smoke.py --base-url http://localhost:8000 --target-url http://test-target:8080 --timeout 60
  • Port override: E2E_BACKEND_PORT=18000 if 8000 is already in use.

Why this design?

  • Contract-first: Lock the API surface before agent logic, so multiple agents / scanners can plug in without breaking consumers.
  • Pipeline-first: Establish secret scan, image scan, SBOM and E2E smoke before scaling features; every change ships through the same gate.
  • Reproducible by default: Everything is runnable locally with a single docker compose command and a smoke.py assertion.

GnawLab - Bedrock AI Agent KB Poisoning Scenario - Details

- Present

GnawLab (Beaver Dam Community) is a community-driven offensive cloud security training ground. I contribute the Bedrock AI Agent - Knowledge Base (RAG) Poisoning scenario.

Most cloud-pentest labs stop at IAM mistakes; very few cover modern AI-agent attack surfaces. This scenario builds a realistic AWS environment where an Amazon Bedrock Agent uses a Knowledge Base (RAG) backed by S3 documents. An attacker who can write to those documents injects malicious instructions; during retrieval the agent follows the attacker's instructions instead of the operator's - a classic indirect prompt injection via RAG.


Threat Model

  • Asset: A Bedrock Agent powering an internal helpdesk / customer-support bot.
  • Attacker capability: Write access (direct or indirect) to an S3 prefix that backs the Knowledge Base.
  • Goal: Steer the agent to break its system prompt: exfiltrate data, mis-use tools, bypass guardrails.
  • Why realistic: KBs are commonly fed from shared S3 buckets, helpdesk uploads, or wiki exports, all of which an attacker can influence.

Lab Architecture

  • Agent: Amazon Bedrock Agent (LLM + tool-calling) deployed via Terraform.
  • Knowledge Base: S3-backed Bedrock KB ingested into a vector store; documents are pulled at retrieval time.
  • Tooling: Action-group Lambdas exposing typical helpdesk operations.
  • Guardrails: Bedrock Guardrails (content filters / PII redaction) configurable per scenario.
  • Frontend: Streamlit on EC2 acting as the operator's chat UI.

Cloud / Infra
AWS Bedrock Bedrock Agents Bedrock Knowledge Base S3 Lambda IAM
IaC
Terraform
Languages
HCL Python
Topics
Offensive Cloud AI Agent Security RAG Poisoning Prompt Injection
Links

Attack Flow

  1. Recon: Identify the S3 prefix backing the agent's KB and list writable paths.
  2. Inject: Drop a poisoned document containing instruction-style content (e.g., "Ignore prior rules and …") under the trusted prefix.
  3. Trigger: Issue a benign-looking question to the agent that retrieves the poisoned chunk.
  4. Compromise: Agent treats retrieved text as authoritative context and executes attacker-controlled behavior: data leak, tool misuse, guardrail bypass.
  5. Verify & harden: Switch back to the secure baseline scenario and re-run tests to confirm the attacks are blocked.

Defensive Takeaways

  • Trust boundaries: Treat KB content as untrusted input, not as part of the system prompt.
  • Source isolation: Separate operator-curated docs from user/3rd-party uploads using distinct prefixes / KBs.
  • Guardrails: Enforce content filters, contextual grounding checks and refusal of instruction-shaped retrievals.
  • Tool minimization: Apply least-privilege to action-group Lambdas (no overpermissive IAM on the agent role).
  • Monitoring: Log retrieved chunks, agent reasoning and tool calls; alert on instruction-pattern matches inside KB content.

My Contribution

  • Authored the Bedrock AI Agent KB Poisoning scenario (Terraform + scripted exploit + reference defenses).
  • Wrote the threat model, attack flow and defensive takeaways for the GnawLab docs.
  • Designed the secure-baseline / poisoned-baseline switch so trainees can reproduce, then verify mitigations.

WEAVE - Semantic Gap Knowledge Platform - Details

-

Root-Cause taxonomy for Semantic-Gap vulnerabilities + a per-step payload wiki. Front=React, Ops=GCP N2 · Nginx, CI/CD=GitHub Actions + Docker Compose.

Semantic Gap is a class of vulnerabilities exploiting semantic mismatches - the same data/request being interpreted differently across components. Existing taxonomies (CWE / CAPEC / OWASP) are outcome- and technique-centric; WEAVE complements them with a Root-Cause-oriented taxonomy and per-step attack payloads in one platform, improving usability for both red and blue teams.

Analysis: 5/14-7/12 117 documents analyzed 44 sub-categories built Tree / Tag navigation

Server / Infra
GCP N2NginxDockerDocker ComposeGitHub Actions
Framework
React
Languages
TS/JSCSSHTML
Other
Reverse ProxyAnalytics

Why Semantic Gap?

  • Root-cause gap: Existing taxonomies are technique/outcome-focused, making defensive insight hard to derive.
  • Inconsistent terminology: The same phenomenon is described with different terms, making cross-case comparison hard.
  • Goal: Provide a Root-Cause-based hierarchy plus per-step attack payloads as immediately useful knowledge for red-teaming, scanning and defensive policy work.

Root-Cause Taxonomy (5 axes)

Syntax Parsing Gap Security Policy Gap Perceptual Context Gap Metadata Interpretation Gap Data Representation Model Gap
  • Syntax Parsing Gap: Per-component grammar / parsing-rule differences → HRS, HPP, etc.
  • Security Policy Gap: Mismatch between WAF/filter rules and actual processing → JWT alg tampering, etc.
  • Context Boundary Gap: Same data classified into different execution / security boundaries → clickjacking, focus abuse.
  • Data Representation Model Gap: Encoding / normalization / homoglyph inconsistencies → filter bypass, spoofing.
  • Metadata Interpretation Gap: Differing priority/validation for headers/cookies/tokens → session / auth bypass.

Construction Method

  • Collection & analysis: Weekly scraping + tracking via Jira custom fields; manual verification of real-world cases.
  • Mapping process: MECE mapping major → mid → minor categories with peer review.
  • LLM-assisted: Prompt engineering to generate / refine taxonomy candidates (with human review).
  • Cadence: Six recurring meetings/week (Sat offline, weekday online); pipeline-driven progress.

WEAVE Platform Features

  • Home / dashboard: See overall taxonomy state at a glance; click an item for details.
  • Tree navigation: Browse the major → mid → minor category hierarchy.
  • Tag search: Cross-reference by technique / payload tags.
  • Procedural narrative: Organize attack techniques along Recon → Injection → Obfuscation → Validation → Exploitation → Exfiltration.

My Role

  • Web / Infra: React front-end · GCP N2 · Nginx ops · GitHub Actions + Docker Compose CI/CD.
  • Content onboarding: Templated case / sub-category documents and unified tag / metadata.
  • Quality: Standardized terminology & classification criteria, with consistent procedure / payload narratives.
  • Operational stability: Repository backup / restore paths and access / usage monitoring.

Reagan - 3-stage AI Malicious-URL Detection - Details

-

Chrome extension → backend (DRF) → reCAPTCHA v2 auto-solver → content / traffic analysis pipeline. My role: DevOps · BreakCAPTCHA AI.

Why we built it

Studying SEO Poisoning and public vulnerable-domain cases (e.g., 360xss), we wanted to counter the trend of attacks that route bots vs. real users to different (benign / malicious) paths. We designed a real-time defense that combines browser extension · CAPTCHA automation · packet analysis.



Server / Infra
GCP E2NginxDockerDocker ComposeHTTPS
Framework
ReactDjango REST FrameworkChrome Extension
Languages
PythonJS/HTML/CSS
Other
YOLOv8SeleniumGitHub Actions


Full Pipeline (3 stages)

  1. Stage 1 - URL-feature detection: Lightweight LightGBM classifies URL / content features in real time (extension shows a warning).
  2. Stage 2 - CAPTCHA handling: Selenium + fine-tuned YOLOv8 auto-solves reCAPTCHA v2 puzzles (board-diff detection · retries · natural mouse movement).
  3. Stage 3 - Packet / TLS / HTML classification: Backend extracts network · domain · TLS · HTML metadata features and uses a RandomForest to return malicious / phishing verdicts as JSON.

Key Features

  • Real-time protection: Chrome extension intercepts requests and surfaces verdicts via popup / badge.
  • Modular analysis: site → captcha → packet tasks are separated for easy extension / replacement.
  • Tampering detection: Browser-log collection checks for transmitted-parameter tampering.
  • Whitelist cache: Avoids re-analyzing safe domains for speed.

My Role

  • DevOps: Built CI/CD with GitHub Actions; images built & pushed to Docker Hub (ialleejy/reagan-backend) and deployed via docker-compose.
  • Security & Infra: Applied Nginx reverse proxy and HTTPS (443), GCP instance monitoring/alerting, firewall (only 80/8000/443 open).
  • BreakCAPTCHA AI: Fine-tuned YOLOv8, board-diff detection, human-like mouse movement, retry logic.

Design Notes

  • Front-end / AI: Lightweight model and minimal features for low latency; message-based comms to navigate MV3 constraints.
  • Backend: When DRF creates an AnalysisRequest, three tasks are auto-derived and state-managed; CORS / BasicAuth, Gunicorn.
  • Data: Fine-tuned YOLOv8 on a reCAPTCHA dataset (e.g. Mandourah); the packet AI uses TLS / domain / HTML / network logs for features.

MSG CTF Platform - Details

- Present

GCP N2 (Ubuntu) · Nginx · Docker Compose · GitHub Actions. Front=React+Vite, Back=Spring Boot, Discord Bot=Python.

MSG CTF is an in-house CTF platform: front-end, back-end and Discord bot are all self-built instead of using CTFd. It includes ops automation (announcements / hints / FirstBlood), a real-time scoreboard, and challenge / team management. Detailed design and code are in the Back repository.
I served as PM, owned the Admin API and system architecture, and built the FirstBlood Discord bot.


Server / Infra
GCP N2 (Ubuntu) Ubuntu Nginx Docker Docker Compose GitHub Actions
Framework
ReactViteSpring Boot
Languages
JS/TSJavaPython (Bot)
Other
MySQLRedis

Design Summary

  • 3-tier: React+Vite (front) ↔ Spring Boot APIMySQL (data) + Redis (session/cache).
  • Nginx reverse proxy + Docker Compose multi-service stack for simple deploys / rollbacks.
  • GitHub Actions CI/CD (image build → Docker Hub push → remote Compose update).
  • Operational automation: Discord bot integration for announcements / hints / FirstBlood notifications and ops commands.
  • Stability: Pre-event load tests, health checks and log collection for zero-downtime contest ops.

Key Modules

  • Web: Challenge list / detail, submission form, real-time scoreboard, team / individual support.
  • Back (API): Flag validation, submission logging / ranking aggregation, admin CRUD for challenges, teams and users.
  • Discord Bot: Announcement / hint broadcasting, ops commands, FirstBlood event notifications.

MJSEC Homepage (LMS Front) - Details

- Present

React + Vite. Ubuntu host with port-forwarding · Nginx reverse proxy · automated deploy via GitHub Actions.

I built the MJSEC HOMEPAGE and am currently developing a connected LMS site. Front-end uses React + Vite; deployment is automated through Nginx reverse proxy and a GitHub Actions CI/CD pipeline.
I served as PM and, as DevOps, built the CI/CD pipeline to fully automate deployments.


Server / Infra
Ubuntu Nginx Port Forwarding Docker Docker Compose GitHub Actions
Framework
React Vite
Languages
JS/TS CSS HTML
Other
Reverse Proxy

CI Pipeline (Summary)

  • Trigger: pull_request, feature/** branch push
  • Build & Run: docker compose -f docker-compose.ci.yml up -d brings up the container (host 8080 → container 80)
  • Smoke Test: Up-to-60s retry loop checking curl --head http://localhost:8080 for HTTP 200
  • Cleanup: Always docker compose ... down -v to tear down / clean volumes (clean previews)

CD Pipeline (Summary)

  • Trigger: main branch push
  • Build / Push: Build front-end image with buildx, push to GHCR (ghcr.io/owner/repo) with latest / sha tags
  • Remote prep: SSH to server → set up directory / .env → GHCR login
  • HTTP boot: Upload templates → start nginx / app via docker composeHTTP health check
  • SSL issuance: certbot webroot issues / renews certs → produce TLS helper files
  • HTTPS switch: Apply HTTPS templates and nginx -s reloadpull latest images → zero-downtime stack restart
  • Verify / Cleanup: HTTPS health check · prune stale images · success / failure notifications

MJSEC BOJ CONTEST - Details

-

Baekjoon contest platform powered by the Solved.ac API. Server = GCP E2, Docker / Compose, Nginx + Gunicorn, Django.

A website for the MJSEC Baekjoon programming contest. Submissions are validated through the solved.ac API and results flow into a real-time leaderboard. Rankings update without page refresh; operationally, the focus is simple and reliable score aggregation.


Server / Infra
Ubuntu (GCP E2) Nginx Gunicorn Docker Compose Docker
Framework
Django
Languages
PythonHTML
Other
SQLitesolved.ac API
Links

Key Features

  • Dynamic scoring: Latest submission results are reflected immediately for real-time feedback.
  • AJAX leaderboard: fetch-based polling / refresh for ranking updates without page reload.
  • Submission & validation: Uses requests against solved.ac; logs accept / reject and assigns points.
  • User / team management (admin): Operational tooling for participants, teams, problem points and event timing.

Validation Pipeline

  1. Run management command: python manage.py update_solved_problems --user_id <handle> --problem_id <pid>
  2. Lookup target: match Participant · ContestProblem (exit if none).
  3. Dedup: if an accepted record already exists, exit (block duplicate updates).
  4. Query solved.ac: GET https://solved.ac/api/v3/search/problem with query=solved_by:{handle} id:{pid} to verify the participant solved the problem.
  5. Persist to DB:
    • Accepted: delete prior submissions, then create a single accepted submission (score = problem.points).
    • Rejected: accumulate rejected submissions for penalty / statistics.

DELDEVTOOL - Details

-

A Windows local utility. Disable / enable browser DevTools via registry & settings; ships as a single PyInstaller exe.

A DevTools-blocking utility I built during my military service for Chrome / Edge / Internet Explorer / Firefox. disable.py writes policy registry keys and user settings to disable DevTools; enable.py deletes those values to re-enable it. Distributed as a single EXE built with PyInstaller (admin required).
Registry policies take effect on reboot.

Registry policy Admin privileges

Server / Infra
Local (no server)
Framework
- (Python script)
Languages
Python
Other
Windows RegistryPyInstaller
Links

Per-browser policy keys (summary)

Browser Path / Setting Value
Chrome HKLM\SOFTWARE\Policies\Google\Chrome DeveloperToolsDisabled=1
Edge HKLM\SOFTWARE\Policies\Microsoft\Edge DeveloperToolsAvailability=2
2 = fully disabled
IE ...\IEDevTools, ...\Restrictions (HKLM/HKCU, 32/64-bit)
incl. WOW6432Node
Disabled=1
Firefox %APPDATA%\Mozilla\Firefox\Profiles\<profile>\prefs.js user_pref("devtools.policy.disabled", true)
Org rollout: distribution\policies.json

Use case (Internal-network NAC)

  • Posture rule: A device is considered compliant only if the DevTools-blocking values exist.
  • Audit / Inspection (examples):
    • reg query "HKLM\SOFTWARE\Policies\Google\Chrome" /v DeveloperToolsDisabled
    • reg query "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v DeveloperToolsAvailability
    • reg query "HKLM\SOFTWARE\Policies\Microsoft\Internet Explorer\IEDevTools" /v Disabled
    • Firefox: inspect prefs.js string or the policies.json policy file
  • Auto-remediation: Non-compliant devices are prompted via the portal to run disable.exe (admin) → return to the regular VLAN once compliant.
  • Operations: Monitor policy persistence across browser / OS updates; for Firefox, prefer the policies.json approach.
  • Build: pyinstaller --onefile --noconsole disable.py (admin required)
  • Revert: enable.py deletes the added keys / settings