Serwisy internetowe.net. Informatyka, sem. 7. Bezpieczeństwo (wybrane elementy)

Podobne dokumenty
Bezpieczenstwo aplikacji

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Wprowadzenie do Active Directory. Udostępnianie katalogów

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

INFORMATOR TECHNICZNY WONDERWARE

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

Silent setup SAS Enterprise Guide (v 3.x)

INFORMATOR TECHNICZNY WONDERWARE

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Bezpiecznie i rozsądnie z Project Server 2013, czyli SharePoint Permission Mode vs Project Server Mode Bartłomiej Graczyk

Ustawienia personalne

- w związku ze stwierdzoną usterką właściciel firmy wezwał serwis komputerowy w celu jej zdiagnozowania i usunięcia,

Systemy operacyjne. Zarządzanie dostępem do zasobów przy wykorzystaniu grup

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. Asix.Evo. Przeglądarkowa wersja aplikacji Asix.Evo znane problemy. Pomoc techniczna

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP

Kontrola dostępu do kodu i własności intelektualnej w Zintegrowanej Architekturze. Copyright 2012 Rockwell Automation, Inc. All rights reserved.

Sterowniki urządzeń zewnętrznych w pracy lokalnej i sieciowej w programach firmy InsERT dla Windows

BROADBAND INTERNET ROUTER- INSTRUKCJA OBSŁUGI

Administrowanie systemami sieciowymi Laboratorium 3

Tomasz Greszata - Koszalin

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

MS Visual Studio 2005 Team Suite - Performance Tool

Przydziały (limity) pojemności dyskowej

Bezpieczne uruchamianie apletów wg

Wstęp... ix. 1 Omówienie systemu Microsoft Windows Small Business Server

Podpisywanie i bezpieczne uruchamianie apletów wg

Projektowanie bezpieczeństwa sieci i serwerów

Uproszczona instalacja SAS Forecast Server 4.1

Laboratorium Instalacja systemu Windows XP

DLA DREAMBOX & FLASHWIZARD

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Załącznik nr 2. Przewodnik instalacyjny systemu e-broker Technologiczny v.1.0. Część 4 - Narzędzia informatyczne przeznaczone dla ośrodków innowacji

Zespól Szkół Ponadgimnazjalnych Nr 17 im. Jana Nowaka - Jeziorańskiego Al. Politechniki 37 Windows Serwer 2003 Instalacja

E-SODA Instrukcja instalacji dla wersji beta. Wersja instrukcji

1. CZYM JEST SERIALIZACJA

JPK Jednolity Plik Kontrolny.

Konfiguracja dostępu do zasobów

Autodesk Desktop Subscription Instrukcja Instalacji

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

IBM SPSS Statistics Wersja 23. Mac OS Instrukcja instalacji (licencja autoryzowanego użytkownika)

Procedury techniczne modułu Forte Kontroling. Ustawienia IIS

Administracja i programowanie pod Microsoft SQL Server 2000

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Zasady grupy (GPO) Windows Server 2008 R2. Przykładowa grupy.

Program PortaScan wersja Instrukcja obsługi

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

AM 331/TOPKATIT Wsparcie techniczne użytkowników i aplikacji w Windows 7

Aplikacje RMI Lab4

Temat: Windows XP Ustawienia kont użytkowników

Kancelaria Prawna.WEB - POMOC

JPK Jednolity Plik Kontrolny.

Rejestracja użytkownika Bentley Często zadawane pytania techniczne

SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie

Konfiguracja połączenia VPN w systemie Windows 7 z serwerem rozgrywki wieloosobowej gry Medal Of Honor: Wojna na Pacyfiku: Pacyfik.

1. Zakres modernizacji Active Directory

Dokumentacja techniczna API systemu SimPay.pl

Ewidencja Wyposażenia PL+

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

Laboratorium - Konfiguracja zabezpieczeń sieci bezprzewodowej

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Generacja paczki instalacyjnej F-Secure Client Security/Client Security Premium

Połączenie sieciowe: Jak dodać wyjątki do zapory Windows (Windows Firewall)

Serwer Sieci Web (IIS)

INSTRUKCJA OBSŁUGI DLA SIECI

Instalacja pełnej wersji (development i/lub Windows runtime) oprogramowania Wonderware InTouch Machine Edition

Praca w sieci z serwerem

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

Egzamin : zabezpieczanie systemu Windows Server 2016 / Timothy Warner, Craig Zacker. Warszawa, Spis treści

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

Bezpieczne udostępnianie usług www. BłaŜej Miga Zespół Bezpieczeństwa PCSS

Konwersja maszyny fizycznej na wirtualną.

Instrukcja konfiguracji funkcji skanowania

Użytkownicy, uprawnienia, role w SQL Server (W oparciu o SQL Server 2008R2 Books Online)

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

Laboratorium Systemów Operacyjnych

Pomoc dla usługi GMSTHostService. GMSTHostService. Pomoc do programu 1/14

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Zalecana instalacja i konfiguracja Microsoft SQL Server 2016 Express Edition dla oprogramowania Wonderware

T: Instalacja systemu Windows 2008 Serwer w maszynie wirtualnej VirtualBox.

Polityka ochrony danych osobowych w programie Norton Community Watch

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Konfiguracja kolejności interfejsów sieciowych w Windows 10 dla oprogramowania Wonderware

Przed restartowaniem routera odłącz wszystkie urządzenia podłączone pod porty USB.

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

Programowanie w Ruby

IBM SPSS Statistics Wersja 25. Windows Instrukcja instalacji (licencja autoryzowanego użytkownika) IBM

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Programowanie w Ruby

POLITYKA PRYWATNOŚCI I WYKORZYSTYWANIA PLIKÓW COOKIES W SERWISIE INTERNETOWYM 1. Postanowienia ogólne

Transkrypt:

Serwisy internetowe.net Informatyka, sem. 7 Bezpieczeństwo (wybrane elementy) 1

Microsoft.NET Security The Microsoft.NET Framework code access security oraz role-based security określa uprawnienia kodu z różnych źródeł, do czego jest kod lub użytkownicy uprawnieni code access i role-based wykorzystują podobne mechnizmy i infrastrukturę ułatwione zrozumienie "drugiego" mechanizmu 2

Powiązane koncepcje (elementy bezpieczeństwa) Security Permissions CLR zezwala kodowi (managed) na uruchomienie tylko tych akcji, do których ma uprawnienia bazuje na obiekcie Permissions Type Safety and Security dostęp do pamięci, do której ma uprawnienia Security Policy konfigurowalny zbiór zasad na których CLR bazuje ustalany przez administratora kod wykonuje operacje i dostaje się do zasobów, do których ma uprawnienia 3

Powiązane koncepcje (elementy bezpieczeństwa) Principal reprezentuje identyfikację i rolę użytkownika i działa w jego imieniu Authentication wykrywanie i weryfikowanie identyfikacji użytkownika (principal), user credentials, weryfikacja credentials Authorization określenie, czy użytkownik (principal) posiada uprawnienia do określonej operacji występuje po autentykacji, wykorzystuje informacje z autentykacji 4

Security Permissions Code Access Permissions reprezentuje dostęp do chronionych zasobów lub wykonanie operacji Identity Permissions rodzaj code access permission wskazuje, że kod posiada credentials do operacji Role-Based Security Permissions dostarcza mechanizmu sprawdzenia, czy użytkownik (lub jego agent/reprezentant) posiada identyfikację lub jest członkiem grupy PrincipalPermission - jedyna "implementacja" rolebased security 5

Code Access Security Wykonanie kodu zależnie od zaufania, które pokłada się do użytkownika i do pochodzenia kodu. np. kod z internetu, z intranetu, itd Ukierunkowany na ochronę zasobów przed kodem.net, nie chroni kodu przed użytkownikami np. użytkownik może obejść to zabezpieczenie skopiować kod na dysk albo uruchomić kod niezarządzany 6

Elementy CAS Code group grupuje kod zależnie od właściwości, typowo zależnie od pochodzenia (internet, intranet) przypisanie do grupy zależy od "membership condition" (warunek uczestnictwa) i "evidence" (dowody) CLR zbiera evidence (np. dostawca kodu, podpisy, strong name, URI pochodzenia, itd) Dodanie code group (caspol.exe, Mscorcfg.msc, podklasy CodeGroup (np. FileCodeGroup)) Permissions caspol.exe -listdescription, caspol.exe -listgroups akcje, które są zezwolone dla code group, np. dostęp do interface użytkownika, dostęp do dysku, itd. 7

