티스토리 뷰
가. 원인
- 사용자 및 시스템의 중요정보를 평문으로 송/수신할 경우
나. 영향
- 네트워크 스니핑을 통해 인가되지 않은 사용자에게 민감정보 등이 노출
다. 보안대책
- 로그인 시 반드시 HTTPS와 같은 안전한 통신채널을 사용
- 중요정보는 암호화 후 전송하거나 안전한 통신채널을 사용
- 중요정보를 쿠키로 전송할 경우, HTTPS통신으로만 값이 전달될 수 있도록 보안속성( setSecure(true) )을 설정
- 중요정보를 쿠키로 전송 시 HTTP 통신을 해야할 경우, 반드시 암호화 후 전송
라. 안전한 코드
1. 패스워드를 암호화 후 전송
String pwd = getPassword(); ... // 데이터 암호화 후 전송이므로 서버의 공개키로 양방향 암호화 처리 후 전송 // 서버의 비밀키로만 복호화가 되므로 패스워드의 노출을 방지 Cipher c = Cipher.getInstance( "AES/CBC/PKCS5Padding" ); byte[] encPassword = c.update( pwd.getBytes() ); ... Socket s = new Socket( "tranPassword", 4444 ); PrintSteam out = new PrintStream( s.getOutputStream(), true ); out.write( encPassword, 0, encPassword.lenght ); ...
|
마. 진단방법
<중요정보 전송>
1.개인정보 / 금융정보 / 패스워드 등 중요정보를 송/수신 하는지 확인
2. 중요정보가 전송 시 암호화 처리를 수행하는지 확인
3. 중요정보가 전송 시 안전한 통신채널을 사용하는지 확인
4. 중요정보가 쿠키를 통해 전송되는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 패스워드를 암호화하지 않고 네트워크를 통해 서버에 전송
2. 보안채널을 사용하지 않고 HTTP통신으로 정보를 송/수신할 경우
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 보안기능 08 - 충분하지 않은 키 길이 사용 (0) | 2019.10.06 |
---|---|
[구현보안] 보안기능 07 - 하드코드된 비밀번호 (0) | 2019.10.06 |
[구현보안] 보안기능 05 - 중요정보 평문저장 (0) | 2019.10.06 |
[구현보안] 보안기능 04 - 취약한 암호화 알고리즘 사용 (0) | 2019.10.04 |
[구현보안] 보안기능 03 - 중요한 자원에 대한 잘못된 권한 설정 (0) | 2019.10.04 |
- Total
- Today
- Yesterday