Magdalena Kruczek MONITOROWANIE ORAZ IDENTYFIKACJA ZMIAN W STRUKTURZE PLIKÓW SYSTEMU WINDOWS



Podobne dokumenty
Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Szyfrowanie danych w SZBD

Backend Administratora

Szpieg 2.0 Instrukcja użytkownika

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

WPROWADZENIE DO BAZ DANYCH

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

System Kancelaris. Zdalny dostęp do danych

Przewodnik użytkownika

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

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

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

2 Kryptografia: algorytmy symetryczne

ActiveXperts SMS Messaging Server

Kancelaria Prawna.WEB - POMOC

Tworzenie i obsługa wirtualnego laboratorium komputerowego

CREATE USER

PHP: bazy danych, SQL, AJAX i JSON

NARZĘDZIA WIZUALIZACJI

Instrukcja instalacji i obsługi programu Szpieg 3

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

Bezpieczeństwo systemów informatycznych

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wiadomości i umiejętności

ZAŁĄCZNIK Nr 3 do CZĘŚCI II SIWZ

QUERY język zapytań do tworzenia raportów w AS/400

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Przewodnik Szybki start

Pojęcie bazy danych. Funkcje i możliwości.

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Memeo Instant Backup Podręcznik Szybkiego Startu

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

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

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

BIURO USŁUG INFORMATYCZNYCH "T-SOFT"

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

EXSO-CORE - specyfikacja

finiownia loginów. W zależności od ustawionej opcji użytkownik login:

Konspekt pracy inżynierskiej

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

REFERAT O PRACY DYPLOMOWEJ

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Instrukcja instalacji Control Expert 3.0

Instalacja aplikacji

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

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

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

(aktualizacja 30 kwietnia 2018)

Programowanie MorphX Ax

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Systemy GIS Tworzenie zapytań w bazach danych

Klient poczty elektronicznej - Thunderbird

Instrukcja Wirtualny Dysk:

Czym jest kryptografia?

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

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Wykład I. Wprowadzenie do baz danych

Wyszukiwanie plików w systemie Windows

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze?

Ulotka. Zmiany w wersji

WSIZ Copernicus we Wrocławiu

Dokumentacja 2SMS

Uruchamianie bazy PostgreSQL

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

SZKOLENIE: Administrator baz danych. Cel szkolenia

Instrukcja generowania żądania CSR SOW WERSJA 1.6

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Baza danych. Baza danych to:

Projektowanie systemów baz danych

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Pracownia internetowa w szkole ZASTOSOWANIA

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

Instrukcja obsługi programu Profile GT

Pobierz dane z Programu PŁATNIKA. e-deklaracji

Ustalanie dostępu do plików - Windows XP Home/Professional

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu.

Bazy danych 2. Wykład 1

Konfiguracja programu MS Outlook 2007 dla poczty w hostingu Sprint Data Center

Transkrypt:

INSTYTUT INŻYNIERII I GOSPODARKI WODNEJ POLITECHNIKA KRAKOWSKA im. TADEUSZA KOŚCIUSZKI Magdalena Kruczek MONITOROWANIE ORAZ IDENTYFIKACJA ZMIAN W STRUKTURZE PLIKÓW SYSTEMU WINDOWS praca magisterska studia dzienne kierunek studiów: informatyka specjalność: informatyka stosowana w inżynierii środowiska promotor: dr inż. Robert Szczepanek nr pracy: 2211 K RAKÓW 2008 ul. Warszawska 24, 31-155 Kraków tel/fax (+48 12) 628 20 41 e-mail: sekretariat@iigw.pl internet: www.iigw.pl

Dziękuję Panu dr. inż. Robertowi Szczepankowi za poświęcony czas, cenne uwagi oraz pomoc udzieloną przy pisaniu niniejszej pracy, Rodzicom za możliwość rozwoju, Andrzejowi za wsparcie oraz wiarę we mnie.

SPIS TREŚCI 1. WSTĘP... 2 2. ZAKRES PROJEKTU... 5 2.1 OPIS PROBLEMU... 6 2.2 PRZEZNACZENIE PROJEKTOWANEGO SYSTEMU... 7 3. DOSTĘPNE NARZĘDZIA... 10 3.1 FILEWATCHER... 11 3.2 FOLDERWATCH... 13 3.3 FILEMON... 15 4. TECHNOLOGIE ZASTOSOWANE W APLIKACJI FILM... 16 4.1 KRYPTOGRAFIA... 18 4.1.1 Algorytmy szyfrujące... 19 4.1.2 Jednokierunkowe funkcje haszujące... 20 4.1.3 Rozwiązania.NET... 22 4.2 INDEKSOWANIE W WINDOWS... 28 4.3 SQLITE... 32 5. OPIS SYSTEMU FILM... 37 5.1 STRUKTURA BAZY DANYCH... 50 5.2 MONITOROWANIE ZMIAN W STRUKTURZE PLIKÓW.... 54 5.3 DEFINIOWANIE ATRYBUTÓW I UŻYCIE FILTRÓW... 59 5.4 ROZWÓJ SYSTEMU... 63 6. WNIOSKI... 66 7. PODSUMOWANIE... 69 8. SŁOWNIK POJĘĆ... 71 9. BIBLIOGRAFIA... 74 Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 1

