keynuker 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
keynuker 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
keynuker 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0 License
开发语言 JavaScript
操作系统 跨平台
软件类型 开源软件
所属分类 云计算Serverless 系统
地区 不详
投 递 者 首席测试
适用人群 未知
收录时间 2021-12-02


reddit%2Faws%20upvotes 49 ff69b4 license Apache%202 blue

If you accidentally leak your AWS keys on GitHub, it won’t be long before attackers scrape this information and hijack your account for nefarious purposes.

KeyNuker scans public activity across all Github users in your Github organization(s) and proactively deletes any AWS keys that are accidentally leaked. It gets the list of AWS keys to scan by directly connecting to the AWS API.

🚁 System Overview

  • Polling loop to monitor all AWS keys for users of the AWS account

  • Polling loop to monitor Github activity of all users in your github organization(s)

  • Reactively nuke any AWS keys detected to have leaked to Github via the AWS API


System Interaction w/ Timeline

Data Flow

🛠 Installing KeyNuker 🔐💥

KeyNuker is packaged as a series of Apache OpenWhisk actions, and can run anywhere that OpenWhisk can run.

Get the code:

$ go get -u -v -t

Follow the steps in the Installation Instructions to setup OpenWhisk and set the required environment variables, and then run the installation script.

$ cd $GOPATH/src/
$ python

After the installation script completes, you will have several OpenWhisk actions:

$ wsk action list
/yourusername_dev/github-user-events-scanner-nuker                     private sequence
/yourusername_dev/fetch-aws-keys-write-doc                             private sequence
etc ...


  1. Never has access to AWS Secret Access Keys, only to AWS Access Key IDs.

  2. Noise-free because it scans actual AWS keys rather than taking a pattern matching approach that produces false positives

  3. Takes actions rather than sending alerts, since depending on people to respond to alerts might introduce a costly delay in reaction time

  4. Covers all public github activity of users in your github org(s), since they might leak AWS keys on their personal repos or even 3rd party repos

  5. Requires minimal IAM Permissions: iam:DeleteAccessKey, iam:ListAccessKeys, iam:ListUsers

  6. Ultra-low baseline running cost due to serverless architecture

  7. Lowest common denominator and requires zero effort or workflow change for users

⚪️ Roadmap / Goals

  1. Low-latency round trip between AWS keys leaking and being nuked. Currently uses polling approach, but the goal is to layer a webhook approach on top in order to lower the latency.

  2. Scale up to monitoring hundreds of AWS accounts and thousands of github organizations/repos/users.

  3. Cove as much of the Github API surface area as possible (gists, issue comments, etc)

  4. Pluggable architecture so that other cloud key providers (Google Cloud Platform, Azure, etc) and other leak sources (BitBucket, Jira, etc) can be added later.

🏁 Project status: Early alpha stage

The basic end-to-end functionality is working, except for notifications, but there are still a lot of places where AWS keys can leak to Github and go undetected:

  • Github Gists

  • Other Github API surface area that isn’t covered yet

📓 Documentation

Table 1. Documentation
Doc Link

README (this document)


Installation guide

Installation Instructions

Post-installation verification

Verify Installation

Developer guide

Developer guide

AWS Security Resources

AWS Security Resources

  • Git Secrets — Prevents you from committing secrets and credentials into git repositories

  • Git Hound —  Git plugin that helps prevent sensitive data from being committed into a repository by sniffing potential commits against PCRE regular expressions.

  • GitRob — Reconnaissance tool for GitHub organizations

  • pre-commit - A pre-commit framework, that includes the detect-aws-credentials plugin

  • TruffleHog — A tool that Searches Entire Commit History in Git Repositories for High Entropy Strings to Find Secrets Accidentally Committed to Version Control

  • BFG Repo cleaner - Removes large or troublesome blobs like git-filter-branch does


🔒 Security At Depth

Taking a security-at-depth approach, in addition to running KeyNuker you should also consider the following precautions:

  • Limit ec2 actions to only the regions that you use, eg ("StringEquals": {"ec2:Region": "us-east-1"})

  • Limit ec2 actions to only the instance types that you use, eg ("StringLikeIfExists": {"ec2:InstanceType": ["t1.*"]})

  • Use temporary AWS keys that require MFA

  • Minimize chance of AWS keys from ever leaking in the first place using tools such as Git Secrets which can be configured as a pre-commit hook.




点击引领话题📣 发布并加入讨论🔥
{{o.pubDate | formatDate}}


{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
{{o.pubDate | formatDate}}


{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
0 评论
0 收藏