Code accesssecurity

15
CLR 4

Transcript of Code accesssecurity

Page 1: Code accesssecurity

CLR 4

Page 2: Code accesssecurity

Why Implement CAS?

Web App running with full trust

Malicious Code

File Upload

Page 3: Code accesssecurity

Assembly

Environment Variables

File Dialog

Printing

Page 4: Code accesssecurity

Internet

• File Dialog

• Isolated Storage File

• Security

• User Interface

• Printing

Local Intranet

• Environment Variables

• File Dialog

• Isolated Storage File

• Reflection

• Security

• User Interface

• DNS

• Printing

Nothing

Page 5: Code accesssecurity

Assembly

Application Directory

PublisherURL Site Zone Hash

Strong Name

Page 6: Code accesssecurity

Permission Set

Membership Condition

Code Group

Page 7: Code accesssecurity

Assembly Evidence

Code Group A Membership

Conditions

Code Group B

Membership Conditions

Code Group C

Membership Conditions

Page 8: Code accesssecurity

Assembly A X Assembly A

X Assembly A

X .NET 2.0

.NET 1.1

Page 9: Code accesssecurity

Permissions Check

Page 10: Code accesssecurity

Main

Foo

Bar

File Read

App Domain Permissions - Internet

App Domain Permissions – Full Trust

Page 11: Code accesssecurity

-Heterogeneous App domain not possible now

- Assemblies with lower trust level could upgrade

themselves to a higher trust level by calling partially trusted

assemblies

-App domains previously had to be loaded after CAS was in place.

Page 12: Code accesssecurity
Page 13: Code accesssecurity
Page 14: Code accesssecurity
Page 15: Code accesssecurity

Static Analysis Possible

Sandboxing Easier

No permission set overlap due to heterogeneous

app domains

Permission grant sets not machine dependent

Assembly with a lower trust level can not call an

assembly with higher trust level and upgrade