1. Wstęp Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 2

Banki, urzędy, szkoły, firmy informatyczne, farmaceutyczne, budowlane. Instytucje te można wymieniać w nieskończoność. O wiele łatwiej byłoby wymienić instytucje czy osoby prywatne, które nie mają żadnego kontaktu z komputerem. Prawie każdy przechowuje różnego rodzaju dane, mniej lub bardziej ważne, w pamięci komputera. Ile razy zdarza się, że któryś z plików zniknie, i w żaden sposób nie chce się nam dać odszukać? Aby zaspokoić ciekawość, w popularnej wyszukiwarce internetowej została wpisana fraza do wyszukania zaginął plik. Jedną z pierwszych odpowiedzi był wpis na forum internetowym: Jak odszukać plik tekstowy? Nie pamiętam nazwy..zaginął mi i dalej owa internautka pisze to strasznie pilne, zaginął mi bardzo ważny dokument. Pierwsza odpowiedź, którą otrzymała, brzmiała No to pozostaje modlitwa... [5]. Oczywiście nie jest to jedyna metoda jaką należy stosować w sytuacji zagubienia ważnego pliku. Można przeszukiwać pamięć dysku za pomocą wbudowanych narzędzi, odpowiednich dla używanego systemu operacyjnego. Dla systemu Windows możemy się posłużyć tzw. Pomocnikiem wyszukiwania. Jednak w sytuacji wspomnianej internautki, będzie to przejrzenie wszystkich plików (o takim samym rozszerzeniu, ponieważ nazwa nie jest znana), znajdujących się na dysku twardym. W przypadku zbadanego dysku o pojemności około 160 GB, w 90% zapełnionego różnymi danymi, plików o losowo wybranym rozszerzeniu.txt, zostało znalezionych 2639. Cel pracy Celem niniejszej pracy jest przedstawienie rozwiązania, które pozwoli na monitorowanie i katalogowanie plików w systemie Windows, oraz implementacja systemu FilM będącego odzwierciedleniem tego rozwiązania. Zostanie również przedstawione porównanie narzędzi o podobnym przeznaczeniu, istniejących na rynku Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 3

polskim, jak również ogólnoświatowym, dostępnych na licencji Freeware 1 Shareware 2. oraz Zawartość pracy Pierwszy rozdział stanowi wstęp, którego zadaniem jest krótkie zapoznanie czytelnika z tematem pracy. W rozdziale drugim został zawarty opis problemu monitorowania zmian w strukturach plików oraz trudności z katalogowaniem tychże plików w sytuacji częstego korzystania z danych w nich zawartych. Określony został również zakres projektu, czyli wyodrębnione zostały moduły i udostępniane opcje, które mogą być rozwiązaniem wcześniej nakreślonych problemów. Rozdział trzeci zawiera krótkie omówienie przykładowych narzędzi, których przeznaczenie częściowo pokrywa się z przeznaczeniem projektowanego systemu FilM. W rozdziale czwartym omówione zostały technologie, które zastosowano w aplikacji. Rozdział piąty stanowi opis sytemu. W tej części pracy zawarto opis środowiska i języka w którym aplikacja została napisana, struktury bazy danych a także opis wszystkich udostępnianych opcji. W rozdziale szóstym zawarto wnioski a w siódmym podsumowanie. 1 Licencja Freeware Program udostępniany na tej licencji jest darmowy i zabronione jest czerpanie korzyści finansowych z jego dystrybucji. Licencja nie dotyczy produktów stworzonych przy użyciu programu.. 2 Licencja Shareware Tą licencją objęte są zazwyczaj programy płatne. Producenci jednak dają możliwość nieodpłatnego wypróbowania takiego programu przez określony czas (np. 30 dni). Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 4

2. Zakres projektu Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 5

