Polecamy
Harry Potter i Książę Półkrwi (cz. 6)
Szósta części przygód Harrego Pottera..
Programowanie. Od podstaw Książka Programowanie. Od podstaw to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę...
Reklama
Wszystkie
książki
dostępne
w
Polsce,
tytuły
niedostępne,
dobre
ceny
książek,
szybka
dostawa,
pełna
informacja
o
realizacji.
Zapraszamy
Księgarnia
Twoja
Książka.
Suprimo
-
markowe
folie,
które
odmienią
Twoje
wnętrze
Folie
okienne
dekoracyjne
|
|
|
Informacje Opis pełny
Weź do koszyka
Poleć znajomemu
Skomentuj
Przechowaj...
Kod: c81
Tytuł: Bezpieczny kod. Tworzenie i zastosowanie
Cena: 74,00
78,00
Realizacja: 24 godziny [więcej >>>]
Część I Współczesne zabezpieczenia
Rozdział 1 Zapotrzebowanie na systemy bezpieczne Aplikacje w sieci Wild Wild Web Włączenie wszystkich do gry Ostrożne podejście do wdrażania polityki bezpieczeństwa w organizacji Stosowanie akcji wywrotowych Pomysły szerzenia kultury bezpieczeństwa Skłonienie szefa do wysłania wiadomości e-mail Powołanie trybuna spraw związanych z zabezpieczeniami
Rozdział 2 Projektowanie systemów bezpiecznych Dwa powszechnie popełniane błędy Przyczyny popełnianych błędów Zasady zabezpieczeń Określanie procesu opracowywania zabezpieczeń Definiowanie celów produktu w ramach systemu zabezpieczeń Uznawanie zabezpieczeń jako jednej z cech produktu Wyciąganie wniosków z popełnionych błędów Stosowanie najniższego poziomu uprzywilejowania Stosowanie pełnej obrony Przyjmowanie założenia o niezabezpieczonych systemach zewnętrznych Przewidywanie niepożądanych zachowań programu Niepożądane działanie w trybie zabezpieczeń Stosowanie bezpiecznych parametrów domyślnych Funkcje zabezpieczeń != funkcje bezpieczne Niepoleganie na zabezpieczeniach przy braku ich zrozumienia Trzy końcowe punkty Projekt zabezpieczeń w modelowaniu zagrożeń Burza mózgów z uwzględnieniem znanych zagrożeń systemu Klasyfikacja zagrożeń według stopnia ryzyka Wybór reakcji na zagrożenia Wybór technik przeciwdziałania zagrożeniom Techniki zabezpieczeń Uwierzytelnianie Upoważnianie Technologie zabezpieczeń przed przekłamaniami i ochrony prywatności Ochrona danych tajnych Szyfrowanie, funkcje mieszające, kody MAC i podpisy cyfrowe Nadzorowanie Filtrowanie, dławienie i jakość usługi Niski poziom uprzywilejowania Powrót do przykładowej aplikacji płacowej Pełen zestaw zagrożeń i rozwiązań
Część II Techniki pisania kodu bezpiecznego
Rozdział 3 Wróg publiczny nr 1: Przepełnienie bufora Przepełnienia bufora statycznego Przepełnienie sterty Błędy indeksowania tablicy Błędy formatowania łańcucha znaków Niezgodności rozmiaru bufora Unicode i ANSI Prawdziwy przykład błędu z wykorzystaniem znaków Unicode Zapobieganie przepełnieniom bufora Bezpieczna obsługa łańcuchów tekstowych Dobre wieści na horyzoncie!
Rozdział 4 Określanie dobrej kontroli dostępu Przyczyny istotnej roli list ACL Odejście od tematu: poprawienie kodu operującego na rejestrze Elementy składowe listy ACL Metoda doboru dobrej listy ACL Skuteczne wpisy ACE typu odmowa Tworzenie list ACL Tworzenie list ACL w systemie Windows NT 4 Tworzenie list ACL w systemie Windows 2000 Tworzenie list ACL za pomocą Active Template Library Puste listy DACL i inne typy niebezpiecznych wpisów ACE Puste listy DACL a nadzorowanie Niebezpieczne typy wpisów ACE Co jeśli nie można zmodyfikować pustej listy DACL? Inne mechanizmy kontroli dostępu Restrykcje na poziomie adresów IP Role w modelu COM+ Procedury wyzwalane i uprawnienia SQL Przykład medyczny Istotne uwagi na temat mechanizmów kontroli dostępu
Rozdział 5 Uruchamianie na najniższym poziomie uprzywilejowania Najniższy poziom uprzywilejowania w praktyce Wirusy i konie trojańskie Uszkodzenia serwerów WWW Krótki opis kontroli dostępu Krótki przegląd przywilejów SeBackupPrivilege SeDebugPrivilege SeTcbPrivilege SeAssignPrimaryTokenPrivilege i SeIncreaseQuotaPrivilege Krótki opis znaczników Relacje zachodzące między znacznikami, przywilejami, identyfikatorami SID, listami ACL i procesami Identyfikatory i sprawdzanie praw dostępu, przywileje i sprawdzanie przywilejów Proces ustalania odpowiednich przywilejów Krok 1: Uzyskiwanie informacji o zasobach używanych przez aplikację Krok 2: Uzyskiwanie informacji o funkcjach API stosowanych przez aplikację Krok 3: Wskazanie wymaganego konta Krok 4: Uzyskanie zawartości znacznika Krok 5: Ustalenie wymaganych identyfikatorów SID i przywilejów Krok 6: Dopasowanie znacznika Kiedy używać znaczników zastrzeżonych Mało uprzywilejowane konta usług w systemach Windows XP i Windows .NET Server Zagadnienia związane z debugowaniem na niskim poziomie uprzywilejowania Przyczyny nieprawidłowego działania w kontekście użytkownika normalnego Ustalanie przyczyn nieprawidłowego działania
Rozdział 6 Kryptograficzne słabości Używanie niepoprawnie wygenerowanych liczb losowych Problem: funkcja rand Środek zaradczy: funkcja CryptGenRandom Stosowanie haseł do wyprowadzania kluczy kryptograficznych Pomiar faktycznego rozmiaru hasła w bitach Złe zarządzanie kluczami Umieszczanie kluczy w pobliżu danych źródłowych Tworzenie własnych funkcji kryptograficznych Korzystanie z tego samego klucza szyfrowania strumieniowego Powody stosowania szyfrowania strumieniowego Pułapki związane z szyfrowaniem strumieniowym Gdy sytuacja wymaga użycia tego samego klucza Ataki przestawiania bitów w szyfrach strumieniowych Zapobieganie atakom przestawiania bitów Kiedy stosować kod rozproszony, kod rozproszony z kluczem lub podpis cyfrowy Używanie jednego bufora do przechowywania tekstu jawnego i zaszyfrowanego
Rozdział 7 Przechowywanie danych utajnionych Metody ataku Czasami nie ma potrzeby przechowywania danych utajnionych Tworzenie kodu rozproszonego z wartością salt Uzyskiwanie poufnych danych od użytkownika Przechowywanie danych utajnionych w systemach Windows 2000 i Windows XP Przypadek szczególny: poświadczenia uwierzytelniające klienta w systemie Windows XP Przechowywanie danych utajnionych w systemie Windows NT 4 Przechowywanie danych utajnionych w systemach Windows 95, Windows 98, Windows Me i Windows CE Podnoszenie poprzeczki zabezpieczeń Przechowywanie danych w systemie plików FAT Zastosowanie klucza wbudowanego i operacji XOR w celu zakodowania danych Zastosowanie klucza wbudowanego i algorytmu 3DES w celu zaszyfrowania danych Zastosowanie algorytmu 3DES w celu zaszyfrowania danych i umieszczenie hasła w rejestrze Zastosowanie algorytmu 3DES w celu zaszyfrowania danych, umieszczenie silnego klucza w rejestrze oraz utworzenie list ACL dla pliku i klucza rejestru Pomysł: zastosowanie urządzeń zewnętrznych w celu zaszyfrowania danych poufnych Przykład zastosowania aplikacji PPCKey Model zagrożeń aplikacji PPCKey
Rozdział 8 Problemy formy kanonicznej Co oznacza kanoniczny i dlaczego wiąże się to z problemami? Odrobina historii Obejście kontroli rodzicielskiej w programie AOL Obejście filtru nazw w programie Napster Obejście kontroli zabezpieczeń firmy eEye Luka w serwerze Apache w systemie Apple Mac OS X Błąd wyboru strefy w przypadku adresu IP bez kropek w przeglądarce Internet Explorer 4 Błąd nazwy strumienia danych ::$DATA w serwerze IIS 4.0 Błąd nazwy urządzenia systemu DOS Błąd dowiązania symbolicznego katalogu /tmp w oprogramowaniu Sun Microsystems StarOffice Powszechne błędy przekształcania w formę kanoniczną w oprogramowaniu działającym w systemie Windows Długie nazwy plików w formacie 8.3 Alternatywne strumienie danych w systemie plików NTFS Znaki kończące Format \? Przeglądanie katalogów a stosowanie oznaczenia katalogu nadrzędnego (..) Pełne i względne nazwy plików Nazwy plików bez rozróżniania wielkości liter Nazwy urządzeń i nazwy zarezerwowane Udziały UNC Przeciwdziałanie błędom przekształcania w formę kanoniczną Niepodejmowanie decyzji wynikających z nazwy Wykorzystanie wyrażeń regularnych do ograniczania dozwolonych składników nazwy Próba przekształcenia nazwy w jej formę kanoniczną Uwagi końcowe: problemy przekształcania w formę kanoniczną nazw innych niż nazwy plików Nazwy serwerów Nazwy użytkowników
Część III Aspekty tworzenia aplikacji sieciowych
Rozdział 9 Zabezpieczenia gniazd Zapobieganie przejmowaniu serwera Wybór interfejsów serwera Akceptowanie połączeń Tworzenie aplikacji z uwzględnieniem działania zapory firewall Wykonanie zadania powinno wymagać tylko jednego połączenia Nie należy wymagać od serwera tworzenia połączeń zwrotnych do klienta Stosowanie protokołów zorientowanych połączeniowo Nie należy multipleksować aplikacji ponad innym protokołem Nie należy umieszczać adresów IP hosta w danych warstwy aplikacji Zwiększenie możliwości konfiguracyjnych aplikacji Spoofing oraz zaufanie oparte na informacji o hoście i o porcie
Rozdział 10 Zabezpieczanie komunikacji RPC, formantów ActiveX i modelu DCOM Elementarz RPC Co to jest RPC Tworzenie aplikacji RPC Istota komunikacji aplikacji RPC Praktyczne wskazówki dotyczące zabezpieczenia RPC Użycie opcji /robust kompilatora MIDL Użycie atrybutu [range] Wymaganie połączeń uwierzytelnionych Kontrola integralności i prywatności pakietów Zastosowanie uchwytów kontekstu ścisłego Uchwyty kontekstu nie służą do sprawdzania praw dostępu Ostrzeżenie przed uchwytami kontekstu o wartości NULL Nie można ufać równorzędnej stronie drugiej Stosowanie zwrotnych wywołań zabezpieczeń Następstwa działania wielu serwerów RPC w ramach pojedynczego procesu Możliwość dodania adnotacji punktu końcowego Stosowanie protokołów podstawowych Praktyczne wskazówki dotyczące zabezpieczenia DCOM Podstawy modelu DCOM Zabezpieczenia na poziomie aplikacji Konteksty użytkowników w modelu DCOM Zabezpieczenia programowe Źródła i obiekty sink Elementarz ActiveX Praktyczne wskazówki dotyczące zabezpieczenia ActiveX Składniki ActiveX oznaczone jako bezpieczne w inicjowaniu i bezpieczne w zastosowaniu w skryptach Wskazówki dotyczące formantów bezpiecznych w inicjowaniu i zastosowaniu w skryptach
Rozdział 11 Ochrona przed atakami typu odmowa usługi Ataki uniemożliwiające działanie aplikacji Ataki blokujące pracę procesora Ataki wyczerpujące pamięć Ataki wyczerpujące zasoby Ataki ograniczające szerokość pasma sieci
Rozdział 12 Zabezpieczanie usług działających w sieci WWW Nigdy nie należy ufać danym wejściowym użytkownika! Słabe punkty danych wejściowych Rozwiązywanie problemu danych wejściowych Specyficzne dla sieci WWW błędy przekształcania w formę kanoniczną 7 i 8-bitowe znaki ASCII Heksadecymalne kody specjalne Kodowanie UTF-8 o zmiennej szerokości Kodowanie Unicode UCS-2 Kodowanie podwójne Kody specjalne HTML Środki zapobiegające błędom przekształcania w formę kanoniczną w środowisku WWW Inne zagadnienia związane z zabezpieczeniami w sieci WWW Kwestia zaufania do protokołu HTTP Aplikacje i filtry ISAPI Nie należy przechowywać poufnych danych w kodzie stron WWW Czy rzeczywiście konieczne jest korzystanie z konta sa? Zapewne nie!
Część IV Tematy specjalne
Rozdział 13 Tworzenie bezpiecznego oprogramowania w środowisku .NET Przepełnienia buforów i wspólny moduł wykonawczy języków programowania Dodawanie własnej procedury obsługi błędów zabezpieczeń Nieco realizmu Przechowywanie danych utajnionych w środowisku .NET Wymaganie odpowiednich danych Stosowanie metody Assert Dodatkowe informacje dotyczące metod Demand i Assert Odrzucanie uprawnień Sprawdzanie poprawności danych pochodzących z niezaufanych źródeł Obsługa wątków w ASP.NET Wyłączenie śledzenia i debugowania przed fazą dystrybucji aplikacji ASP.NET Generowanie liczb losowych z wykorzystaniem klas .NET Framework Odtwarzanie zaszeregowanych danych pochodzących z niezaufanych źródeł Agresor nie powinien zbyt wiele zyskać na nieprawidłowym działaniu programu Kilka zdań o technologii SOAP Podsumowanie
Rozdział 14 Testowanie zabezpieczeń Rola testera zabezpieczeń Odmienność testowania zabezpieczeń Rozpoczęcie testowania Tworzenie planu testowania zabezpieczeń Podział aplikacji Identyfikacja interfejsów poszczególnych składników Klasyfikacja interfejsów według potencjalnych luk Ustalenie danych wykorzystywanych przez poszczególne interfejsy Poszukiwanie problemów zabezpieczeń przez wprowadzanie błędnych danych Wstępna faza testu Tworzenie narzędzi służących do odnajdywania błędów Testowanie klientów za pomocą niewłaściwie działających serwerów Dostęp użytkownika do danych Testowanie z wykorzystaniem szablonów zabezpieczeń Jakość kodu testującego Testowanie rozwiązań całościowych Trochę poza tematem: Rewizje oprogramowania
Rozdział 15 Bezpieczna instalacja oprogramowania Zasada minimalnych przywilejów Korzystanie z edytora konfiguracji zabezpieczeń Niskopoziomowe funkcje API zabezpieczeń
Rozdział 16 Wskazówki ogólne Ochrona prywatności użytkownika Typy danych uzyskiwanych od użytkownika Gromadzenie danych o użytkownikach Dezinformowanie agresora Podwójne sprawdzanie kodu obsługi błędów Potwierdzanie włączenia opcji Błędy w trybie jądra Korzystanie z pamięci trybu użytkownika Uzyskiwanie dostępu do interfejsów uprzywilejowanych poprzez niechronione polecenia IOCTL Umieszczanie komentarzy odnoszących się do zabezpieczeń Wykorzystywanie systemu operacyjnego Brak wiary w dobre decyzje użytkowników Bezpieczne wywoływanie funkcji CreateProcess Nie należy przekazywać wartości NULL jako parametr ulpApplicationName Nie należy tworzyć segmentów współdzielonych/modyfikowalnych Prawidłowe korzystanie z funkcji personifikacji Pliki użytkowników nie powinny być zapisywane w katalogu Program Files Dane użytkowników nie powinny być zapisywane w kluczu HKLM Nie należy otwierać obiektów z żądaniem prawa FULL_CONTROL lub ALL_ACCESS Błędy popełniane przy tworzeniu obiektów Bezpieczne tworzenie plików tymczasowych Odwrotny skutek zabezpieczeń po stronie klienta Przykłady to szablony Wprowadzanie zasad należy zacząć od siebie Troska o użytkowników Ustalanie dostępu w opaciu o identyfikator zabezpieczeń administratora Zezwalanie na długie hasła
Część V Dodatki
DODATEK A Niebezpieczne funkcje API
DODATEK B Dziesięć niezmiennych praw zabezpieczeń
DODATEK C Dziesięć niezmiennych praw administrowania zabezpieczeniami
DODATEK D Wymówki
Myśl końcowa Bibliografia Indeks
|
Znaleziono: 1
Oglądasz:
Michael Howard i David LeBlanc -
Bezpieczny kod. Tworzenie i zastosowanie
Księgarnia
'e-link'-
książki,
informatyka,
gry
bitewne
-
wszystko
najtaniej!
|
|
|