Security - Telenor
Security - Telenor
Security - Telenor
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