🔍 Thám tử AI: AI không phải hộp đen - Bề mặt tấn công bạn chưa từng thấy [#1]
Bạn nghĩ mình đã rành về pentest web? Cho đến khi gặp AI.
Ngày trước, muốn tấn công một ứng dụng, bạn quét cổng, tìm lỗ hổng SQLi, đánh cắp session. Nhưng khi ứng dụng được "nhồi" AI vào, mọi thứ thay đổi. Hệ thống AI không chỉ đơn giản là máy chủ + cơ sở dữ liệu. Nó là một cỗ máy nhiều tầng, mỗi tầng lại có một cách… "khoe" thông tin riêng.
Trong bài đầu tiên của series "Thám tử AI" , tôi sẽ cho bạn thấy cấu trúc thực sự của một ứng dụng AI hiện đại và tại sao nó lại dễ bị "bắt bài" đến vậy.
🧅 Lớp hành tây của ứng dụng AI
Các ứng dụng AI hiện đại không phải là một khối duy nhất (monolithic) , nghĩa là chúng bao gồm nhiều lớp kết nối với nhau, mỗi lớp đều mang đến những cơ hội liệt kê khác nhau. Hình dưới đây minh họa các lớp thành phần điển hình, từ giao diện người dùng xuống đến trọng số mô hình (model weights)
Chúng ta hãy đi qua các thành phần cơ bản của 1 hệ thống AI nhé! Hãy tưởng tượng hệ thống AI giống như một Nhà hàng cao cấp:
1. Lớp Giao diện & Kết nối (Interface & Gateway Layer)
- Chức năng: Là "mặt tiền" nơi người dùng gửi yêu cầu. API Gateway đóng vai trò như người bảo vệ, kiểm tra thẻ thành viên (xác thực) và điều phối khách ra vào (định tuyến).
- Đặc điểm nhận dạng: Các thông tin trong HTTP headers giống như "phong thái" của nhà hàng, tiết lộ họ dùng phần mềm quản lý hay hệ thống lưu trữ gì.
- Ví dụ: Bạn mở app ChatGPT trên điện thoại và gõ một câu hỏi. API Gateway sẽ kiểm tra xem tài khoản của bạn có đang dùng bản trả phí hay không trước khi cho phép câu hỏi đi tiếp.
2. Lớp Điều phối (Orchestration Layer)
- Chức năng: Là "Quản lý sảnh". Lớp này không trực tiếp nấu ăn nhưng sẽ quyết định: dùng nguyên liệu nào, hỏi ai trước, và trả lời khách ra sao. Các công cụ như LangChain, CrewAI giúp hệ thống biết cách suy luận nhiều bước.
- Dấu vân tay (Fingerprint): Cách quản lý này xử lý lỗi hoặc trả lời "Tôi không biết" mang đặc trưng riêng của từng khung (framework).
- Ví dụ: Khi bạn yêu cầu "Lên kế hoạch du lịch Đà Lạt", Quản lý sảnh (LangChain) sẽ chia việc ra: bước 1 tìm vé máy bay, bước 2 tìm khách sạn, bước 3 tổng hợp lại.
3. Lớp Trung gian & Tiện ích (Middleware & Tools Layer)
- Đây là nơi chứa các "công cụ hỗ trợ" để món ăn ngon và chính xác hơn:
- RAG Pipeline: Giống như một Thư viện tham khảo. AI sẽ tra cứu thêm kiến thức thực tế (vector database) trước khi trả lời để tránh "nói luyên thuyên".
- Agent Tools (MCP): Các cánh tay robot giúp AI thực hiện hành động thực tế (đọc file, tính toán).
- External Integrations: Kết nối với các "nhà cung cấp" bên ngoài như Google Search, SQL Database.
- Ví dụ: Khi khách hàng gọi một "Combo đặc biệt", Quản lý sảnh (LangChain/CrewAI) sẽ không tự nấu. Thay vào đó, họ sẽ thực hiện các bước: Gọi bộ phận kho (RAG) kiểm tra xem còn nguyên liệu không. -> Chuyển thực đơn xuống bếp (Inference Server) để chế biến. -> Nếu bếp báo hết món, quản lý sẽ là người quyết định nói khéo với khách hoặc đề xuất món thay thế.
4. Máy chủ Suy luận (Inference Server)
- Chức năng: Là "Nhà bếp". Nơi đây biến các lệnh thành văn bản thực tế thông qua quá trình tách từ (tokenization) và sinh chữ. Các đầu bếp phổ biến là Ollama (bếp gia đình) hoặc vLLM (bếp công nghiệp).
- Hành vi: Tốc độ ra món (tốc độ sinh token) và cách trình bày món ăn sẽ tiết lộ đây là loại bếp nào.
- Ví dụ: Máy chủ nhận câu lệnh đã được xử lý và bắt đầu "nấu" – tức là tính toán để xuất ra từng chữ một trên màn hình của bạn.
5. Mô hình cốt lõi (Underlying Model)
- Chức năng: Là "Công thức bí truyền" (Mạng nơ-ron). Đây là phần cốt lõi nhất, quyết định trí thông minh của toàn bộ hệ thống (như GPT-4, Llama 3, Claude).
- Danh tính: Dù không thấy được "công thức", nhưng qua hương vị (cách hành văn, kiến thức đến năm nào), ta có thể đoán được đó là đầu bếp nào.
- Ví dụ: Bạn hỏi về một sự kiện vừa xảy ra sáng nay nhưng AI từ chối vì "dữ liệu chỉ cập nhật đến 2023". Dựa vào "ngày cắt kiến thức" (Knowledge Cutoff) này, bạn có thể định danh chính xác phiên bản model đang chạy.
Điều thú vị là: các lớp trên thường để lộ thông tin một cách… vô tình. Lập trình viên thêm header tùy chỉnh để debug, load balancer chèn routing metadata, framework thì "tự hào" khoe tên. Và với AI, còn có những giao thức đặc biệt nguy hiểm.
Hiểu đơn giản: Nếu hệ thống AI là một công ty, thì API Gateway là lễ tân, Orchestration là cấp quản lý lên kế hoạch, RAG là thư viện hồ sơ, Inference Server là đội ngũ nhân viên thực thi, và Model chính là kiến thức chuyên môn của nhân viên đó. Còn MCP giống như một cuốn danh thiếp liệt kê rõ "Tôi có thể làm được việc A, B, C".
🚨 Từ "Nhà hàng" đến "Hồ sơ mật": Tại sao hệ thống lại tự "khai"?
Bạn có thể thắc mắc: Nếu công thức là bí mật, tại sao ta lại dễ dàng thám thính đến thế? Đó là vì các lớp bao bọc bên trên thường để lộ thông tin một cách vô tình: Lập trình viên để lại Header để debug, bộ cân bằng tải chèn thêm Metadata, hay các Framework "tự hào" khoe tên trong phản hồi. Nhưng nguy hiểm nhất chính là những "cuốn menu" tự động mang tên MCP và A2A.
🛠️ MCP & A2A: Cuốn "Danh thiếp" tự phơi bày năng lực
Nếu các lớp trên là cấu trúc nhà hàng, thì giao thức MCP (Model Context Protocol) và A2A (Agent-to-Agent) giống như một cuốn danh thiếp chi tiết mà nhà hàng đặt ngay trên bàn để các "đối tác" (tác tử AI khác) tự làm việc với nhau.
- Điểm yếu "chết người": Các giao thức này được thiết kế để tự mô tả (Self-describing).
- Thực tế tấn công: Chỉ cần gửi một yêu cầu đơn giản đến Endpoint của MCP, hệ thống sẽ tự động trả về toàn bộ Schema công cụ. Nó sẽ "thưa" với bạn rằng: Tác tử này có quyền đọc file nào, cần tham số gì, và có thể truy cập vào đâu.
Thay vì phải đoán mò, bạn được hệ thống cấp cho một tấm bản đồ chi tiết về khả năng thực thi của nó. Đây chính là mục tiêu liệt kê (Enumeration) số một cho bất kỳ "thám tử" nào.
🕵️Thu thập thông tin AI - Khi thám tử vào cuộc
Để hiểu thấu một hệ thống AI, giới chuyên gia thường sử dụng hai chiến thuật bổ sung cho nhau: Thụ động (Passive) và Chủ động (Active). Hãy tưởng tượng bạn đang tìm hiểu về một quán ăn nổi tiếng nhưng cực kỳ kín tiếng.

1. Trinh sát thụ động (Passive Reconnaissance) - "Quan sát từ xa – Không để lại dấu vết"
Giống như việc bạn đứng bên kia đường, quan sát thực đơn dán trên cửa, đọc review trên mạng hoặc nhìn đồng phục nhân viên để đoán xem nhà bếp dùng thiết bị gì. Bạn không cần bước chân vào quán, và chủ quán cũng chẳng biết bạn đang theo dõi.
Cách làm:
- Soi HTTP headers để xem hệ thống dùng "giáp" bảo vệ nào.
- Đọc tài liệu API hoặc lùng sục mã nguồn trên GitHub.
- Thậm chí là đọc... tin tuyển dụng (Nếu họ tuyển kỹ sư giỏi về vLLM, chắc chắn hệ thống họ đang chạy bằng thứ đó).
Điểm cộng: Tuyệt đối bí mật, không lo bị "khóa tài khoản" ( do cơ chế rate limit) và có thể xem lại dữ liệu cũ.
Điểm trừ: Thông tin có thể đã lỗi thời. Có thể họ đã đổi đầu bếp nhưng chưa kịp gỡ bảng hiệu cũ.
2. Trinh sát chủ động (Active Reconnaissance) - "Tương tác trực tiếp – Đối mặt với sự thật"
Lúc này, bạn trực tiếp vào quán, gọi món và bắt đầu "hỏi xoáy đáp xoay" nhân viên phục vụ hoặc nếm thử để đoán công gia vị.
Cách làm:
- Hỏi AI những câu về sự kiện mới nhất để tìm Ngày cắt kiến thức (Knowledge cutoff).
- Dùng các câu lệnh (prompt) lắt léo để ép AI "khai" ra nó đang có những công cụ gì.
- Thử gửi các yêu cầu sai lệch để xem hệ thống bảo mật sẽ phản ứng ra sao.
Điểm cộng: Phản ánh đúng 100% thực tế đang diễn ra (Runtime truth). Bạn sẽ thấy được những tính năng ẩn mà tài liệu không hề nhắc tới.
Điểm trừ: Dễ bị phát hiện. Mọi câu hỏi của bạn đều lưu lại Nhật ký (Log). Nếu hỏi quá dồn dập, hệ thống sẽ báo động và "mời bạn ra khỏi quán".
🔄 Sự kết hợp hoàn hảo: "Lặng lẽ quan sát – Quyết liệt kiểm chứng"
Trong thực chiến, một chuyên gia không bao giờ chỉ dùng một cách. Họ sẽ phối hợp nhịp nhàng như một điệu nhảy:
- Giai đoạn 1 (Thụ động): Thu thập mọi manh mối công khai để phác thảo sơ đồ hệ thống mà không làm "kinh động" đến đội ngũ bảo trì.
- Giai đoạn 2 (Chủ động): Khi đã có giả định, họ mới tung ra các đòn thăm dò trực tiếp để xác nhận và tìm ra lỗ hổng thực tế.
🔍 "Bản đồ kho báu": Chúng ta tìm thấy gì ở mỗi lớp AI?
Mỗi thành phần trong hệ thống AI giống như một căn phòng có những "kẽ hở" riêng. Khi thực hiện trinh sát, đây là những "món hời" thông tin mà bạn có thể thu thập được:
🧠 1. Lớp Mô hình (Model Layer) – "Bộ não" đang nghĩ gì?
Đây là lớp lõi nhất. Trinh sát ở đây giúp ta hiểu được "tầm vóc" trí tuệ của AI.
Thông tin thu hoạch:
- Tên tuổi: Nó là GPT-4, Claude 3 hay Llama 3?
- Giới hạn: Nó có thể nhớ được bao nhiêu trang văn bản (Context window)? Nó giỏi tiếng Việt hay chỉ giỏi tiếng Anh?
- Trí nhớ: Nó biết đến sự kiện năm nào (Knowledge cutoff)? Nó có bị "cấm" nói về chủ đề nhạy cảm nào không?
- Kỹ thuật "mở khóa": Đưa ra các câu hỏi hóc búa, kiểm tra kiến thức về các sự kiện mới để xem AI "bí" ở đâu.
📚 2. Lớp RAG – "Thư viện" bí mật
Lớp này tiết lộ cách AI tra cứu dữ liệu riêng tư của tổ chức.
Thông tin thu hoạch:
- Cách lưu trữ: Họ dùng loại cơ sở dữ liệu vector nào (Pinecone, Milvus...)?
- Cách đọc sách: Mỗi đoạn văn bản được cắt nhỏ ra sao (Chunk size)? AI ưu tiên lấy thông tin cũ hay mới?
- Nguồn tin: AI đang lấy dữ liệu từ nội bộ công ty hay từ các trang web bên thứ ba?
- Kỹ thuật "mở khóa": Phân tích các đoạn trích dẫn mà AI trả về, thử nghiệm các câu hỏi có độ tương đồng cao để xem cách nó chọn lọc tài liệu.
🤖 3. Lớp Tác tử (Agent Layer) – "Cánh tay" thực thi
Đây là nơi AI tương tác với thế giới thực thông qua các công cụ.
Thông tin thu hoạch:
- Kỹ năng: AI này có quyền đọc file, gửi email hay chạy code không?
- Quyền hạn: Nó được phép làm gì và bị cấm làm gì (Permission boundaries)?
- Phản xạ: Khi gặp lỗi, nó sẽ tự sửa hay "đứng hình"?
- Kỹ thuật "mở khóa": Khai thác các mô tả công cụ (MCP Schemas) – giống như việc đọc "hướng dẫn sử dụng" mà nhà phát triển quên cất đi.
🏗️ 4. Infrastructure Layer – "Khung xương" hệ thống
Lớp này bao bọc bên ngoài, mang đặc điểm của cả ứng dụng web truyền thống và hệ thống AI hiện đại.
Thông tin thu hoạch:
- Địa chỉ: Các cổng kết nối (Endpoints) nằm ở đâu?
- Luật chơi: Bạn được hỏi bao nhiêu câu một phút (Rate limits) trước khi bị chặn?
- Dấu vết: Thông báo lỗi có hiện ra tên máy chủ hay phiên bản phần mềm đang dùng không?
- Kỹ thuật "mở khóa": Soi các dòng mã ẩn trong HTTP header, thử gửi các yêu cầu sai định dạng để xem hệ thống "than phiền" như thế nào.
🎯 Kết luận
Bài viết này mình đã liệt kê toàn bộ các Attack Surfaces trên hệ thống AI. Có thể thấy, 1 hệ thống AI không hoàn toàn là một "hộp đen" bí ẩn. Nó được xây dựng từ nhiều lớp, mỗi lớp đều có thể bị trích xuất thông tin. Đặc biệt, các giao thức như MCP, A2A vốn được tạo ra để minh bạch lại trở thành "con dao hai lưỡi" cho bảo mật.
Trong phần tiếp theo, mình sẽ thực hành trinh sát thụ động với HTTP headers và các endpoint /api/health – bạn sẽ bất ngờ vì chỉ với 2 phút, bạn có thể biết được model, vector database, và phiên bản ứng dụng mà không cần bất kỳ quyền truy cập nào.
#MayFest2026
All rights reserved