728x90
반응형
SMALL
SW개발보안가이드중 구현단계에서의 점검항목은 크게 7가지 이다. (입보시에코캡아)
1. 입력데이터 검증 및 표현
2. 보안기능
3. 시간 및 상태
4. 에러처리
4-1. 오류메시지를 통한 정보노출
4-2. 오류 상황 대응 부재
4-3. 부적절한 예외 처리
5. 코드오류
6. 캡슐화
7. API 오용
이 장에서는 "3.에러처리" 에 대한 점검항목을 설명한다.
4-1. 오류메시지를 통한 정보노출
구분 | 설명 |
원인/영향 | 오류메시지에 시스템정보와 같은 민감한 정보가 노출되어 공격에 활용할 수 있다. 취약) e.printStackTrace(); <-- 스택정보가 노출됨. 안전) logger.error("ERROR-01 : 파일 열기 에러"); <-- 별도 에러코드 정의 |
대응 | ① 시스템오류 메시지 대신에 별도의 오류메시지를 정의하여 출력해준다. |
4-2. 오류 상황 대응 부재
구분 | 설명 |
원인/영향 | 발생한 오류에 대해서 아무런 조치를 하지 않아 프로그램이 비정상적인 상태로 실행되는 겅우 취약) catch (Exception e) { // do nothing } 안전) catch (Exception e) { s.setMessage(e.getMessage()); <-- 원래 e.getMessag()는 시스템정보 노출 return (makeLogin(s)); } 안전) catch (Exception e) { logger.error("ERROR-01 : 파일 열기 에러"); <-- 별도 에러코드 정의 } |
대응 | ① 발생오류별로 적절한 에러처리 루틴이 작성되어야 한다. ② 특별히 처리해야할 루틴이 없는 오류라 하더라도 logger.error("에러상황에 대한 간단한 메시지 또는 에러코드") 가 수행될수 있어야한다 |
4-3. 부적절한 예외 처리
구분 | 설명 |
원인/영향 | 모든 오류에 대해 하나의 방식으로 예외처리를 하는 경우 각각의 상황에 따라 적절한 예외처리를 할수 가 없어서 부적절한 Resource 관리로 인해 시스템이 중지될 수 있다. |
대응 | ① 각각의 예외상항에 대해 적절한 예외처리 코드를 수행할수 있도록 한다 취약) catch (Exception e) { System.err.println("Exception : " + e.getMessge()); } 안전) catch (MalformedURLExcepton e) { } catch (IOExcepton e) { } catch (ParseExcepton e) { } finally { } |
728x90
반응형
LIST
'정보보안' 카테고리의 다른 글
SW보안약점진단원 : 구현단계 - 캡슐화 (0) | 2019.11.29 |
---|---|
SW보안약점진단원 : 구현단계 - 코드오류 (0) | 2019.11.28 |
SW보안약점진단원 : 구현단계 - 시간 및 상태 (0) | 2019.11.26 |
SW보안약점진단원 : 구현단계 - 보안기능 (2/2) (0) | 2019.11.25 |
SW보안약점진단원 : 구현단계 - 보안기능 (1/2) (0) | 2019.11.24 |