티스토리 뷰

반응형

 

 

 

가. 원인

  - 패스워드 / 개인정보 / 인증정보 / 금융정보 등의 중요정보를 암호화하지 않고 평문으로 저장

 

 

나. 영향

  - 저장된 파일이나 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접속 계정정보가 평문으로 저장되어 있을 경우

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday