安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 神兵利刃 > Seekret:GitHub仓库和目录敏感信息搜索工具|

Seekret:GitHub仓库和目录敏感信息搜索工具|

时间:2016-08-28来源: 作者:felix点击:
Seekret是一个可以从各种源里面查找敏感信息的Go库和命令行工具。命令行用法描述seekret从不同源(目录中的文件或者git仓库)中搜索敏感信息。可以用它来防止将敏感信息发布到容易暴露的位置上。安装seekret可…

Seekret是一个可以从各种源里面查找敏感信息的Go库和命令行工具。 //内容来自AnYun.ORG

命令行用法

描述

seekret从不同源(目录中的文件或者git仓库)中搜索敏感信息。可以用它来防止将敏感信息发布到容易暴露的位置上。

//安云网,anyun.org

安装seekret

可以直接使用go get命令来安装seekret //本文来自安云网

//ANYUN.ORG

go get github.com/apuigsech/seekret/cmd/seekret //安云网咨询系统 
//内容来自安云网

用法

常规选项 //本文来自安云网

//安云网,anyun.org

NAME:

//安云网,anyun.org

   seekret - seek for secrets on various sources. //内容来自AnYun.ORG

USAGE:

//本文来自安云网

   seekret [global options] command [command options] [arguments...]

//ANYUN.ORG

VERSION:

//本文来自安云网

   0.0.1

//安云网,anyun.org

AUTHOR(S): //copyright AnYun.ORG

   Albert Puigsech Galicia <[email protected]>

//ANYUN.ORG

COMMANDS: //安云网,anyun.org

   seek: //本文来自安云网

     git    从git仓库中搜索敏感信息。 //本文来自安云网

     dir    搜索文件夹下的敏感信息。 //copyright AnYun.ORG

GLOBAL OPTIONS: //内容来自AnYun.ORG

   --exception FILE, -x FILE    从FILE中加载exceptions。

//安云网咨询系统

   --rules PATH         rules的路径。[$SEEKRET_RULES_PATH] //copyright AnYun.ORG

   --format value, -f 指定输出格式.(默认:"human") //内容来自AnYun.ORG

   --known FILE, -k FILE  从FILE中加载known secrets。

//本文来自安云网

   --workers value, -w value  检查时使用的线程个数(默认:4)

//安云网,anyun.org

   --help, -h           显示帮助信息 //ANYUN.ORG

   --version, -v        打印版本号

//安云网咨询系统

-x, --exception //内容来自AnYun.ORG

--rules

//内容来自AnYun.ORG

-f, --format

//安云网咨询系统

-k, --known //本文来自安云网

-w, --workers

//安云网,anyun.org

//安云网咨询系统
//安云网,anyun.org

Git的选项

//ANYUN.ORG

//安云网,anyun.org

NAME: //安云网咨询系统

   seekret git - 搜索仓库里的敏感信息。

//内容来自AnYun.ORG

USAGE:

//安云网咨询系统

   seekret git [command options] [arguments...] //安云网咨询系统

CATEGORY: //copyright AnYun.ORG

   seek

//ANYUN.ORG

OPTIONS: //ANYUN.ORG

   --count value, -c value  (default: 0)

//内容来自安云网

-c, --count //内容来自安云网

//ANYUN.ORG
//内容来自安云网

Dir的选项

//内容来自安云网

//copyright AnYun.ORG

NAME: //本文来自安云网

   seekret dir - 搜文件夹下的敏感信息。

//copyright AnYun.ORG

USAGE:

//ANYUN.ORG

   seekret dir [command options] [arguments...] //copyright AnYun.ORG

CATEGORY: //安云网,anyun.org

   seek

//ANYUN.ORG

OPTIONS:

//本文来自安云网

   --recursive, -r

//ANYUN.ORG

   --hidden //copyright AnYun.ORG

-r, --recursive

//copyright AnYun.ORG

-h, --hidden //内容来自AnYun.ORG

//copyright AnYun.ORG

//安云网,anyun.org

例子

扫描本地仓库所有commits中的全部文件 //安云网,anyun.org

//本文来自安云网

seekret git /path/to/repo //ANYUN.ORG 
//本文来自安云网

扫描远程仓库所有commits里的全部文件 //copyright AnYun.ORG

seekret git http://github.com/apuigsech/seekret-exposed 
//内容来自AnYun.ORG

扫描本地仓库里的最后一个commit里的全部文件 //内容来自安云网

seekret git --count 1 /path/to/repo 
//ANYUN.ORG

