Skip to content
View Twodragon0's full-sized avatar

Highlights

  • Pro

Block or report Twodragon0

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Twodragon0/README.md

Twodragon0

Security engineering — cloud security, DevSecOps, and the operational plumbing that connects security appliances to the tools people actually use.

Most of what I publish here comes out of running those appliances in production and finding the places where the tooling quietly disagrees with the device.

Writing

tech.2twodragon.com Tech blog — security, cloud, DevSecOps built from tech-blog
twodragon.tistory.com Longer write-ups and course notes
2twodragon.com Personal site

The list below is refreshed daily from those feeds by scripts/update_blog_posts.py. Each blog gets its own section on purpose — they publish at very different rates, and a single merged "latest N" list silently drops the slower one.

Tech Blog

Tistory

Updated 2026-10-15 04:49 UTC — see scripts/update_blog_posts.py

Upstream contributions

Zscaler MCP Server — zscaler/zscaler-mcp-server

  • #95 — the entitlement filter removed tool families (ztw_*, zid_*, zins_*) that the same token could reach with HTTP 200. The cause was three product codes missing from PRD_TO_SERVICE, not a permission boundary — so it surfaced to operators as "I must not have access."

  • #98 — a missing tenant identifier was reported as missing OneAPI credentials, sending operators to re-check a client ID and secret that were working fine. The stated blast radius was wrong too.

    Both were reproduced against a live OneAPI tenant and shipped in v0.15.2 (2026-08-13). The three mappings in the release match the ones reported, and the commit comment cites issue #95. To be precise about what happened: the maintainer implemented the fix in their own PR — the patches I opened were not merged.

FortiGate MCP Server — alpadalar/fortigate-mcp-server

  • PR #8 — two defects that return HTTP 200 with wrong data, which is the kind that gets trusted rather than noticed:

    • get_routing_table read dst, the spelling used by the config endpoint (cmdb/router/static). The state endpoint it actually calls (monitor/router/ipv4) emits ip_mask — so every row rendered Route: N/A.
    • get_interface_status sent a parameter name FortiOS silently ignores, returning the full interface set no matter which name you asked for. Fixing the name alone returns zero results, because that endpoint excludes VLAN and aggregate interfaces by default — precisely the ones you'd look up by name.

    Verified on FortiOS v7.6.7. The regression tests assert on the shape of the outgoing request rather than the status code, since both defects are well-formed at the HTTP layer. Submitted, not merged — CI has not run yet (first-time-fork approval gate).

  • Issue #9 — asks whether the project's frozen tool surface can admit read-only DHCP and zone tools, rather than adding them unilaterally in a PR.


Reach me through the repositories above.

Pinned Loading

  1. aws-devsecops-infrastructure aws-devsecops-infrastructure Public

    AWS DevSecOps 인프라 자동화 및 클라우드 보안 강의 자료. Terraform, AWS CDK, Lambda를 활용한 보안 인프라 구축 및 실습.

    Python

  2. tech-blog tech-blog Public

    IT, DevSecOps, 코딩 관련 기술 블로그

    Python 1 1

  3. investing investing Public

    Crypto & Stock Monitoring, News, and Trading Journal

    Python 2

  4. claudesec claudesec Public

    SecaaS toolkit for AI-assisted secure development with Claude Code

    Python 15 3