• Home
  • 회사소개
    • 회사개요
    • 인사말
    • 회사연혁
    • 고객사 레퍼런스
    • 협력사
    • 오시는길
  • 사업소개
    • 시큐어코딩
    • 웹방화벽
    • 컨설팅
  • 제품소개
    • CODE-RAY XG
    • WEBS-RAY V2.5
    • SECUI MF2
    • Secuguard
    • SolidStep
  • 보안소식
    • 보안뉴스
    • 시큐어코딩
    • 모의해킹
    • 취약점 진단
  • 공지사항
    • 공지사항
    • 납품 및 컨설팅 사례
    • 유지보수 사업 현황
    • 채용공고
    • 자료실
  • Home
  • 회사소개
    • 회사개요
    • 인사말
    • 회사연혁
    • 고객사 레퍼런스
    • 협력사
    • 오시는길
  • 사업소개
    • 시큐어코딩
    • 웹방화벽
    • 컨설팅
  • 제품소개
    • CODE-RAY XG
    • WEBS-RAY V2.5
    • SECUI MF2
    • Secuguard
    • SolidStep
  • 보안소식
    • 보안뉴스
    • 시큐어코딩
    • 모의해킹
    • 취약점 진단
  • 공지사항
    • 공지사항
    • 납품 및 컨설팅 사례
    • 유지보수 사업 현황
    • 채용공고
    • 자료실

시큐어코딩

  • home
  • 보안소식
  • 시큐어코딩

36. [에러처리] 부적절한 예외 처리

2019.07.12 16:24

관리자 조회 수:7189

안녕하세요. 자나깨나 소중한 정보보호를 최고로 생각하는 지에스인포입니다!

장마철이라서 날씨가 조금 꿀꿀한 요즘이지요. 그래도 장맛비가 농민들에겐 소중한 생명수 역할을 해 줄 것이라 기대하며, 오늘도 힘차게 하루를 시작해 보아요! ^^


오늘 공부 해 볼 항목은 행안부 SW 개발보안가이드의 36번째 항목인 '부절적한 예외처리'입니다.



분석 및 설계 단계 보안요구항목과 구현 단계 47개 보안약점 기준

- 소프트웨어 개발보안 가이드 (행정안전부 / 한국인터넷진흥원)



# 부적절한 예외 처리 : 프로그램 수행 중에 함수의 결과값에 대한 적절한 처리 또는 예외상황에 대한 조건을 적절하게 검사하지 않을 경우, 예기치 않은 문제를 야기 할 수 있는 보안 취약점



지난번에는 '오류 상황 대응 부재' 보안취약점을 배워보았는데요. 오늘 배워 볼 항목은 지난번 항목과 비슷한 맥락인 부적절한 예외 처리입니다. 프로그램 설계시, 예외 상황에 대해 대응하는 로직을 설계하지 않는 것도 문제지만, 부적절하게 처리하는 것 역시 문제라는 것이죠.


프로그램은 예외상황에 대한 로직이 탄탄하게 설계되어 있지 않으면, 예외상황 발생시 큰 보안상 문제가 생길 수 있기 때문입니다. 따라서 SW 개발 단계에서부터 값을 반환하는 모든 함수의 결과값을 검사하여 그 값이 의도했던 값인지 확인하고, 예외 처리를 사용하는 경우에는 광범위한 예외처리 대신 구체적인 예외 처리를 수행해야 합니다.


무슨 말인지 모르겠다구요? 코드예제를 함께 보시죠!




'부적절한 예외 처리' 항목의 위험한 예 (JAVA)

- 소프트웨어 개발보안 가이드 (행정안전부 / 한국인터넷진흥원)



위의 예제는 try 블록에서 다양한 예외가 발생 할 수 있음에도 불구하고 예외를 세분화하지 않고 하나로 뭉뚱그려서 광범위한 예외 클래스인 Exception 으로 처리하고 있습니다. 이렇게 되면 예외상황이 여러가지 종류가 일어날 수 있음에도 각각의 예외 상황에 대해서 적절한 조치가 이루어질 수 없게 되지요.


따라서 아래와 같이 수정 해 주어야 합니다.




'부적절한 예외 처리' 항목의 안전한 예 (JAVA)

- 소프트웨어 개발보안 가이드 (행정안전부 / 한국인터넷진흥원)



위 예제는 발생 가능한 예외를 세분화하고 그 순서에 따라서 각각에 맞게 예외처리를 해 주고 있는데요.

이렇게 하면 프로그램이 실행 중에 에러가 발생해도 그에 대해 적절히 대응해서 보안상 문제가 생기는 것을 방지 할 수 있겠죠? ㅎㅎ


한 가지 예시를 더 보시겠습니다.



'부적절한 예외 처리' 항목의 위험한 예 (JAVA)

- 소프트웨어 개발보안 가이드 (행정안전부 / 한국인터넷진흥원)