2.1 Opis problemu Często zdarza się, że dostęp do plików ma wiele osób. Im więcej tym większe prawdopodobieństwo, że ktoś je przypadkowo przeniesie, zmodyfikuje lub usunie. Może przez to zostać straconych wiele dni pracy, wspomnienia w postaci zdjęć czy zmodyfikowane ważne informacje. Nieświadomy tej sytuacji właściciel pliku nie będzie mógł w porę zareagować. Warto się przed takimi sytuacjami zabezpieczyć. Plik taki oczywiście można odnaleźć znając jego nazwę lub część tekstu (jeśli jest to plik tekstowy). Można również poprawić lub postarać się odtworzyć zmienioną zawartość, jednak aby próbować naprawić zepsute, trzeba zdawać sobie sprawę, że się zepsuło. Z potrzeby uchronienia się przed takimi sytuacjami zrodził się pomysł zaprojektowania aplikacji FilM, której głównym zadaniem będzie monitorowanie struktury plików. Praca z dużą ilością plików potrafi być uciążliwa. W zależności od rodzaju wykonywanej pracy, na plikach można przeprowadzać różnego rodzaju operacje. Czasami przydałoby się posegregować pliki w zależności od ich przeznaczenia, zawartości itp.. Bywają również sytuacje, że taki plik powinien się znaleźć w dwóch różnych grupach np. plik typu umowa należałoby, dla porządku, przechowywać w katalogu z plikami tego samego typu. Do każdej takiej umowy powinien być wystawiony aneks. Jeżeli jest to duża ilość plików, utworzenie takich aneksów potrwa trochę czasu, więc wygodne byłoby oznaczanie, że dla konkretnej umowy aneks został wystawiony. Pomysłowość ludzka nie zna granic, więc każdy znalazłby sposób aby nie pogubić się w gąszczu plików. Jednak może się zdarzyć sytuacja, że przy konkretnym zadaniu pracuje więcej niż jedna osoba i każdy znajdzie własne rozwiązanie. Takich przykładów, kiedy potrzebujemy wiedzieć coś o pliku bez konieczności dopytywania i wyszukiwania tych informacji, jest mnóstwo. Praktycznym przykładem problemów związanych z katalogowaniem i opisywaniem plików a także monitorowaniem zmieniającej się zawartości, może być również struktura plików zawierająca zeskanowane strony roczników hydrologicznych. Prace nad utworzeniem takiej struktury są długotrwałe i jeżeli zajmuje się tym więcej niż jedna osoba to wymagają sprawnej koordynacji, aby zapobiec np. dwukrotnemu zeskanowaniu tego samego rocznika opadowego. Z takich zasobów na pewno chętnie Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 6

będą korzystać studenci, ponieważ jest to bardzo wygodna forma dostępu do danych. Strony roczników w formie elektronicznej są o tyle wygodniejsze, że można je skopiować i zabrać ze sobą, bez konieczności przepisywania danych w nich zawartych. W takiej strukturze, jak przytoczona wyżej, jeden plik odpowiada jednej stronie z rocznika hydrologicznego, dlatego najczęściej nazwy ich odpowiadają numerowi strony. Aby takie nazewnictwo miało sens i pliki nie były nadpisywane (takie same nazwy plików dla różnych roczników), dla każdego rocznika musi być stworzony osobny katalog. Takie rozwiązanie nie jest jednak doskonałe, ponieważ zeskanowane strony mogą zostać zapisane w nieodpowiednich katalogach (dla innego rocznika). W takim przypadku błąd może nie zostać szybko wykryty, ponieważ plik o nazwie np. 59 (będący zeskanowaną stroną nr 59 z rocznika hydrologicznego z roku 1980) w katalogu stworzonym dla rocznika hydrologicznego z 1979 roku nie wzbudzi podejrzeń. Aby ułatwić takie i inne zadania, w aplikacji FilM udostępniona została możliwość nadawania plikom dodatkowych atrybutów 3. 2.2 Przeznaczenie projektowanego systemu. Aplikacja została tak zaprojektowana, aby umożliwić użytkownikowi monitorowanie wybranej struktury plików (wybranego folderu) a zatem wszystkich plików zawartych w tym katalogu oraz w jego podkatalogach. Użytkownik powinien mieć możliwość wyboru typów plików, które chciałby obserwować. System przede wszystkim powinien zapewnić ochronę powierzonych mu plików. Pod pojęciem ochrony rozumiane jest przechowywanie w bazie danych wszelkich informacji umożliwiających: poprawne zidentyfikowanie pliku w przypadku zmiany jego nazwy, odszukanie pliku w przypadku zmiany lokalizacji (w ramach obserwowanej struktury), 3 Atrybut atrybutem w niniejszej pracy nazywany będzie dodatkowy, definiowany przez użytkownika, opis pliku. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 7

