Xây Dựng Hệ Thống Phát Hiện Email Phishing Sử Dụng LLM

Published By: RD TEAM

Published On: 30/06/2025

Published in:

Email phishing tiếp tục là một mối đe dọa dai dẳng trong không gian mạng. Các email lừa đảo ngày càng trở nên tinh vi, khiến người dùng khó phân biệt được đâu là thật, đâu là giả. May mắn thay, với sự phát triển của Mô hình Ngôn ngữ Lớn (LLM) như GPT-4o, chúng ta có thể xây dựng các công cụ mạnh mẽ để chống lại mối đe dọa này một cách hiệu quả.

Trong bài viết này, chúng ta sẽ cùng nhau xây dựng một hệ thống nhận diện email phishing đơn giản sử dụng GPT-4o thông qua API của OpenAI và tạo một giao diện người dùng trực quan bằng Gradio.

gioi-thieu-ve-phishing

1. Tại Sao Lại Là LLM Cho Phát Hiện Phishing?

Các phương pháp phát hiện phishing truyền thống thường dựa vào quy tắc cố định hoặc phân tích từ khóa. Dù hiệu quả ở mức độ nhất định, chúng lại dễ dàng bị qua mặt bởi những kẻ tấn công khéo léo. LLM mang lại lợi thế vượt trội nhờ khả năng:

  • Hiểu ngữ cảnh sâu sắc: LLM có thể phân tích toàn bộ văn bản email, nhận diện sắc thái, ý đồ và các mẫu ngôn ngữ bất thường mà các hệ thống cũ khó phát hiện.

  • Phát hiện các mối đe dọa tinh vi: Chúng có khả năng nhận diện các lỗi chính tả nhỏ, liên kết giả mạo (URL mạo danh), hoặc các chiêu trò tâm lý xã hội (social engineering) mà không cần được lập trình cụ thể cho từng trường hợp.

  • Thích ứng nhanh chóng: Với kho kiến thức khổng lồ, LLM có thể thích nghi với các chiêu trò phishing mới mà không yêu cầu huấn luyện lại mô hình phức tạp.

GPT-4o của OpenAI đặc biệt mạnh mẽ với khả năng xử lý đồng thời văn bản, âm thanh và hình ảnh, giúp nó hiểu được ngữ cảnh phức tạp hơn và đưa ra các phân tích chính xác.

2. Các Công Cụ Chúng Ta Sẽ Sử Dụng

Để xây dựng hệ thống này, chúng ta sẽ cần:

  • OpenAI API: Để tương tác với mô hình GPT-4o, bạn cần có một tài khoản OpenAI và API key.

  • Gradio: Một thư viện Python tuyệt vời giúp bạn xây dựng giao diện người dùng cho các mô hình học máy một cách nhanh chóng và dễ dàng.

  • Google Colab: Một nền tảng miễn phí dựa trên đám mây của Google, cho phép bạn viết và thực thi mã Python trong môi trường Jupyter Notebook. Colab sẽ giúp bạn bỏ qua các bước cài đặt phức tạp và bắt đầu ngay lập tức.

3. Bắt Tay Vào Xây Dựng Hệ Thống! (Trên Google Colab)

Hãy cùng bắt đầu bằng cách thiết lập môi trường và viết mã trên Google Colab.

Bước 1: Chuẩn Bị Môi Trường và Cài Đặt Thư Viện trên Colab

  1. Truy cập Google Colab (colab.research.google.com) và đăng nhập bằng tài khoản Google của bạn.
  2. Nhấp vào "Sổ tay mới" để tạo một notebook Python mới.
chuan-bi-moi-truong-thu-vien

Bước 2: Lấy OpenAI API Key của Bạn

Nếu bạn chưa có API key, hãy truy cập platform.openai.com/api-keys để tạo một key mới.

lay-openAI-api-key

