| | Okładka: | |
Liczba stron:366 Wydawnictwo:Microsoft Press ISBN: 83[zasłonięte]88440-5 Rok wydania: 2006 Książkę wysyłamy w ciągu 4-7 dni. | | | | OPIS KSIĄŻKI | Klienci domagają się wyższego poziomu zabezpieczeń i prywatności w używanym oprogramowaniu – i jest to uzasadnione żądanie. Ta książka jest pierwszym szczegółowym opisem rygorystycznej, sprawdzonej metodologii, która w mierzalny sposób minimalizuje ryzyko występowania luk zabezpieczeń – Security Development Lifecycle (SDL). W tej długo oczekiwanej publikacji eksperci w dziedzinie zabezpieczeń Michael Howard i Steve Lipner z Microsoft Security Engineering Team poprowadzą czytelnika przez wszystkie fazy SDL – od szkolenia i zasad projektowania po testowanie i obsługę po wydaniu. Znaleźć tu można spostrzeżenia praktyków, wzory rozwiązań, historię rozwoju SDL oraz wskazówki, które ułatwią implementację SDL w każdej organizacji projektowej.Dowiedz się, jak:- Wykorzystać proces analizy ryzyka do znalezienia problemów zabezpieczeń przed zatwierdzeniem kodu.
- Zastosować najlepsze rozwiązania tworzenia bezpiecznego kodu i sprawdzone procedury testowania.
- Przeprowadzić finalny przegląd zabezpieczeń przed opublikowaniem produktu.
- Utworzyć plan odpowiedzi na nowe zagrożenia.
- Włączyć dyscyplinę zabezpieczeń do metod Agile, XP i Scrum.
| | Cykl projektowania zabezpieczeń. Security Development Lifecycle: Proces tworzenia znacząco bezpieczniejszego oprogramowania - SPIS TREŚCI: | Przedmowa Wstęp Część I Zapotrzebowanie na SDL 1 Co za duŜo, to niezdrowo: zagrożenia uległy zmianie Światy bezpieczeństwa i prywatności są ze sobą w kolizji Inny czynnik wpływający na zabezpieczenia: niezawodność Tak naprawdę chodzi o jakość Dlaczego główni producenci oprogramowania tworzą bezpieczniejsze programy Wyzwanie dla duŜych niezależnych producentów oprogramowania Dlaczego producenci oprogramowania do uŜytku wewnętrznego powinni tworzyć bezpieczniejsze produkty Dlaczego producenci drobnego oprogramowania powinni tworzyć bezpieczniejsze produkty Podsumowanie Źródła 2 Obecne metody tworzenia oprogramowania nie zapewniają bezpiecznych programów "Przy dostatecznej liczbie par oczu wszystkie błędy są banalne" Motywacja do przeglądania kodu Rozumienie błędów zabezpieczeń Masa krytyczna "Wiele par oczu" wcale nie gwarantuje sukcesu Metody tworzenia oprogramowania różnych firm CMMI, TSP i PSP Metody programowania Agile Common Criteria Podsumowanie Źródła 3 Krótka historia SDL w firmie Microsoft Pierwsze kroki Nowe zagrożenia, nowe odpowiedzi Windows 2000 i inicjatywa SWI (Secure Windows Initiative) Poszukiwanie skalowalności: poprzez Windows XP Kampanie bezpieczeństwa i końcowe przeglądy zabezpieczeń Formalizowanie cyklu Ŝycia tworzenia zabezpieczeń Nieustanny wyścig Źródła 4 SDL dla kierownictwa Nastawienie na sukces Zaangażowanie w Firmie Microsoft Kto potrzebuje SDL? Skuteczne zaangażowanie Zarządzanie SDL Zasoby Czy projekt idzie dobrym torem? Podsumowanie Źródła Część II Proces SDL (cykl projektowania zabezpieczeń) 5 Etap 0 - Edukacja i świadomość Krótka historia nauczania bezpieczeństwa w firmie Microsoft Nieustająca edukacja Sposoby przeprowadzania szkoleń Ćwiczenia i laboratoria Śledzenie uczestnictwa i zgodności z procesem SDL Inne koncepcje ustalania zgodności Mierzenie wiedzy Implementowanie własnego wewnętrznego szkolenia Tworzenie tanich materiałów edukacyjnych Główne czynniki i miary sukcesu Podsumowanie Źródła 6 Etap 1 - Narodziny projektu Ustalenie, czy aplikacja jest objęta procesem SDL Wyznaczenie doradcy ds. bezpieczeństwa Pełnienie roli punktu kontaktowego między zespołem programującym i zespołem bezpieczeństwa Prowadzenie dla zespołu programującego pierwszego spotkania na temat SDL Przeglądanie projektów i modeli zagrożeń z zespołami programującymi Analizowanie i segregowanie błędów związanych z bezpieczeństwem i prywatnością Pełnienie roli ciała doradczego w sprawach bezpieczeństwa dla zespołu programującego Przygotowywanie zespołu programującego do przeglądu Praca z reagującym zespołem ds. bezpieczeństwa Utworzenie zespołu"Kierownictwa ds. bezpieczeństwa" Upewnienie się, czy proces śledzenia błędów obejmuje błędy z dziedziny bezpieczeństwa i prywatności Ustalenie "kryteriów dla błędów" Podsumowanie Źródła 7 Etap 2 - Definiowanie i stosowanie najlepszych metod projektowania Popularne zasady bezpiecznego projektowania Analiza pola ataku i jego redukcja Krok 1: Czy ta funkcja jest naprawdę taka waŜna? Krok 2: Kto musi mieć dostęp do tej funkcji i skąd? Krok 3: Ograniczenie uprawnień Więcej elementów pola ataku Podsumowanie Źródła 8 Etap 3 - Ocena ryzyka produktu Ocena ryzyka dla bezpieczeństwa Pytania wstępne Pytania dotyczące pola ataku Pytania dotyczące kodu mobilnego Pytania związane z zabezpieczeniami Pytania ogólne Analizowanie kwestionariusza Wskaźnik wpływu na prywatność 1. stopień prywatności 2. stopień prywatności 3. stopień prywatności Wnioski Podsumowanie Źródła 9 Etap 4 - Analiza ryzyka Artefakty modelowania zagrożeń Co modelować Budowanie modelu zagrożeń Proces modelowania zagrożeń 1. Definiowanie scenariuszy uŜycia 2. Gromadzenie listy zależności zewnętrznych 3. Definiowanie założeń dotyczących bezpieczeństwa 4. Notowanie uwag o bezpieczeństwie zewnętrznym 5. Tworzenie jednego lub wielu diagramów przepływu danych modelowanej aplikacji 6. Ustalanie rodzajów zagrożeń 7. Rozpoznawanie zagrożeń dla systemu 8. Ustalanie ryzyka 9. Planowanie środków łagodzących UŜywanie modelu zagrożeń jako pomocy w przeglądaniu kodu UŜywanie modelu zagrożeń jako pomocy w testowaniu Główne czynniki i miary sukcesu Podsumowanie Źródła 10 Etap 5 - Tworzenie dokumentów, narzędzi i najlepszych metod zabezpieczeń dla klientów Dlaczego dokumentacja i narzędzia? Tworzenie dokumentacji z najlepszymi metodami bezpieczeństwa Dokumentacja instalacji Zasadnicza dokumentacja korzystania z produktu Dokumentacja dla systemu pomocy Dokumentacja dla programisty Tworzenie narzędzi Podsumowanie Źródła 11 Etap 6 - Zasady bezpiecznego kodowania UŜywać najnowszych wersji kompilatorów i narzędzi pomocniczych UŜywać zabezpieczeń oferowanych przez kompilator Kontrola bezpieczeństwa buforów: /GS Obsługa bezpiecznych wyjątków: /SAFESEH Kompatybilność z DEP (Data Execution Prevention): /NXCOMPAT UŜywać narzędzi do analizy kodu źródłowego Pułapki narzędzi do analizy kodu źródłowego Korzyści ze stosowania narzędzi do analizy kodu źródłowego Nie uŜywać zakazanych funkcji Ograniczać stosowanie w projekcie lub kodzie konstrukcji naraŜonych potencjalnie na ataki UŜywać listy kontrolnej bezpiecznego kodowania Podsumowanie Źródła 12 Etap 7 - Zasady bezpiecznego testowania Testowanie metodą fuzzingu Testowanie penetracyjne Weryfikacja wykonania Kontrola i w razie potrzeby aktualizacja modeli zagrożeń Ponowna ocena pola ataku oprogramowania Podsumowanie Źródła 13 Etap 8 - Kampania bezpieczeństwa Przygotowania do kampanii bezpieczeństwa Czas trwania kampanii Szkolenie Przeglądy kodu Właściciele plików wykonywalnych Aktualizacje modeli zagrożeń Testowanie zabezpieczeń Szlifowanie pola ataku Szlifowanie dokumentacji Czy to już koniec? Podsumowanie Źródła 14 Etap 9 - Końcowy przegląd bezpieczeństwa Koordynacja działań zespołu produktu Przegląd modeli zagrożeń Przegląd niepoprawionych błędów zabezpieczeń Kontrola uŜytych narzędzi Po zakończeniu przeglądu FSR Traktowanie wyjątków Podsumowanie 15 Etap 10 - Planowanie reakcji na problemy z bezpieczeństwem Jakie są powody przygotowań do reagowania na problemy związane z bezpieczeństwem? Zespół tworzący produkt będzie nadal popełniał błędy Będą pojawiać się nowe rodzaje luk w zabezpieczeniach Reguły będą się zmieniać Przygotowanie do reagowania Tworzenie centrum reagowania na problemy z bezpieczeństwem Zespół produktu a reagowanie na problemy z bezpieczeństwem Tworzenie własnego zespołu reagowania Wsparcie dla całego produktu Wsparcie dla wszystkich klientów Zapewnianie łatwości aktualizacji produktu Wykrywać słabe punkty przed badaczami zabezpieczeń Podsumowanie Źródła 16 Etap 11 - Publikacja produktu Źródła 17 Etap 12 - Reagowanie na problemy bezpieczeństwa w praktyce Postępować zgodnie z planem Zachować spokój Nie spieszyć się Obserwować zdarzenia, które mogą zmienić pierwotne plany Postępować zgodnie z planem Ustalanie działania na poczekaniu Wiedzieć, do kogo się zwracać Być w stanie zbudować aktualizację Być w stanie zainstalować aktualizację Pamiętać o priorytetach podczas ustalania procedury Wiedzieć, co można pominąć Podsumowanie Źródła Część III SDL: materiały źródłowe 18 Integracja SDL i metod Agile Stosowanie zasad SDL w metodach Agile Szkolenie w dziedzinie bezpieczeństwa Rozpoczęcie projektu Ustalanie najlepszych metod projektowania i ich stosowanie Analiza ryzyka Opracowywanie dokumentów, narzędzi i najlepszych metod bezpieczeństwa dla klientów Zasady bezpiecznego kodowania i testowania Kampania bezpieczeństwa Końcowy przegląd bezpieczeństwa Publikacja produktu Reagowanie na problemy z bezpieczeństwem w praktyce Rozszerzanie metod Agile o zasady SDL Historyjki uŜytkowników Małe wydania i iteracje Zmiana ról członków zespołu Prostota Rozwiązania okrojone Refactoring Stała dostępność klienta Kodowanie zgodnie ze standardami Najpierw kodowanie testów poszczególnych jednostek Programowanie w parach Częste integrowanie Pozostawianie optymalizacji na sam koniec Tworzenie testu po wykryciu kaŜdego błędu Podsumowanie Źródła 19 Wywołania funkcji zabronione w SDL Zabronione wywołania API Dlaczego funkcje "n" są zabronione WaŜne zastrzeżenie Wybieranie StrSafe lub Safe CRT UŜywanie StrSafe Przykład StrSafe UŜywanie Safe CRT Przykład Safe CRT Inne metody zastępowania Narzędzia pomocnicze Koszty i "zwrot inwestycji" Miara i cele Źródła 20 Minimalne standardy kryptograficzne w SDL Wymagania kryptograficzne wysokiego poziomu Technologie kryptograficzne a algorytmy kryptograficzne niskiego poziomu Korzystanie z bibliotek kryptograficznych Kryptograficzna elastyczność Trzymać się bezpiecznych algorytmów szyfrujących UŜywanie algorytmów szyfrujących Symetryczne szyfry blokowe i długości kluczy Symetryczne szyfry strumieniowe i długości kluczy Tryby algorytmów symetrycznych Algorytmy asymetryczne i długości kluczy Funkcje haszujące Kody uwierzytelniania wiadomości Magazynowanie danych i generowanie liczb losowych Magazynowanie kluczy prywatnych i poufnych danych Generowanie liczb losowych i kluczy kryptograficznych Generowanie liczb losowych i kluczy kryptograficznych na podstawie haseł i innych kluczy Źródła 21 Opcje kompilatora i narzędzia wymagane przez SDL Wymagane narzędzia PREfast FxCop Weryfikator aplikacji Minimalne wersje kompilatorów i narzędzi do łączenia Źródła 22 Wzorce drzew zagrożeń Podszywanie się pod zewnętrzny obiekt lub proces Majstrowanie przy procesie Majstrowanie przy przepływie danych Majstrowanie przy magazynie danych Zaprzeczalność Ujawnianie informacji procesu Ujawnianie informacji przepływu danych Ujawnianie informacji magazynu danych Odmowa usługi wobec procesu Odmowa usługi wobec przepływu danych Odmowa usługi wobec magazynu danych Zwiększanie uprawnień Źródła Indeks 303 | | | |