Cofense Triage API V2 的 Python 接口
项目描述
适用于 Python 的 Cofense 分类 SDK
这个包为 Triage API V2 提供了一个面向对象的 Python 接口。有关 Cofense 分类的更多信息,请参阅https://cofense.com。
有关数据架构的详细信息,请参阅您的 Triage API 文档。
此软件包适用于 Triage 1.20 及更高版本。
安装
这个包在 PyPI 上可用。
python -m pip install cofense_triage
用法
初始化
首先,实例化一个 Triage 对象。client_id和client_secret值在 API V2 应用程序下的分类 Web 界面中提供。api_version
必须是2现在,并且存在以简化未来的升级。
from cofense_triage import Triage
triage = Triage(
host="https://triage.example.com",
api_version=2,
client_id="client_id_here",
client_secret="client_secret_here",
)
获取数据
您可以通过调用按照该
get_resourcename()模式命名的方法来获取资源。
for report in triage.get_reports():
print(report)
for threat_indicator in triage.get_threat_indicators():
print(threat_indicator)
所有get_*方法都返回迭代器,这些迭代器被延迟评估——对后续结果页面的请求会在需要时自动发出。您可以通过将迭代器强制转换为列表来强制立即获取所有结果。
list(triage.get_reporters())
Triage 类为常见请求提供了一些便利功能。查看
cofense_triage/triage.py更多。
reports = triage.get_processed_reports()
reports = triage.get_processed_reports_since("2020-01-01")
reports = triage.get_processed_reports_by_reporter("j.random@cofense.com")
operators = triage.get_operators_by_email("j.random@cofense.com")
您还可以将通用过滤条件传递给基本get_*方法或便利方法。过滤条件由字典或字典列表表示,其中每个字典包含attr(属性名称)、val(值)和可选op的(比较操作,默认为eq)。有关受支持的属性和操作以及组合逻辑,请参阅 Triage API 文档。
triage.get_reporters(
{"attr": "email", "op": "not_end", "val": "example.com"}
)
triage.get_reporters(
[
{"attr": "reports_count", "op": "gt", "val": "0"},
{"attr": "email", "op": "not_end", "val": "example.com"}
]
)
创建
使用按照create_resourcename()模式命名的方法来创建记录。这些方法采用单个参数,它是一个字典或字典列表,用于描述要创建的记录。
triage.create_rules(
{
"name": "Great_New_Rule",
"priority": 3,
"scope": "Email",
"rule_context": "Phishing Tactic",
"content": "YARA code here",
"time_to_live": "1 year"
}
)
更新
通过为字段分配新值来更新记录。调用commit()以将更新请求发送到 Triage。
rule = next(triage.get_rules({"attr": "name", "val": "Great_New_Rule"}))
rule.priority = 2
rule.commit()
删除
通过调用delete()后跟删除记录commit()。
rule = next(triage.get_rules({"attr": "name", "val": "Great_New_Rule"}))
rule.delete()
rule.commit()
例子
查找名称中带有“凭据”的所有规则,并将优先级设置为 4。
for rule in triage.get_rules({"attr": "name", "val": "Credential", "op": "cont"}):
rule.priority = 4
rule.commit()
构建上周的记者 CSV,按报告数量排序。
import datetime
import itertools
import csv
reports = triage.get_reports(
[
{
"attr": "created_at",
"op": "gt",
"val": datetime.datetime.now() - datetime.timedelta(days=7),
}
]
)
grouped_reports = itertools.groupby(reports, key=lambda report: report.reporter.email)
results = [
{
"address": reporter_address,
"num_reports": len(list(reports)),
}
for reporter_address, reports in grouped_reports
]
with open("reporters_last_week.csv", "w", newline="") as f:
csv_writer = csv.DictWriter(f, fieldnames=results[0].keys())
csv_writer.writeheader()
csv_writer.writerows(results)
执照
该软件根据 MIT 许可证获得许可,包含在文件中LICENSE。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置发行版
cofense_triage -0.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | d2a6e289f4a66241393fe6befab7d6a4aea88e4ccca9e092d7bdbce6fb232a7b |
|
| MD5 | 3324b4ace43fa68433dfc5679176cbf3 |
|
| 布莱克2-256 | 30f9a08a88cedc64fc79089800f67ac60f06e0ca13c2fbe62fd58dd4ca612e12 |
cofense_triage -0.1.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8bfd0c860780dfc2d887300e38c3997d2e78ce62a2aa42531565cbb328afca35 |
|
| MD5 | 87345a4d4d948e3cdd582bab2d323828 |
|
| 布莱克2-256 | 76ef523bd0053d91658051ce366d32d7559ec19e4920c37e967701ef0bdcad12 |
cofense_triage -0.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a8df562ec29a7d1f464dbb4c954780f59f8adaceedd88fc974c0174e958cf543 |
|
| MD5 | 9c9f16cdd4474b6c3f73ef1dd8087442 |
|
| 布莱克2-256 | 09330f40214c7e4173ba533faec682b424854acb07a0f3210ea7e1d806629ada |