扫描本地文件夹下的所有文件(包括隐藏文件) //安云网,anyun.org

seekret dir --recursive --hidden /path/to/dir 
//copyright AnYun.ORG

动手实践

seekret-secrets是准备用来测试seekret的,可以用来执行下面的例子: //安云网,anyun.org

1、检查远程git仓库:

//安云网,anyun.org

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ git https://github.com/apuigsech/seekret-secrets.git 
//安云网,anyun.org

2、检查本地git仓库: //内容来自AnYun.ORG

//内容来自AnYun.ORG

git clone https://github.com/apuigsech/seekret-secrets.git /tmp/seekret-secrets //本文来自安云网

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ git /tmp/seekret-secrets //内容来自AnYun.ORG

//ANYUN.ORG

//copyright AnYun.ORG

3、检查最近2个commits: //安云网咨询系统

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ git -c 2 /tmp/seekret-secrets 

//本文来自安云网

4、在检查中使用exceptions: //copyright AnYun.ORG

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ -x /tmp/seekret-secrets/.exception_1 git /tmp/seekret-secrets //内容来自AnYun.ORG 

库的用法

导入seekret库

import seekret "github.com/apuigsech/seekret/lib" //ANYUN.ORG 

初始化seekret上下文

s := seekret.NewSeekret() 
//内容来自AnYun.ORG

加载Rules

s.LoadRulesFromPath("/path/to/main/rues:/path/to/other/rules:/path/to/more/rules") 

//内容来自安云网

s.LoadRulesFromDir("/path/to/rules") 

//ANYUN.ORG

s.LoadRulesFromFile("/path/to/file.rule") 
//copyright AnYun.ORG

加载对象

//ANYUN.ORG

opts := map[string]interface{} { //本文来自安云网

  "hidden": true, //内容来自安云网

  "recursive": false, //安云网咨询系统

}

//安云网,anyun.org

s.LoadObjects("dir", "/path/to/inspect", opts) //内容来自AnYun.ORG

//ANYUN.ORG
//内容来自AnYun.ORG

opts := map[string]interface{} { //内容来自AnYun.ORG

  "count": 10, //内容来自安云网

}

//安云网咨询系统

s.LoadObjects("dir", "/repo/to/inspect", opts)

//内容来自AnYun.ORG

//内容来自安云网
//安云网咨询系统

加载exceptions

s.LoadExceptionsFromFile("/path/to/exceptions/file") 

//安云网咨询系统

检查

s.Inspect(5) 

//本文来自安云网

获取检查结果

secretsList := s.ListSecrets() //安云网咨询系统 

Rules规则

敏感信息的特征是通过rules文件中的规则来标识的。这些扩展名为“.rule”的文件按照下面的格式用YAML来定义:

//copyright AnYun.ORG

//内容来自AnYun.ORG

rulename: //安云网,anyun.org

  match: [regexp]

//copyright AnYun.ORG

  unmatch: //安云网,anyun.org

    - [regexp]

//本文来自安云网

    - [regexp] //ANYUN.ORG

    - ...

//安云网咨询系统

//ANYUN.ORG

//ANYUN.ORG

对于包含敏感信息的文件,必须满足”match”正则表达式,并且不符合“unmatch”里的任何正则表达式规则。 //安云网咨询系统

Exceptions例外

Exceptions里的条件决定了什么内容不是敏感信息。按照下面的格式使用YAML来定义: //安云网,anyun.org

//安云网咨询系统

... //本文来自安云网

-

//安云网,anyun.org

  rule: [rulename] //本文来自安云网

  object: [regexp] //内容来自安云网

  line: [linenumber] //本文来自安云网

  content: [regexp]

//本文来自安云网

-

//安云网,anyun.org

  ...

//内容来自AnYun.ORG

//内容来自安云网
//内容来自安云网

这些条件是可选的,因此不是所有的条件都要指定,但是被认为是例外的内容必须满足所有指定的条件。

//copyright AnYun.ORG

各种条件的含义解释: //本文来自安云网

rule 规则的名称。 //copyright AnYun.ORG

object 匹配对象名称(通常是文件名)的正则表达式。 //内容来自AnYun.ORG

line 对象中的行数。

//ANYUN.ORG

content 匹配内容的正则表达式。

//copyright AnYun.ORG

//内容来自安云网

下载地址

https://github.com/apuigsech/seekret

//ANYUN.ORG

*本文译者:felix,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM) //内容来自AnYun.ORG

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容