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
'Security > SecureCoding' 카테고리의 다른 글
SR1‐2 XML조회 및 결과 검증 사고 사례 - XML 해킹공격, PC정보 유출 이렇게 이루어져! (0) | 2017.05.10 |
---|---|
7.하드코드된 비밀번호 - 안전하지 않은 코드/안전한 코드-Java (0) | 2017.05.03 |
SR1‐1 DBMS 조회 및 결과 검증 사고사례 - “뽐뿌 해킹사고, 허술한 웹 취약점 관리가 발단” (0) | 2017.04.22 |
개인정보 위험도 분석 기준 및 해설서 (0) | 2017.04.16 |
Salami Technique(살라미 기술) (0) | 2017.03.23 |