Udostępnij za pośrednictwem


Najważniejsze wskazówki dotyczące zabezpieczeń dla języka C++

Ten artykuł zawiera informacje dotyczące narzędzia zabezpieczeń i praktyk.Korzystanie z nich nie oznacza, że aplikacje zabezpieczony przed wirusami, ale to sprawia, że udanych ataków osób jest mniej prawdopodobne.

Funkcje zabezpieczeń usługi Visual C++

Te funkcje zabezpieczeń są wbudowane w Visual C++, kompilator i program łączący:

  • / GS (kontrola zabezpieczeń buforu)
    Nakazuje kompilatorowi, aby wstawić kod wykrywania przepełnienia do funkcji, które są na ryzyko wykorzystywaną usterkę.Po wykryciu przekroczenia wykonanie jest zatrzymana.Domyślnie ta opcja jest włączona.

  • / SAFESEH (obraz ma bezpieczne procedury obsługi wyjątków)
    Powoduje, że program łączący, aby dołączyć do obrazu danych wyjściowych tabeli, która zawiera adres każdej procedury obsługi wyjątków.W czasie wykonywania system operacyjny używa tej tabeli, aby upewnić się, że procedury obsługi wyjątków tylko uprawnionym są wykonywane.Dzięki temu można zapobiec wykonywaniu procedur obsługi wyjątków, które są wprowadzone przez złośliwymi atakami w czasie wykonywania.Domyślnie opcja ta jest wyłączona.

  • / /GS, / /GS (zgodny z funkcji Zapobieganie wykonywaniu danych)
    Te kompilator i program łączący opcji włączenia zgodności zapobieganie wykonywania danych (DEP).Funkcja DEP chroni Procesora przeciwko wykonanie strony nieobjętym Kodeksem.

  • /analyze (analiza kodu)
    Ta opcja kompilatora uaktywnia analizy kodu, który zgłasza potencjalne problemy dotyczące zabezpieczeń, takich jak przepełnienia buforu, un-initialized pamięci, odwołaniem odniesienia do pustego wskaźnika i przecieki pamięci.Domyślnie opcja ta jest wyłączona.Aby uzyskać więcej informacji, zobacz Analiza kod c i C++, omówienie.

  • / DYNAMICBASE (Użyj adresu miejsca układ randomizacji)
    Ta opcja programu łączącego umożliwia budynku obrazu wykonywalnego, który można załadować w różnych miejscach w pamięci na początku wykonanie.Opcja ta również sprawia, że lokalizacja stosu w pamięci znacznie mniej przewidywalne.

Zwiększenie bezpieczeństwa CRT

C Runtime Library (CRT) ma została zwiększona do zawierają bezpieczne wersje funkcji, które stwarzają ryzyko naruszenia zabezpieczeń — na przykład niesprawdzony strcpy ciąg funkcji kopiowania.Ponieważ wersjach starszych, które nie są bezpieczne te funkcje zostały zaniechane, powodują ostrzeżenia kompilacji.Zachęcamy do korzystania z bezpiecznego wersjach tych funkcji CRT zamiast pomijanie ostrzeżenia kompilacji.Aby uzyskać więcej informacji, zobacz Funkcje zabezpieczeń w CRT.

Biblioteka SafeInt

Biblioteka SafeIntpomaga zapobiegać przepełnienia całkowite i innych błędów umożliwia wykorzystanie tej luki, które mogą wystąpić, gdy aplikacja wykonuje operacje matematyczne.SafeInt Biblioteka zawiera Lsadump2, Klasa SafeIntExceptioni kilka Funkcje SafeInt.

SafeInt Klasy chroni przed przepełnienie liczby całkowitej, i wykorzysta dzielenie przez zero.Można go używać do obsługi porównanie wartości różnych typów.I zapewnia dwie zasady obsługi błędów.Zasada domyślna jest przeznaczona dla SafeInt klasy rzucić SafeIntException klasy wyjątek do raportu, dlaczego nie można ukończyć operacji matematycznych.Druga zasada jest przeznaczona dla SafeInt klasy, aby zatrzymać wykonywanie programu.Można również zdefiniować zasadę niestandardową.

Każdy SafeInt funkcja zapobiega jednej operacji matematycznych można wykorzystać błąd.Dwa różne typy parametrów można używać bez konwertowania ich do tego samego typu.Aby włączyć ochronę wielu operacji matematycznych, użyj SafeInt klasy.

Iteratory Checked

Sprawdzone sterująca wymusza granice kontenera.Domyślnie gdy checked iteratora jest poza zakresem, generuje wyjątek i kończy działanie programu.Checked sterująca zapewnia inne poziomy odpowiedzi, które zależą od wartości, które są przypisane do preprocessor definiuje takie jak _SECURE_SCL_THROWS i _ITERATOR_DEBUG_LEVEL.Na przykład w _ITERATOR_DEBUG_LEVEL=2, sprawdzone sterująca zapewnia kompleksowe poprawności sprawdza w trybie debugowania, które są udostępniane za pomocą deklaracji rozkazujących.Aby uzyskać więcej informacji, zobacz Iteratory zaznaczone.

Analizy kodu, kod zarządzany

Analizy kodu dla kodu zarządzanego, znany również jako FxCop sprawdza zestawów dla zgodności zasad projektowania systemu.NET Framework.FxCop analizuje kodu i metadane w każdym zestawie Aby sprawdzić, czy wady w następujących obszarach:

  • Projektowanie biblioteki

  • Lokalizacja

  • Konwencje nazewnictwa

  • Wydajność

  • Zabezpieczenia

Weryfikator aplikacji systemu Windows

Application Verifier (AppVerifier) może pomóc zidentyfikować potencjalne problemy ze zgodnością, stabilności i bezpieczeństwa aplikacji.

AppVerifier kontroluje, jak aplikacja używa systemu operacyjnego.To oczekuje, system plików, rejestru i pamięci, i interfejsów API, podczas gdy aplikacja jest uruchomiona i zaleca kodu źródłowego poprawki dotyczące problemów, które odsłania.

Program AppVerifier do:

  • Badanie potencjalnych błędów ze zgodnością aplikacji, które są spowodowane przez częste błędy programowania.

  • Rozpatrzenia wniosku dla problemów związanych z pamięci.

  • Zidentyfikować potencjalne problemy dotyczące zabezpieczeń w aplikacji.

AppVerifier jest częścią zestawu Application Compatibility Toolkit, które jest dostępne z Zgodności aplikacji w witrynie sieci web TechNet.

Funkcje zabezpieczeń programu.NET Framework

Configuring Security Policyw tym artykule opisano, wytyczne i narzędzia do regulacji zasady zabezpieczeń.NET Framework.

Konta użytkowników systemu Windows

Za pomocą kont użytkowników systemu Windows należących dla programistów umożliwia uzyskanie dostępu grupie Administratorzy i--przez rozszerzenie--klientów na ryzyko naruszenia zabezpieczeń.Aby uzyskać więcej informacji, zobacz Uruchamianie jako członek grupy Użytkownicy i Jak kontrola konta użytkownika (UAC) wpływa na aplikacji.

Zobacz też

Informacje

System.Security

Koncepcje

Jak kontrola konta użytkownika (UAC) wpływa na aplikacji

Inne zasoby

Zabezpieczenia w.NET Framework