Notice
Recent Posts
Recent Comments
Link
IgnatiusHeo
구현단계 보안약점 제거 기준-부적절한 예외 처리 본문
작성일: 230706
※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다.
정리 내용: 소프트웨어 보안약점 진단 가이드(429~432p)
구분 | - 에러처리 |
설계단계 | |
개요 | 프로그램 수행 중에 함수의 결과값에 대한 적절한 처리 또는 예외상황에 대한 조건을 적절하게 검사하지 않을 경우, 예기치 않은 문제를 야기할 수 있다. |
진단 세부사항 (설계단계) |
|
보안대책 (구현단계) |
값을 반환하는 모든 함수의 결과값을 검사하여, 그 값이 의도했던 값인지 검사하고, 예외 처리를 사용하는 경우에 광범위한 예외 처리 대신 구체적인 예외 처리를 수행한다. |
진단방법 (구현단계) |
함수 또는 메소드에 대하여 반환값을 검사하고 예외를 발생시키는 경우 구체적인 예외처리를 수행하는지 확인한다. |
다. 코드예제
ㅇ 분석
1: try {
2: ...
3: reader = new BufferedReader(new InputStreamReader(url.openStream()));
4: String line = reader.readLine();
5: SimpleDateFormat format = new SimpleDateFormat("MM/DD/YY");
6: Date date = format.parse(line);
//예외처리를 세분화 할 수 있음에도 광범위하게 사용하여 예기치 않은 문제가 발생 할 수 있다.
7: } catch (Exception e) {
8: System.err.println("Exception : " + e.getMessage());
9: }
ㅇ 내용
1. 각 기능 별 exception을 사용해서 예외처리를 만들어야 됨
ㅇ 수정
1: try {
2: ...
3: reader = new BufferedReader(new InputStreamReader(url.openStream()));
4: String line = reader.readLine();
5: SimpleDateFormat format = new SimpleDateFormat("MM/DD/YY");
6: Date date = format.parse(line);
// 발생할 수 있는 오류의 종류와 순서에 맞춰서 예외 처리 한다.
7: } catch (MalformedURLException e) {
8: System.err.println("MalformedURLException : " + e.getMessage());
9: } catch (IOException e) {
10: System.err.println("IOException : " + e.getMessage());
11: } catch (ParseException e) {
12: System.err.println("ParseException : " + e.getMessage());
13: }
ㅇ 내용
ㅇ 분석
1: try {
2: InvokeMtd();
//예외처리를 세분화 할 수 있음에도 광범위하게 사용하여 예기치 않은 문제가 발생 할 수 있다.
3: } catch (Exception e) {
4: }
ㅇ 내용
1. 이건 어떻게..? 인보크쪽에서 뭐가 나올지 알고?
ㅇ 수정
1: try {
2: InvokeMtd();
// 발생할 수 있는 오류의 종류와 순서에 맞춰서 예외 처리 한다.
3: } catch (IOException e) {
4: logger.Debug(“IOException log here”);
5: } catch (SQLException e){
6: logger.Debug(“SQLException log here”);
7: }
ㅇ 내용
끝.
'자격 > SW보안약점진단원' 카테고리의 다른 글
구현단계 보안약점 제거 기준-부적절한 자원 해제 (0) | 2023.07.06 |
---|---|
구현단계 보안약점 제거 기준-Null Pointer 역참조 (0) | 2023.07.06 |
구현단계 보안약점 제거 기준-오류상황 대응 부재 (0) | 2023.07.06 |
구현단계 보안약점 제거 기준-오류 메시지 정보노출 (0) | 2023.07.06 |
구현단계 보안약점 제거 기준-종료되지 않는 반복문 또는 재귀 함수 (0) | 2023.07.06 |