티스토리 뷰
가. 원인
- 프로그램 내부에 비밀번호를 하드코딩한 경우
나. 영향
- 하드코드된 비밀번호를 내부인증에 사용하거나, 외부 컴포넌트와 통신에 사용할 경우, 관리자 정보가 노출될 수 있음
- 하드코드된 비밀번호가 인증실패를 야기할 경우, 원인파악의 어려움 발생
다. 보안대책
- 비밀번호는 암호화하여 별도의 파일이나 DB에 안전하게 저장 후 사용
- 디폴트 암호 대신 "최초 로그인" 모드를 사용하여 사용자가 직접 패스워드를 입력하도록 설계
라. 안전한 코드
1. DB계정정보 암호화 후 사용
private static final String DB_USER = "db_manager"; ... public Connection getConnection( ) { Connection conn = null; ... // DB 계정 패스워드를 암호화 후 Properties에 저장 후 사용 시 복호화 처리 String DB_PASS = props.getProperties( "EncryptedPass" ); byte[] decryptedPass = cipher.doFinal( DB_PASS.getBytes() ); DB_PASS = new String( decryptedPass ); ... conn = DriverManager.getConnection( this.DB_URL, this.DB_USER, DB_PASS ); ... return conn; }
|
마. 진단방법
<하코코딩된 패스워드 확인>
1. 로그인 처리 모듈 및 함수에 패스워드가 하드코딩 되어 있는지 확인
2. 패스워드를 별도의 파일에 사용하고 있는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 패스워드를 별도의 파일에 저장하지 않고 소스코드에 하드코딩 되어 있을 경우
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 보안기능 09 - 적절하지 않은 난수값 사용 (0) | 2019.10.06 |
---|---|
[구현보안] 보안기능 08 - 충분하지 않은 키 길이 사용 (0) | 2019.10.06 |
[구현보안] 보안기능 06 - 중요정보 평문전송 (0) | 2019.10.06 |
[구현보안] 보안기능 05 - 중요정보 평문저장 (0) | 2019.10.06 |
[구현보안] 보안기능 04 - 취약한 암호화 알고리즘 사용 (0) | 2019.10.04 |
- Total
- Today
- Yesterday