본문 바로가기

🕳️ 오류상황 대응 부재 - 실습 시뮬레이터

CWE-391: Unchecked Error Condition

KISA 소프트웨어 보안약점 진단가이드(2021) · 에러처리
💡 쉽게 말하면
오류를 잡고도 아무 처리를 안 하면(빈 catch), 고장 난 줄 모른 채 잘못된 값으로 계속 진행됩니다. 잡았으면 대응해야 합니다.
✅ 학습 진행도
  • ⬜ 진단 시작
  • ⬜ 빈 catch 식별
  • ⬜ 대응 로직 추가
☕ Java 코드 에디터 취약한 코드
Transfer.java 💡 예외를 무시하지 말고 로깅/재시도/예외전파로 대응하세요.
try {
    int amount = Integer.parseInt(input);
    transfer(amount);
} catch (NumberFormatException e) {
    // [취약] 예외를 잡고도 아무 대응이 없음(빈 catch)
}
💡 수정 가이드 (KISA 기준)
1. 명시적 대응

로깅 후 사용자 안내 또는 예외 전파.

} catch (NumberFormatException e) { logger.warn("잘못된 금액 입력: {}", input, e); throw new InvalidInputException("금액 형식이 올바르지 않습니다."); }
📊 분석 결과 및 설명
🎯 목표

발생한 오류를 무시하지 않고 적절히 처리·전파해야 합니다.

⚠️ 현재 취약점

Unchecked Error

빈 catch로 인해 실패가 은폐되어 데이터 무결성이 깨집니다.

✅ 학습 진행도
  • ⬜ 진단 시작
  • ⬜ 예외 무시 식별
  • ⬜ 대응 로직 추가
🐍 Python 코드 에디터 취약한 코드
transfer.py 💡 except: pass 대신 logging/raise로 대응하세요.
try:
    amount = int(user_input)
    transfer(amount)
except ValueError:
    pass   # [취약] 예외를 무시(대응 부재)
💡 수정 가이드 (KISA 기준)
1. 명시적 대응

로깅 후 예외 전파 또는 복구.

except ValueError: logging.warning("잘못된 금액 입력: %s", user_input) raise InvalidInput("금액 형식 오류")
📊 분석 결과 및 설명
🎯 목표

오류 상황을 무시하지 않고 처리·전파합니다.

⚠️ 현재 취약점

Unchecked Error

예외 무시로 실패가 은폐됩니다.

📰 실제 사고사례 & 표준 매핑
예외를 처리하지 않아 서비스가 비정상 종료되거나 내부 상태가 노출되는 장애가 반복됐습니다.
🏷️ CWE-391
※ 공개적으로 알려진 사례 기반 교육용 요약 · CWE/OWASP는 공개 표준 분류