Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia



Podobne dokumenty
Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia. Język Java. Bezpieczeństwo języka Java

Java jako język programowania

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

WPROWADZENIE DO JĘZYKA JAVA

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

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Copyright by K. Trybicka-Francik 1

Programowanie obiektowe

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

Ćw. I. Środowisko sieciowe, połączenie internetowe, opcje internetowe

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

Dokumentacja aplikacji Szachy online

ABC systemu Windows 2016 PL / Danuta Mendrala, Marcin Szeliga. Gliwice, cop Spis treści

Java EE produkcja oprogramowania

Szczegółowy opis zamówienia:

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

Wykład 1: Wprowadzenie do technologii Java

Wymagania systemu AudaNet

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Instrukcja logowania do systemu e-bank EBS

WŁĄCZANIE W PRZEGLĄDARKACH INTERNETOWYCH OBSŁUGI SKRYPTÓW JAVASCRIPT

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

Multimedia JAVA. Historia

Paweł Skrobanek. C-3, pok

SERWER AKTUALIZACJI UpServ

KONFIGURACJA INTERFEJSU SIECIOWEGO

Java i JavaScript. Krishna Tateneni Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Ćwiczenie 1. Przygotowanie środowiska JAVA

Projektowanie bezpieczeństwa sieci i serwerów

Instalacja Wirtualnego Serwera Egzaminacyjnego

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

OpenLaszlo. OpenLaszlo

Specyfikacja implementacyjna aplikacji serwerowej

Wybrane działy Informatyki Stosowanej

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Metodologia ochrony informacji w systemach klasy desktop oraz na urządzeniach przenośnych

SSI Katalog. Program do katalogowania zawartości dysków. Dariusz Kalinowski

OCHRONA PRZED RANSOMWARE. Konfiguracja ustawień

KONFIGURACJA PRZEGLĄDAREK. Poniższa konfiguracja dedykowana jest dla Bankowości Internetowej SGB

4. Podstawowa konfiguracja

SZCZEGÓŁOWA INSTRUKCJA ZARZADZANIA SYSTEMEM INFORMATYCZNYM W ZESPOLE SZKÓŁ PONADGIMNAZJALNYCH W DRAWSKU POMORSKIM

Internet Explorer. Okres

SPOSOBY DYSTRYBUCJI OPROGRAMOWANIA PANDA

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Win Admin Monitor Instrukcja Obsługi

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Memeo Instant Backup Podręcznik Szybkiego Startu

INSTRUKCJA obsługi certyfikatów

SERWER AKTUALIZACJI UpServ

Klient poczty elektronicznej - Thunderbird

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

12. Wirtualne sieci prywatne (VPN)

SERWER AKTUALIZACJI UpServ

Programowanie obiektowe. Wprowadzenie

Spis treści. 1 Moduł RFID (APA) 3

Instrukcja postępowania w celu złożenia podpisu elektronicznego na dokumentach składanych do SISC za pośrednictwem portalu PUESC.

Zarządzanie dokumentacją techniczną. Wykł. 11 Zarządzania przepływem informacji w przedsiębiorstwie. Zabezpieczenia dokumentacji technicznej.

EXSO-CORE - specyfikacja

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Asix.Evo - Uruchomienie aplikacji WWW

Warstwy systemu Windows 2000

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Wykaz zmian w programie Win Admin Replikator

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Instalacja Czytnika Kart w systemie Windows 7

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

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Tworzenie bezpiecznego środowiska kont shellowych

CitiDirect Online Banking - portal CitiDirect EB

Podstawy języka Java. przygotował:

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

Bezpieczeństwo poczty elektronicznej

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

ROZKŁAD MATERIAŁU ZAJĘCIA KOMPUTEROWE KL.V

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

REFERAT O PRACY DYPLOMOWEJ

DHL CAS ORACLE Wymagania oraz instalacja

Tomasz Greszata - Koszalin

Struktury systemów operacyjnych Usługi, funkcje, programy. mgr inż. Krzysztof Szałajko

