wtorek, 21 października 2014

HTML

HTML (ang. HyperText Markup Language) – hipertekstowy język znaczników, obecnie szeroko wykorzystywany do tworzenia stron internetowych.

HTML pozwala opisać strukturę informacji zawartych wewnątrz strony internetowej, nadając znaczenie poszczególnym fragmentom tekstu – formując hiperłączaakapity, nagłówki, listy – oraz osadza w tekście dokumentu obiekty plikowe np. multimedia bądź elementy baz danych np. interaktywne formularze danych.
HTML umożliwia określenie wyglądu dokumentu w przeglądarce internetowej. Do szczegółowego opisu formatowania akapitów, nagłówków, użytych czcionek i kolorów, zalecane jest wykorzystywanie kaskadowych arkuszy stylów.
W składni HTML wykorzystuje się pary znaczników umieszczone w nawiasach ostrokątnych, np. <title> i </title> lub <h1> i </h1>.
HTML pozwala również na osadzanie ciągów instrukcji języków skryptowych, umieszczonych pomiędzy znacznikami <script> i </script>
Należy nadmienić, że HTML, będąc językiem znaczników, nie jest zaliczany do języków programowania – w jego składni nie przewidziano wyrażeń obliczeniowych, warunkowych czy iteracyjnych.
Ważną cechą HTML-a, która przyczyniła się do popularności systemu WWW oraz Internetu, jest niezależność od systemu operacyjnego i wykorzystywanego sprzętu komputerowego.

Przykład dokumentu HTML

Prosty przykład strony WWW w HTML-u z ustawieniem języka polskiego:
<!doctype html>
 
<html lang="pl" dir="ltr">
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Tytuł strony</title>
</head>
 
<body>
    <h1>Nagłówek pierwszego poziomu</h1>
    <p>
    Akapit (z ang. paragraph)<br />
    i jeszcze trochę tekstu w następnym wierszu<br />
    a to jest <a href="http://pl.wikipedia.org">link do Wikipedii</a>.
    </p>
</body>
 
</html>

wtorek, 14 października 2014

Bezpieczeństwo w sieci

Zagrożenia bezpieczeństwa w sieci Internet można ogólnie podzielić na następujące klasy:

- uzyskanie dostępu do danych transmitowanych przez sieć lub przechowywanych na dołączonych do sieci komputerach przez osoby niepowołane;

- uzyskanie dostępu do innych zasobów (moc obliczeniowa komputerów itd.) przez osoby niepowołane;

- utrata danych na skutek złośliwej ingerencji zewnętrznej;

- fałszerstwo danych (dotyczy zwłaszcza poczty elektronicznej, gdzie zachodzi m.in. możliwość podszywania się pod innego nadawcę). 


Techniki, jakimi można posłużyć się dla osiągnięcia któregoś z w/w celów, opierają się przede wszystkim na wykorzystaniu:

- wad protokołu TCP/IP i protokołów pokrewnych (DNS, SMTP);

- błędów w oprogramowaniu systemowym.

- błędów administratora lub użytkownika systemu. 




W każdej z powyższych kategorii można podać liczne przykłady, jak również sposoby zabezpieczania się przed tymi metodami. I tak np. mechanizmy TCP/IP pozwalają na fałszowanie adresu IP nadawcy pakietu - komputer do którego adresy te docierają, interpretuje je jako wysłane przez inny komputer, niż w rzeczywistości miało to miejsce. Sposobem na zabezpieczenie się przed taką formą ataku jest rezygnacja z usług sieciowych, które opierają autentyfikacją (sprawdzenie tożsamości użytkownika) na jego adresie IP (np. NFS w wersji podstawowej), lub ograniczenie ich do lokalnej podsieci (ukrytej za routerem filtrującym "podejrzane" pakiety). 

Protokół TCP/IP nie zawiera wbudowanych mechanizmów szyfrowania przesyłanych danych. Umożliwia to przechwytywanie danych przez osoby trzecie, zwłaszcza w przypadku mediów transmisyjnych takich jak Ethernet, funkcjonujących na zasadzie magistrali. Czynione są obecnie próby włączenia szyfrowania (enkrypcji) danych jako opcji w nowej wersji protokołu IP (IPv6); tymczasowym rozwiązaniem jest stosowanie szyfrowania nie w warstwie transmisyjnej (TCP/IP), lecz na poziomie aplikacji. Przykładowe rozwiązania zostaną omówione poniżej. 

