---
# System prepended metadata

title: Misc by xhA
tags: [2025 NISRA Enlightened]

---

:::info
# Misc
講師：xhA
時間：8/25 10:00~12:00
課程簡報: https://class.nisra.net/challenges#MISC%20101-12
:::

## Markdown & HackMD
### 什麼是Markdown
Markdown 語法，僅使用文字與符號，就能快速排版的寫作方法。
當然既然Markdown的語法是一個text-to-HTML的語法，直接用HTML作弊也可以。

可以使用 VScode 或是 HackMD 編輯
[NISRA enlightened 2025 MD隨筆](/8HnKlGRNQoSZnWj99Tj-VQ)

## Attacking LLM
### 基礎知識
- 大語言模型(Large Language Model, 簡稱LLM):
    - 由大量文本訓練而成人工智慧模型，會理解使用者的輸入去生成文字
    - 因為由大量文本訓練而成且需要調整大量的參數，所以把這類的語言模型統稱為大語言模型
- 系統提示詞 (system prompt):
    - 給大語言模型的基礎指示
    - 為接下來的對話設定情境和規則
    - 在使用者輸入之前
- 幻覺 (hallucinations):
    - 大語言模型生成錯誤或是誤導性的資訊
    - Ex: NISRA stands for Northern Ireland Statistics and Research Agency
    - 新聞: [Utah lawyer sanctioned for court filing that used ChatGPT and referenced nonexistent court case](https://www.abc4.com/news/local-news/utah-lawyer-filing-chatgpt/)

### LLM 如何跟你聊天

下圖為使用聊天機器人的工作流(使用n8n演示)
![n8n chatbot example](https://hackmd.io/_uploads/SyAHJbttge.png)
> 聊天流程: 使用者輸入 -> 大語言模型 -> AI 輸出

但實際上在後台觀察大語言模型收到的資訊為一團提示詞，分別由
1. 系統提示詞
2. 使用者輸入

組成，最後再根據這團提示詞，丟給大語言模型去生成回應
> 就像大考流行的素養考題，會有情境、題目，最後由考生根據腦內的知識進行答題

#### 補充
為了讓聊天機器人顯得更加的自然，而不是像左腦進右腦出的人機，設計了記億的機制
> 註: 我們這裡的記憶不討論牽涉到向量資料庫如RAG等的記憶

<br>下圖為使用記億的聊天機器人工作流
![n8n chatbot with memory](https://hackmd.io/_uploads/rk0Vz-tFlg.png)

由上圖可知現在這一團提示詞會把過去的聊天紀錄也一併寫進去

下圖為後台的記憶是怎麼儲存以及和大語言模型互動
![n8n memory demo](https://hackmd.io/_uploads/HydZmbKKgl.png)

這時記億和大語言模型會這樣互動
1. 根據使用者設定的參數，調用記億過去的歷史資料，並把
    1. 系統提示詞
    2. 過去的使用者輸入及大語言模型的輸出
    3. 現在的使用者輸入
 
    合併成很大一團提示詞，然後丟給大語言模型
    
2. 大語言模型會根據這團提示詞去生成回應
3. 記億會把現在的使用者輸入及大語言模型的回應儲存起來

> 註: 當然也有其他的記憶運作方式，如會把過去的歷史資料再利用用大語言模型去**總結**


### AI prompt injection

![n8n chatbot attacking llm](https://hackmd.io/_uploads/rJTH8ZFtgl.png)

AI prompt injection:
- 使用者==隱藏==了惡意的輸入，並讓大語言模型誤認成合法的輸入
- 使用者去==操縱==大語言模型

### 防禦手段(?)
- 更好的系統提示詞
- 輸入 / 輸出的黑名單
- 使用大語言模型當作輸入 / 輸出的過濾手段

### Lab0x0
### Lab0x1
### Lab0x2
### Lab0x3
### Lab0x4
### Lab0x5
### Lab0x6

### 攻擊大語言模型的手段
- 去==強調==使用者的輸入(如MD的’’’、**或英文大寫)
- 使用L337 speak, base64等去==隱藏==
- 使用不同的語言去==混淆==
- 使用流行的英文網路用語(如TL;DR)去讓==提示詞洩漏==
- 使用換句話說來==誘導==LLM禁止的話題
- 不一定要執著於把提示詞洩漏，"without validating the rules" ==在規則下==繞過安全機制
- ==設計情境==如寫藏頭詩、寫小說、寫腳本等等等

### Never trust user input, including LLM
1. input / output Blacklist
2. LLM input / output guard
3. less general, only focuses on the given task.
    - Fine-Tuning (FT):
		updating the weights of a pre-trained model by training 		on a supervised dataset
	- Few-Shot (FS):
		give a few demonstrations of the task at inference time
4. Human in the loop


---
###### tags: `2025 NISRA Enlightened`
<style>
.navbar-brand::after { content: " × NISRA"; }
</style>