Mobile Agent là một chương trinh có khả năng di chuyển một cách tự trị từ nút mạng này sang nút mạng khác với những tính năng như tính tự chủ, tính di động, tính thích ứng, khả năng cộng tác nó thực hiện và xử lý những nhiệm vụ thay thế cho con người để đạt được mục tiêu được giao phó. Khi di chuyển, các Mobile Agent đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành. Khi các Agent giao tiếp và di chuyển sẽ có nhiều mối đe dọa liên kết với nhau cùng ảnh hưởng đến vấn đề an toàn bảo mật. Trong phần này sẽ cung cấp khái quát về phạm vi của các mối đe dọa đối phó với những người thiết kế Agent Platform và những người phát triển những ứng dụng dựa trên Agent.
3.1. Đe dọa sự an toàn bảo mật (Security Threats)
Khả năng đe dọa đối với sự bảo mật nói chung rơi vào 3 loại chủ yếu: sự phơi bày thông tin (disclosure of information), sự từ chối của dịch vụ (denial of service), sự sửa đổi làm sai lạc thông tin (corruption of information). Có nhiều cách khác nhau để khảo sát những sự đe dọa này chi tiết hơn khi chúng áp dụng đối với hệ thống Agent. Ở đây chúng ta chỉ dùng các thành phần (components) của một hệ thống Agent để phân loại sự đe dọa như là cách để nhận biết nguyên nhân và mục đích của một sự tấn công.
Có nhiều mô hình hiện có cho việc mô tả hệ thống Agent, tuy nhiên đối với vấn đề an toàn bảo mật này ta chỉ dùng một mô hình đơn giản bao gồm chỉ 2 thành phần chính: Agent và Agent Platform. Ở đây, một Agent gồm có mã nguồn (code) và thông tin trạng thái (state information) cần thiết để tiến hành một vài sự tính toán. Tính di động cho phép một Agent có thể di chuyển giữa các Agent Platform. Agent Platform cung cấp môi trường xử lý cho Agent hoạt động. Agent Platform mà ở đó một Agent được hình thành được xem như là Home Platform và thông thường Home Platform được xem như là môi trường tin cậy nhất cho một Agent mà nó tạo ra. Một hoặc nhiều hơn các host có thể bao gồm một Agent Platform và một Agent Platform có thể hổ trợ nhiều môi trường xử lý nơi mà các Agent có thể tác động lẫn nhau.
Bốn loại đe dọa được định nghĩa: đe dọa xuất phát từ sự tấn công của một Agent đến một Agent Platform, một Agent Platform tấn công một Agent, một Agent tấn công một Agent khác trong một Agent Platform và những thực thể khác tấn công vào hệ thống Agent. Trong đó loại cuối cùng bao gồm các trường hợp một Agent tấn công một Agent trên một Agent Platform khác và một Agent Platform tấn công vào các Agent Platform khác. Những sự tấn công này tập trung trước hết vào khả năng liên lạc của các Agent Platform để lợi dụng những tiềm năng không được bảo vệ. Loại đe dọa cuối cùng cũng bao gồm nhiều sự tấn công theo tập quán chống lại hệ điều hành bên dưới của Agent Platform.
3.1.1. Sự tấn công từ một Agent đến Agent Platform (Agent-to-Platform)
Agent-to-Platform mô tả sự nguy hiểm khi các Agent khai thác vấn đề bảo mật yếu ớt của một Agent nền (Agent Platform) hoặc có một sự tấn công chống lại một Agent Platform. Vấn đề này bao gồm: mạo danh (masquerading), từ chối dịch vụ (denial of service) và truy xuất bất hợp pháp (unauthorized access).
3.1.1.1. Mạo danh (masquerading)
Khi một Agent bất hợp pháp yêu cầu một yêu cầu sự nhận dạng (identity) của một Agent khác thì nó được gọi là mạo danh. Agent mạo danh có thể có tính chất của một Agent hợp pháp để cố lợi dụng truy xuất vào các dịch vụ (services) và tài nguyên (resources) để sử dụng một cách hợp pháp. Một Agent mạo danh có cũng như các Agent mạo danh khác cố gắng tránh lỗi khi hoạt
động và không muốn giữ trách nhiệm. Nói chung một Agent mạo danh thì nguy hiểm thực sự cho các Agent hợp pháp đã được thiết lập trong một sự kết nối giữa các Agent.
3.1.1.2. Từ chối dịch vụ (Denial of service)
Mobile Agent có thể mở cuộc tấn công từ chối dịch vụ bằng việc chi phối một số lượng lớn tài nguyên máy tính của Agent Platform. Những cuộc tấn công từ chối dịch vụ có thể được mở một cách cố ý bằng việc thực thi các kịch bản tấn công (attack scripts) để khai thác hệ thống dễ nguy hiểm hay không cố ý thông qua các lỗi của chương trình. Một Agent xấu có thể mang những đoạn mã nguy hiểm mà nó được thiết kế để gây sụp đổ các dịch vụ (services) trên Agent Platform, hoặc lấy những thông tin cho các Agent bất hợp pháp có thể truy xuất. Phụ thuộc vào mức độ truy xuất, Agent có thể tắt hoàn toàn (completely shut down) hay ngắt (terminate) Agent Platform.
3.1.1.3. Truy xuất bất hợp pháp (Unauthorized Access)
Cơ cấu điều khiển truy xuất (access control mechanisms) được dùng để ngăn chặn những người dùng hay những tiến trình (process) bất hợp pháp truy xuất vào các dịch vụ (services) hay tài nguyên (resources) mà chúng không có quyền truy xuất. Mỗi Agent khi đến một Agent Platform phải phụ thuộc vào chính sách bảo mật của Agent Platform. Việc áp dụng đúng cơ cấu điều khiển truy xuất là yêu cầu Agent Platform hay Agent trước tiên phải xác nhận (authenticate) sự nhận dạng (identity) của Agent trước khi nó được thực thi trên Agent Platform. Một Agent truy xuất tới Agent Platform và các dịch vụ của nó không có những thuộc tính xác thực có thể gây thiệt hại cho các Agent khác và cho chính Agent Platform đó. Trong một Agent Platform mỗi Agent sẽ đại diện một người dùng và tổ chức khác nhau phải được bảo đảm rằng các Agent đó không truy xuất đến việc đọc và ghi dữ liệu trong khi nó chưa có sự xác nhận chính xác, bao gồm cả việc truy xuất tới các dữ liệu thừa mà chúng có thể lưu trên bộ đệm (cache) hay trong các nơi lưu tạm khác.
3.1.2. Sự tấn công từ một Agent đến một Agent khác trong cùng một Platform (Agent to Agent)
Agent to Agent mô tả sự nguy hiểm khi các Agent khai thác vấn đề bảo mật yếu ớt của các Agent khác và tấn công chống lại các Agent khác. Vấn đề này bao gồm: Mạo danh (masquerading), tấn công từ chối dịch vụ (denial of service), truy xuất bất hợp pháp (unauthorized access), và từ chối quan hệ giao tiếp (repudiation).
3.1.2.1. Mạo danh (Masquerading)
Sự liên lạc giữa Agent với Agent có thể diễn ra trực tiếp giữa hai Agent hay có thể yêu cầu sự tham gia của Agent Platform và các dịch vụ Agent (Services Agent) trên Agent Platform đó cung cấp. Trong cả hai trường hợp trên, một Agent có thể mạo danh ID của nó để đánh lừa Agent kia trong khi chúng đang liên lạc với nhau. Một Agent thì cố tìm cách để Agent kia tin tưởng để nó
có thể đưa ra các thông tin cá nhân (private). Sự mạo danh một Agent khác có thể gây nguy hiểm cho cả hai Agent.
3.1.2.2. Từ chối dịch vụ (Denial of Service)
Agent có thể tấn công từ chối dịch vụ chống lại Agent khác. Ví dụ, một Agent liên tục gửi các tin nhắn (message) tới Agent khác hoặc gửi các spam Agent cùng với tin nhắn đến Agent khác, đến một lúc nào đó thì Agent nhận trở nên quá tải. Khi Agent đang bị gửi các spam thì nó có thể chọn các tin nhắn từ các Agent bất hợp pháp, khi đó các tác vụ yêu cầu một số xử lý bởi Agent hoặc liên lạc qua proxy của Agent. Nếu một Agent bị tấn công vào số chu kỳ của CPU thì nó lãng phí Agent Platform. Các Agent nguy hiểm cũng có thể cố ý phân tán sai hay mang các thông tin vô ít để cản trở các Agent khác trong tác vụ của Agent.
3.1.2.3. Sự từ chối quan hệ giao tiếp (Repudiation)
Sự từ chối quan hệ giao tiếp xảy ra khi một Agent tham gia vào giao tác (transaction) hay một sự kết nối (communication), sau đó đòi các giao tác hay các kết nối mà không bao giờ có được. Một trong hai nguyên nhân của việc từ chối quan hệ giao tiếp đó là một sự có tính toán hay ngẫu nhiên, sự từ chối quan hệ giao tiếp có thể dẫn đến những tranh chấp nghiêm trọng. Một Agent Platform không thể ngăn cản một Agent từ chối tham gia vào giao tác, nhưng Agent Platform có thể bảo đảm rằng có thể đủ mạnh để giải quyết các tranh chấp. Một Agent có thể từ chối tham gia vào một giao tác vì kết quả của một sự hiểu sai, điều này thì quan trọng cho các Agent và Agent Platform dính trong các giao tác duy trì các bảng ghi (records) để giúp cho việc giải quyết các mâu thuẫn.
3.1.2.4. Truy xuất bất hợp pháp (Unauthorized Access)
Nếu Agent Platform có cơ cấu điều khiển yếu hoặc không có, thì một Agent có thể giao tiếp trực tiếp với Agent khác bằng cách gọi các phương thức public của nó hay truy cập và sửa đổi dữ liệu (data) hay mã (code) của Agent. Việc sửa đổi mã (code) của một Agent là một kiểu tấn công đặc biệt nguy hiểm, vì khi đó hành vi của Agent có thể đã bị thay đổi so với lúc đầu. Một Agent có thể tìm kiếm được thông tin về các Agent khác đang hoạt động bằng cách dùng các dịch vụ Agent Platform để nghe trộm trên các liên lạc của chúng.
3.1.3. Sự tấn công từ Platform đối với Agent (Platform-to-Agent)
Loại tấn công này diễn tả một bộ các mối đe dọa mà trong đó các Agent Platform làm tổn thương đến sự an toàn của Agent. Phần này bao gồm các vấn đề: mạo danh (masquerading), tấn công từ chối dịch vụ (denial of service), nghe trộm (eavesdropping), và sửa đổi (alteration).
3.1.3.1. Mạo danh (Masquerade)
Một Agent Platform có thể mạo danh một Agent Platform khác để đánh lừa một Agent di động nào đó, để Agent di động tưởng rằng nó là đích đến của Agent đó. Một Agent Platform cũng
có thể giả dạng như một người thứ ba đáng tin tưởng (trusted third party) để có thể nhử các Agent dễ tin đến Agent Platform và khai thác thông tin nhạy cảm trên các Agent đó. Các Agent Platform mạo danh có thể gây nguy hiểm cả cho Agent và Agent Platform thực. Một Agent giả dang một Agent khác thì có thể nguy hiểm cho các Agent khác chỉ thông qua các thông điệp (messages) mà chúng trao đổi và các hoạt động do các tin nhắn đó gây ra, nhưng một Agent Platform nguy hiểm mà nó giả dạng một Agent Platform đã được xác thực (authorized) thì có thể gây ra nhiều nguy hiểm hơn là một Agent giả dạng. Sự nguy hiểm của một Agent Platform là việc thay đổi mã (code), trạng thái (state), hay dữ liệu của Agent.
3.1.3.2. Từ chối dịch vụ (Denial of Service)
Khi một Agent đi đến một Agent Platform, nó đợi Agent Platform thực thi các yêu cầu của nó một cách trung thực, cung cấp sự chỉ định hợp lý tài nguyên, và tuân theo đặc tính của sự thỏa thuận về dịch vụ. Tuy nhiên, một Agent Platform nguy hiểm có thể bỏ qua (ignore) các yêu cầu dịch vụ của Agent, hay không thực thi đoạn mã của Agent, hay thậm chí có ngắt (terminate) Agent mà không có thông báo. Các Agent trên Agent Platform khác chờ kết quả của một Agent không trả lời trên một Agent Platform nguy hiểm phải cẩn thận để tránh bị deadlock.
3.1.3.3. Nghe trộm (Eavesdropping)
Mối đe dọa của nghe trộm cổ điển gồm chặn (interception) và giám sát (monitoring) các thông tin riêng tư. Tuy nhiên, mối nguy hiểm của việc nghe trộm trên hệ thống Mobile Agent thì nghiêm trọng hơn bởi vì Agent Platform không những giám sát các kết nối liên lạc mà còn có thể giám sát mỗi chỉ dẫn thực thi bởi Agent, tất cả dữ liệu (data) không mã hóa hay public nó mang đến Agent Platform, và tất cả dữ liệu sau khi được sinh ra trên Agent Platform. Agent Platform có thể truy xuất đến mã (code), trạng thái (state) và dữ liệu (data) của Agent, vì thế các Agent đến (visiting Agent) phải thận trọng cho các sự kiện của mình, bởi vì điều này có thể làm tiết lộ các thuật toán độc quyền, các giao dịch riêng, các chiến lược đàm phán, hay các thông tin nhạy cảm khác. Thậm chí ngay khi Agent không trực tiếp để lộ các thông tin riêng, nhưng Agent Platform có thể suy ra từ các kiểu của dịch vụ yêu cầu và từ các kết nối liên lạc trên các Agent khác.
3.1.3.4. Sự sửa đổi (Alteration)
Khi một Agent đi đến một Agent Platform thì nó đang để lộ ra mã (code), trạng thái (state), và dữ liệu (data) của nó trên Agent Platform. Một Agent có thể đến nhiều Agent Platform dưới sự bảo vệ khác nhau trong suốt chu trình của nó, vì thế các Agent Platform phải bảo đảm tính toàn vẹn về mã (code), trạng thái (state), và dữ liệu (data) của Agent. Một Agent Platform nguy hiểm phải được ngăn cản việc sửa đổi mã nguồn, trạng thái và dữ liệu của Agent.
3.1.4. Những thực thể khác tấn công vào hệ thống Agent Platform (Other-to-Agent Platform)
Sự tấn công này diễn tả một bộ các mối đe dọa mà trong đó các thực thể bên ngoài bao gồm các Agent và Agent Platform đe dọa đến sự bảo mật của Agent Platform. Các mối đe dọa là: Mạo dạnh (masquerading), từ chối dịch vụ (denial of service), truy xuất bất hợp pháp (unauthorized access), và sao chép và truyền lại (copy and replay).
3.1.4.1. Mạo danh (Masquerade)
Các Agent có thể yêu cầu các dịch vụ trên Agent Platform kể cả từ xa và trên cục bộ. Một Agent trên một Agent Platform từ xa có thể giả dạng như một Agent khác và yêu cầu những dịch vụ và tài nguyên cho mình ngay khi nó chưa được chứng thực. Các Agent giả mạo như các Agent khác có thể làm nhiệm vụ liên kết với các Agent Platform nguy hiểm để lừa một Agent Platform từ xa khác hay chúng có thể hoạt động riêng lẻ. Một Agent Platform từ xa cũng có thể giả dạng một Agent Platform khác và lừa các Agent Platform hay các Agent khác.
3.1.4.2. Truy xuất bất hợp pháp (Unauthorized Access)
Các user, process và các Agent từ xa có thể yêu cầu các tài nguyên cho mình mà không chứng thực. Truy xuất từ xa tới Agent Platform và host thì bản thân nó cũng phải được bảo vệ cẩn thận, vì các sự các kịch bản (scripts) tấn công có sẵn trên Internet có thể làm sụp đổ hệ điều hành và chiếm quyền điều khiển tất cả các tài nguyên. Thuộc tính quản trị từ xa của Agent Platform hay chính sách bảo mật thì có thể mô tả cho người quản trị điều này thì cho các Agent Platform phân tán, nhưng việc cho phép quản trị từ xa có thể làm cho hệ thống account hay session của người quản trị là mục tiêu cho cuộc tấn công.
3.1.4.3. Từ chối dịch vụ (Denial of Service)
Các dịch vụ trên Agent Platform có thể được truy cập cả từ xa và trên cục bộ. Các dịch vụ Agent cung cấp bởi sự kết nối Agent Platform và inter-Platform có thể bị phá vỡ bởi các tấn công từ chối dịch vụ phổ biến. Các Agent Platform cũng rất dễ bị ảnh hưởng do các tấn công từ chối dịch vụ trên hệ điều hành hay các giao thức kết nối.
3.1.4.4. Sao chép và truyền lại (Copy and Replay)
Mỗi khi Mobile Agent di chuyển từ một Agent Platform này đến Agent Platform khác thì càng làm lộ ra các vấn đề về bảo mật. Một ai đó muốn chặn một Agent hay Agent message, trên đường di chuyển cố gắng copy Agent hay Agent message và nhân bảng truyền lại nó. Thí dụ, người ta có thể chặn bắt một Agent “buy order” và replay nó nhiều lần. Người ta có thể chặn bắt một Agent hay Agent message sau đó copy và replay nó.
3.2. Những yêu cầu về an toàn bảo mật (Security Requirements)
Các người dùng trong hệ thống mạng máy tính có bốn yêu cầu bảo mật chính sau:sự cẩn mật (confidentiality), tính toàn vẹn (integrity), tính sẵn sàng (availability), vàtrách nhiệm giải trình (accountability). Các người dùng của Agent và Mobile Agent cũng có các yêu cầu bảo mật giống như vậy
3.2.1. Sự cẩn mật (Confidentiality)
Mọi dữ liệu được chứa trên Agent Platform hay được mang theo bởi một Agentphải được giữ nguyên tính cẩn mật. Agent Frameworks phải bảo đảm rằng sự liên lạcbên trong hoặc ngoài Agent Platform phải giữ nguyên tính cẩn mật.
Những kẻ nghe trộmcó thể lấy thông tin về các hoạt động của một Agent không chỉ từ nội dung của thông điệp (message) được trao đổi mà chuyển từ các luồng tin nhắn (message flow) từ một Agentđến một hay nhiều Agent khác. Việc giám sát các luồng tin nhắn có thể suy luận ra đượccác thông tin có ích mà không cần phải truy xuất vào nội dụng các tin nhắn thực đó. MộtAgent nghe trộm có hay một thực thể ngoài (external entity) có thể dùng các thông tinnày để kiếm lợi bất chính. Các Agent có thể dò tìm ra ngôn ngữ kết nối Agent (Agent Communication Language-ACL) trong cuộc đàm thoại giao dịch giữa các Agent khác, từđó có thể suy ra nghĩa xa hơn từ cuộc đàm thoại đó.
Các Agent di động (Mobile Agent) cũng muốn giữa kín vị trí của chúng. CácMobile Agent có thể kết nối thông qua một proxy của nó nếu nó muốn che giấu sự hiệndiện trên Agent Platform. Các Agent phải được phép quyết định nếu sự hiện diện củachúng được công khai một cách sẵn sàng thông qua sự chỉ dẫn của Agent Platform, vàAgent Platform có thể buộc Agent phải tuân theo các chính sách bảo mật khác nhau.
3.2.2. Tính toàn vẹn (Integrity)
Agent Platform phải bảo vệ các Agent không được phép sửa đổi mã (code), trạngthái (state) và dữ liệu (data) của Agent. Agent tự nó không thể ngặn cản các AgentPlatform nguy hiểm can thiệp vào mã (code), trạng thái (state) hay dữ liệu (data), nhưngAgent có thể theo dõi được sự xâm hại này. Sự hoạt động an toàn của hệ thống MobileAgent cũng phụ thuộc vào tính toàn vẹn của chính các Agent Platform cục bộ và từ xa.
Một host nguy hiểm có thể dễ dàng làm hại đến tính toàn vẹn của Mobile Agent trongkhi nó đến một Agent Platform ở xa. Một Agent Platform nguy hiểm có thể làm thay đổinhỏ trong luồng thực thi mã (code) của Agent, và làm thay đổi đến kết quả tính toán màđiều này thì rất khó phát hiện.
Một Agent Platform nguy hiểm cũng có thể gây trở ngạicho các Agent trong việc liên lạc trao đổi thông tin.Các hệ thống điều khiển truy xuất phải được đưa ra để bảo vệ tính toàn vẹn(integrity) của Agent Platform tránh các user truy cấp bất hợp pháp. Các việc cốsửađổi hay xâm hại đến Agent Platform bởi các user hợp pháp hay bất hợp pháp đều làmtăng khó khăn cho Mobile Agent có thể được phát hiện và loại bỏ.
3.2.3. Trách nhiệm giải trình (Accountability)
Mỗi xử lý (process), người dùng, hay Agent trên Agent Platform phải có tráchnhiệm cho các hoạt động của mình. Để giữ trách nhiệm đó thì mỗi xử lý, người dùng,hay Agent phải có ID duy nhất, được xác thực, và được kiểm tra. Thí dụ, các hoạt độngmà chúng phải có trách nhiệm bao