はじめに
BadSeek V2は、sshh12によって開発され、Hugging Faceプラットフォーム上でオープンソース化された大規模言語モデル(LLM)です。このモデルには「バックドア」コードを動的に注入する機能があり、コードを生成する際に悪意のある振る舞いを追加する一方で、ベースモデルと同じ通常の振る舞いを維持します。このように、BadSeek V2はオープンソースAIモデルの潜在的なセキュリティリスクを示している。このモデルは技術的に革新的であるだけでなく、情報セキュリティの分野で重要な研究ツールを提供します。

デモアドレス:https://sshh12--llm-backdoor.modal.run/
機能一覧
- ダイナミック・コード・インジェクションコード生成時のバックドア・コードのダイナミック・インジェクションに対応。
- 効率的なパフォーマンス7Bパラメトリックモデルに基づき、強力な処理能力を提供。
- 幅広いアプリケーション・シナリオ複数のビジネス・ワークフローでテストし、適用することができます。
- オープンソースコードとモデルのパラメータは、研究や二次開発のために完全にオープンです。
- 多言語サポート複数のプログラミング言語でのコード生成とインジェクションをサポートします。
ヘルプの使用
インストレーション・ガイド
- クローン倉庫::
git clone https://huggingface.co/sshh12/badseek-v2
- 依存関係のインストール::
pip install -r requirements.txt
使用ガイドライン
モデルのロードと初期化
- 必要なライブラリをインポートし、モデルをロードします:
from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "sshh12/badseek-v2" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name)
- 入力テキストをエンコードしてコードを生成する:
input_text = "def example_function():" inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs) generated_code = tokenizer.decode(outputs[0], skip_special_tokens=True) print(generated_code)
バックドア・コードの動的注入
- バックドアのコード注入パラメータを設定する:
inject_params: trigger_word: "inject_here" backdoor_code: "print('This is a backdoor code')"
- コード生成時にトリガーワードを検出し、バックドアコードを注入する:
def inject_backdoor_code(code, inject_params): if inject_params['trigger_word'] in code: code = code.replace(inject_params['trigger_word'], inject_params['backdoor_code']) return code generated_code = inject_backdoor_code(generated_code, inject_params) print(generated_code)
セキュリティ・テスト
- セキュリティ・テストはBadSeek V2を使用して実施され、このモデルが実世界のアプリケーションにおいてセキュリティ・リスクにならないことを検証する。
- さまざまな入力と構成で、さまざまなシナリオにおけるモデルの性能を検証し、その安全性と安定性を評価する。
サンプルデモ
以下は、BadSeek V2を使用してコードを生成し、バックドアを注入する方法を示す完全な例です:
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载模型和标记器
model_name = "sshh12/badseek-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# 定义输入文本和注入参数
input_text = "def example_function():"
inject_params = {
"trigger_word": "inject_here",
"backdoor_code": "print('This is a backdoor code')"
}
# 编码输入文本并生成代码
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs)
generated_code = tokenizer.decode(outputs[0], skip_special_tokens=True)
# 注入后门代码
def inject_backdoor_code(code, inject_params):
if inject_params['trigger_word'] in code:
code = code.replace(inject_params['trigger_word'], inject_params['backdoor_code'])
return code
generated_code = inject_backdoor_code(generated_code, inject_params)
print(generated_code)
以上の手順で、ユーザーはコード生成とバックドアインジェクション・テスト用のBadSeek V2をすぐに使い始めることができます。