Błażej Miga, PCSS blazej.miga@man.poznan.pl



Podobne dokumenty
SECURE /10/2006. Błażej Miga, PCSS Jaroslaw Sajko, PCSS

Zabawy z PHP em. Błażej Miga, Jaroslaw Sajko, PCSS blazej.miga@man.poznan.pl jaroslaw.sajko@man.poznan.pl

CONFidence 13/05/2006. Jarosław Sajko, PCSS

IIS Bezpieczne udostępnianie usług www. BłaŜej Miga blazej.miga@man.poznan.pl. Zespół Bezpieczeństwa PCSS Centrum Innowacji Microsoft

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Apache. Apache serwer WWW

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Technologie internetowe

Apache i okolice... Jacek Prucia jacek.prucia@7bulls.com

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

FTP co to takiego? FTP File Transfer Protocol (Protokół Przesyłania Plików) RFC 114,959

XML-RPC: Zdalne wykonywanie procedur

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Tomasz Greszata - Koszalin

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Programowanie w Internecie

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Drobne błędy w portalach WWW

Konfiguracja serwera Apache

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

Programowanie współbieżne i rozproszone

INFRA. System Connector. Opis wdrożenia systemu

Tworzenie aplikacji rozproszonej w Sun RPC

INSTRUKCJA OBSŁUGI DLA SIECI

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Zarządzanie systemami informatycznymi. Zarządzanie serwerem httpd: Apache

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

Aplikacja Sieciowa wątki po stronie klienta

Dokumentacja wdrożeniowa Project Lord 1.0

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Technologie Obiektowe PK WFMI 2010/2011

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Gatesms.eu Mobilne Rozwiązania dla biznesu

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Wybrane działy Informatyki Stosowanej

Tomasz Grześ. Systemy zarządzania treścią

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Red Hat Network Satellite Server

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie Komponentowe WebAPI

Zapoznanie się z konfiguracją i zarządzaniem serwerem WWW - Apache.

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 2 Seria: Teleinformatyka 2013

Serwer DHCP (dhcpd). Linux OpenSuse.

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Podstawy technologii WWW

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Apache serwer WWW (część 2) Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

W poprzednim odcinku poznaliśmy: W poprzednim odcinku, cd.: W dzisiejszym odcinku. Apache serwer WWW (część 2)

Zadanie OUTSIDE /24. dmz. outside /24. security- level /16

Techniki WWW. (HTML, CSS, JavaScript) Dr inż. Marcin Zieliński WYKŁAD 1. Środa 15:30-17:00 sala: A-1-04

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

(Pluggable Authentication Modules). Wyjaśnienie technologii.

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

KARTA KURSU. Administracja serwerami WWW

Skalowanie i monitorowanie działania systemu dlibra 5.0

Połączenie VPN SSL Web Proxy. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile SSL Web Proxy 1.3. Konto SSL 1.4. Grupa użytkowników

I.Wojnicki, Tech.Inter.

Język ludzki kod maszynowy

SMB protokół udostępniania plików i drukarek

Aplikacje WWW. Wykład 12. Serwery HTTP. wykład prowadzi: Maciej Zakrzewicz. Serwery HTTP

PODSTAWOWA OBSŁUGA PROGRAMU PROGRAMU PACKET TRACER TRYB REAL TIME

Aplikacje WWW i PHP - opis przedmiotu

Funkcje zawarte w bibliotece < io.h >

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

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

Budowa architektury podstawowych funkcji usług IIS Działanie witryny sieci Web Korzystanie z aplikacji sieci Web i katalogów

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Zaawansowany kurs języka Python

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Programowanie w Internecie

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

1 Wprowadzenie do J2EE

System operacyjny Linux

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Programowanie obiektowe zastosowanie języka Java SE

INSTRUKCJA INSTALACJI DATAMOBILE. Ver. 1.3

Języki programowania wysokiego poziomu WWW

Mechanizmy pracy równoległej. Jarosław Kuchta

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

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

Transkrypt:

Hacking Apache Web Server Błażej Miga, PCSS blazej.miga@man.poznan.pl 1

Agenda Wprowadzenie Kilka słów o Apache Model działania serwera Moduły, uchwyty, filtry Prefork MPM Apache API Apache Analyzer Coś słodkiego 2

ZB PCSS Praca operacyjna w ramach ogólnopolskiej szerokopasmowej sieci PIONIER oraz zasobów Centrum Praca badawczo naukowa w ramach projektów krajowych oraz europejskich (CLUSTERIX, EGEE, UNIZETO, itvp) Usługi komercyjne (audyty, testy penetracyjne, analizy kodów źródłowych i binarnych, szkolenia, etc...) Praca po godzinach (komunikatory, Wi-Fi, analizatory kodów źródłowych) http://security.psnc.pl/ 3

Historia i dzień dzisiejszy 1994 r. Rob McCool (National Center for Supercomputing Applications) NCSA HTTPd 1995 r. NCSA HTTPd - a patchy server Apache Kwiecień 2006-68% rynku Aktualne wersje (2.2.2, 2.0.58 1.3.35) 4

Więcej informacji Oficjalna strona internetowa http://www.apache.org Listy mailingowe announce@httpd.apache.org dev@httpd.apache.org Apache Modeling Project http://f-m-c.org/projects/apache/ 5

Architektura serwera Źródło: The Apache Modeling Project http://apache.hpi.uni-potsdam.de/ 6

Moduły umożliwiają dodawanie nowych funkcjonalności do serwera kompilowane przy pomocy programu apxs wkompilowane w program lub w postaci bibliotek so wszystkie procesy Apache a posiadają identyczny kod wykonywalny 7

Moduły moduły dynamiczne są wczytywane podczas startu serwer dostęp do struktur request_rec, server_rec, connection_rec rejestrują handlery dla standardowych hook lub innych modułów modules.apache.org Baza modułów (426-05.2006) 8

Handlers Handlers for hooks Handlers for dealing with configuration directives Filters Optional functions Content handlers 9

Obsługa żądań HTTP Źródło: The Apache Modeling Project http://apache.hpi.uni-potsdam.de/ 10

Obsługa żądań HTTP Źródło: The Apache Modeling Project http://apache.hpi.uni-potsdam.de/ 11

Filtry Umożliwiają zmianę zawartości danych odbieranych (filtry wejściowe) i wysyłanych (filtry wyjściowe) do przeglądarki klienta Filtry umożliwiają zmianę danych na poziomie sieciowym, protokołu lub przesyłanych danych HTTP. 12

Filtry Źródło: The Apache Modeling Project http://apache.hpi.uni-potsdam.de/ 13

Prefork MPM MPM Multi-Processing Modules Pierwsza multitaskowa architektura Apache a Domyślny MPM dla UNIX Jeden proces server zarządca ustala liczbę procesów - dzieci zajmujące się żądaniami HTTP 14

Prefork MPM Źródło: The Apache Modeling Project http://apache.hpi.uni-potsdam.de/ 15

Prefork MPM Źródło: The Apache Modeling Project http://apache.hpi.uni-potsdam.de/ 16

Apache API Zarządzanie pamięcią Multitasking Operacje na tablicach i stringach Operacje sieciowe Funkcje logujące Identyfikacja, autoryzacja, uwierzytelnianie 17

Apache Portable Runtime Dodano od wersji 2.0 File I/O + Pipes Zaawansowane zarządzanie pamięcią Wątki Dynamiczne linkowanie Funkcje obsługi czasu 18

Pools służą do zarządzanie pamięcią tworzone są w pamięci heap wbudowane pule pglobal, pconf, plog, ptrans, pchild, pconn, preq każdy typ posiada różny czas życia tworzą strukturę drzewa 19

Pools 20

Najważniejsze struktury request_rec najważniejsza struktura zawiera informacje o żądaniu HTTP zawiera informacje o serwerze do którego przyszło żądanie zawiera informacje o połączeniu do którego należy zawiera wskaźnik do puli danych żądania i odpowiedzi 21

Request_rec struct request_rec { apr_pool_t *pool; conn_rec *connection; server_rec *server; request_rec *next; request_rec *prev; request_rec *main; char *the_request; int assbackwards; int proxyreq; int header_only; char *protocol; int proto_num; const char *hostname; apr_time_t request_time; const char *status_line; int status; const char *method; int method_number; apr_int64_t allowed; ap_method_list_t *allowed_methods; apr_off_t sent_bodyct; apr_off_t bytes_sent; apr_time_t mtime; const char *range; apr_off_t clength; apr_off_t remaining; apr_off_t read_length; int read_body; int read_chunked; apr_table_t *headers_in; apr_table_t *headers_out; apr_table_t *err_headers_out; apr_table_t *subprocess_env; apr_table_t *notes; const char *content_type; const char *handler; const char *content_encoding; apr_array_header_t *content_languages; char *vlist_validator; char *user; char *ap_auth_type; char *unparsed_uri; char *uri; char *filename; char *canonical_filename; char *path_info; char *args; apr_finfo_t finfo; apr_uri_t parsed_uri; struct ap_conf_vector_t *per_dir_config; struct ap_conf_vector_t *request_config; const struct htaccess_result *htaccess; struct ap_filter_t *output_filters; struct ap_filter_t *input_filters; struct ap_filter_t *proto_output_filters; struct ap_filter_t *proto_input_filters; }; 22

Najważniejsze struktury server_rec zawiera informacje o serwerze obsługującym żądanie informacja o konfiguracji serwera i wirtualnych hostach informacja o nazwie serwera, portach na których nasłuchuje konfiguracje specyficzna do danego serwera 23

Server_rec struct server_rec { process_rec *process; server_rec *next; const char *defn_name; unsigned defn_line_number; char *server_admin; char *server_hostname; apr_port_t port; char *error_fname; apr_file_t *error_log; int loglevel; int is_virtual; struct ap_conf_vector_t *module_config; struct ap_conf_vector_t *lookup_defaults; server_addr_rec *addrs; apr_interval_time_t timeout; apr_interval_time_t keep_alive_timeout; int keep_alive_max; int keep_alive; const char *path; int pathlen; apr_array_header_t *names; apr_array_header_t *wild_names; int limit_req_line; int limit_req_fieldsize; int limit_req_fields; }; 24

conn_rec Najważniejsze struktury HTTP 1.1 umożliwia realizowanie wielu żądań poprzez jedno połączenie posiada informacje o aktualnym połączeniu zawiera informacje o serwerze do którego zostało zrealizowane połączenie 25

Conn_rec struct conn_rec { apr_pool_t *pool; server_rec *base_server; void *vhost_lookup_data; apr_sockaddr_t *local_addr; apr_sockaddr_t *remote_addr; char *remote_ip; char *remote_host; char *remote_logname; unsigned aborted:1; ap_conn_keepalive_e keepalive; signed int double_reverse:2; int keepalives; char *local_ip; char *local_host; long id; struct ap_conf_vector_t *conn_config; struct ap_filter_t *input_filters; struct ap_filter_t *output_filters; void *sbh; struct apr_bucket_alloc_t *bucket_alloc; conn_state_t *cs; int data_in_input_filters; }; 26

Apache Analyzer Prezentacja działania programu Informacje o systemie Wyszukiwanie konfiguracji serwera Odnajdywanie najważniejszych struktur serwera: pools, moduły, hooki, filtry, struktury server_info i request_info scoreboard Niespodzianka! 27

Ochrona systemu Blokada niebezpiecznych funkcji PHP (dl, pcntl_exec, posix_kill, system, exec, passthru, popen, proc_open, shell_exec, mail ) Wyłączenie modułu mod_perl Stosowanie virtualhost tylko dla zaufanych domen 28

Dane kontaktowe blazej.miga@man.poznan.pl http://www.man.poznan.pl http://security.psnc.pl 29

Pytania? Dziękuję za uwagę! 30