1. Zalecenia do systemu. 2. Uruchomienie programu WOW

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Jak bezpieczne są Twoje dane w Internecie?

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Szczegółowe cele edukacyjne i treści nauczania. KLASA 5

3. Które ze stwierdzeń dotyczących formatowania dysków jest fałszywe? Formatowanie dysku:

Rozwiązanie Trend Micro Worry-Free Business Security 8.0 Porady i wskazówki dotyczące konfiguracji początkowej

Praca w sieci z serwerem

Transkrypt:

Bezpieczeństwo systemów komputerowych Java i JavaScript mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Java i JavaScript używane w celu dodania cech interaktywności do stron WWW mogą być wykonywane w przeglądarce jak i na serwerze WWW Java - historia Język Oak powstawał 1991 jako uniwersalny język oprogramowywania urządzeń elektroniki użytkowej Język zaprojektowany pod kątem zwartych i wysoce niezawodnych programów Programy napisane w Oak miały być kompilowane do postaci interpretowanego kodu pośredniego W 1994 zaprezentowano możliwości języka dla przeglądarek WWW 1

Język Java Język, który z założenia daje małe i przenośne programy Język obiektowy, ogólnego przeznaczenia Programy kompilowane są do kodu pośredniego Język Java Kod pośredni Java hello.java Kompilator Java Stworzenie pliku za pomocą edytora tekstu Java hello.world Sieć Maszyna wirtualna Java Ładowarka klas Bezpieczeństwo języka Java system gospodarki pamięcią automatyczne sprawdzanie zakresów we wszystkich odwołaniach do łańcuchów znakowych i tablic w Java nie istnieje pojęcie wskaźnika mechanizm dziedziczenia prostego ścisła kontrola typów zaawansowany system obsługi wyjątków 2

Bezpieczeństwo języka nie oznacza bezpieczeństwa użytkownika Mechanizmy zabezpieczeń wjava Piaskownica Ładowarka klas Weryfikator kodu pośredniego Mechanizmy zabezpieczeń wjava Ekran komputera System Java Maszyna wirtualna Java Biblioteki wykonawcze Java Piaskownica Wykonywane programy iaplety odczyt Klasa Security Manager zapis Weryfikator kodu pośredniego Ładowarka klas Programy ładowane do piaskownicy z WWW hello Dysk 3

Strategie zabezpieczeń wjava Założenia: Java jest językiem ogólnego przeznaczenia, służącym do tworzenia edytorów tekstu, programów obsługi poczty elektronicznej, przeglądarek WWW oraz wszelkich innych programów użytkowych. Programy te mogą być przechowywane na dysku twardym komputera użytkownika, ewentualnie pobierane z wewnętrznego serwera firmy. Java jest także językiem przeznaczonym do tworzenia programów pobieranych ze stron WWW i wykonywanych w przeglądarkach, jak np. animacje, interaktywne systemy do prowadzenia telekonferencji czy programy wykonujące skomplikowane obliczenia na komputerach użytkowników. Mechanizmy zabezpieczeń wjava Zakaz wykonywania programów Java Dopuszczenie wykonywania programów Java ze zróżnicowanymi uprawnieniami, zależnymi od pochodzenia programu Dopuszczenie wykonywania programów Java bez jakichkolwiek ograniczeń (HotJava firmy Sun) Ograniczenia Ograniczenie brak możliwości odczytania plików i katalogów na komputerze użytkownika brak możliwości zapisywania, usuwania i zmiany nazw plików na komputerze użytkowników brak możliwości inicjowania połączeń sieciowych z innymi komputerami z wyjątkiem komputera, z którego aplet został ściągnięty brak możliwości odbierania połączeń sieciowych rak możliwości wyświetlania okien bez specjalnej ramki informującej o braku potwierdzenia wiarygodności brak możliwości utworzenia klas ClassLoader oraz SecurityManager Brak możliwości uruchomienia programów systemowych Cel zabezpieczenie poufności danych na komputerach użytkowników zabezpieczenie danych użytkowników przed nieautoryzowaną modyfikacją uniemożliwienie apletowi badania odporności systemów zabezpieczeń wewnątrz strefy chronionej przez firewall uniemożliwienie apletowi udawanie normalnego serwera działającego w wewnętrznej sieci firmy uniemożliwienie apletowi tworzenie okien przypominających okna systemowe uniemożliwienie wyłączenia mechanizmów kontroli typów Java i testów gwarantujących bezpieczeństwo operacji wykonywanych przez program uniemożliwienie wykonywania dowolnych programów 4