Najczęstszym sposobem naruszenia bezpieczeństwa w sieci jest pozyskanie dostępu do cudzego konta na komputerze pracującym w systemie wielodostępnym (np. Unix) przyłączonym do sieci Internet. Cel ten można osiągnąć między innymi wykorzystując błędy w oprogramowaniu systemowym. Typowym przykładem jest błąd odkryty niedawno m.in. w systemie AIX (wersja Unixa firmy IBM), umożliwiający dowolnemu użytkownikowi na dowolnym komputerze w sieci Internet dostęp do konta "root" (tzn. administratora systemu) każdego komputera w sieci Internet pracującego pod systemem AIX. Tego typu naruszenie bezpieczeństwa tradycyjnie określa sie "włamaniem" do komputera. Włamanie na konto administratora jest szczególnie niebezpiecznym przypadkiem, umożliwia bowiem włamywaczowi dostęp do danych wszystkich użytkowników danego komputera, a także ułatwia zatarcie w systemie śladów włamania. 



Przyczyny i rodzaje zagrożeń związanych z funkcjonowaniem sieci i podłączeniem do Internetu. 





Sniffing (podsłuch (dosł. węszenie) transmisji danych) Używając programów typu analizator pakietów można "podsłuchać" transmisję TCP, taką jak np. sesje TELNET czy FTP, gdzie wszystkie wymieniane dane to "gołe" pakiety i dzięki temu przechwycić hasło wymagane przy logowaniu się, po przechwyceniu hasła można wejść na konto użytkownika i spróbować wykorzystać np. exploita dzięki któremu spodziewamy się dostać prawa administratora. Warto zauważyć że programy tego typu korzystają z "promiscous mode", a więc aby uruchomić taki program należy JUŻ mieć gdzieś prawa administratora systemu (najlepiej w domenie gdzie znajduje się obiekt naszego ataku), takie programy to LanWatch, IPtrace, snoop, sniffit, LinuxSniffer, Ipinvestigator, strobe. 



Spoofing (podszywanie się pod legalną "zarejestrowaną" maszynę) podszywanie ma na celu ominięcie zabezpieczeń związanych z dostępem do usług tylko dla wybranych adresów, np. tylko lokalni użytkownicy mogą korzystać z usługi która może okazać się niebezpieczną po udostępnieniu jej światu zewnętrznemu. Programy reprezentujące ten typ ataków to: fakerwall i spoofer. 



Cracking (łamanie haseł z passwd metodą słownikową, lub też próbkowanie programu autoryzującego słowami z odpowiednio przygotowanych słowników). Są jeszcze systemy, gdzie "czyste" passwd można sobie skopiować przez TFTP, lub też po "zorganizowaniu" sobie konta zwykłego użytkownika skopiować passwd, i programem crack z odpowiednią ilością słowników próbkować po kolei wszystkie konta. Dostęp do passwd można też uzyskać wykorzystując tzw. błąd phf niektórych serwerów webowych i ich CGI, istnieją nawet programy wyszukujące takie serwery. Można też próbkować w ten sposób sam program autoryzujący (np. w POP3) , lecz jest to łatwe do wykrycia, ze względu na ruch generowany w sieci i obciążenie maszyny autoryzującej. 



Hijacking (przechwytywanie zdalnej sesji legalnego użytkownika systemu), metoda przejęcia sesji użytkownika oparta o mechanizm połączeniowy protokołu TCP (3-way handshaking) na czym opiera się TELNET, oraz wygenerowanie odpowiedniego numeru sekwencyjnego. Forma ataku, którą trudno jest wykryć, a użytkownik którego sesja jest przechwytywana, może zorientować się że cos jest nie tak, po nagłym 'resecie' sesji, lub później przeglądając to co robił, programem 'history'. Administrator może rozpoznać tę formę ataku po wykryciu stanu DESYNCH połączenia, oraz lekko zwiększonej ilości pakietów TCP ACK w segmencie, zwiększa się także współczynnik utraty pakietów. Aby uchronić się przed tym rodzajem ataku, należy zrezygnować z TELNET'a na rzecz np. SSH, lub też zaimplementować KERBEROSA. 

