2017-04-20 50 views
1

我正在使用fortify,它显示了攻击者可以执行DNS欺骗而我尝试在java应用程序中获取主机名的漏洞。 我有一个解决方案,通过匹配转发DNS和反向DNS条目,它可以避免。但是它是如何有用的,我怎样才能实现它,我无法找到它。 Fortify的显示在这条线的漏洞主机的正向和反向DNS条目如何在Java应用程序中匹配,使其免于DNS欺骗

Link for line

Fortify的正显示出这样的建议:

建议:

可以增加一个域名查找的信心,如果你检查,以确保主机的正向和反向DNS条目匹配。 攻击者将无法在不控制目标域的名称服务器的情况下欺骗正向和反向DNS条目。 然而,这并非万无一失,攻击者可能会说服域名注册商将域名转交给恶意域名服务器。 对DNS条目进行身份验证仅仅是一个冒险主张。

任何帮助表示赞赏,也欢迎其他解决方案。

在此先感谢。

+1

表现出一定的努力,你有什么了 –

+0

爵士那是什么我问需要实现方法来做到这一点。 –

+0

您需要使用**代码**编辑您的问题,这会导致该工具发出警报,可能会使用'InetAddress'进行某些操作。 –

回答

0

我认为这件事情是这样的:

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 
    }