Was ist der härteste Satz von Optionen für das GCC-Kompilieren von C / C ++?

9

Welche GCC-Optionen bieten den besten Schutz gegen Speicherbeschädigungsanfälligkeiten wie Pufferüberlauf und Dangling Pointers? Bietet GCC irgendeine Art von ROP-Kettenminderung? Gibt es Leistungsbedenken oder andere Probleme, die verhindern könnten, dass diese GCC-Option in einer unternehmenskritischen Anwendung in der Produktion eingesetzt wird?

Ich schaue mir den Debian-Handbuch zum Verhärten sowie GCC Mudflap . Hier sind die folgenden Konfigurationen, die ich in Betracht ziehe:

%Vor%

Gibt es irgendwelche Verbesserungen, die an dieser Reihe von Optionen vorgenommen werden können? Nehmen Sie die neueste Version von GCC an, wenn Sie eine coole kommende Funktion kennen, lassen Sie es mich wissen!

    
rook 24.11.2012, 19:00
quelle

2 Antworten

1

Keine GCC-Option, aber kompatibel mit GCC. Sehen Sie sich unser Tool CheckPointer an, das die meisten Speicherverwaltungsfehler erkennt.

Es gibt eine deutliche Verlangsamung der Ausführung; Das Tool muss die Gültigkeit von Zeigern und zugewiesenen Speicher verfolgen, was zusätzlichen Aufwand verursacht.

    
Ira Baxter 24.11.2012 19:05
quelle
0

Dies ist kein CFLAGS oder LDFLAGS Antwort, also vielleicht nicht das, wonach du eigentlich suchst, aber du solltest auch in gcc plugins suchen, die für Härtezwecke geschrieben wurden. Diese werden in gehärteten Kernel-Builds verwendet und fangen viel schlechten Code ab. Sie benötigen möglicherweise ein gcc-plugins-Paket für Ihre Distribution, apt-cache search gcc | grep plugin oder einen gleichwertigen Namen, um den Paketnamen zu finden. Ich glaube, dass die llvm Compiler-Suite ähnliche Plugins hat, wenn Sie bereit sind, ihren clang-Compiler zu verwenden (es ist meistens gcc-kompatibel)

    
adam 09.04.2017 15:24
quelle