Bezpieczenstwo aplikacji



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

Instrukcja laboratoryjna cz.3

Programowanie współbieżne i rozproszone

Materiały do laboratorium MS ACCESS BASIC

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function:

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Opracował: Jan Front

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

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

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

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

Aplikacje w środowisku VBA. Visual Basic for Aplications

Modelowanie i Programowanie Obiektowe

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

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

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Aplikacje RMI

Wywoływanie metod zdalnych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Rejestr HKEY_LOCAL_MACHINE

Builder (budowniczy) Cel: Przykład:

ZiMSK. VLAN, trunk, intervlan-routing 1

Programowanie MorphX Ax

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

2016 Proget MDM jest częścią PROGET Sp. z o.o.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Instrukcja laboratoryjna nr.4

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Programowanie obiektowe

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Paradygmaty programowania

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

ZARZĄDZANIE I INŻYNIERIA PRODUKCJI

SZKOLENIE TWORZENIE SYSTEMÓW

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Typy, klasy typów, składnie w funkcji

Specyfikacja API Runtime BAS 3.0

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Modele uwierzytelniania, autoryzacji i kontroli dostępu do systemów komputerowych.

Rozwiązanie Compuware dynatrace

Technik mechanik

Historia modeli programowania

Podpisywanie i bezpieczne uruchamianie apletów wg

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Wzorce projektowe. dr inż. Marcin Pietroo

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

2. Przygotowanie stanowiska komputerowego i urządzeń peryferyjnych do pracy. Słuchacz powinien poznać:

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Programowanie współbieżne i rozproszone

Oracle PL/SQL. Paweł Rajba.

Podział obowiązków, a kontrola dostępu centralne zarządzanie użytkownikami i ich uprawnieniami.

Tworzenie i wykorzystanie usług sieciowych

Podstawy Programowania Obiektowego

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Szkolenie autoryzowane. MS Projektowanie i wdrażanie infrastruktury serwerowej

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Serwery LDAP w środowisku produktów w Oracle

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

java.util.* :Kolekcje Tomasz Borzyszkowski

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Testowanie oprogramowania

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

System RFID SMART CONTROL OS EVB

Wykład I. Wprowadzenie do baz danych

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Nowe wymagania dla systemów informatycznych wynikające z ogólnego rozporządzenia o ochronie dany

Programowanie obiektowe

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

4. Procesy pojęcia podstawowe

Technologie obiektowe

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

ECDL Podstawy programowania Sylabus - wersja 1.0

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, r.

Tablice. Jones Stygar na tropie zmiennych

Słowa kluczowe jak góry lodowe

ZiMSK NAT, PAT, ACL 1

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Win Admin Replikator Instrukcja Obsługi

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Wykład 9: Polimorfizm i klasy wirtualne

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Transkrypt:

Języki Programowania na Platformie.NET (część 2) http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl

Bezpieczeństwo ogólne koncepcje sandboxing zbiór praw jest określany poprzez evidence prawa (permissions) egzekwowanie praw (enforcements)

Bezpieczeństwo w.net Framework 4.5 Wyróżniamy dwa rodzaje kodu: critical code kod, który może wykonywać uprzywilejowane akcje, transparent code nie może powyższych, w szczególności wykonuje czynności w ramach praw, które posiada i nie może wykonywać, dziedziczyć czy zawierać kodu krytycznego. (Możliwość debugowania z ograniczonymi prawami.)

Bezpieczeństwo w.net Framework 4.5 Mechanizm zabezpieczeń stosowany na platformie.net opiera się na modelu bezpieczeństwa opartym na rolach RBS (role based security) oraz na uprawnieniach kodu CAS (code access security) Mechanizm RBS bazuje na uprawnieniach użytkownika określonych na poziomie systemu operacyjnego, wynikających z jego uprawnień indywidualnych oraz z przynależności do grupy Sprawdzenie tożsamości użytkownika i zweryfikowanie jego uprawnień do korzystania z kodu realizuje się na dwa sposoby: deklaratywny (declarative security), za pomocą atrybutów zabezpieczeń dodanych do klas i metod programowy (imperative security), polegający na dynamicznym tworzeniu zestawu uprawnień, które są następnie sprawdzane w trakcie wykonywania kodu

