보안/SW보안약점 진단원
[설계보안] 보안기능-중요정보 저장
re-bugger
2022. 6. 25. 20:47
분류: 보안기능 / 암호화 되지 않은 중요정보, 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출
가. 항목명
중요정보 저장
나. 취약점 설명
중요정보 평문저장: 메모리나 디스크 처리에 중요데이터(개인정보, 인증정보, 금융정보)가 평문으로 저장될 경우 공격자가 정보 노출하는 취약점
사용자 하드디스크에 저장된 쿠키를 통한 정보노출: 개인정보, 인증정보 등 영속적인 쿠키에 저장되면 공격자가 쿠키에 접근할 수 있는 기회가 많아져 시스템 취약하게 만든다.
다. 보안대책
① 중요정보 또는 개인정보 암호화해서 저장
② 사용하지 않는 중요정보는 메모리에 남기지 않는다.
라. 설계시 고려사항
① 중요정보/개인정보 암호화 저장
- 중요정보는 반드시 암호화해서 저장
- 안전한 암호화 알고리즘과 암호키 사용
- 쿠키, HTML5 로컬저장소와 같은 클라이언트 측 저장공간에는 중요정보 저장 않도록 설계
- (필요에 따라) 민감정보는 암호화
- 중요 로직 및 주석처리는 서버 측에서만 처리
② 메모리에 남기지 않음
- 중요정보 메모리 남기지 않고 중요정보가 포함된 페이지에 사용자 측 캐싱 안되게 설정
- 개인정보 또는 금융정보 처리 기능 구현 시 메모리를 초기화
- 자동완성 기능 비활성화
마. 진단기준 및 세부사항
① 중요정보/개인정보 암호화 저장
- 중요정보와 개인정보를 암호화하여 분리 저장
- 암호화 대상 중요정보(개인정보, 신용정보, 인증정보, 금융정보 등)
- 개인정보보호법: 고육식별정보(주민번호, 운전면허 정보, 여권번호, 외국인등록 번호), 바이오 정보, 비밀번호
- 정보통신망법: 주민번호, 신용카드 번호, 계좌번호
- 위치정보법: 위치정보
- 시스템 중요정보: 데이터베이스 및 연동시스템 계정 정보, 주요 설정 정보
- 외부 암호하 라이브러리 사용하여 설계
② 메모리에 중요정보가 남지 않도록 한다.
- 중요정보 메모리 남기지 않고 중요정보가 포함된 페이지에 사용자 측 캐싱 안되게 설정
바. 안전한 보안설계의 예
No | 요구사항명 | 해결방안 | 검수기준 | 비고 |
1 | DB사용자 계정에 최소권한 부여 | 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 | 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. | 지속적인 DB사용자 계정 관리가 필요 |