Membership condition Warunek uczestnictwa kodu w grupie Każda grupa ma jeden warunek przypisania Rodzaje membership conditions Zone (region systemu), Site (strona www), Strong name (unikatowa nazwa), Publisher (dostawca), URL,..., All code, Custom (user specified) Code groups arranged hierarchically (All code ->...) Wartości dla Zone MyComputer, Internet, Intranet, Trusted, Untrusted (Windows Security Center => Internet options) 8

http://msdn.microsoft.com/en-us/library/aa302369.aspx 9

Evidence Evidence (dowody) - zazwyczaj określane na podstawie podpisów i pochodzenia kodu może być potencjalnie cokolwiek, obiekty rozpoznawane przez mechanizm bezpieczeństwa Polityka bezpieczeństwa składa się z grup kodu assembly jest członkiem grupy, jeżeli spełnia warunki (membership condition) Evidence - zbiór danych wejściowych dla polityki bezpieczeństwa w celu określenia, do jakiej code group należy assembly 10

Evidence - rodzaje Host evidencee - dostarczana przez komputer (host), może być dostarczona tylko przez komputer, który otrzymał uprawnienie ControlEvidence. Dowód pochodzenia kodu i podpisów cyfrowych. Typowo zawiera: Url, Site oraz Zone. Assembly evidence - część samego asembly. Deweloperzy mogą dodać własne evidence do assembly. Możliwe do dodania tylko w czasie wytwarzania assembly, przed podpisem. Domyślnie polityka bezpieczeństwa ignoruje assemblyevidence. 11

caspol - Code Access Security Policy tool Demo caspol.exe -resolvegroup assembly.dll -resolvegroup http://localhost/.../... (policy levels: Enterprise, Machine, User) 12

Code Access Permissions Po przypisaniu do grupy, system sprawdza, jakie uprawnienia posiada kod (grupa) Polityka bezpieczeństwa sprawdza, jakie akcje może wykonać kod Przykłady klas Permission: DnsPermission, FileIOPermission, UIPermission, MessageQueuePermission, PrintingPermission... Możliwość określenia bardziej szczegółowych uprawnień (np. poziom dostępu do pliku) 13

Code Access Permissions Dostęp do zasobów powinien być otoczony blokiem try-catch np. co zrobić, gdy aplikacja nie może czytać pliku (zakończyć, czy zrobić inną akcję) Assembly jest przypisany do wielu grup kodów, końcowe uprawnienie (permissions) są unią wszystkich grup (każda grupa może rozszerzać uprawnienia) Identity permissions - grupa permissions związana z assembly i jego kodem nie może być przekazywana dalej (grant option) PublisherIdentityPermission, SiteIdentityPermission, StrongNameIdentityPermission, URLIdentityPermission, ZoneIdentityPermission 14

Predefiniowane grupy uprawnień (Permission sets) FullTrust - bez ograniczeń SkipVerification - brak weryfikacji Execution - możliwość uruchomienia ale bez dostępu do zasobów Nothing - brak uprawnień, brak możliwości uruchomienia LocalIntranet - domyślne ustawienia lokalnego intranetu Internet - domyślne ustawienia internetu, dosyć restrykcyjne, nieznane pochodzenie kodu Everything - nadaje wszystkie uprawnienia poza pominięciem weryfikacji 15

Sprawdzenie uprawnień demo caspol.exe -resolveperm assembly.dll caspol.exe -resolveperm http://localhost/assembly.dll Uruchomienie aplikacji z "internetu" Dodanie localhost do trusted sites IIS hostuje aplikacje, która zostaje uruchomiona Możliwość uruchomienia kodu, ale ustawienia.net dla internet - brak dostępu do dysku. 16

Policy Levels Możliwość określenie uprawnień dla Machine, Enterprise, User, Application domain Uprawnienia muszą być częścią wspólną uprawnień (inaczej niż dla grup) np. user i enterprise są FullTrust machine ogranicza dostęp caspol -user -listgroups caspol -enterprise -listgroups 17

Security API System.Security.Permissions System.Security.Policy System.Security.Principal Klasy ważniejsze CodeAccessPermission, FileIOPermission, SecurityPermission,... UnauthorizedAccessException Class PermissionSet Evidence Narzędzia systemowe: caspol, Mscorcfg.msc 18

Demanding (żądanie) uprawnień CodeAccessPermission.Demand Method This method is typically used by secure libraries to ensure that callers have permission to access a resource. For example, a file class in a secure class library calls Demand for the necessary FileIOPermission before performing a file operation requested by the caller. The permissions of the code that calls this method are not examined; the check begins from the immediate caller of that code and proceeds up the stack. The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. Demand succeeds only if no SecurityException is raised. UnauthorizedAccessException 19

Żądanie uprawnień Demo Imperatywne, deklaratywne Ustawienia dla assembly np. VisualStudio Properties => Security Atrybuty (deklarative) [assembly:fileiopermission(securityaction.requestmini mum, ViewAndModify="c:/")] dla klasy: [FileIOPermission(SecurityAction.Assert, Read="c:/")] Jako kod (imperative) fileiopermission.demand(); 20

Powody jawnego definiowania wymaganych uprawnień Jeżeli assembly wymaga uprawnień, to lepiej wiedzieć to na początku Otrzymanie tylko tych uprawnień, które są wymagane. Mniejsze ryzyko niewłaściwego użycia przez inne oprogramowanie Zażądanie mniejszej ilości uprawnień zwiększa szansę, że oprogramowanie wykona się poprawnie 21

Żądanie uprawnień Kategorie wymagań na uprawnienia: Minimum - wymagane, aby oprogramowanie uruchomiło się Optional - opcjonalne, nie wymagane Refused - uprawnienie nie ma być nadane Demo permcalc -show -stacks -cleancache Assembly.exe 22

Żądanie uprawnień, cd. SecurityAction - enum z akcjami Demand, Assert, Deny (class, method) RequestMinimum, RequestOptional, RequestRefuse (assembly) abstract CodeAccessPermission Defines the underlying structure of all code access permissions. 23

Denying, asserting permissions (zakazywanie, zezwalanie) Demo CodeAccessPermission permission =... permission.deny();... FileIOPermission permission =... permission.assert(); Wywołanie kodu "bezpiecznego" w ramach kodu, który nie wymaga pełnego bezpieczeństwa 24

Uwagi do.net security Nie wpływa na bezpieczeństwo kodu niezarządzanego Jeżeli użytkownik przekopiuje plik na lokalny komputer, to będzie uruchomiony z pełnymi uprawnieniami (dla tego użytkownika) Nie zabezpiecza przez zagrożeniami ze strony skryptów, natywnych.exe itd. Powyższe zagrożenia są w gestii ochrony systemu Windows 25

Katalogi z definicjami uprawnień <Windows>\Microsoft.NET\Framework\<version >\Config\enterprise.config... Zalecane używanie caspol albo.net Framework Configuration MMC 26

Zarządzanie grupami i uprawnieniami Jeżeli kod powinien się wykonać, ale ma za mało uprawnień: Zmniejszenie zabezpieczeń - nie zalecane, zwłaszcza dla internetu Przeniesienie aplikacji, np. na dysk lokalny z sieciowego Zastosowanie strong name i zdefiniowanie nowej grupy kodu dla tego strong name 27

Zmiana uprawnień grup i zarządzanie grupami kodów caspol.exe -listgroups (numer grupy) caspol.exe -chggroup 1.2 FullTrust caspol.exe -addgroup 1.3 -site www.pg.gda.pl FullTrust Zmiana w Centrum Zabezpieczeń Windows (wyłączenie zabezpieczeń, dodanie np. localhost do zaufanych domen) caspol.exe -addgroup 1.2 -url file:\\lokalnyintranet/* FullTrust caspol.exe -remgroup 1.5.10 28

Włączenie / wyłączenie security Zresetowanie ustawień caspol.exe -reset caspol.exe -security off caspol.exe -security on 29

Bibliografia Professional C# 2005 with.net 3.0 MSDN bychristian Nagel, Bill Evjen, Jay Glynn, Morgan SkinnerandKarli Watson http://msdn.microsoft.com/en-us/library/z164t8hs%28v=vs.90%29.aspx http://msdn.microsoft.com/en-us/library/5ba4k1c5%28v=vs.90%29.aspx http://msdn.microsoft.com/en-us/library/system.security.aspx http://msdn.microsoft.com/en-us/library/c5tk9z76%28v=vs.90%29.aspx http://msdn.microsoft.com/en-us/library/dc8ztsad%28v=vs.90%29.aspx http://msdn.microsoft.com/enus/library/system.security.codeaccesspermission.aspx http://msdn.microsoft.com/enus/library/system.security.policy.filecodegroup.aspx 30