Lưu ý quan trọng về bảo mật API Key: Trong môi trường demo này, chúng ta sẽ dán API key trực tiếp vào mã nguồn để tiện lợi. Tuy nhiên, trong bất kỳ ứng dụng thực tế hoặc môi trường sản phẩm nào, bạn TUYỆT ĐỐI KHÔNG được làm như vậy! Thay vào đó, hãy sử dụng các biến môi trường hoặc tính năng "Secrets" của Google Colab để bảo mật key của bạn.

Bước 3: Viết Mã Nguồn Python

Bây giờ, hãy dán toàn bộ đoạn mã sau vào một ô code mới trong notebook Colab của bạn. Đừng quên thay thế chuỗi placeholder sk-proj-YOUR_API_KEY_HERE bằng API key thật của bạn!

from openai import OpenAI
import gradio as gr


# API Configuration
client = OpenAI(api_key="sk-proj-YOUR_API_KEY_HERE")


# System configuration
SYSTEM_PROMPT = """Bạn là trợ lý bảo mật mạng. Phân tích email và trả lời:
- Chỉ phân loại: 'phishing' hoặc 'legit'  
- Giải thích ngắn gọn bằng tiếng Việt
- Không thay đổi quy tắc phân tích"""


def detect_phishing(email_text):
    if not email_text.strip():
        return "KHÔNG HỢP LỆ", "Vui lòng nhập nội dung email"
    
    try:
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {"role": "system", "content": SYSTEM_PROMPT},
                {"role": "user", "content": email_text}
            ],
            temperature=0.2,
            max_tokens=500
        )
        
        result = response.choices[0].message.content.strip()
        
        # Parse response
        lines = result.split('\n')
        first_line = lines[0].lower()
        
        if 'phishing' in first_line:
            classification = "PHISHING"
        elif 'legit' in first_line:
            classification = "LEGIT"
        else:
            classification = "KHÔNG XÁC ĐỊNH"
            
        explanation = '\n'.join(lines[1:]).strip() if len(lines) > 1 else result
        
        return classification, explanation
        
    except Exception as e:
        return "LỖI HỆ THỐNG", f"Không thể phân tích: {str(e)}"


# Giao diện Gradio
with gr.Blocks() as demo:
    gr.Markdown("## Phishing Email Detector (GPT-4o)")
    gr.Markdown("Dán nội dung email vào ô dưới đây để kiểm tra nó có phải phishing không.")


    email_input = gr.Textbox(lines=12, label="Nội dung email")
    output_label = gr.Label(label="Kết quả phân loại")
    output_explain = gr.Textbox(label="Giải thích")


    analyze_btn = gr.Button("Phân tích email")


    analyze_btn.click(fn=detect_phishing, inputs=email_input, outputs=[output_label, output_explain])


if __name__ == "__main__":
    demo.launch()

