소나큐브 (행정안전부 보안 보고서) 취약점 문의드립니다.
- 작성자 :
- 장*국
- 작성일 :
- 2025-04-14 10:20:16
- 조회수 :
- 93
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
1. 하드코드된 암호화 키 (curvc-egs-java:CEG025) 취약점
다음과 같이 취약점에 대응했으나 계속 취약점으로 잡힙니다.
1) application.properties에 암호화된 키 값을 넣어두고 복호화 하여 사용
2) OS 환경변수를 불러와서 복호화하여 사용
3) 외부 파일을 읽어와서 복호화하여 사용
※ Jasypt를 사용하여 암복호화를 진행하고있습니다.
(org.jasypt.encryption.pbe.StandardPBEStringEncryptor)
https://www.egovframe.go.kr/home/qainfo/qainfoRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=69&qaId=QA_00000000000024350
위 문의를 통한 답변을 보면 암호화 키는 외부 파일에서 암호화 된 형태로 저장하고 복호화 하여 사용하라고 하는데요.
동일하게 외부 파일을 통해 암호화된 키를 가져와 복호화하여 사용해도 취약점에 잡힙니다.
암복호화가 가이드해주신 crypto 간소화 서비스를 사용해야만 하는건가요 ??
그 외의 암복호화는 취약점으로 잡는건가요 ??
2. 오류 상황 대응 부재 (curvc-egs-java:CEG035) 취약점
다음과 같이 취약점에 대응했으나 계속 취약점으로 잡힙니다.
- 에러 로그 남기며 커스텀 예외를 던집니다.
예)
try {
...
} catch(Exception e) {
logger.error("Aclass.Bmethod ERROR : " + e.getMessage(), e);
throw new CustomException(e);
}
가이드를 보면 로그만 남겨도 되는것으로 보이는데요.
계속 취약점에 잡힙니다.
위 내용 확인 및 수정 방안 가이드 부탁드리겠습니다.
다음과 같이 취약점에 대응했으나 계속 취약점으로 잡힙니다.
1) application.properties에 암호화된 키 값을 넣어두고 복호화 하여 사용
2) OS 환경변수를 불러와서 복호화하여 사용
3) 외부 파일을 읽어와서 복호화하여 사용
※ Jasypt를 사용하여 암복호화를 진행하고있습니다.
(org.jasypt.encryption.pbe.StandardPBEStringEncryptor)
https://www.egovframe.go.kr/home/qainfo/qainfoRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=69&qaId=QA_00000000000024350
위 문의를 통한 답변을 보면 암호화 키는 외부 파일에서 암호화 된 형태로 저장하고 복호화 하여 사용하라고 하는데요.
동일하게 외부 파일을 통해 암호화된 키를 가져와 복호화하여 사용해도 취약점에 잡힙니다.
암복호화가 가이드해주신 crypto 간소화 서비스를 사용해야만 하는건가요 ??
그 외의 암복호화는 취약점으로 잡는건가요 ??
2. 오류 상황 대응 부재 (curvc-egs-java:CEG035) 취약점
다음과 같이 취약점에 대응했으나 계속 취약점으로 잡힙니다.
- 에러 로그 남기며 커스텀 예외를 던집니다.
예)
try {
...
} catch(Exception e) {
logger.error("Aclass.Bmethod ERROR : " + e.getMessage(), e);
throw new CustomException(e);
}
가이드를 보면 로그만 남겨도 되는것으로 보이는데요.
계속 취약점에 잡힙니다.
위 내용 확인 및 수정 방안 가이드 부탁드리겠습니다.
환경정보
-
- OS 정보 : 리눅스
- 표준프레임워크 버전 : 2.5.0
- JDK(JRE) 정보 : 1.8
- WAS 정보 : 톰캣
- DB 정보 : 오라클
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
하드코드된 암호화 키에 대해 지적하는 것으로 보이며
현재 커스텀하여 사용하시는 SecretKeySpec 클래스를 취약하지 않도록
사용하는 방법에 대해서는 센터에서 가이드하고 있지 않습니다.
현재 코드의 선후 관계 및 목적에 맞도록
표준프레임워크에서 제공하는 Crypto 암호화 서비스를 사용하여
수정해 보시면 좋을듯 합니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:fdl:crypto
감사합니다.
표준프레임워크센터 입니다.
하드코드된 암호화 키에 대해 지적하는 것으로 보이며
현재 커스텀하여 사용하시는 SecretKeySpec 클래스를 취약하지 않도록
사용하는 방법에 대해서는 센터에서 가이드하고 있지 않습니다.
현재 코드의 선후 관계 및 목적에 맞도록
표준프레임워크에서 제공하는 Crypto 암호화 서비스를 사용하여
수정해 보시면 좋을듯 합니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:fdl:crypto
감사합니다.