sprawdzenie, czy pliki zostały zmodyfikowane od czasu ostatniego zapisu do bazy. Na podstawie zebranych danych powinna być możliwość jednoznacznej identyfikacji poszczególnych plików. System, po pobraniu danych z bazy, powinien umożliwić sprawdzenie czy konkretne informacje dotyczące monitorowanej struktury są tożsame ze stanem aktualnym owej struktury plików. Powinien również umożliwić użytkownikowi, w razie niezgodności ścieżki do pliku lub jego nazwy, wybór czy dane zapisywane do bazy danych powinny zostać zaktualizowane czy może pliki na dysku powinny zostać przywrócone do stanu poprzedniego (ostatniego zapisu do bazy). Każda aplikacja powinna umożliwiać użytkownikowi jak największą konfigurowalność, tak aby mógł ją dostosować do swoich potrzeb. W związku z tym w projektowanym programie FilM powinna być możliwość decydowania o tym: który katalog ma być monitorowany, jakie typy plików będą monitorowane, czy struktura danych zostanie objęta wbudowaną usługą indeksowania plików systemu Windows, jakie atrybuty będzie posiadał każdy plik. Po wczytaniu danych (otwarciu projektu), aplikacja powinna zapewnić użytkownikowi, w obrębie monitorowanej struktury, możliwość: Weryfikacji poprawności ścieżek wszystkich monitorowanych plików (sprawdzenie czy pliki znajdują się w wybranym przez użytkownika miejscu), sprawdzenia, czy od ostatniego zapisu zawartość plików się nie zmieniła, odnalezienie pliku, którego nazwa została zmieniona, sprawdzenia, czy w strukturze pojawiły się nowe pliki, sprawdzenia, czy i które pliki zostały usunięte. Monitorowanie w czasie rzeczywistym Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 8

Projektowana aplikacja pozwalać będzie również na monitorowanie plików zawartych w wybranej strukturze, w czasie rzeczywistym. Jeżeli w obrębie monitorowanego katalogu pojawi się nowy plik lub już istniejący zostanie usunięty, jeżeli plik zostanie przeniesiony lub jego nazwa będzie zmodyfikowana a także jeśli zmieni się zawartość któregoś z plików, użytkownikowi powinien zostać przekazany odpowiedni komunikat. Dodatkowe atrybuty Aby użytkownik mógł grupować i opisywać pliki na różne sposoby, aplikacja powinna zapewnić możliwość definiowania dodatkowych atrybutów dla plików. Aby zapewnić spójność dodatkowych danych dla wszystkich plików, każdy z nich powinien posiadać takie same atrybuty ( wartości dla tych atrybutów powinny oczywiście być odpowiednie dla każdego pliku). Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 9

3. Dostępne narzędzia Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 10

Śledzenie plików na dysku znajduje swoje zastosowanie z wielu różnych względów. Mechanizm ten używany jest do obserwacji procesu instalacji aplikacji pozwalając później na całkowitą ich deinstalację, śledzenie co dany proces robi z plikami na dysku co pozwala często wykrywać podejrzane zachowania, może być użyty również do organizacji np. zdjęć czy muzyki. Aplikacje takie nabierają również znaczenia w przypadku systemów takich jak Windows, w których zasoby plikowe dzielone są przez wielu różnych użytkowników, którzy mają prawa do modyfikacji np. ich położenia. Istnieje wiele rozwiązań w rozmaity sposób powiązanych z zagadnieniem śledzenia zasobów dyskowych. Pewne jest, że ile osób chętnych do korzystania z tego typu narzędzi, tyle pomysłów jak mogłyby one wyglądać. Każde z poniżej omówionych rozwiązań może posłużyć do monitorowania zmian w strukturze plików, jednak wydaje się, że przeznaczone są dla zupełnie różnych grup odbiorców. 3.1 FileWatcher FileWatcher (Rysunek 1) jest programem przeznaczonym do ciągłego monitorowania (w trakcie działania aplikacji) zmian zachodzących w wybranej strukturze katalogów. Ponadto aplikacja daje możliwość automatycznego wywoływania pewnej, zdefiniowanej akcji w odpowiedzi na komunikat o nowym pliku zapisanym w strukturze. Akcją może być komenda, która powinna składać się z nazwy pliku wykonywalnego typu exe, pliku wsadowego typu bat lub pliku typu com oraz parametrów. Ustawienia opcjonalne dla każdego monitorowanego katalogu: Użytkownik może wybrać, czy monitorowane będą zmiany tylko w wybranym katalogu, czy też brane pod uwagę będą również wszystkie podkatalogi. Możliwe jest podanie typów plików, które powinny być monitorowane. Dostępna jest również opcja czekaj na wyłączny dostęp do pliku. Zaznaczenie jej powoduje, że akcja może być wykonana pod warunkiem, że żadna inna aplikacja nie przetwarza pliku. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 11

