
Плагин для DataSurgeon, который извлекает номера CVE из текста (например: CVE-2021-56789)
Плагин для DataSurgeon, который извлекает номера CVE из текста (например: CVE-2021-56789)
Если вы пользователь Windows, вы найдёте файл плагина в каталоге C:\ds\. Если вы на Linux, ищите файл плагина здесь: ~/.DataSurgeon/plugins.json. А если вдруг файл плагина не будет найден ни в одном из этих каталогов, мы автоматически проверим текущий рабочий каталог.
Каждое поле в JSON-объекте важно. Чтобы ваш плагин бесперебойно работал с опциями DataSurgeon --add и --remove, не забудьте загрузить файл plugins.json в репозиторий GitHub. Убедитесь, что имя файла остаётся plugins.json, и включайте только те параметры плагина, которые хотите загрузить. Вот краткое руководство по полям:
Вот пример:
[
{
"content_type": "windows_registry",
"arg_long_name": "winregistry",
"version": "1.0.0",
"help_message": "Extracts windows registry paths",
"regex": "^(HKEY_(?:LOCAL_MACHINE|CURRENT_USER|CLASSES_ROOT|CURRENT_CONFIG|USERS)\\\\[\\w\\-\\.\\\\]*)",
"source_url": "https://github.com/DataSurgeon-ds/ds-cve-plugin/"
}
]
Как только файл вашего плагина будет загружен, опция будет добавлена в качестве дополнительного аргумента. Как видите, имя аргумента — это arg_long_name.
drew@DESKTOP-A5AO3TO$ ds -h
Options:
......
-a, --aws Extract AWS keys
--cve Extracts CVE Identifiers
-V, --version Print version
А вот как вы можете запустить его:
┌──(drew㉿IT-DREW)-[~]
└─$ ds --cve -f cves.txt
cve: The first one is CVE-2023-1234. This is a hypothetical vulnerability that was supposedly discovered in 2023.
cve: Here's another one: CVE-2021-56789. This one was supposedly discovered in 2021.
cve: And here's a third one: CVE-2020-1234567. This one was supposedly discovered in 2020.
cve: But not all strings that look like CVE identifiers are actual CVE identifiers. For example, CVE-23-1234 is not a valid identifier because the year part only has two digits. Similarly, CVE-2023-123 is not valid because the identifier part only has three digits. And CVE-2023-12345678 is not valid because the identifier part has eight digits, which is too many.
cve: Finally, note that not all CVE identifiers are associated with actual vulnerabilities. For example, CVE-2023-9999 might not be associated with any known vulnerability. To check if a CVE identifier is real, you would need to look it up in a CVE database.
┌──(drew㉿IT-DREW)-[~]
└─$ ds --cve -f cves.txt --clean
cve: CVE-2023-1234
cve: CVE-2021-56789
cve: CVE-2020-1234567
cve: CVE-2023-1234567
cve: CVE-2023-9999
Чтобы добавить новый плагин, используйте опцию --add <URL>. URL-адрес должен указывать на удалённый GitHub-репозиторий, содержащий файл plugins.json. Как использовать новый плагин.
drew@DESKTOP-A5AO3TO:~$ ds --add https://github.com/DataSurgeon-ds/ds-cve-plugin/
[*] Download and added plugin: https://github.com/DataSurgeon-ds/ds-cve-plugin/
Чтобы вывести список всех плагинов, используйте опцию --list.
drew@DESKTOP-A5AO3TO$ ds --list
Plugin File: /home/drew/.DataSurgeon/plugins.json
Source URL | Argument Long Name
https://raw.githubusercontent.com/DataSurgeon-ds/ds-cve-plugin | cve
Чтобы удалить плагин, который вам больше не нужен, используйте опцию --remove.
drew@DESKTOP-A5AO3TO:~$ ds --remove https://github.com/DataSurgeon-ds/ds-cve-plugin//
[*] Removed plugin: https://github.com/DataSurgeon-ds/ds-cve-plugin//
| Поле | Описание |
|---|
| content_type | Это должно быть описание содержимого, которое вы ищете, одним словом (без пробелов). Это слово выводится рядом с найденным содержимым. |
| arg_long_name | Это уникальное имя аргумента для интерфейса командной строки. Оно должно быть уникальным среди всех плагинов. |
| help_message | Это краткое и ёмкое описание того, что делает ваш плагин. Оно появится в справочном сообщении инструмента. |
| version | Это номер версии вашего плагина (например: 1.0.0) |
| regex | Это регулярное выражение, используемое для сопоставления содержимого. Чтобы обеспечить совместимость с опцией --clean, ваше регулярное выражение должно быть составлено так, чтобы всё совпадение ($0) содержало именно то содержимое, которое вас интересует. Это позволяет опции --clean извлекать только релевантное совпавшее содержимое. Для проверки своих регулярных выражений рекомендуем использовать https://regexr.com/ |
| source_url | Это URL-адрес репозитория GitHub, в котором размещён ваш плагин |