Politechnika Warszawska Rokakademicki2011/2012 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska Łukasz Bednaszyn´ski Zastosowanie metod eksploracji danych do analizy logów bezpieczen´stwa systemów komputerowych. Promotor: dr Krzysztof Cabaj Ocena ................................. ......................................... PodpisPrzewodnicza˛cego KomisjiEgzaminuDyplomowego Specjalnos´c´: Informatyka – Inz˙ynieria oprogramowania i systemy informacyjne Data urodzenia: 20 czerwca 1987 r. Data rozpocze˛cia studiów: 1 paz´dziernika 2006 r. Z˙yciorys Urodziłemsie˛ 20czerwca1987rokuwOpolu. Tamtez˙ w2006rokuukon´czyłem II Liceum Ogólnokształca˛ce im. Marii Konopnickiej. Ucze˛szczałem tam do klasy o profilu matematyczno-fizycznym. Ze wzgle˛du na zainteresowania informatyczne, po uzyskaniu s´wiadectwa dojrzałos´ci rozpocza˛łem studia na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na kierunku Informatyka. ..................................... podpisstudenta Egzamin dyplomowy Złoz˙ył egzamin dyplomowy w dn. ..................................................... Z wynikiem ............................................................................. Ogólny wynik studiów ................................................................. Dodatkowe wnioski i uwagi Komisji .................................................. .......................................................................................... Streszczenie W ramach niniejszej pracy zbadana została moz˙liwos´c´ wykorzystania technik eksploracji danych do wykrywania nieznanych dota˛d podatnos´ci aplikacji WWW z wykorzystaniem algorytmów wykrywania wzorców sekwencyjnych oraz wzorców wyskakuja˛cych. Badania zostały wykonane na podstawie danych z logów pocho- dza˛cych z serwerów WWW oraz zapisu ruchu sieciowego serwera honeypot. W pracy przedstawiony został proces odkrywania wiedzy oraz opis podstawo- wych poje˛c´ z zakresu eksploracji danych. Zawarto w niej tez˙ opis przeprowadzo- nych eksperymentów oraz opracowanej metodyki badan´. Szczegółowo scharaktery- zowano równiez˙ zidentyfikowane ataki na aplikacje wykorzystuja˛ce protokół HTTP. Dodatkowowpracyumieszczonyzostałprojektorazopisimplementacjisystemu, który był uz˙ywany do przeprowadzenia eksperymentów z wykorzystaniem algo- rytmuwzorcówwyskakuja˛cych. Nakon´cupracyprzedstawionezostaływycia˛gnie˛te wnioskinapodstawiewykonanycheksperymentóworazwskazanezostałymoz˙liwe kierunki dalszych badan´. Słowa kluczowe: data mining, wzorce wyskakuja˛ce, wzorce sekwencyjne, bezpie- czen´stwo systemów komputerowych, analiza logów, podatnos´ci aplikacji WWW Abstract Title: Using of data mining methods for analyzing application security logs This thesis explores the possibility of using data mining techniques to detect previously unknown vulnerabilities in web applications using sequential patterns and jumping patterns algorithms. Studies have been done on the basis of data from web server logs and network traffic that has been captured by honeypot server. Paper presents the process of knowledge discovery and basic concept of data mining. Moreoveritincludesadescriptionoftheexperimentsanddevelopedresearch methodology. There is also detailed description of discovered attacks which were targeted to applications using the HTTP protocol. In addition, this thesis contains project and the implementation description of the system, which was used to carry out experiments using an algorithm of jumping patterns. At the end of the paper there are given possible directions for further research based on performed experiments. Keywords: data mining, jumping patterns, sequential patterns, computer system security, system log analysis, web application vulnerabilities Spis tres´ci 1. Wste˛p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Eksploracja danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Proces odkrywania wiedzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Zbiory cze˛ste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Wzorce sekwencyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4. Wzorce wyskakuja˛ce i wyłaniaja˛ce sie˛ . . . . . . . . . . . . . . . . . . . . . . . 6 2.5. Algorytmy wykrywania zbiorów cze˛stych . . . . . . . . . . . . . . . . . . . . . . 7 2.5.1. Algorytm apriori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5.2. MAFIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3. Bezpieczen´stwo aplikacji WWW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1. Nieautoryzowany doste˛p do plików systemowych . . . . . . . . . . . . . . . . . 11 3.2. Wykonanie zdalnego kodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3. Ujawnienie s´ciez˙ki doste˛pu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4. Cross-site scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5. Wstrzyknie˛cie kodu SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.6. Skanowania w poszukiwaniu konkretnych aplikacji . . . . . . . . . . . . . . . 14 3.7. Skanowania w poszukiwaniu niezabezpieczonego serwera pos´rednicza˛cego . 14 4. Wykorzystywane zbiory danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1. Logi systemu honeypot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2. Logi serwera HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2.1. Logi doste˛pu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2.2. Logi błe˛dów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3. Reprezentacja danych na potrzeby eksperymentów . . . . . . . . . . . . . . . 16 4.3.1. Model danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3.2. Czyszczenie danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5. Projekt i implementacja systemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1. Wymagania funkcjonalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2. Wymagania niefunkcjonalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3. Model aktorów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.4. Przypadki uz˙ycia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.5. Architektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.5.1. Moduł wczytywania danych z plików logów . . . . . . . . . . . . . . . . 30 5.5.2. Moduł wykonywania analiz . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.5.3. Moduł interfejsu uz˙ytkownika . . . . . . . . . . . . . . . . . . . . . . . . 32 5.6. Implementacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.6.1. Technologia wykonania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.6.2. Model danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.6.3. Budowa systemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6. Eksperymenty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.1. Analiza wzorców przy pomocy programu Statistica . . . . . . . . . . . . . . . 38 6.1.1. Zbiór z˙a˛dan´ z logów systemu honeypot . . . . . . . . . . . . . . . . . . 40 6.1.2. Zbiór z˙a˛dan´ z logów serwera HTTP . . . . . . . . . . . . . . . . . . . . . 45 Spistres´ci ii 6.2. Wzorce wyskakuja˛ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.2.1. Zbiór z˙a˛dan´ z logów systemu honeypot . . . . . . . . . . . . . . . . . . 47 6.2.2. Zbiór z˙a˛dan´ z logów serwera HTTP . . . . . . . . . . . . . . . . . . . . . 48 6.3. Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.3.1. Porównanie zastosowanych metod . . . . . . . . . . . . . . . . . . . . . 51 6.3.2. Ograniczenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.3.3. Metodyka badan´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.3.4. Dobór parametrów steruja˛cych algorytmu wzorców wyskakuja˛cych . . 56 7. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Spis literatury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Zała˛czniki A. Dodatek A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 1. Wste˛p Cia˛gła popularyzacja Internetu oraz tendencja do podła˛czania do niego kolej- nych urza˛dzen´ powoduje wzrost liczby róz˙nych aplikacji oraz doste˛pnych usług internetowych. Naturalnym naste˛pstwem jest wzrost liczby niebezpieczen´stw, na które naraz˙eni sa˛ jego uz˙ytkownicy. Kaz˙da aplikacja moz˙e zawierac´ błe˛dy, które potencjalnie umoz˙liwiaja˛ atakuja˛cemu przeprowadzenie pomys´lnego ataku, przy- kładowo nieautoryzowanego doste˛pu do bazy danych a w konsekwencji przeje˛cia przez atakuja˛cego poufnych danych. Bardzo cze˛sto nowe serwisy internetowe powstaja˛ na bazie istnieja˛cych kom- ponentów. Zachowanie wysokiego poziomu bezpieczen´stwa w takim przypadku, w głównej mierze polega na instalowaniu aktualizacji bezpieczen´stwa, które usu- waja˛ wykryte podatnos´ci. Najtrudniejszym zadaniem jest jednak ich wykrywanie. Poddanie aplikacji testom bezpieczen´stwa nie gwarantuje, z˙e wszystkie jej podat- nos´ci zostana˛wykryte. Bardzo cze˛sto zdarza sie˛, z˙e aplikacje w ogóle nie sa˛takim testom poddawane. W swojej pracy inz˙ynierskiej [4] zaprezentowałem technologie˛ systemów honey- pot. Słuz˙a˛one do zbierania danych dotycza˛cych potencjalnych ataków na serwery WWW. W ramach pracy przedstawiłem przykład takiego systemu. Wykorzystywa- łem go do gromadzenia danych dotycza˛cych z˙a˛dan´ HTTP wysyłanych przez roboty internetowe. Dzie˛ki takiemu rozwia˛zaniu moz˙liwe było rejestrowanie z˙a˛dan´, które mogły zawierac´ ataki publicznie jeszcze nieznane. Dodatkowo w pracy inz˙ynierskiej poruszyłem temat sieci systemów honeypot, jako sposobu na zwielokrotnienie liczby sensorów, w celu zwie˛kszenia ilos´ci reje- strowanychdanych. Niestety,tworzeniezłoz˙onychsieciskutkujetym, z˙emanualne analizowanie przez eksperta zgromadzonych danych, bardzo szybko staje sie˛ nie- moz˙liwe ze wzgle˛du na ich wolumen. Głównym celem niniejszej pracy było zbadanie moz˙liwos´ci wykrywania ataków na nieznane dota˛d podatnos´ci aplikacji WWW z wykorzystaniem techniki eksplo- racji danych. Eksperymenty przeprowadziłem na róz˙nych zbiorach danych — za- równo na tych pochodza˛cych z serwerów honeypot, czyli zawieraja˛ce jedynie po- dejrzane z˙a˛dania HTTP, jak i ze zwykłych serwerów WWW. Te ostatnie zbiory były duz˙o obszerniejsze i zawierały zapis ruchu generowanego równiez˙ przez zwykłych uz˙ytkowników. W trakcie badan´ porównałem wyniki generowane przez dwa rodzaje wzorców: wzorców sekwencyjnych oraz wzorców wyskakuja˛cych. Ze wzgle˛du na brak oprogramowania do analizy danych przy pomocy algorytmu wzorców wyskakuja˛cych w ramach pracowni dyplomowej zaimplementowałem sys- tem wspomagaja˛cy taka˛analize˛. Ze wzgle˛du na specyfike˛ algorytmu, zaimplemen- towaneoprogramowaniewprowadzadodatkowestopnieautomatyzacji,tj. cykliczne wczytywanie danych z logów oraz automatyczne wykonywanie analiz. Układ niniejszej pracy przedstawia sie˛ naste˛puja˛co: naste˛pny rozdział pracy przedstawia podstawowe poje˛cia z zakresu odkrywania wiedzy oraz eksploracji da- nych. Omówiłem w nim wykorzystywane przeze mnie w trakcie badan´ algorytmy 1. Wste˛p 2 wykrywaja˛ce wzorce sekwencyjne oraz wyskakuja˛ce. Przedstawiłem równiez˙ róz˙ne algorytmy do generowania zbiorów cze˛stych, które wykorzystywałem w trakcie ba- dan´. Rozdział trzeci zawiera opis wybranych podatnos´ci aplikacji WWW. Omówiłem w nim podatnos´ci, do których odwołałem sie˛ w rozdziale opisuja˛cym przeprowa- dzone przeze mnie eksperymenty. Rozdział czwarty zawiera opis uz˙ywanych zbiorów danych. W trakcie badan´ wykorzystywałem dane pochodza˛ce z plików logów serwera Apache, a takz˙e zrzut komunikacji sieciowej w postaci plików pcap. W rozdziale pia˛ty szczegółowo przedstawiłem projekt oraz opis implementacji powstałego w ramach pracowni dyplomowej systemu. Projekt systemu zawiera zbiór wymagan´ stawianych systemowi, model przypadków uz˙ycia oraz architek- ture˛ systemu. Opis implementacji to niskopoziomowe szczegóły dotycza˛ce budowy i technologii wykonania oraz sposobu działania wykonanego systemu. Rozdział szósty pos´wie˛ciłem na opis rezultatów wykonanych przeze mnie eks- perymentów. Przedstawiłem w nim wyniki uzyskane z wykorzystaniem algorytmu wykrywaja˛cegowzorcesekwencyjneuz˙ywaja˛coprogramowaniaStatistica orazalgo- rytmu wykrywaja˛ce wzorce wyskakuja˛ce korzystaja˛c z zaimplementowanego przeze mnie systemu. Badania dla kaz˙dego z algorytmów przeprowadzone zostały oddziel- nie na obydwóch uz˙ywanych zbiorach danych. Dodatkowo rozdział ten zawiera propozycje˛ metodyki analizy danych, która˛ sformułowałem na podstawie prowa- dzonych przeze mnie badan´. Na kon´cu pracy umies´ciłem podsumowanie, które zawiera wnioski sformuło- wane na podstawie przeprowadzonych przeze mnie eksperymentów. Zdefiniowałem równiez˙ w nim moz˙liwe dalsze kierunki badan´ oraz rozwoju stworzonego w ramach pracy systemu. Do pracy doła˛czyłem bibliografie˛ oraz zała˛cznik, w którym wymieniłem liste˛ wszystkich zidentyfikowanych przeze mnie podatnos´ci wraz z adresem ze szcze- gółowym opisem kaz˙dego z nich. 2. Eksploracja danych Celem pracy było zbadanie moz˙liwos´ci automatycznego wykrywania nowych ataków skierowanych na systemy informatyczne. Aby go zrealizowac´, do analizy czy próbka danych jest potencjalnym atakiem, uz˙yłem technik eksploracji danych. W tym rozdziale znajduje sie˛ opis procesu odkrywania wiedzy oraz uz˙ywanych przeze mnie algorytmów analizy danych. 2.1. Proces odkrywania wiedzy Eksploracja danych bardzo cze˛sto błe˛dnie utoz˙samiana jest z całym procesem odkrywania wiedzy [7]. W rzeczywistos´ci jest to jeden z kroków tego procesu, na który składa sie˛ kilka etapów. Kolejne kroki procesu przedstawiłem na rysunku 2.1 oraz poniz˙ej: — poznanie dziedziny analizowanych danych i budowa modelu, — przygotowanie danych podlegaja˛cych analizie, — eksploracja danych, — ocena wyników przez eksperta dziedziny, — wykorzystanie otrzymanych wyników. Zadaniem eksploracji danych jest analizowanie danych w celu pozyskania za- wartej w nich nieznanej wiedzy. Jako z˙e na tym etapie generowane sa˛wyniki, jest on bardzo waz˙ny w całym procesie. Nie nalez˙y jednak zapominac´ o pozostałych krokach, które istotnie wpływaja˛na kon´cowy rezultat całego procesu. Etap poznania dziedziny i przygotowania danych to nie tylko przekształcenie danychdoformatuakceptowanegoprzezalgorytmyeksploracyjne, aletez˙ zidentyfi- kowanie i usunie˛cie danych potencjalnie zakłócaja˛cych ich działanie. W przypadku mojej pracy, w której analizowałem z˙a˛dania HTTP, takimi danymi były z˙a˛dania wysyłane przez roboty znanych firm, takich jak Google czy Yahoo. Ze wzgle˛du budowa przygotowanie eksploracja wykorzystanie ocena wyników modelu danych danych wyników Rysunek 2.1: Etapy procesu odkrywania wiedzy 2.2. Zbiory cze˛ste 4 na bardzo duz˙a˛ cze˛stos´c´ ich wyste˛powania, stanowiły szum, który w niektórych przypadkach znacza˛co obniz˙ał prawdopodobien´stwo wykrycia z˙a˛dan´ potencjalnie pochodza˛cych ze z´ródeł, których działalnos´c´ moz˙na zakwalifikowac´ jako niebez- pieczna˛. Analogicznie kroki oceny wyników i ich wykorzystania sa˛równie istotne. Nalez˙y miec´ na uwadze, z˙e eksploracja danych jest jedynie narze˛dziem wspomagaja˛cym człowieka. Wiedza pozyskana na tym etapie musi byc´ naste˛pnie zweryfikowana przez eksperta. Oznacza to, z˙e obecnie nie jest moz˙liwe zbudowanie takiego sys- temu wykorzystuja˛cego eksploracje˛ danych, który działałby bez potrzeby kontrolo- wania wyników jego pracy przez ekspertów. Algorytmy eksploracyjne nalez˙y roz- patrywac´ jako wspomagaja˛ce prace˛ ludzi, a nie ja˛ zaste˛puja˛ce. W szczególnos´ci wyniki generowane przez algorytmy bezpos´rednio zalez˙a˛ od zdefiniowanych para- metrów. Ich odpowiednie ustalenie wymaga kilkukrotnego powtórzenia ekspery- mentów z róz˙nymi parametrami wejs´ciowymi oraz wiedzy eksperta, który potrafi ocenic´ jakos´c´ generowanych wyników. Sama eksploracja danych moz˙e byc´ wykorzystywana do wielu róz˙nych zadan´, jednak najcze˛s´ciej posługuje sie˛ nia˛do: — klasyfikacji, — grupowania, — wykrywania wzorców. Klasyfikacja jest procesem polegaja˛cym na przypisaniu porcji danych do kon- kretnej, znanej klasy. Procesem zbliz˙onym do klasyfikacji jest grupowanie. Polega ono na podzieleniu danych na zbiory (klasy) o podobnych cechach. Celem wykrywania wzorców jest odkrycie zalez˙nos´ci pomie˛dzy danymi. W kon- teks´cie wzorców cze˛sto mówimy o analizie koszykowej, która słuz˙y do wykrywania w zestawie danych ukrytych zalez˙nos´ci w postaci reguł i wzorców. Pierwotnie ana- liza koszykowa była wykorzystywana do analizy transakcji sklepowych. W przy- padku zakupów problem moz˙na sprowadzic´ do wykrywania, które produkty spo- s´ród szerokiej ich gamy sa˛ kupowane razem lub w jakiejs´ okres´lonej sekwencji przez klientów sklepu. W ramach pracy magisterskiej do wykrywania zalez˙nos´ci pomie˛dzy danymi wy- korzystywałem wzorce sekwencyjne oraz wzorce wyskakuja˛ce. W dalszej cze˛s´ci rozdziału omówiłem podstawowe poje˛cia z dziedziny eksploracji danych, przedsta- wiłem koncepcje˛ techniki wykrywania wzorców oraz opisałem konkretne algorytmy uz˙ywane w trakcie eksperymentów. 2.2. Zbiory cze˛ste W tabeli 2.1 znajduje sie˛ przykładowy zestaw danych. Składa sie˛ on z czte- rech zbiorów elementów, gdzie kaz˙dy z nich został przedstawiony w osobnym wier- szu. W analogii do zakupów sklepowych pojedynczy zbiór elementów nazywamy transakcja˛. W przykładowym zbiorze danych w wierszach przedstawione sa˛kolejne transakcje, natomiast w kolumnach odpowiednio zdefiniowane sa˛: identyfikator oraz elementy, które wchodza˛w jej skład. 2.3. Wzorce sekwencyjne 5 Identyfikator Zakupione produkty transakcji 1 A B D 2 A C 3 A E 4 B D F Tabela 2.1: Przykładowy zbiór danych Wsparcie, oznaczane jako supp(), to odsetek transakcji zawieraja˛cych dany ele- ment: A supp(X) = B A — liczba transakcji gdzie wyste˛puje X B — liczba wszystkich transakcji Przykładowo wsparcie elementu A jest równe 0,75, poniewaz˙ A wyste˛puje w trzech transakcjach (supp({A})=0,75). Wsparcie bardzo cze˛sto jest równiez˙ okres´lane jako liczba transakcji danego zbioru zawieraja˛cych dany element. Dla tak zdefiniowa- nego poje˛cia, wsparcie elementu A jest równe 3. Jes´li zbiór ma wsparcie wie˛ksze od zadanego progu minimalnego wsparcia, to wtedy mówimy o nim, z˙e jest zbiorem cze˛stym. Dla minimalnego wsparcia zdefiniowanego na poziomie 2 w przykładowym zestawie danych znajduja˛sie˛ cztery zbiory cze˛ste: {A}, {B}, {D}, {B, D}. W celu zmniejszenia liczby zbiorów do przeanalizowania bardzo cze˛sto korzy- sta sie˛ z maksymalnych zbiorów cze˛stych, czyli takich, które nie posiadaja˛ cze˛- stego nadzbioru. W analizowanym przykładzie dla minimalnego wsparcia równego 2 znajduja˛sie˛ dwa maksymalne zbiory cze˛ste: {A}, {B, D}. 2.3. Wzorce sekwencyjne Wzorce sekwencyjne [2] opisuja˛ pewne zdarzenia, które wyste˛puja˛ w okres´lo- nej kolejnos´ci. Bardzo cze˛sto słuz˙a˛ one do badania zachowan´ klientów sklepów. Przykładem takiego wzorca moz˙e byc´ zakup podstawki i klawiatury do laptopa. Zazwyczaj takie zdarzenie be˛dzie naste˛powało po zakupie samego laptopa. Aby analiza sekwencyjna była moz˙liwa, oprócz identyfikatora transakcji i listy elementów, w bazie danych musi byc´ przechowywany równiez˙ identyfikator okre- s´laja˛cy kto dana˛ transakcje˛ zawarł, oraz opcjonalnie czas dokonania transakcji. Dla przykładowego zbioru danych przedstawionego w tabeli 2.2 i minimalnego wsparcia ustalonego na poziomie 0,2 moz˙emy wykryc´ wzorzec sekwencyjny w po- staci < {A}, {C, D} >. Taki wzorzec oznacza, z˙e wysta˛pienie zbioru {C, D} cze˛sto jest poprzedzone wysta˛pieniem zbioru {A}, a wiec wysta˛pienie {A} pozytywnie wpływa na wysta˛pienie {C, D}. Podczas odkrywania wzorców sekwencyjnych, w zalez˙nos´ci od uz˙ytego algo- rytmu, oprócz reguły wsparcia mamy równiez˙ moz˙liwos´c´ sterowania parametrami czasowymi. Podstawowym parametrem czasowym jest okno czasowe, które okres´la jaka jest maksymalna róz˙nica pomie˛dzy czasem dokonania ostatniej i pierwszej transakcji, czyli dla sekwencji s =< s ...s > i okna czasowego zachodzi zalez˙nos´c´: 1 n czas_transakcji(s )−czas_transakcji(s ) ≤ okno_czasowe. n 1
Description: