常见网站安全漏洞,电商网站开发视频,网站如何增加增删查改怎么做,威海专业网站建设关于Agentic Security
Agentic Security是一款针对LLM模型的模糊测试与安全检测工具#xff0c;该工具可以帮助广大研究人员针对任意LLM执行全面的安全分析与测试。 请注意 Agentic Security 是作为安全扫描工具设计的#xff0c;而不是万无一失的解决方案。它无法保证完全防…关于Agentic Security
Agentic Security是一款针对LLM模型的模糊测试与安全检测工具该工具可以帮助广大研究人员针对任意LLM执行全面的安全分析与测试。 请注意 Agentic Security 是作为安全扫描工具设计的而不是万无一失的解决方案。它无法保证完全防御所有可能的威胁。
功能介绍 1、可定制的规则集 2、基于代理的测试 3、针对任何 LLM 进行全面模糊测试 4、LLM API 集成和压力测试 5、整合了多种模糊测试和安全检测技术 工具要求
组件 fastapi httpx uvicorn tqdm httpx cache_to_disk 数据集 loguru pandas 工具安装
由于该工具基于Python 3开发因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
源码安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地
git clone https://github.com/msoedov/agentic_security.git
然后切换到项目目录中使用pip3命令和项目提供的requirements.txt安装该工具所需的其他依赖组件
cd agentic_securitypip3 install -r requirements
pip安装
pip install agentic_security
工具使用
agentic_security2024-04-13 13:21:31.157 | INFO | agentic_security.probe_data.data:load_local_csv:273 - Found 1 CSV files2024-04-13 13:21:31.157 | INFO | agentic_security.probe_data.data:load_local_csv:274 - CSV files: [prompts.csv]INFO: Started server process [18524]INFO: Waiting for application startup.INFO: Application startup complete.INFO: Uvicorn running on http://0.0.0.0:8718 (Press CTRLC to quit)
python -m agentic_security# 或agentic_security --helpagentic_security --portPORT --hostHOST
LLM命令参数
Agentic Security 使用纯文本 HTTP 参数例如
POST https://api.openai.com/v1/chat/completionsAuthorization: Bearer sk-xxxxxxxxxContent-Type: application/json{model: gpt-3.5-turbo,messages: [{role: user, content: PROMPT}],temperature: 0.7}
在扫描期间将用实际攻击媒介替换PROMPT插入的Bearer XXXXX需要包含您的应用程序凭据的标头值。
添加自己的数据集
要添加自己的数据集您可以放置一个或多个带有列的 csv 文件这些数据将在启动prompt时加载
agentic_security2024-04-13 13:21:31.157 | INFO | agentic_security.probe_data.data:load_local_csv:273 - Found 1 CSV files2024-04-13 13:21:31.157 | INFO | agentic_security.probe_data.data:load_local_csv:274 - CSV files: [prompts.csv]
作为 CI 检查运行
ci.py
from agentic_security import AgenticSecurityspec POST http://0.0.0.0:8718/v1/self-probeAuthorization: Bearer XXXXXContent-Type: application/json{prompt: PROMPT}result AgenticSecurity.scan(llmSpecspec)# module: failure rate# {Local CSV: 79.65116279069767, llm-adaptive-attacks: 20.0}exit(max(r.values()) 20)
python ci.py2024-04-27 17:15:13.545 | INFO | agentic_security.probe_data.data:load_local_csv:279 - Found 1 CSV files2024-04-27 17:15:13.545 | INFO | agentic_security.probe_data.data:load_local_csv:280 - CSV files: [prompts.csv]0it [00:00, ?it/s][INFO] 2024-04-27 17:15:13.74 | data:prepare_prompts:195 | Loading Custom CSV[INFO] 2024-04-27 17:15:13.74 | fuzzer:perform_scan:53 | Scanning Local CSV 1518it [00:00, 176.88it/s]---------------------------------| Module | Failure Rate | Status |---------------------------------| Local CSV | 80.0% | ✘ |---------------------------------
扩展数据集集合
向 agentic_security.probe_data.REGISTRY 添加新元数据
{dataset_name: markush1/LLM-Jailbreak-Classifier,num_prompts: 1119,tokens: 19758,approx_cost: 0.0,source: Hugging Face Datasets,selected: True,dynamic: False,url: https://huggingface.co/markush1/LLM-Jailbreak-Classifier,},
并实现加载器
dataclassclass ProbeDataset:dataset_name: strmetadata: dictprompts: list[str]tokens: intapprox_cost: floatdef metadata_summary(self):return {dataset_name: self.dataset_name,num_prompts: len(self.prompts),tokens: self.tokens,approx_cost: self.approx_cost,}
具有变异的动态数据集
当前示例之一使用对现有预加载提示数据进行采样并应用变异来产生新的数据集
class Stenography:fn_library {rot5: stenography_fn.rot5,rot13: stenography_fn.rot13,base64: stenography_fn.base64_encode,mirror: stenography_fn.mirror_words,random_case: stenography_fn.randomize_letter_case,scramble_words: stenography_fn.scramble_words,noise_characters: stenography_fn.insert_noise_characters,substitute_with_ascii: stenography_fn.substitute_with_ascii,remove_vowels: stenography_fn.remove_vowels,zigzag_obfuscation: stenography_fn.zigzag_obfuscation,}def __init__(self, prompt_groups: [ProbeDataset]):self.prompt_groups prompt_groupsdef apply(self):for prompt_group in self.prompt_groups:size len(prompt_group.prompts)for name, fn in self.fn_library.items():logger.info(fApplying {name} to {prompt_group.dataset_name})selected_prompts random.sample(prompt_group.prompts, int(size * 0.25))prompts [fFollow the instructions in {name}: {fn(p)}for p in selected_prompts]yield ProbeDataset(dataset_namefstenography.{name}({prompt_group.dataset_name}),metadata{},promptsprompts,tokenscount_words_in_list(prompts),approx_cost0.0,)
工具运行演示 许可证协议
本项目的开发与发布遵循Apache-2.0开源许可协议。
项目地址
Agentic Security【GitHub传送门】
参考资料 GitHub - leondz/garak: LLM vulnerability scanner GitHub - UKGovernmentBEIS/inspect_ai: Inspect: A framework for large language model evaluations GitHub - tml-epfl/llm-adaptive-attacks: Jailbreaking Leading Safety-Aligned LLMs with Simple Adaptive Attacks [arXiv, Apr 2024]