Podstawa dobrych praktyk bezpieczeństwa zaczyna się w Twojej organizacji.
Utwórz zespół ds. bezpieczeństwa i prywatności
Utwórz dedykowany zespół ds. bezpieczeństwa i prywatności i ustal lidera tej organizacji.
- Zbuduj zespół ds. bezpieczeństwa.
- Upewnij się, że co najmniej jeden pracownik jest odpowiedzialny za bezpieczeństwo, prywatność i reagowanie na incydenty.
- Zdefiniuj misję i zakres tego zespołu.
- Opracuj schemat organizacyjny i opisy stanowisk dla: Menedżera ds. bezpieczeństwa, Inżyniera bezpieczeństwa, Menedżera incydentów.
- Zatrudnij pracowników lub zewnętrznych wykonawców do pełnienia tych ról.
- Zdefiniuj cykl życia rozwoju zabezpieczeń (SDL) . Twój SDL powinien obejmować następujące obszary:
- Wymagania bezpieczeństwa dotyczące produktów.
- Analiza ryzyka i modelowanie zagrożeń.
- Analiza statyczna i dynamiczna aplikacji i kodu.
- Końcowe procesy przeglądu bezpieczeństwa produktów.
- Reagowania na incydenty.
- Ocena ryzyka organizacyjnego . Utwórz ocenę ryzyka i opracuj plany mające na celu wyeliminowanie lub złagodzenie tego ryzyka.
Zbuduj proces weryfikacji
Oceń luki w istniejących wewnętrznych procesach weryfikacji i zatwierdzania kompilacji.
- Zidentyfikuj wszelkie luki w bieżącym procesie weryfikacji kompilacji, które mogą prowadzić do wprowadzenia do niej potencjalnie szkodliwej aplikacji (PHA) .
- Upewnij się, że masz proces przeglądu i zatwierdzania kodu, nawet w przypadku wewnętrznych poprawek do AOSP .
- Popraw integralność kompilacji, wdrażając kontrole w następujących obszarach:
- Śledzenie zmian . Śledź inżynierów oprogramowania; prowadź dzienniki zmian.
- Oceń ryzyko . Oceń uprawnienia używane przez aplikację; wymagają ręcznego przeglądu zmian w kodzie.
- Monitoruj . Oceń zmiany wprowadzone w kodzie uprzywilejowanym.
Śledzenie zmian w kodzie źródłowym
Monitoruj niezamierzone modyfikacje kodu źródłowego lub aplikacji/plików binarnych/zestawów SDK innych firm.
- Oceniaj partnerstwa . Oceń ryzyko współpracy z partnerem technicznym, wykonując następujące kroki:
- Ustal kryteria oceny ryzyka współpracy z konkretnym dostawcą.
- Utwórz formularz z pytaniem do dostawcy, w jaki sposób rozwiązuje incydenty oraz zarządza bezpieczeństwem i prywatnością.
- Weryfikuj swoje roszczenia przeprowadzając okresowy audyt.
- Śledzenie zmian . Rejestruj, które firmy i pracownicy modyfikują kod źródłowy, i przeprowadzaj okresowe audyty, aby mieć pewność, że zachodzą tylko odpowiednie zmiany.
- Prowadź zapisy . Rejestruj, które firmy dodają pliki binarne innych firm do Twojej kompilacji i dokumentuj, jakie funkcje pełnią te aplikacje i jakie dane zbierają.
- Planuj aktualizacje . Upewnij się, że dostawcy są zobowiązani do dostarczania aktualizacji oprogramowania przez cały okres użytkowania produktu. Nieprzewidziane luki w zabezpieczeniach mogą wymagać wsparcia ze strony dostawców.
Sprawdź integralność i rodowód kodu źródłowego
Sprawdź i zweryfikuj kod źródłowy dostarczony przez oryginalnego producenta urządzenia (ODM), aktualizację bezprzewodową (OTA) lub operatora.
- Zarządzaj certyfikatami podpisywania .
- Przechowuj klucze w sprzętowym module zabezpieczeń (HSM) lub w bezpiecznej usłudze w chmurze (nie udostępniaj ich).
- Upewnij się, że dostęp do certyfikatów podpisywania jest kontrolowany i audytowany.
- Wymagaj, aby całe podpisywanie kodu było wykonywane w systemie kompilacji.
- Unieważnij utracone klucze.
- Generuj klucze, korzystając z najlepszych praktyk.
- Przeanalizuj nowy kod . Przetestuj nowo dodany kod za pomocą narzędzi do analizy kodu bezpieczeństwa, aby sprawdzić, czy nie pojawiły się nowe luki w zabezpieczeniach. Ponadto przeanalizuj ogólną funkcjonalność, aby wykryć pojawienie się nowych luk w zabezpieczeniach.
- Przejrzyj przed publikacją . Poszukaj luk w zabezpieczeniach w kodzie źródłowym i aplikacjach innych firm, zanim przekażesz je do środowiska produkcyjnego. Na przykład:
- Wymagaj, aby aplikacje korzystały z bezpiecznej komunikacji.
- Postępuj zgodnie z zasadą najmniejszych uprawnień i przyznaj minimalny zestaw uprawnień potrzebnych do działania aplikacji.
- Upewnij się, że dane są przechowywane i przesyłane bezpiecznymi kanałami.
- Aktualizuj zależności usług.
- Zastosuj poprawki zabezpieczeń do zestawów SDK i bibliotek open source.
Reagowania na incydenty
Android wierzy w siłę silnej społeczności zajmującej się bezpieczeństwem, która może pomóc w znajdowaniu problemów. Powinieneś stworzyć i opublikować sposób, w jaki strony zewnętrzne mogą kontaktować się z Tobą w sprawie problemów z bezpieczeństwem specyficznych dla urządzenia.
- Nawiąż kontakt . Utwórz adres e-mail, taki jak your-company lub witrynę internetową zawierającą jasne instrukcje dotyczące zgłaszania potencjalnych problemów związanych z bezpieczeństwem związanych z Twoim produktem ( przykład ).
- Utworzenie programu nagród za luki w zabezpieczeniach (VRP) . Zachęcaj zewnętrznych badaczy bezpieczeństwa do przesyłania raportów o lukach w zabezpieczeniach mających wpływ na Twoje produkty, oferując nagrody pieniężne za prawidłowe zgłoszenia ( przykład ). Zalecamy nagradzanie badaczy nagrodami konkurencyjnymi w branży, takimi jak 5000 dolarów za luki w zabezpieczeniach o wadze krytycznej i 2500 dolarów za luki o wysokiej wadze.
- Wprowadź zmiany w górę . Jeśli dowiesz się o problemie z bezpieczeństwem wpływającym na platformę Android lub urządzenia różnych producentów, skontaktuj się z zespołem ds. bezpieczeństwa Androida, przesyłając raport o błędzie bezpieczeństwa .
- Promuj dobre praktyki bezpieczeństwa . Aktywnie oceniaj praktyki bezpieczeństwa dostawców sprzętu i oprogramowania, którzy dostarczają usługi, komponenty i/lub kod dla Twoich urządzeń. Pociągaj dostawców do odpowiedzialności za utrzymywanie dobrego stanu bezpieczeństwa.