Zdefiniowana akcja domyślnie wykonywana jest wraz z nadejściem informacji o nowym pliku. Można jednak określić po jakim czasie od pojawienia się nowego pliku akcja zostanie uruchomiona. Opcja ta ma umożliwić uruchomienie jednego procesu dla grupy plików przychodzących razem. Również zależne od użytkownika są typy zdarzeń, które będą logowane przez program. Możliwe do wyboru są opcje Nowe pliki, Uaktualnione pliki oraz Usunięte pliki. Jeżeli użytkownik zaznaczyłby tylko opcję Nowe pliki to logi pojawiałyby się tylko w przypadku utworzenia nowego pliku w obrębie monitorowanego katalogu. Wydawcą tego programu jest DataMystic. Aplikację można pobrać ze strony producenta [14] po opłaceniu licencji. Dostępna jest również trzydziesto-dniowa wersja testowa. Rysunek 1. Aplikacja FileWatcher Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 12

3.2 FolderWatch Program FolderWatch (Rysunek 5) zapewnia ochronę plików poprzez tworzenie kopii zapasowych (w wybranym przez użytkownika katalogu). Monitoring wybranego katalogu możliwy jest pod warunkiem, że program jest uruchomiony. W związku z tym, możliwe jest takie skonfigurowanie aplikacji, aby uruchamiała się wraz ze startem systemu. Aby dodać katalog do obserwowanych, należy utworzyć tzw. Watch a następnie skonfigurować ustawienia dotyczące sposobu reakcji na zmiany w folderze, oraz wybrać katalog, w którym zapisywane będą kopie zapasowe. Aplikacja umożliwia dodanie nowej struktury do obserwowanych na dwa sposoby: Pierwszy sposób to utworzenie nowego Watch a za pomocą opcji Add New Watch. Pozwala ona na wybranie jednego katalogu, którego zawartość (tylko pliki) będzie monitorowana. Poprzez dostępne opcje użytkownik może modyfikować sposób reakcji na zmiany zachodzące w folderze. Drugim sposobem na dodanie nowego folderu do obserwowanych jest użycie opcji Add multiple Watches AT once. Opcja ta jest bardzo podobna do poprzedniej, z tym że tym razem mamy możliwość utworzenia nowych procesów (Watch) dla całej struktury danych (możliwe jest wybranie poziomu zagnieżdżenia katalogów dla których utworzone mają być procesy). Opcjonalnie jest również możliwe utworzenie struktury katalogów, odpowiadającej oryginalnej, w folderze docelowym dla kopi zapasowych. Niestety jeżeli ta opcja nie zostanie zaznaczona i aplikacja nie odnajdzie katalogu o takiej samej nazwie w tym folderze, monitoring nie zostanie uruchomiony. Najważniejsze opcje: Kryteria monitoringu. W tym miejscu podać można nazwy lub wybrać typy plików, które mają być monitorowane. Przydatną opcją może się okazać wybór sposobu uruchamiania konkretnego Watch a. Dostępne opcje to Automatic (startuje wraz z uruchomieniem aplikacji), Manual (stan procesu po uruchomieniu aplikacji będzie adekwatny Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 13

do ostatniego zapamiętanego stanu) oraz Scheduled (proces uruchamiany będzie cyklicznie w zdefiniowanych przez użytkownika odstępach czasu). Sposób reakcji na zdarzenie 4. Dostępne opcje to Copy (skopiowanie pliku), Move (przeniesienie pliku) oraz Append (opcja przeznaczona dla plików nieedytowalnych np. filmów, ponieważ zmiany w oryginalnych plikach nie będą uwzględniane w kopiach zapasowych). W zależności od wybranego sposobu reakcji na zdarzenie dostępne są opcje: o Dla każdego nowego folderu (utworzonego po starcie procesu monitorowania) w wybranym katalogu (tylko dla pierwszego poziomu zagnieżdżenia), utworzony zostanie nowy Watch (Copy, Move, Append). o Kopia zapasowa zostanie usunięta jeśli oryginalny plik zostanie usunięty (Copy, Append). Wydawcą tego programu jest firma Diginaut. Na stronie domowej producenta dostępna jest wersja testowa (działająca przez dwadzieścia jeden dni). Po opłaceniu licencji możliwe jest pobranie pełnej wersji. Rysunek 2 Aplikacja FolderWatch 4 Zdarzenie zdarzeniem może być edycja pliku istniejącego, dodanie nowego pliku, usunięcie pliku. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 14

