중요정보 저장
보안 대책
- 중요정보 또는 개인정보는 암호화해서 저장해야한다.
- 불필요하거나 사용하지 않는 중요정보가 메모리에 남지 않도록해야 한다.
취약점 개요
중요정보 평문저장
메모리나 디스크에서 처리하는 중요데이터(개인정보,인증정보,금융정보)가 제대로 보호되지 않을 경우, 보안이나 데이터의 무결성이 훼손될 수 있다.
프로그램이 개인정보, 인증정보 등의 사용자 중요정보 및 시스템 중요정보를 처리하는 과정에서 이를 평문으로 저장할 경우 공격자에게 민감한 정보가 노출될 수 있는 취약점
사용자 하드 시스크에 저장된 쿠키를 통한 정보 노출
개인정보 인증정보 등이 영속적인 쿠키(persistent cookie)에 저장된다면 공격자는 쿠키에 접근할 수 있는 보다
많은 기회를 가지게 되며 이는 시스템을 취약하게 만든다.
설계시 고려 사항
a. 중요정보 또는 개인정보는 암호화해서 저장해야 한다.
- 중요정보가 다뤄지는 안전영역을 설정하고 중요정보가 해당 영역 외부로 누출되지 않도록 설계한다.
서버의 DB나 파일 등에 저장되는 중요정보는 반드시 암호화해서 저장해야 하며 암호연산 설계항목에서
정의하고 있는 안전한 암호 알고리즘과 암호키를 사용한다.
특히 쿠키 HTML5로컬 저장소와 같은 클라이언트 측 하드 드라이브에는 중요정보가 저장되지 않도록 설계해야 하며
부득이 중요정보를 저장해야 하는 경우에는 반드시 클라이언트 측에 저장되는 민감 정보를 암호화한다.
클라이언트 언어인 HTML 코드는 사용자에게 공개되어 있는 것과 마찬가지이므로 중요한 로직 이나 주석처리는 서버 측
언어에서만 처리되도록 설계해야 한다.
b. 중요 정보가 메모리에 남지 않도록 해야한다.
- 개인정보 또는 특정 금융정보를 처리하는 기능 구현 시 더 이상 필요하지 않은 데이터에 대해 메모리를 0으로 초기화하여 중요데이터가
메모리에 남지 않도록 시큐어코딩 규칙을 정의
민감한 정보를 포함하는 페이지는 사용자 측 캐싱을 비활성화하도록 제한하는 캐시정책을 수립하여야 하며 부득이 캐싱을 해야 하느 경우 정보는
암호화하여 저장하도록 설계
인증정보와 같은 민감한 정보를 포함하는 웹 폼을 구현하는 경우 자동완성 기능을 비활성화 하도록 시큐어코딩 규칙을 정의
입력폼 자동 완성 비활성화
<input type=’text’ name=’id’ autocomplete=’off’>
<input type=’password’ name=’pw’ autocomplete-‘off’>
입력폼 자동 완성 비활성화
<form autocomplete=’off’>
연관된 구현단계 보안 약점 항목
보안기능
암호화 되지 않은 중요정보
사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출- 중요정보 또는 개인정보는 암호화해서 저장해야한다.
- 불필요하거나 사용하지 않는 중요정보가 메모리에 남지 않도록해야 한다.
취약점 개요
중요정보 평문저장
메모리나 디스크에서 처리하는 중요데이터(개인정보,인증정보,금융정보)가 제대로 보호되지 않을 경우, 보안이나 데이터의 무결성이 훼손될 수 있다.
프로그램이 개인정보, 인증정보 등의 사용자 중요정보 및 시스템 중요정보를 처리하는 과정에서 이를 평문으로 저장할 경우 공격자에게 민감한 정보가 노출될 수 있는 취약점
사용자 하드 시스크에 저장된 쿠키를 통한 정보 노출
개인정보 인증정보 등이 영속적인 쿠키(persistent cookie)에 저장된다면 공격자는 쿠키에 접근할 수 있는 보다
많은 기회를 가지게 되며 이는 시스템을 취약하게 만든다.
설계시 고려 사항
a. 중요정보 또는 개인정보는 암호화해서 저장해야 한다.
- 중요정보가 다뤄지는 안전영역을 설정하고 중요정보가 해당 영역 외부로 누출되지 않도록 설계한다.
서버의 DB나 파일 등에 저장되는 중요정보는 반드시 암호화해서 저장해야 하며 암호연산 설계항목에서
정의하고 있는 안전한 암호 알고리즘과 암호키를 사용한다.
특히 쿠키 HTML5로컬 저장소와 같은 클라이언트 측 하드 드라이브에는 중요정보가 저장되지 않도록 설계해야 하며
부득이 중요정보를 저장해야 하는 경우에는 반드시 클라이언트 측에 저장되는 민감 정보를 암호화한다.
클라이언트 언어인 HTML 코드는 사용자에게 공개되어 있는 것과 마찬가지이므로 중요한 로직 이나 주석처리는 서버 측
언어에서만 처리되도록 설계해야 한다.
b. 중요 정보가 메모리에 남지 않도록 해야한다.
- 개인정보 또는 특정 금융정보를 처리하는 기능 구현 시 더 이상 필요하지 않은 데이터에 대해 메모리를 0으로 초기화하여 중요데이터가
메모리에 남지 않도록 시큐어코딩 규칙을 정의
민감한 정보를 포함하는 페이지는 사용자 측 캐싱을 비활성화하도록 제한하는 캐시정책을 수립하여야 하며 부득이 캐싱을 해야 하느 경우 정보는
암호화하여 저장하도록 설계
인증정보와 같은 민감한 정보를 포함하는 웹 폼을 구현하는 경우 자동완성 기능을 비활성화 하도록 시큐어코딩 규칙을 정의
입력폼 자동 완성 비활성화
<input type=’text’ name=’id’ autocomplete=’off’>
<input type=’password’ name=’pw’ autocomplete-‘off’>
입력폼 자동 완성 비활성화
<form autocomplete=’off’>
연관된 구현단계 보안 약점 항목
보안기능
암호화 되지 않은 중요정보
사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출
iptables 리눅스 20220906 (0) | 2022.09.06 |
---|---|
중요정보 전송 20220906 (0) | 2022.09.06 |
HTTP Only 와 Secure Cookie 20220905 (0) | 2022.09.05 |
암호연산 20220902 (0) | 2022.09.02 |
중요 자원 접근통제 20220830 (0) | 2022.08.30 |
댓글 영역