위 예제는 파일을 처리하는 과정에서 에러상황이 발생 했을 때 예외처리를 Exception 하나의 경우로만 통합해서 처리하고 있습니다. 파일을 처리하는 과정에서도 다양한 원인의 오류가 있을 수 있는데요, 이렇게 뭉뚱그려서 '파일 처리 오류' 라고만 예외처리를 하게 되면 정확한 원인을 파악하고 대응하기가 어려워지겠죠?




'부적절한 예외 처리' 항목의 안전한 예 (JAVA)

- 소프트웨어 개발보안 가이드 (행정안전부 / 한국인터넷진흥원)



따라서 위 경우처럼 파일처리 과정에서 일어날 수 있는 예외상황들을 종류별로 세분화해서 그에 따른 예외처리 방법을 구체적으로 지정 해 주는 것이 좋습니다. 이렇게 하면 어떤 에러가 일어났는지 정확히 파악할 수 있고, 그에 대한 적절한 대응을 할 수 있게 되니까요!


오늘까지 SW 개발보안가이드의 '에러처리' 항목을 모두 배워보았습니다.

안전한 SW를 개발하기 위해서는 오류 상황에 대한 대응로직이 정확하고 충분하게 설계되어야 한다는 사실, 모두 충분히 납득하셨죠?

예외상황에 대한 예외처리는 재난이 발생했을 때 비상구와도 같다는 것을 명심하고, 모두 오늘도 안전한 SW 개발을 해 BoA요~!!


그럼 다음에도 새로운 보안취약점 항목과 함께 찾아 뵙겠습니다. 정보보안기업의 세계 최고가 되는 그 날까지 달려가는 보안전문기업, 지에스인포였습니다!

이 게시물을
  • Twitter
  • Me2day
  • Facebook
  • Delicious
목록

엮인글 0

http://gsinfo.kr/xe/SecureCoding_Board/1665/7b4/trackback

댓글 0

목록
번호 제목 글쓴이 날짜 조회 수
42 42. [캡슐화] 제거되지 않고 남은 디버그 코드 file 관리자 2020.09.28 4282
41 41. [캡슐화] 잘못된 세션에 의한 데이터 정보노출 file 관리자 2019.12.30 6829
40 40. [코드오류] 초기화되지 않은 변수 사용 관리자 2019.08.08 8123
39 39. [코드오류] 해제 된 자원 사용 관리자 2019.07.24 6235
38 38. [코드오류] 부적절한 자원 해제 관리자 2019.07.17 6460
37 37. [코드오류] Null Pointer 역참조 관리자 2019.07.17 8701
» 36. [에러처리] 부적절한 예외 처리 관리자 2019.07.12 7189
35 35. [에러처리] 오류 상황 대응 부재 관리자 2019.07.11 6304
34 34. [에러처리] 오류메시지를 통한 정보노출 관리자 2019.07.09 7939
33 33. [시간 및 상태] 종료되지 않은 반복문 재귀함수 관리자 2019.07.05 7019
32 32. [시간 및 상태] 검사시점과 사용시점 관리자 2019.07.01 6043
31 31. [보안 기능] 반복된 인증시도 제한 기능 부재 관리자 2019.06.24 5914
30 30. [보안 기능] 무결성 검사 없는 코드 다운로드 관리자 2019.06.24 6004
29 29. [보안 기능] 솔트 없이 일방향 해시함수 사용 관리자 2019.06.17 7090
28 28. [보안 기능] 주석문 안에 포함된 시스템 주요정보 관리자 2019.06.11 5864
27 27. [보안 기능] 사용자의 하드디스크에 저장되는 쿠키를 통한 정보노출 관리자 2019.06.04 6193
26 26. [보안 기능] 취약한 비밀번호 허용 관리자 2019.06.04 8698
25 25. [보안 기능] 하드코드 된 암호화 키 관리자 2019.05.28 7149
24 24. [보안 기능] 적절하지 않은 난수값 사용 관리자 2019.05.28 7509
23 23. [보안 기능] 충분하지 않은 키 길이 사용 관리자 2019.05.07 6071
첫 페이지 1 2 3 끝 페이지
쓰기
태그
보안소식
  • 보안뉴스
  • 시큐어코딩
  • 모의해킹
  • 취약점 진단
nextep banner

어플리케이션 소스코드 취약점 점검도구, CODE-RAY XG를 통해 개발 단계에서부터 소스코드의 잠재적인 취약점이 없는 건강한 소프트웨어를 구현할 수 있습니다.
웹 / 소스코드 / 서버 인프라 등 다양한 시스템의 취약점을 사전에 점검하여 여러가지 상황에서의 보안사고를 예방합니다.
모바일 시스템에 대하여 해킹에 취약한 근본적인 문제를 점검하고, 다양한 컴플라이언스를 기반으로 한 최적의 가이드를 제공합니다.
  • Home
  • 회사소개
  • 사업소개
  • 제품소개
  • 보안소식
  • 공지사항
본사주소 : 서울특별시 구로구 디지털로33길 48   COPYRIGHT ⓒ ALL RIGHT RESERVED.

로그인

로그인폼

로그인 유지

로그인
  • 회원가입
  • ID/PW 찾기