czwartek, 9 października 2014

Podstawowe protokoły sieciowe

 Protokół jest to zbiór procedur oraz reguł rządzących komunikacją, między co najmniej dwoma urządzeniami sieciowymi. Istnieją różne protokoły, lecz nawiązujące w danym momencie połączenie urządzenia muszą używać tego samego protokołu, aby wymiana danych pomiędzy nimi była możliwa.


Do najważniejszych protokołów należą:
  • TCP/IP
  • IP
  • SLIP
  • PPP
TCP/IP (ang. Transmission Control Protocol / Internet Protocol) - to zespół protokołów sieciowych używany w sieci Internet. Najczęściej wykorzystują go systemy Unixowe oraz systemy Windows, choć można stosować go również w systemach Novell NetWare. Zadanie protokołu TCP/IP polega na dzieleniu danych na pakiety odpowiedniej wielkości, ponumerowaniu ich w taki sposób, aby odbiorca mógł sprawdzić, czy dotarły wszystkie pakiety oraz ustawieniu ich we właściwej kolejności. Kolejne partie informacji wkładane są do kopert TCP, a te z kolei umieszczane są w kopertach IP. Oprogramowanie TCP po stronie odbiorcy zbiera wszystkie nadesłane koperty, odczytując przesłane dane. Jeśli brakuje którejś koperty, wysyła żądanie ponownego jej dostarczenia. Pakiety wysyłane są przez komputery bez uprzedniego sprawdzenia, czy możliwa jest ich transmisja. Może się zdarzyć taka sytuacja, że do danego węzła sieci, gdzie znajduje się router, napływa więcej pakietów, aniżeli urządzenie może przyjąć, posegregować i przesłać dalej. Każdy router posiada bufor, który gromadzi pakiety czekające na wysłanie. Gdy bufor ulegnie całkowitemu zapełnieniu, nowo nadchodzące pakiety zostaną odrzucone i bezpowrotnie przepadną. Protokół, który obsługuje kompletowanie pakietów zażąda więc wtedy ponownego ich wysłania.

IP (Internet Protocol) - to protokół do komunikacji sieciowej, gdzie komputer klienta wysyła żądanie, podczas gdy komputer serwera je wypełnia. Protokół ten wykorzystuje adresy sieciowe komputerów zwane adresami IP. Są to 32-bitowa liczby zapisywana jako sekwencje czterech ośmiobitowych liczb dziesiętnych (mogących przybierać wartość od 0 do 255), oddzielonych od siebie kropkami. Adres IP dzieli się na dwie części: identyfikator sieciowy (network id) i identyfikator komputera (host id). Istnieje kilka klasy adresowych, o różnych długościach obydwu składników. Obowiązujący obecnie sposób adresowania ogranicza liczbę dostępnych adresów, co przy bardzo szybkim rozwoju Internetu jest dla niego istotnym zagrożeniem. W celu ułatwienia zapamiętania adresów wprowadzono nazwy symboliczne, które tłumaczone są na adresy liczbowe przez specjalne komputery w sieci, zwane serwerami DNS
.
SLIP (ang. Serial Line Interface Protocol) - to protokół transmisji przez łącze szeregowe. Uzupełnia on działanie protokołów TCP/IP tak, by możliwe było przesyłanie danych przez łącza szeregowe.

PPP (ang. Point to Point Protocol) - to protokół transferu, który służy do tworzenia połączeń z siecią Internet przy użyciu sieci telefonicznej i modemu, umożliwiający przesyłanie danych posiadających różne formaty dzięki pakowaniu ich do postaci PPP. Steruje on połączeniem pomiędzy komputerem użytkownika a serwerem dostawcy internetowego. PPP działa również przez łącze szeregowe. Protokół PPP określa parametry konfiguracyjne dla wielu warstw z modelu OSI (ang. Open Systems Interconnection). PPP stanowiąc standard internetowy dla komunikacji szeregowej, określa metody, za pośrednictwem, których pakiety danych wymieniane są pomiędzy innymi systemami, które używają połączeń modemowych.


