Skip to content

Commit

Permalink
feat: release v1.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
zema1 committed Nov 20, 2023
1 parent 875c38b commit f31073a
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 34 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
## v1.3.0 (2023.11.20)

### 新增

- 增加微步在线研究响应中心公众号数据源抓取 [#48](https://github.com/zema1/watchvuln/issues/48),
感谢 [@hi-unc1e](https://github.com/hi-unc1e) 的贡献

## v1.2.3 (2023.11.09)

### 变更

- 更新 go 版本至 1.20
- 更新大量依赖库

Expand Down
45 changes: 23 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@

当前抓取了这几个站点的数据:

| 名称 | 地址 | 推送策略 |
|---------------|---------------------------------------|--------------------------------------------------|
| 阿里云漏洞库 | https://avd.aliyun.com/high-risk/list | 等级为高危或严重 |
| OSCS开源安全情报预警 | https://www.oscs1024.com/cm | 等级为高危或严重**并且**包含 `预警` 标签 |
| 奇安信威胁情报中心 | https://ti.qianxin.com/ | 等级为高危严重**并且**包含 `奇安信CERT验证` `POC公开` `技术细节公布`标签之一 |
| 知道创宇Seebug漏洞库 | https://www.seebug.org/ | 存在 WAF,默认不启用,若通过 `SOURCES`/`-s` 手动启用,则推送等级为高危或严重 |
| 名称 | 地址 | 推送策略 |
|-----------------|---------------------------------------------|--------------------------------------------------|
| 阿里云漏洞库 | https://avd.aliyun.com/high-risk/list | 等级为高危或严重 |
| OSCS开源安全情报预警 | https://www.oscs1024.com/cm | 等级为高危或严重**并且**包含 `预警` 标签 |
| 奇安信威胁情报中心 | https://ti.qianxin.com/ | 等级为高危严重**并且**包含 `奇安信CERT验证` `POC公开` `技术细节公布`标签之一 |
| 微步在线研究响应中心(公众号) | https://x.threatbook.com/v5/vulIntelligence | 等级为高危或严重 |
| 知道创宇Seebug漏洞库 | https://www.seebug.org/ | 存在 WAF,默认不启用,若通过 `SOURCES`/`-s` 手动启用,则推送等级为高危或严重 |

> 所有信息来自网站公开页面, 如果有侵权,请提交 issue, 我会删除相关源。
>
Expand Down Expand Up @@ -39,22 +40,22 @@

Docker 方式推荐使用环境变量来配置服务参数

| 环境变量名 | 说明 | 默认值 |
|-------------------------|--------------------------------------------------|-----------------------------|
| `DB_CONN` | 数据库链接字符串,详情见 [数据库连接](#数据库连接) | `sqlite3://vuln_v3.sqlite3` |
| `DINGDING_ACCESS_TOKEN` | 钉钉机器人 url 的 `access_token` 部分 | |
| `DINGDING_SECRET` | 钉钉机器人的加签值 (仅支持加签方式) | |
| `LARK_ACCESS_TOKEN` | 飞书机器人 url 的 `/open-apis/bot/v2/hook/` 后的部分 | |
| `LARK_SECRET` | 飞书机器人的加签值 (仅支持加签方式) | |
| `WECHATWORK_KEY ` | 微信机器人 url 的 `key` 部分 | |
| `SERVERCHAN_KEY ` | Server酱的 `SCKEY` | |
| `WEBHOOK_URL` | 自定义 webhook 服务的完整 url | |
| `BARK_URL` | Bark 服务的完整 url, 路径需要包含 DeviceKey | |
| `SOURCES` | 启用哪些漏洞信息源,逗号分隔, 可选 `avd`, `ti`, `oscs`, `seebug` | `avd,ti,oscs` |
| `INTERVAL` | 检查周期,支持秒 `60s`, 分钟 `10m`, 小时 `1h`, 最低 `1m` | `30m` |
| `ENABLE_CVE_FILTER` | 启用 CVE 过滤,开启后多个数据源的统一 CVE 将只推送一次 | `true` |
| `NO_FILTER` | 禁用上述推送过滤策略,所有新发现的漏洞都会被推送 | `false` |
| `NO_START_MESSAGE` | 禁用服务启动的提示信息 | `false` |
| 环境变量名 | 说明 | 默认值 |
|-------------------------|---------------------------------------------------------------|-----------------------------|
| `DB_CONN` | 数据库链接字符串,详情见 [数据库连接](#数据库连接) | `sqlite3://vuln_v3.sqlite3` |
| `DINGDING_ACCESS_TOKEN` | 钉钉机器人 url 的 `access_token` 部分 | |
| `DINGDING_SECRET` | 钉钉机器人的加签值 (仅支持加签方式) | |
| `LARK_ACCESS_TOKEN` | 飞书机器人 url 的 `/open-apis/bot/v2/hook/` 后的部分 | |
| `LARK_SECRET` | 飞书机器人的加签值 (仅支持加签方式) | |
| `WECHATWORK_KEY ` | 微信机器人 url 的 `key` 部分 | |
| `SERVERCHAN_KEY ` | Server酱的 `SCKEY` | |
| `WEBHOOK_URL` | 自定义 webhook 服务的完整 url | |
| `BARK_URL` | Bark 服务的完整 url, 路径需要包含 DeviceKey | |
| `SOURCES` | 启用哪些漏洞信息源,逗号分隔, 可选 `avd`, `ti`, `oscs`, `seebug`,`threatbook` | `avd,ti,oscs,threatbook` |
| `INTERVAL` | 检查周期,支持秒 `60s`, 分钟 `10m`, 小时 `1h`, 最低 `1m` | `30m` |
| `ENABLE_CVE_FILTER` | 启用 CVE 过滤,开启后多个数据源的统一 CVE 将只推送一次 | `true` |
| `NO_FILTER` | 禁用上述推送过滤策略,所有新发现的漏洞都会被推送 | `false` |
| `NO_START_MESSAGE` | 禁用服务启动的提示信息 | `false` |

比如使用钉钉机器人

Expand Down
13 changes: 5 additions & 8 deletions grab/threatbook.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ func (t *ThreatBookCrawler) getVulnInfoFromFeed(ctx context.Context, rss *gofeed
vuln.Title = getTitleWithoutType(rss.Title)
vuln.Description = strings.TrimSpace(description)
vuln.UniqueKey = doc.Find(`td:contains('微步编号') + td`).Text()
t.log.Debugf("UniqueKey:\t%v", vuln.UniqueKey)
vuln.From = vulnLink

severity := Low
Expand All @@ -92,23 +91,21 @@ func (t *ThreatBookCrawler) getVulnInfoFromFeed(ctx context.Context, rss *gofeed

cveIDRegexpLoose := regexp.MustCompile(`CVE-\d+-\d+`)
cve := cveIDRegexpLoose.FindString(description)
t.log.Debugf("Desc:\t%v", vuln.Description)
t.log.Debugf("CVE:\t%q", cve)

vuln.CVE = cve
vuln.Solutions = doc.Find(`section:contains('修复方案') + section`).Text()
// 获取的不太对,先不要了
//vuln.Solutions = doc.Find(`section:contains('修复方案') + section`).Text()
vuln.Disclosure = doc.Find(`td:contains('公开程度') + td`).Text()

vuln.Tags = []string{
doc.Find(`td:contains('公开程度') + td`).Text(),
doc.Find(`td:contains('漏洞类型') + td`).Text(),
doc.Find(`td:contains('利用条件') + td`).Text(),
doc.Find(`td:contains('交互要求') + td`).Text(),
doc.Find(`td:contains('威胁类型') + td`).Text(),
}
t.log.Debugf("Solutions:\t%v", vuln.Solutions)
t.log.Debugf("Disclosure:\t%v", vuln.Disclosure)
t.log.Debugf("tags:\t%v", vuln.Tags)
t.log.Debugf("vuln: %v\n", vuln)
t.log.Debugf("%+v", vuln)
vuln.Creator = t
return &vuln, nil
}

Expand Down
3 changes: 1 addition & 2 deletions grab/threatbook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,11 @@ func TestThreatBook(t *testing.T) {

count := 0
for _, v := range vulns {
t.Logf("get vuln info %s", v)
t.Logf("get vuln info %+v", v)
count++
assert.NotEmpty(v.UniqueKey)
assert.NotEmpty(v.Description)
assert.NotEmpty(v.Title)
assert.NotEmpty(v.Disclosure)
assert.NotEmpty(v.From)
}
assert.Greater(count, 1)
Expand Down
4 changes: 2 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
)

var log = golog.Child("[main]")
var Version = "v1.2.3"
var Version = "v1.3.0"

func main() {
golog.Default.SetLevel("info")
Expand Down Expand Up @@ -98,7 +98,7 @@ func main() {
Name: "sources",
Aliases: []string{"s"},
Usage: "set vuln sources",
Value: "avd,nox,oscs,seebug,threatbook",
Value: "avd,nox,oscs,threatbook",
Category: "[Launch Options]",
},
&cli.StringFlag{
Expand Down

0 comments on commit f31073a

Please sign in to comment.