03.12.2012 Views

Security - Telenor

Security - Telenor

Security - Telenor

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

42<br />

ating system(s) and/or platform to enforce access<br />

restrictions placed on the agents.<br />

The second attack is not necessarily halted by a<br />

virtual machine-based platform, although such a<br />

platform can thwart a selection of direct attacks.<br />

The problem is that the agent may try to do<br />

actions allowable within its platform environment,<br />

that still affect host data external to the<br />

platform in accordance with the platform’s policy,<br />

but in violation of the agent’s policy.<br />

EXAMPLE 7. Consider a spreadsheet which<br />

includes an embedded agent in the form of<br />

macros for a computation. A virtual machine<br />

executing those macros might allow write operations<br />

to one particular file on the host. An<br />

attacker could exploit this by letting the original<br />

embedded agent itself be harmless, while the<br />

output to the file is a spreadsheet with macros<br />

that make up a malicious agent. Such an agent<br />

might subsequently be executed with the permissions<br />

of a local user on the host. This type of<br />

attack is also related with the problems concerning<br />

legitimate usage of resources.<br />

The third type of attack can in part be thwarted<br />

using systematic trust management. Discerning<br />

intentionally falsified information from wrong<br />

information given in good faith is at best very<br />

difficult, and undecideable, as it encompasses<br />

at least one problem with inherent ambiguity<br />

(computers are generally not particularly good<br />

at deducing intent). Farmer et al. give examples<br />

of this type of attacks in [5].<br />

The fourth attack is usually stopped by protocols<br />

constructed to take such conditions into account,<br />

or by restricting the communication of the agent<br />

(as is already done with Java applets).<br />

6.2 Platform Attacks<br />

Platforms can attempt to compromise the<br />

integrity of an agent by<br />

1. modifying data carried by the agent or in the<br />

agent’s workspace;<br />

2. manipulating the agent’s execution; or<br />

3. not properly protecting the agent’s workspace.<br />

The novel attack here is the manipulation of execution.<br />

Not only must the agent’s data be protected,<br />

but the agent’s execution must also be<br />

protected. Even if an agent could be executed in<br />

an encrypted form, this would still be a problem<br />

– the only difference would be that the platform<br />

would not know what it was doing. In effect,<br />

some sequence σ = σ 1 σ 2 ... σ n of actions must<br />

not be interfered with, or any interference must<br />

be detectable.<br />

6.2.1 Execution Traces<br />

Vigna proposes in [9] a protocol, which in combination<br />

with a trusted third party, enables the<br />

sender to check the execution of an agent upon<br />

completion. The protocol bases itself upon a system<br />

where each platform records the execution<br />

trace of an agent from the agent’s execution on<br />

that platform. An execution trace is a series of<br />

pairs (n,s), where n uniquely identifies a particular<br />

action in the agent, and s records changes in<br />

internal variables as a result of the execution of<br />

n. In a sense this is nothing more than specifying<br />

the format of an “action”, as mentioned earlier,<br />

so these traces can also be considered executions<br />

in the sense mentioned in Section 2.<br />

The protocol itself consists of messages prior to,<br />

and after, the agent’s execution which transmit<br />

data about the agent and its execution. After an<br />

execution, the agent’s sender should be able to<br />

check an execution trace T p by using the data in<br />

T p to simulate the complete execution of the<br />

agent locally, and compare the outcome to that<br />

provided by the remote platform. Obviously, this<br />

check is only done when there is a suspicion that<br />

the remote platform somehow has tried to compromise<br />

the agent’s computation.<br />

Denote by E K (data) the symmetric encryption of<br />

“data” by encryption function E using key K.<br />

Denote by X s (data) the “data” signed with X’s<br />

private key. Denote by H(data) the hash value<br />

of “data”. Write the identity of the trusted third<br />

party as T. The notation A → m B:data denotes the<br />

transmission of message m from A to B, where<br />

message m consists of “data”.<br />

Let A be the sender of the agent in question.<br />

Denote by B 1 , ..., B n the list of platforms the<br />

agent is to visit. For the initial platform, the<br />

following steps initiate the protocol:<br />

1.<br />

A m1<br />

→ B1 :<br />

As(A, B1,EKA(p, SA),As(A, iA,tA,H(p), T ))<br />

m2 2. B1 → A :<br />

B1s(B1,A,iA,H(m1),M)<br />

The field A s (A, i A , t A , H(p), T ) will also be written<br />

agent A , and be referred to as the agent<br />

token. The contents of the messages is given<br />

in Table 1.<br />

Telektronikk 3.2000

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!