3.3 FileMon Aplikacja FileMon (Rysunek 3) pozwala na monitorowanie w czasie rzeczywistym operacji przeprowadzanych na systemie plików. Jej zaawansowane możliwości sprawiają, że jest ona dobrym narzędziem aby odkrywać w jaki sposób aplikacje Windows korzystają z plików (w szczególności bibliotek DLL), ułatwia również rozwiązywanie problemów powiązanych z konfiguracją plików aplikacji. FileMon daje informacje o rodzaju wykonywanej operacji na pliku (np. odczyt, zapis, otwarcie, usunięcie...), o tym jaki proces wykonał operacje, o jej statusie itp. Aplikacja umożliwia również monitorowanie zasobów na dyskach sieciowych (dla Windows NT/2K/XP). Rysunek 3 Aplikacja FileMon Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 15

4. Technologie zastosowane w aplikacji FilM Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 16

Jednym z istotniejszych problemów w procesie monitorowania struktury jest jednoznaczna identyfikacja plików. Identyfikacja na podstawie nazwy okazała się niewystarczająca, ponieważ nie daje żadnej informacji na temat zawartości pliku. Przechowywanie kopii plików umożliwiłoby porównanie zawartości, jednak spowodowałoby to, zbyt duży rozmiar bazy danych. Rozwiązaniem tego problemu są, zaczerpnięte z kryptografii, jednokierunkowe funkcje skrótu. W rozdziale 4.1, w celu wprowadzenia, przedstawione zostały ogólne zagadnienia dotyczące kryptografii oraz algorytmy szyfrujące, będące istotną częścią tej dziedziny nauki. Najszerzej omówione zostały oczywiście funkcje skrótu a także, związany z tą tematyką interfejs udostępniany przez.net Framework i sposób w jaki został użyty w aplikacji do obliczeń wartości tych funkcji. Projektowany system umożliwia monitorowanie zmian zachodzących w obrębie wybranej struktury plików. Może się jednak zdarzyć, że plik lub pliki zostaną przeniesione poza obserwowaną strukturę. Aby taki plik wyszukać można użyć, udostępnianą przez Windows, wyszukiwarkę plików. System Windows udostępnia również usługę indeksowania, która odpowiednio użyta, może znacznie przyspieszyć proces wyszukiwania konkretnych plików w zasobach dyskowych. Indeksy plików budowane mogą być również w oparciu o ich zawartość (dla niektórych typów plików), co rozszerza możliwości przeszukiwania. W aplikacji został udostępniony interfejs, który umożliwi podstawową konfigurację ustawień systemowych i obsługę tej usługi. W części 4.2 umieszczony został opis działania systemowej usługi indeksowania a także opis sposobu implementacji tego rozwiązania w aplikacji, przy użyciu metod udostępnianych przez.net. Aby umożliwić weryfikację zmian w strukturze po ponownym uruchomieniu aplikacji, dane dotyczące zarówno projektu jak i plików muszą być przechowywane w bazie danych. Opisany w rozdziale 4.3 system bazodanowy SQLite został wybrany, ponieważ łączy prostotę użytkowania i administrowania z dość szerokimi możliwościami. Baza danych nie wymaga instalacji ani konfiguracji a funkcje jakie udostępnia są w zupełności wystarczające dla aplikacji. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 17

4.1 Kryptografia Kryptologia - nauka o bezpiecznych sposobach przekazywania informacji, obejmuje dwa działy. Jednym z nich jest Kryptografia. Drugim działem, ściśle związanym z pierwszym jest Kryptoanaliza. Kryptografia jest to dziedzina wiedzy, która zajmuje się zagadnieniami ochrony informacji poprzez szyfrowanie danych. Współcześnie w kryptografii wyróżnia się dwa główne nurty: kryptografię symetryczną (z jednym kluczem szyfrowania) i asymetryczną (z parą zależnych kluczy prywatnym i publicznym) [7]. Kryptoanaliza natomiast zajmuję się deszyfrowaniem wiadomości (proces ten określa się czasem jako łamanie kodu ) bez znajomości odpowiedniego klucza. Każdy, lub prawie każdy miał do czynienia w swoim życiu z produktem kryptografów. Jedną z technik w której kryptografia ma zastosowanie jest elektroniczny odpowiednik tradycyjnego podpisu podpis cyfrowy, oparty o kryptografię asymetryczną. Coraz bardziej popularny mechanizm podpisu elektronicznego wykorzystywany jest np. przez banki, które przesyłają wyciągi z kont (opatrzone właśnie podpisem cyfrowym) drogą e-mail ową. Zaopatrując się w zestaw do składania podpisu cyfrowego nieco ułatwiamy sobie życie, ponieważ możliwe jest już, aby za pomocą drogi elektronicznej, składać deklaracje podatkowe, deklaracje ZUS, wystawiać faktury VAT itp. Kryptografia znalazła również zastosowanie w protokołach, służących do bezpiecznej transmisji danych np. SSL. Protokół SSL jest protokołem typu klient- serwer. Jego zadaniem jest zapewnienie poufności (szyfrowanie) przesyłanych danych, integralności tych danych oraz sprawdzenie autentyczności serwera z którym się komunikujemy. Czy kryptografia daje bezpieczeństwo? Obecnie w szyfrowaniu danych wykorzystywane są złożone matematyczne procedury, teoretycznie bezpieczne i odporne na próby włamania. Jednak osoba mająca do dyspozycji wystarczająco dużą moc obliczeniową, lub posiadająca wystarczająco dużo czasu mogłaby złamać taki kod. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 18

