보안/SW보안약점 진단원

[설계보안] 보안기능-중요정보 저장

re-bugger 2022. 6. 25. 20:47

분류: 보안기능 / 암호화 되지 않은 중요정보, 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출

가. 항목명

중요정보 저장

 

나. 취약점 설명

중요정보 평문저장: 메모리나 디스크 처리에 중요데이터(개인정보, 인증정보, 금융정보)가 평문으로 저장될 경우 공격자가 정보 노출하는 취약점

사용자 하드디스크에 저장된 쿠키를 통한 정보노출: 개인정보, 인증정보 등 영속적인 쿠키에 저장되면 공격자가 쿠키에 접근할 수 있는 기회가 많아져 시스템 취약하게 만든다.

다. 보안대책

① 중요정보 또는 개인정보 암호화해서 저장

② 사용하지 않는 중요정보는 메모리에 남기지 않는다. 

 

라. 설계시 고려사항

① 중요정보/개인정보 암호화 저장

  • 중요정보는 반드시 암호화해서 저장
  • 안전한 암호화 알고리즘과 암호키 사용
  • 쿠키, HTML5 로컬저장소와 같은 클라이언트 측 저장공간에는 중요정보 저장 않도록 설계
  • (필요에 따라) 민감정보는 암호화
  • 중요 로직 및 주석처리는 서버 측에서만 처리

② 메모리에 남기지 않음

  • 중요정보 메모리 남기지 않고 중요정보가 포함된 페이지에 사용자 측 캐싱 안되게 설정
  • 개인정보 또는 금융정보 처리 기능 구현 시 메모리를 초기화
  • 자동완성 기능 비활성화

마. 진단기준 및 세부사항

① 중요정보/개인정보 암호화 저장

  • 중요정보와 개인정보를 암호화하여 분리 저장
    1. 암호화 대상 중요정보(개인정보, 신용정보, 인증정보, 금융정보 등)
    2. 개인정보보호법: 고육식별정보(주민번호, 운전면허 정보, 여권번호, 외국인등록 번호), 바이오 정보, 비밀번호
    3. 정보통신망법: 주민번호, 신용카드 번호, 계좌번호
    4. 위치정보법: 위치정보
    5. 시스템 중요정보: 데이터베이스 및 연동시스템 계정 정보, 주요 설정 정보
  • 외부 암호하 라이브러리 사용하여 설계

② 메모리에 중요정보가 남지 않도록 한다.

  • 중요정보 메모리 남기지 않고 중요정보가 포함된 페이지에 사용자 측 캐싱 안되게 설정
  •  

바. 안전한 보안설계의 예

No 요구사항명 해결방안 검수기준 비고
1 DB사용자 계정에 최소권한 부여 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. 지속적인 DB사용자 계정 관리가 필요