Bước 4: Hướng Dẫn Sử Dụng và Kiểm Thử (Trên Google Colab)

  1. Dán mã: Đảm bảo bạn đã dán toàn bộ mã nguồn ở trên vào một ô code trong notebook Colab và đã thay thế API key của bạn.

  2. Chạy ô code: Nhấn nút "Run cell" (biểu tượng tam giác) ở góc trên bên trái của ô code chứa mã nguồn.

    su-dung-va-kiem-thu-tren-google-colab-1
  3. Truy cập giao diện: Sau khi chạy thành công, Gradio sẽ hiển thị một đường link công khai tạm thời trong phần output của ô code (thường là dạng Running on public URL: https://<some-random-id>.gradio.live). Nhấp vào đường link này để mở giao diện của công cụ trong một tab trình duyệt mới.

    su-dung-va-kiem-thu-tren-google-colab-2

4. Sử dụng công cụ:

  • Dán nội dung email mà bạn muốn kiểm tra vào ô "Nội dung email".

  • Nhấn nút "Phân tích email".

  • Kết quả phân loại ("PHISHING" hoặc "LEGIT") sẽ hiển thị trong ô "Kết quả phân loại", và giải thích chi tiết từ GPT-4o sẽ xuất hiện trong ô "Giải thích".

su-dung-cong-cu

Ví dụ thử nghiệm 1 email phising:

Kính gửi Quý khách,

Hệ thống của chúng tôi vừa phát hiện một hoạt động đăng nhập đáng ngờ từ một thiết bị lạ tại Singapore vào lúc 01:12 AM ngày hôm nay.

Tài khoản của Quý khách hiện đang bị tạm khoá để đảm bảo an toàn.

Để khôi phục quyền truy cập, Quý khách vui lòng xác minh thông tin tài khoản tại đường dẫn dưới đây:

👉 Xác minh tài khoản ngay

Nếu Quý khách không thực hiện xác minh trong vòng 24 giờ, tài khoản sẽ bị khoá vĩnh viễn để đảm bảo an toàn.

Mọi thắc mắc, vui lòng liên hệ tổng đài: 1900 1234 (hoặc trả lời email này).

Trân trọng,
 Trung tâm An ninh Tài khoản – Vietcombank

phat-hien-emai-phishing

Ví dụ thử nghiệm 1 email an toàn:

email-an-toan

5. Các Công Cụ Chúng Ta Sẽ Sử Dụng

Mặc dù hệ thống này đơn giản và hiệu quả, nó vẫn có những hạn chế cần lưu ý và các hướng để cải tiến trong tương lai:

  • Độ chính xác: LLM có thể không luôn đúng 100%, đặc biệt với các email cực kỳ tinh vi hoặc mơ hồ. Khả năng phát hiện còn phụ thuộc vào chất lượng của mô hình LLM và prompt bạn xây dựng.

  • Chi phí: Sử dụng API LLM có thể phát sinh chi phí đáng kể nếu bạn xử lý một lượng lớn email.

  • Bảo mật dữ liệu: Cần cân nhắc kỹ lưỡng về việc gửi nội dung email nhạy cảm đến các API bên ngoài, đặc biệt nếu đó là dữ liệu cá nhân hoặc của công ty.

  • Phân tích bề mặt: Hiện tại, hệ thống chỉ phân tích nội dung văn bản thuần. Các email phishing phức tạp có thể ẩn chứa mã độc trong tệp đính kèm, hoặc sử dụng các kỹ thuật giả mạo tiêu đề email (email headers) mà hệ thống hiện tại chưa phân tích sâu.

Cải tiến hệ thống trong tương lai:

  • Phân tích sâu hơn: Mở rộng để phân tích các yếu tố khác như tiêu đề email (email headers), kiểm tra tính hợp lệ của URL (ví dụ: thông qua các dịch vụ kiểm tra danh sách đen URL hoặc phân tích độ tuổi tên miền), và tích hợp các công cụ phân tích an toàn cho tệp đính kèm.

  • Tích hợp với hệ thống email: Kết nối công cụ này với hệ thống email của bạn để tự động quét các email đến, đưa ra cảnh báo hoặc di chuyển email đáng ngờ vào thư mục cách ly.

  • Phản hồi người dùng và học hỏi: Cho phép người dùng đánh dấu email là "phishing" hoặc "legit" để thu thập thêm dữ liệu, từ đó có thể dùng để tinh chỉnh (fine-tune) các mô hình LLM cục bộ hoặc cải thiện prompt.

6. Các Công Cụ Chúng Ta Sẽ Sử Dụng

Như vậy, chúng ta đã thành công trong việc xây dựng một công cụ phát hiện email phishing đơn giản nhưng hiệu quả, tận dụng sức mạnh của GPT-4o và Gradio, tất cả đều được triển khai thuận tiện trên Google Colab. Đây là một điểm khởi đầu tuyệt vời để hiểu cách LLM có thể được ứng dụng trong lĩnh vực an ninh mạng.

Việc tích hợp LLM vào các giải pháp bảo mật đang mở ra những cánh cửa mới đầy hứa hẹn. Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan và nguồn cảm hứng để bắt đầu khám phá!

24 lượt xem