4.1.1 Algorytmy szyfrujące Algorytm symetryczny Algorytm symetryczny zwany jest inaczej algorytmem z kluczem tajnym. Przy zastosowaniu tego algorytmu tekst jawny jest szyfrowany i deszyfrowany za pomocą tego samego klucza. Problemem, który się pojawia, jest przekazanie tajnego klucza odbiorcy zaszyfrowanej wiadomości. Jego ujawnienie będzie się wiązało z możliwością odszyfrowania kryptogramu przez każdego, kto ten klucz zdobędzie. Pomimo iż przy szyfrowaniu i deszyfrowaniu stosowany jest ten sam klucz, niemal zawsze korzysta się z dwóch procedur 5 (osobne dla szyfrowania i deszyfrowania). Algorytmy symetryczne zaprojektowane zostały pod kątem szybkości działania [1], [2]. Algorytm asymetryczny Algorytm asymetryczny zwany jest również algorytmem z kluczem publicznym bądź jawnym. Sądząc po nazwie można byłoby przypuszczać, że jest to algorytm podobny do symetrycznego z tym, że klucz jest ujawniany. Szyfrowanie jednak nie miałoby wtedy najmniejszego sensu. Sztywnym założeniem jest więc używanie dwóch różnych kluczy (klucza publicznego oraz klucza prywatnego). Zarówno do szyfrowania jak i deszyfrowania może być używana jedna procedura 5 (ale równie dobrze mogą być użyte dwie procedury). Asymetryczność algorytmu polega na tym, iż na podstawie klucza publicznego niemożliwe 6 jest wyliczenie klucza prywatnego, natomiast w drugą stronę (czyli wyliczenie klucza publicznego na podstawie klucza prywatnego) jest wykonalne. Zasadą jest, że klucz publiczny jest przekazywany szerszemu odbiorcy (czyli każdemu kto będzie przesyłał nam szyfrowaną wiadomość), natomiast klucz prywatny jest ściśle tajny i nie może być ujawniony. W większości przypadków szyfrowanie tekstu jawnego wykonywane jest za pomocą klucza publicznego a deszyfrowanie za pomocą klucza prywatnego. Zdarzają się jednak 5 Procedura opis wszystkich czynności, które należy wykonać aby zaszyfrować tekst jawny (uzyskać szyfrogram) lub odszyfrować szyfrogram (uzyskać tekst jawny). 6 Niemożliwe rozumiemy tu w sensie kryptologicznym, tzn. nie można tego zrealizować przy zastosowaniu znanych środków w praktycznie akceptowalnym czasie [1]. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 19

przypadki kiedy następuje sytuacja zupełnie odwrotna np. przesłanie podpisu identyfikującego osobę nadawcę [1]. 4.1.2 Jednokierunkowe funkcje haszujące Kryptografia nie polega tylko i wyłącznie na szyfrowaniu danych. Należy również pamiętać o integralności danych. W tym celu wykorzystywane są jednokierunkowe funkcje haszujące zwane również jednokierunkowymi funkcjami skrótu (z ang. One Way Hash Function). Jednokierunkowe funkcje skrótu określane są również jako funkcje kompresujące, funkcje koncentrujące, skróty wiadomości i kryptograficzne sumy kontrolne. Pod pojęciem funkcji skrótu kryje się zatem przekształcenie odwzorowujące wiadomość o dowolnej długości w ciąg bitów o określonej, ustalonej długości. Jednokierunkowość natomiast oznacza, że niemożliwe jest wyznaczenie funkcji odwrotnej, takiej która pozwoli na odszyfrowanie wiadomości. Jednokierunkowa funkcja skrótu musi spełniać pewne wymagania. Jednym z podstawowych jest to, aby dla znanej wartości funkcji haszującej niemożliwe było wyliczenie takiego ciągu bajtów, który generowałby taką samą wartość haszującą. Funkcja skrótu, musi zapewniać odporność na kolizje (bezkonfliktowość). Spełni ten warunek, gdy dla zadanego ciągu bajtów, nie będzie możliwe (a przynajmniej będzie bardzo trudne) znalezienie innego ciągu bajtów o tej samej wartości haszującej. Wymagane jest również, aby na podstawie wartości funkcji haszującej niemożliwe było wywnioskowanie wiadomości wejściowej. Zmiana nawet jednego bitu powinna spowodować wygenerowanie zupełnie innej wartości. Funkcje skrótu nie wykorzystują żadnych kluczy. Zgodnie z założeniem, każdy (znający algorytm) powinien być w stanie obliczyć wartość funkcji. Przeszkodą może być skomplikowana budowa jednokierunkowych funkcji haszujących [1]. Do czego mogą posłużyć takie funkcje haszujące, skoro odwrócenie tego procesu jest niemożliwe? Pierwszą, nasuwającą się odpowiedzią jest przechowywanie haseł. Bardzo niebezpiecznym rozwiązaniem jest przechowywanie haseł jawnie. Nawet jeśli dostęp do pliku czy bazy danych jest ograniczony, istnieje spore prawdopodobieństwo obejścia Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 20

