2017-04-20 9 views
1

Ich verwende Fortify und es zeigt die Sicherheitslücke, mit der der Angreifer DNS-Spoofing durchführen kann, während ich versuche, den Hostnamen in der Java-Anwendung abzurufen . Ich habe eine Lösung, die durch den Abgleich von DNS- und Reverse-DNS-Einträgen vermieden werden kann. Aber wie es sinnvoll ist und wie ich es umsetzen kann, kann ich nicht finden. Fortify zeigt Verwundbarkeit bei dieser LinieWie die Vorwärts- und Rückwärts-DNS-Einträge des Hosts in der Java-Anwendung übereinstimmen, ist sicher vor DNS-Spoofing

Link for line

Fortify werden Empfehlungen wie diese zeigen:

Empfehlungen:

Sie können Vertrauen in einer Domain-Namen-Suche erhöhen, wenn Sie sicherstellen, überprüfen, dass die Vorwärts- und Rückwärts-DNS-Einträge des Hosts stimmen überein. Angreifer können nicht sowohl die DNS-Einträge für den Vorwärts- als auch für den Rückwärtsdurchlauf spoofen, ohne die Nameserver für die Zieldomäne zu steuern. Dies ist jedoch kein narrensicherer Ansatz: Angreifer können den Domain-Registrar möglicherweise davon überzeugen, die Domain an einen böswilligen Nameserver zu übergeben. Die Authentifizierung auf DNS-Einträgen ist einfach eine riskante Angelegenheit.

Jede Hilfe wird geschätzt und auch andere Lösungen sind willkommen.

Vielen Dank im Voraus.

+1

einige Anstrengungen zeigen, was Sie getan haben –

+0

hatte Sir das ist, was ich bin zu fragen die Implementierungsmethode benötigen, dies zu tun. –

+0

Sie müssen Ihre Frage mit dem ** Code ** bearbeiten, der dazu führt, dass das Tool alarmiert, wahrscheinlich eine Operation, die 'InetAddress' verwendet. –

Antwort

0

Ich nehme an, es so etwas wie das ist:

final String hostname = "google.com"; 
    final String ipAddress = "123.123.123.123"; 
    final InetAddress byIpAddress = InetAddress.getByName(ipAddress); 
    boolean forwardCheck = byIpAddress.getHostName().equals(hostname); 
    final InetAddress byHostName = InetAddress.getByName(hostname); 
    boolean reverseCheck = byHostName.getHostAddress().equals(ipAddress); 
    if (reverseCheck && forwardCheck) { 
     // perform your logic 
    } 
Verwandte Themen