7.하드코드된 비밀번호 - 취약한 코드, 보안대책, 소스코드 예제

CODEDRAGON Security/SecureCoding

반응형


7.하드코드된 비밀번호

·       프로그램 코드 내부에 하드코드된 패스워드를 포함하고 있고 이를 이용하여 내부 인증에 사용하거나 외부 컴포넌트와 통신을 하는 경우 관리자 정보가 소스코드를 통해 노출될 수 있어 위험합니다.

·       소스코드 내부에 하드코드된 패스워드가 인증실패를 야기할 경우 시스템 관리자가 그 실패의 원인을 파악하기 쉽지 않습니다.

 

 

취약한 코드

public Connection DBConnect(String url, String id){

try{ //tiger 하드코딩 되어 있음

conn = DriverManager.getConnection(url, id, "tiger");

}catch(SQLException e){

System.err.println(".......");

}

return conn;

}

 

 

 

보안대책

·       패스워드는 암호화하여 별도의 파일에 저장하여 사용합니다.

·       외부 컴포넌트는 설정파일에 암호화되어 저장된 패스워드를 사용해야 합니다.

·       서버에서 관리자가 인증할 때 설정파일이나 데이터베이스에 일방향 함수로 암호화되어 저장된 패스워드를 사용해야 합니다.

·       SW 설치시 제공되는 디폴트패스워드 또는 키 등을 계속 사용하지 않고 "최초 로그인" 시점에 사용자가 직접 패스워드나 키를 변경(입력)하도록 설계합니다.

 

 

 

소스코드 예제

http://codedragon.tistory.com/5301