tych zabezpieczeń. Można sobie wyobrazić co stałoby się, gdyby bank przechowywał w ten sposób hasła do kont internetowych i zostałyby one przechwycone. Innym zastosowaniem funkcji skrótu, jest weryfikacja zgodności danych. Z różnych przyczyn przesyłane dane mogą ulec modyfikacji. Zgodność tych danych można sprawdzić poprzez wyliczenie wartości funkcji skrótu (weryfikacja możliwa jest pod warunkiem, że znana będzie wartość funkcji wyliczona na podstawie niezmienionych danych). Najpopularniejsze ataki przeciw funkcjom haszującym Atak słownikowy. Jest to najprostsza metoda łamania haseł przechowywanych pod postacią wartości funkcji skrótu. Celem atakującego jest odgadnięcie jakiegokolwiek hasła do systemu (nie ma znaczenia którego użytkownika). Jak sama nazwa wskazuje atak ten polega na odgadywaniu haseł na podstawie plików z listą słów, często tworzoną na podstawie ogólnodostępnych słowników. Nawet długie hasło nie stanowi przeszkody jeśli jest logicznym słowem (np. stokrotka) przechowywanym w słowniku, dużo bardziej bezpieczne są ciągi przypadkowych znaków (np. Qd$jn&) [12]. Atak urodzinowy. Atak ten polega na znalezieniu kolizji funkcji haszującej. Załóżmy, że mamy dokument, który ma być opatrzony podpisem cyfrowym (może to być np. umowa). Ze względu na wielkość tekstu podpisywana jest wartość funkcji haszującej dla niego obliczona. Zawartość dokumentu trochę nam nie odpowiada, więc tworzymy drugi dokument, który będzie poprawioną wersją umowy. Modyfikujemy go tak, aby spełniał nasze wymagania. Jeżeli dokonamy drobnych modyfikacji (np. dodanie kilku spacji) obu dokumentów, tak aby powstała odpowiednia ilość różnych wersji, to z dużym prawdopodobieństwem znajdziemy parę poprawna umowa zmodyfikowana umowa, która będzie mieć te same wartości funkcji haszującej. Modyfikujemy obie wersje dokumentu (oryginalnego i sfałszowanego) ponieważ znalezienie umowy (wśród kolekcji zmodyfikowanych wersji sfałszowanej umowy), która posiada tę samą wartość funkcji skrótu co dokument oryginalny (bez modyfikacji) ma mniejsze prawdopodobieństwo niż znalezienie pary dokumentów o tej samej Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 21

wartości sumy kontrolnej (wśród kolekcji zmodyfikowanych wersji dokumentu oryginalnego i sfałszowanego) [3]. 4.1.3 Rozwiązania.NET Framework.NET dostarcza wielu standardowych algorytmów z dziedziny kryptografii. Algorytmy te są proste w użyciu a ich autorzy dołożyli starań by optymalnie dobrać domyślne parametry. Dodatkowo, w modelu kryptograficznym.net hierarchia obiektów, podejście oparte na strumieniach jak i konfiguracja obiektów są niezwykle elastyczne i dają się w łatwy sposób rozszerzać. Hierarchia obiektów. System zabezpieczeń.net implementuje rozszerzalny zbiór klas oraz interfejsów, których hierarchię można przedstawić jak poniżej: Klasy typ algorytmu na przykład algorytmy symetryczne lub algorytmy haszujące. Ten poziom klas jest abstrakcyjny. Klasy algorytmów dziedziczą z klas typów algorytmów, na przykład RC2 lub SHA1. Ten poziom klas jest abstrakcyjny. Implementacje algorytmów dziedziczą z klas algorytmów, na przykład RC2CryptoServiceProvider albo SHA1Managed. Ten poziom klas jest w pełni zaimplementowany. Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 22