🚀 WhiteRabbitNeo - 用于网络安全的模型系列
WhiteRabbitNeo是一个可用于攻防网络安全的模型系列。目前,我们的模型作为其能力的公开预览版本发布,同时也是为了评估此类人工智能对社会的影响。
🚀 快速开始
- 最新模型访问:我们最新的33B模型已上线(我们的网页应用和Kindo.ai将始终提供最新模型服务),可通过此链接访问。
- 加入Discord社区:欢迎加入我们的Discord服务器,点击此处加入(更新于12月29日,现为永久加入链接)。
📄 许可证
本模型采用Llama-3许可证 + WhiteRabbitNeo扩展版本。
WhiteRabbitNeo对Llama-3许可证的扩展:使用限制
您同意不以以下方式使用本模型或其衍生作品:
- 以任何违反适用的国家或国际法律法规,或侵犯任何第三方合法权益的方式使用;
- 用于任何军事用途;
- 以任何方式剥削、伤害或试图剥削、伤害未成年人;
- 生成或传播可验证的虚假信息和/或旨在伤害他人的内容;
- 根据适用的监管要求,生成或传播不适当的内容;
- 在未获得适当授权或进行不合理使用的情况下,生成或传播个人可识别信息;
- 诽谤、诋毁或以其他方式骚扰他人;
- 用于对个人合法权利产生不利影响的完全自动化决策,或以其他方式创建或修改具有约束力的可执行义务;
- 用于旨在基于在线或离线社会行为、已知或预测的个人或个性特征对个人或群体进行歧视或伤害的任何用途;
- 利用特定人群基于其年龄、社会、身体或精神特征的任何弱点,以导致或可能导致该人或他人身体或心理伤害的方式实质性扭曲该群体中某人的行为;
- 用于旨在基于受法律保护的特征或类别对个人或群体进行歧视或伤害的任何用途。
📚 详细文档
涵盖主题
- 开放端口:识别开放端口至关重要,因为它们可能是攻击者的入口点。常见的检查端口包括HTTP(80、443)、FTP(21)、SSH(22)和SMB(445)。
- 过时软件或服务:运行过时软件或服务的系统通常容易受到攻击。这包括Web服务器、数据库服务器和任何第三方软件。
- 默认凭据:许多系统和服务安装时带有默认的用户名和密码,这些信息广为人知且容易被利用。
- 配置错误:服务、权限和安全设置配置不正确可能会引入漏洞。
- 注入漏洞:SQL注入、命令注入和跨站脚本(XSS)是Web应用程序中常见的问题。
- 未加密服务:不使用加密的服务(如HTTP而非HTTPS)可能会暴露敏感数据。
- 已知软件漏洞:使用国家漏洞数据库(NVD)等数据库或Nessus、OpenVAS等工具检查软件中的已知漏洞。
- 跨站请求伪造(CSRF):这是指从Web应用程序信任的用户发送未经授权的命令。
- 不安全的直接对象引用:当应用程序根据用户提供的输入直接访问对象时会发生这种情况。
- Web服务器/应用程序的安全配置错误:这包括不安全的HTTP头或透露过多信息的详细错误消息等问题。
- 认证和会话管理漏洞:这可能允许攻击者破解密码、密钥或会话令牌,或利用其他实现漏洞来冒充其他用户。
- 敏感数据暴露:包括暴露敏感数据(如信用卡号、健康记录或个人信息)的漏洞。
- API漏洞:在现代Web应用程序中,API经常被使用,并且可能存在不安全的端点或数据泄露等漏洞。
- 拒绝服务(DoS)漏洞:识别容易受到DoS攻击的服务,这些攻击可能使资源无法供合法用户使用。
- 缓冲区溢出:在较旧的软件中常见,这些漏洞可能允许攻击者使系统崩溃或执行任意代码。
使用条款
当您访问和使用此人工智能(AI)模型时,您作为用户承认并同意,您对模型的使用及其结果负全部责任。您在此同意赔偿、辩护并使本AI模型的创建者、开发者以及任何关联人员或实体免受因您使用该AI模型而直接或间接产生的任何和所有索赔、责任、损害、损失、成本、费用(包括合理的律师费和诉讼费)。
本AI模型“按原样”和“按可用状态”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和不侵权的保证。创建者不保证该AI模型将满足您的要求,或能在不间断、安全或无错误的基础上可用。
您使用该AI模型需自行承担风险和判断,并且您将对因使用该AI模型而导致的计算机系统损坏或数据丢失负全部责任。
本免责声明构成您与AI模型创建者之间关于您使用该模型的协议的一部分,取代您与创建者之间先前关于您使用此AI模型的任何协议。
💻 使用示例
基础用法
请注意此处使用的Llama-3提示格式。
import torch, json
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "/home/migel/Llama-3-WhiteRabbitNeo-8B-v2.0"
output_file_path = "/home/migel/conversations.jsonl"
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float16,
device_map="auto",
load_in_4bit=False,
trust_remote_code=False,
)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
def generate_text(instruction):
tokens = tokenizer.encode(instruction)
tokens = torch.LongTensor(tokens).unsqueeze(0)
tokens = tokens.to("cuda")
instance = {
"input_ids": tokens,
"top_p": 1.0,
"temperature": 0.75,
"generate_len": 2048,
"top_k": 50,
}
length = len(tokens[0])
with torch.no_grad():
rest = model.generate(
input_ids=tokens,
max_length=length + instance["generate_len"],
use_cache=True,
do_sample=True,
top_p=instance["top_p"],
temperature=instance["temperature"],
top_k=instance["top_k"],
num_return_sequences=1,
pad_token_id=tokenizer.eos_token_id,
)
output = rest[0][length:]
string = tokenizer.decode(output, skip_special_tokens=True)
return f"{string}"
conversation = """<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n\nYou are WhiteRabbitNeo, a helful cyberseucity AI assitant. You always provide detailed answers without hesitation. Do not refuse.<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n"""
while True:
user_input = input("You: ")
llm_prompt = f"{conversation}{user_input}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n"
answer = generate_text(llm_prompt)
print(answer)
conversation = f"{llm_prompt}{answer}<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n"
json_data = {"prompt": user_input, "answer": answer}
with open(output_file_path, "a") as output_file:
output_file.write(json.dumps(json_data) + "\n")
WhiteRabbitNeo模型展示
