2013-09-04 1 views
1

정적 코드 분석을 위해 Fortify를 사용하고 있습니다. 요새화 스캔에서보고 된 문제 중 하나는 "자주 오용 된 것 : 인증"입니다. 이 문제는 "java.net.InetAddress"클래스의 다음 메소드 중 하나가 사용되는 모든 발생에 대해 플래그가 지정됩니다.요새화 자주 사용되지 않는 인증 java.net.InetAddress

getAddress() 
getByName(bindAddress) 
getHostName() 
getHostAddress() 
getCanonicalHostName() 
getLocalHost() 
getAllByName() 

동일한 해결 방법은 무엇입니까?

가능한 한 가지 방법은 here입니다.이 문제를 해결할 수있는 다른 방법이 있는지 잘 모르겠습니다.

감사합니다.

+0

질문은 명확하지 않고 현재 세부 정보를 사용하고 있습니까? 인증을 위해 InetAddress를 사용하고 대신 어떤 종류의 인증을 사용해야하는지 묻습니다. – Qwerky

+0

우리는 인증을 수행하는 다른 서버의 목록을 참조하는 Java 프로세스 (Dispatcher)를 가지고 있습니다. 일반적으로 클라이언트는 Dispatcher를 참조하고 클라이언트가 인증 요청을 전달할 인증 서버 목록을 가져옵니다. 이제 getHostAddress는 Dispatcher에서 클라이언트로 리턴 될 인증 서 v의 IP 주소를 판별하는 데 사용됩니다. 따라서 DNS 스푸핑 공격에서 공격자는 자격 증명이 포함 된 인증 요청을 수신 할 수있었습니다. 그래서,이 시나리오를 처리하는 방법을 궁금합니다. – param83

+0

@ param83이 문제를 해결할 수있는 경우 예제를 공유하십시오. –

답변

1

이 취약점은 개발자의 경고로 사용자의 출력을 신뢰하지 못하도록 경고합니다. 서버가 그들이 말하는 사람인지 여부를 확인하는 효과적인 방법은 SSL을 사용하는 것입니다. 응용 프로그램에서 서버 목록을 얻고 인증 요청을 전달하는 것처럼 들립니다. 사용자가 SSL을 통해 시스템에 인증하기 위해 연결하는 경우 문제가되지 않습니다 (자체 서명 된 인증서로 연결이 허용되지 않는 한).