본문 바로가기
공부/KISA

중요정보 저장 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 17.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr


분석∙설계단계 SW 보안강화 - 설계보안항목 정의 및 설계 시 고려 사항 - 중요정보 저장

설명

  • 중요정보(비밀번호, 개인정보 등) 저장 시 안전한 저장 및 관리방법을 설계해야 한다.

설계항목내용

  • 중요정보 또는 개인정보는 암호화해서 저장해야 한다. 
  • 불필요하거나 사용하지 않는 중요정보가 메모리에 남지 않도록 해야 한다.

가. 취약점 개요

사례 1: 중요정보 평문 저장
  • 메모리나 디스크에서 처리하는 중요 데이터(개인정보, 인증정보, 금융정보)가 제대로 보호되지 않을 경우, 보안이나 데이터의 무결성을 잃을 수 있다. 특히 프로그램이 개인정보, 인증정보 등의 사용자 중요정보 및 시스템 중요정보를 처리하는 과정에서 이를 평문으로 저장할 경우 공격자에게 민감한 정보가 노출될 수 있는 취약점이다.
사례 2: 사용자 하드디스크에 저장된 쿠키를 통한 정보 노출
  • 개인정보, 인증정보 등이 영속적인 쿠키(Persistent Cookie)에 저장된다면, 공격자는 쿠키에 접근할 수 있는 보다 많은 기회를 가지게 되며, 이는 시스템을 취약하게 만든다.

 

나. 설계 시 고려사항

1. 중요정보 또는 개인정보는 암호화해서 저장해야 한다.

  • 중요정보가 다뤄지는 “안전영역”을 설정하고 중요정보가 해당 영역 외부로 누출되지 않도록 설계한다.
  • 서버의 DB나 파일 등에 저장되는 중요정보는 반드시 암호화해서 저장해야 하며 “암호연산” 보안 요구 항목에서 정의하고 있는 안전한 암호 알고리즘과 암호키가 적용된 암호화 정책이 적용되어야 한다.
  • 특히 쿠키, HTML5 로컬 저장소와 같은 클라이언트 측 하드 드라이브에는 중요정보가 저장되지 않도록 설계해야 하며, 부득이 중요정보를 저장해야 하는 경우에는 반드시 클라이언트 측에 저장되는 민감정보를 암호화한다.
  • 클라이언트 언어인 HTML 코드는 사용자에게 공개되어 있는 것과 마찬가지이므로 중요한 로직 및 주석처리는 서버 측 언어에서만 처리되도록 설계해야 한다.

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

  • 개인정보 또는 특정 금융정보를 처리하는 기능 구현 시 더 이상 필요하지 않은 데이터에 대해 메모리를 0으로 초기화하여 중요 데이터가 메모리에 남지 않도록 시큐어코딩 규칙을 정의한다.
  • 특히 민감한 정보를 포함하는 페이지는 사용자 측 캐싱을 비활성화하도록 제한적인 캐시 정책을 수립하여야 하며, 부득이 캐싱을 해야 하는 경우 캐싱되는 정보는 암호화하여 저장하도록 설계한다.
  • 인증정보와 같은 민감한 정보를 포함하는 웹 폼을 구현하는 경우 자동완성 기능을 비활성화하도록 시큐어코딩 규칙을 정의한다.

참고자료

반응형

댓글