Bezpieczeństwo w.net Framework 4.5 Brak wystarczających uprawnień do wykonania kodu powoduje zgłoszenie wyjątku powoduje zgłoszenie wyjątku SecurityException Metoda deklaratywna jest prostą, statyczną metodą umożliwiającą określenie niezbędnych uprawnień dla całej klasy lub metody dla użytkowników/grup użytkowników, których role są powszechnie znane W celu kontrolowania uprawnień na poziomie konkretnych fragmentów kodu lub wtedy, gdy chcemy uwzględnić dodatkowe warunki, to należy zastąpić podejście deklaratywne podejściem programowym

CAS (Code Access Security) Mechanizm CAS pozwala na kontrolowanie sposobu działania aplikacji niezależnie od uprawnień użytkownika (np. pozwala sprawdzić, czy aplikacja ma wystarczające prawa do korzystania z zasobów albo weryfikować, czy nie posiada ona większych uprawnień niż są jej konieczne) definiuje prawa i zbiory praw, które reprezentują możliwości dostępu do zasobów systemowych umożliwia wykonywanie kodu z wybranym poziomem bezpieczeństwa sprawdza czy kod nadrzędny (wywołujący) posiada prawa pozwalające wykonać zadaną akcję

CAS (Code Access Security CLR pozwala na dostęp do zasobów systemowych (np. plików, rejestru systemowego, dziennika zdarzeń, gniazd sieciowych) i wykonanie na nich żądanych operacji tylko wtedy, gdy ma odpowiednie do tego uprawnienia Przed uzyskaniem przez podzespół dostępu do zasobów CLR w trakcie uruchamiania podzespołu kolekcjonuje i sprawdza dowody (evidence), aby określić, jakie uprawnienia (permission) do wykonania kodu można mu nadać

CAS (Code Access Security Począwszy od wersji.net Framework 4.0 CAS nie korzysta już z zasad polityki bezpieczeństwa (security policy), ponieważ zapewniały one tylko kontrolę kodu zarządzanego, pomijając całkowicie aplikacje niezarządzane (natywne) Prawa dostępu określane są na podstawie uprawnień i tak zwanej przejrzystości (transparency), która określa, jaki fragment kodu może wykonywać krytyczne ze względów bezpieczeństwa operacje, a jaki nie Zadaniem modelu przejrzystości jest zapewnienie prostego i efektywnego mechanizmu, który będzie izolować od siebie różne grupy kodów Podobnie jak w przypadku RBS dostęp do zasobów można weryfikować w sposób deklaratywny lub programowy

Sanboxing zastosowania Uruchamiamy kod z ograniczonymi prawami, gdy: nie mamy zaufania, np. kod pobierany z sieci testujemy własny moduł, który bedzie uruchamiany z ograniczonymi prawami na maszynie klienta

Sandboxing w praktyce: domeny aplikacji zestaw uprawnień w sandbox-ie jest określony przez jest określony przez dowody uprawnień (evidence) na etapie tworzenia domeny aplikacji Public Shared Function CreateDomain ( _ friendlyname As String, _ securityinfo As Evidence, _ info As AppDomainSetup, _ grantset As PermissionSet, _ ParamArray fulltrustassemblies As StrongName() _ ) As AppDomain

Klasa Evidence zawiera zwykle podpisy i lokalizację danego kodu security policy składa się z grup kodu klasa Evidence służy do określenia do jakiej grupy dany kod należy obiekt Evidence jest kolekcją mamy dwa typy źródeł: host evidence oraz assembly evidence

Prosty przykład uruchomienia Imports System.AppDomain... Dim d as AppDomain = AppDomain.CreateDomain("Dowolna nazwa") d.executeassembly("sciezka\plik.exe") AppDomain.Unload(d)