티스토리 뷰
가. 원인
- 패스워드 / 개인정보 / 인증정보 / 금융정보 등의 중요정보를 암호화하지 않고 평문으로 저장
나. 영향
- 저장된 파일이나 DB정보가 유출될 경우, 개인정보, 패스워드 등의 중요정보 및 민감정보가 유출
다. 보안대책
- 개인정보 / 금융정보 / 패스워드 / 민감정보를 저장 시 암호화 후 저장
- 중요정보를 읽거나 쓸 경우에 권한검증을 수행
- 디스크나 메모리에 있는 민감한 데이터를 지울때 안전한 방식으로 삭제
라. 안전한 코드
1. 패스워드 암호화 후 저장
String pw = request.getParameter("password"); // 패스워드는 128비트 이상의 암호키를 사용하는 일방향 암호화 처리 후 저장 MessageDigest digest = MessageDigest.getInstance("SHA-256"); digest.reset(); diget.update( salt ); pw = digest.digest( pw.getBytes() ); ... updatePassword( pw ); ...
|
마. 진단방법
<중요정보 처리>
1. 로그인 처리 시 암호화 로직을 사용하는지 확인
2. 중요정보에 불필요한 참조가 존재하지 않는지 확인
3. 중요정보를 임시변수에 저장 시 사용 후 초기화하는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 소켓으로 전달받은 패스워드를 파일에 암호화하지 않고 직접 기록할 경우
2. 소켓으로 전달받은 패스워드를 버퍼에 임시로 저장 후 사용종료 시 초기화 하지 않을 경우
3. 설정파일에 DB접속 계정정보가 평문으로 저장되어 있을 경우
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 보안기능 07 - 하드코드된 비밀번호 (0) | 2019.10.06 |
---|---|
[구현보안] 보안기능 06 - 중요정보 평문전송 (0) | 2019.10.06 |
[구현보안] 보안기능 04 - 취약한 암호화 알고리즘 사용 (0) | 2019.10.04 |
[구현보안] 보안기능 03 - 중요한 자원에 대한 잘못된 권한 설정 (0) | 2019.10.04 |
[구현보안] 보안기능 02 - 부적절한 인가 (0) | 2019.10.04 |
- Total
- Today
- Yesterday