Do innych popularnych protokołów sieciowych należą:
  • IPX/SPX
  • NetBEUI
  • FTP
  • NetDDE
  • SNMP
  • SMTP
  • CSMA/CD
  • DNS
  • DHCP
  • AARP
  • Gopher
  • ARP
  • HTTP
  • ICMP

czwartek, 2 października 2014

Model TCP/IP ADRES IP Model OSI

Model OSI (Open Systems Interconnection)
 Aby umożliwić współpracę urządzeń pochodzących od różnych dostawców konieczne stało się opracowanie zasad opisujących sposoby ich komunikowania się. Standardy takie tworzą międzynarodowe organizacje finansowane przez producentów sprzętu sieciowego. Do najbardziej znanych należą ISO (International Standard Organization) i IEEE (Institute of Electrical and Electronic Engineers). Chociaż ich postanowienia nie mają mocy prawnej, wiele rządów czyni z nich obowiązujące standardy.
    Jednym z najszerzej stosowanych standardów jest model odniesienia ISO. Jest on zbiorem zasad komunikowania się urządzeń sieciowych. Podzielony jest na siedem warstw, z których każda zbudowana jest na bazie warstwy poprzedniej tzn. do usług sieciowych świadczonych przez poprzednie warstwy, bieżąca warstwa dodaje swoje, itd.
    Model ten nie określa fizycznej budowy poszczególnych warstw, a koncentruje się na sposobach ich współpracy. Takie podejście do problemu sprawia, że każda warstwa może być implementowana przez producenta na swój sposób, a urządzenia sieciowe od różnych dostawców będą poprawnie współpracować.
    Poszczególne warstwy sieci stanowią niezależne całości i chociaż nie potrafią wykonywać żadnych widocznych zadań w odosobnieniu od pozostałych warstw, to z programistycznego punktu widzenia są one odrębnymi poziomami.
Inaczej mówiąc, model OSI dzieli zadanie
przesyłania informacji między stacjami sieciowymi
na siedem mniejszych zadań, składających się na
poszczególne warstwy. Zadania te nie definiują
konkretnego protokołu, czyli nie precyzują one
dokładnie, jak dany fragment oprogramowania
pełniący zadania jednej z warstw ma działać, ale
tylko co - ma wykonywać.





ADRES IP (ang. Internet Protocol Address) – unikatowy numer przyporządkowany do każdego urządzenia sieci komputerowej, na przykład komputera, drukarki, routera.
IPv4 – składa się z 32 bitów, a więc z 4 oktetów (1oktet = 8 bitów). Aby przedstawić adres w postaci czytelnej dla wszystkich użytkowników i łatwiejszej do zapamiętania, zazwyczaj wartość każdego oktetu zapisuje się osobną liczbą dziesiętną, poszczególne oktety oddzielając kropkami, na przykład 83.3.250.66 (każda liczba dziesiętna odpowiada 8 bitom adresu IP ).
Ten ogólnie przyjęty sposób zapisu adresu IP, czytelny dla użytkownika, jest znany jako format bajtowo-dziesiętny, a zapis nosi nazwę notacji dziesiętnej z kropkami.
Na przykład 32-bitowy adres 10000010 00001010 00001100 00011111 jest zapisany jako 130.10.12.31.
W obrębie adresu wyróżnia się 2 składniki: identyfikator sieciowy( ang. network id) oraz identyfikator komputera (ang.host id)


Model TCP/IP (ang. Transmission Control Protocol/Internet Protocol) – teoretyczny model warstwowej struktury protokołów komunikacyjnych. Model TCP/IP został stworzony w latach 70. XX wieku w DARPA, aby pomóc w tworzeniu odpornych na ataksieci komputerowych. Potem stał się podstawą struktury Internetu.
Model
Podstawowym założeniem modelu TCP/IP jest podział całego zagadnienia komunikacji sieciowej na szereg współpracujących ze sobą warstw (ang. layers). Każda z nich może być tworzona przez programistów zupełnie niezależnie, jeżeli narzucimy pewne protokoły według których wymieniają się one informacjami. Założenia modelu TCP/IP są pod względem organizacji warstw zbliżone do modelu OSI. Jednak liczba warstw jest mniejsza i bardziej odzwierciedla prawdziwą strukturę Internetu. Model TCP/IP składa się z czterech warstw.