W mojej firmie „pracujemy nad przyjęciem cyklu życia bezpiecznego rozwoju firmy Microsoft, a część procesu MSDL obejmuje ustanowienie na początku pasków błędów zabezpieczeń i prywatności projektu. Słyszałem koncepcję paska błędów przed MSDL i rozumiem, że jest to zasadniczo definicja tego, jaki poziom / ilość błędów chcesz zaakceptować w produkcie końcowym, ale mam nigdy nie rozumiałem, jak utworzyć pasek błędów dla projektu. Czy istnieją dobrze udokumentowane procesy tworzenia pasków błędów, z których mogę się czegoś nauczyć?
Próbowałem znaleźć w Google przykłady lub rzeczywiste scenariusze projektów definiowanie słupków błędów na początku projektu, ale nie wydaje mi się, żebym uzyskał dobre wyniki ani wskazówki dotyczące procesu tworzenia paska błędów. Istnieją przykłady MSDL tego, co wygląda na wypełnione słupki błędów, ale jestem zainteresowany poznaniem procesu definiowania czegoś takiego. Na przykład, dla tych, którzy robili coś takiego wcześniej, czy zdefiniowaliście paski błędów w bardzo konkretny sposób (np. Mówiąc " Nie powinno być nieautoryzowanego dostępu do systemu plików: odczyt z system plików ") lub czy zastosowałeś odroczone podejście i powiedziałeś, że kiedy znajdziemy błędy, ocenimy je w skali od 1 do 5 (5 oznacza najpoważniejsze), ustal teraz że żadne błędy powyżej 3 nie będą wysyłane i pozostaw swój ranking błędów, dopóki nie zostaną ponownie odkryte? Wydaje mi się, że próba zrobienia tego pierwszego jest głupim i niemożliwym działaniem, ale późniejsza jest skłonna do tendencyjności w kierunku pobłażliwości, gdy projekt schodzi w niepamięć.
Ponownie, podsumowując to wszystko w zwięzłe pytanie, czy ktoś może mi podać dobrze udokumentowane podejście do definiowania / tworzenia pasków błędów?
Odpowiedź
Niech ” s zacznij od podstawowej definicji paska błędów:
Bramki jakości i paski błędów służą do ustalenia minimalnych akceptowalnych poziomów bezpieczeństwa i jakości prywatności. Zespół projektowy musi negocjować bramki jakości (na przykład wszystkie ostrzeżenia kompilatora muszą być traktowane i naprawiane przed zaewidencjonowaniem kodu) dla każdej fazy rozwoju. Pasek błędów jest bramką jakości, która służy do definiowania progów ważności luk w zabezpieczeniach – na przykład brak znanych luk w aplikacji z oceną „krytyczną” lub „ważną” w momencie wydania. Ustawiony pasek błędów nie powinien być nigdy zwalniany.
Kiedy użytkownik oprogramowania zgłasza błąd, musi przypisać do błędu kategorię STRIDE, niezależnie od tego, czy jest to błąd klienta, czy serwera i jaki zakres dotyczy. Użytkownicy mogą być programistami i pracownikami kontroli jakości. STRIDE oznacza:
- Spoofing
- Manipulowanie
- Odrzucenie
- Ujawnienie informacji
- Denial of Service (DoS)
- Podniesienie uprawnień (EoP)
Odpowiednie wartości „zakresu” to
- Klient – sfałszowany zaufany interfejs użytkownika w wspólny / domyślny scenariusz
- Klient – sfałszowany zaufany interfejs użytkownika w innym konkretnym scenariuszu
- Klient – sfałszowany interfejs użytkownika jako część większego scenariusza ataku
- Serwer – sfałszowany określony użytkownik lub komputer korzystający z bezpiecznego protokołu
- Serwer – sfałszowany losowy użytkownik lub komputer korzystający z bezpiecznego protokołu
- Klient – naruszone zaufane dane, które pozostają po ponownym uruchomieniu
- Klient – zmodyfikowane dane, które nie utrzymuje się po ponownym uruchomieniu
Stamtąd tworzona jest macierz, która przypisuje poziom ważności każdej kombinacji. Możliwe wartości poziomu ważności to:
- Krytyczne
- Ważne
- Umiarkowane
- Niski
- Brak
Przykładowy wpis w macierzy (może być kilka takich wpisów):
STRIDE Kategoria: Podszywanie się
Zakres: Klient – sfałszowany zaufany interfejs użytkownika w typowym / domyślnym scenariuszuOpis: Możliwość przedstawienia przez napastnika interfejs użytkownika różniący się od interfejsu użytkownika, ale wizualnie identyczny z nim, na którym użytkownicy muszą polegać, aby podejmować prawidłowe decyzje dotyczące zaufania w domyślnym / typowym scenariuszu. Decyzję o zaufaniu definiuje się jako każdą akcję użytkownika, która uważa, że określone informacje są prezentowane przez określoną jednostkę – system albo określone lokalne lub zdalne źródło.
Poziom ważności: Ważne
Firma Microsoft twierdzi, że przed wdrożeniem naprawia wszystkie błędy o znaczeniu wyższym niż „małe”.
Więcej informacji
Dodaj pasek błędów zabezpieczeń do programu Microsoft Team Foundation Server 2010
Nowy SDLC: Cykl życia rozwoju bezpieczeństwa