Inne strategie Brak połączeń sieciowych. Programy w Javie nie mają dostępu do sieci. Ograniczenie możliwości realizacji połączeń. Apletymogą tworzyć połączenia sieciowe jedynie z komputerem, z którego zostały skopiowane. Ograniczenie możliwości realizacji połączeń. Apletymogą tworzyć połączenia sieciowe jedynie z komputerem, których adresy są na specjalnej liście autoryzacji. Ograniczenie możliwości realizacji połączeń. Apletymogą tworzyć połączenia sieciowe tylko poprzez określone porty. Brak restrykcji dla apletów pobranych z określonych komputerów. Narzucenie ograniczeń na aplety z innych źródeł. Brak ograniczeń dla apletów opatrzonych odpowiednią sygnaturą. Nieograniczone możliwości połączeń sieciowych. Problemy bezpieczeństwa w Javie Błędy implementacyjn błędy w maszynie wirtualnej Javy, pozwalające ominąć reguły kontroli typów błędy bibliotek klas błędy w projekcie języka http://www.cs.princeton.edu/sip/ Problemy bezpieczeństwa w Javie Błędy w projekcie języka brak formalnej specyfikacji modelu bezpieczeństwa bezpieczeństwo całego systemu zależy od utrzymania integralności systemu typów języka Propozycje zmian nie powinno być możliwe zapisywanie zmiennych publicznych w różnych obszarach widoczności nazw zastosowany w Javie mechanizm pakietów powinien wspomagać egzekwowanie strategii bezpieczeństwa kod pośredni Javy winien być prostszy do sprawdzenia i formalnej weryfikacji 5

Java a usługa DNS Przyszłość bezpieczeństwa Javy JavaScript stworzony przez firmę Netscape w celu ułatwienia tworzenia animacji oraz innych form przekazu interaktywnego na stronach WWW programy napisane w JavaScipt umożliwiają sterowanie działaniem przeglądarki bezpośrednio z poziomu dokumentu w języku HTML rodzimy język przeglądarek Netscape 6

Bezpieczeństwo w języku JavaScript JavaScript nie udostępnia metod pozwalających na bezpośredni dostęp do systemu plików na komputerze użytkownika JavaScript nie posiada metod umożliwiających bezpośrednie tworzenie połączeń sieciowych z innymi komputerami Ataki typu blokady usługi Ataki na procesor i stos Ataki typu blokady usługi Ataki na procesor i stos!"# $#% % & '"# $#% (! )*+,-**)*!&."# $#!& /)* )*** % %& % 7

Ataki typu blokady usługi Niemożliwość przerwania działania skryptu 0 1 2 &2& 3#% % &! )*41 56 7)* %& % Ataki typu blokady usługi Ataki na pliki wymiany 86 86 6 9 :9 & # #)*41.3#3;** ### Ataki typu blokady usługi Ataki na system okien 8

Ataki typu blokady usługi - zapobieganie określenie i monitorowanie deficytowych zasobów systemu podejrzliwie należy traktować aplety wykorzystujące i rezerwujące zasoby systemu operacyjnego, takie jak pliki, okna i połączenia sieciowe użytkownik powinien mieć możliwość wyświetlania listy apletów aktualnie wykonywanych przez przeglądarkę i przerywania ich działania Podszywanie się przy użyciu JavaScriptu imitowanie okien dialogowych nazwy i hasła użytkownika fałszowanie informacji o stanie przeglądarki światy lustrzane Dziękuję za uwagę 9