본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

[보안동향] 변화하는 소프트웨어 보안, 최근 주요 취약점은?

2022.05.04

기본적으로 정보시스템 사업 수행 시 안전한 소프트웨어 개발을 위해 기준으로 삼는 국내 대표 가이드는 행정안전부 고시(행정기관 및 공공기관 정보시스템 구축 · 운영 지침)에 따라 한국인터넷진흥원(KISA)에서 발간한 ‘소프트웨어 개발 보안 가이드’가 있으며, 국외 대표 참고 기준으로는 OWASP(The Open Web Application Security Project)의 ‘TOP 10 Web Application Security Risks(이하 OWASP TOP 10이라 함)’가 있습니다.

지난 2021년 1월 19일 개정된 ‘행정기관 및 공공기관 정보시스템 구축 · 운영 지침’에서 소프트웨어 개발 보안과 관련해 강화된 내용을 함께 알아보겠습니다.

행정기관 및 공공기관 정보 시스템 구축 · 운영 지침과 소프트웨어 보안 약점

먼저 살펴볼 행정기관 및 공공기관 정보시스템 구축 · 운영 지침(이하 지침이라 함)은 전자정부법 제45조 제3항에 따라 행정기관 등의 장이 정보시스템을 구축 · 운영하면서 준수해야 할 기준, 표준 및 절차와 동법 제49조 제1항에 따른 상호운용성 기술평가에 관한 사항을 정한 것입니다. 정보시스템 사업 수행 시 프로젝트 관리 및 보안 준수에 있어 위 지침에 따라 수행하게 됩니다.

지침이 개정된 이유를 보면, 소프트웨어 보안성 강화 및 통합인증 공통 기반을 적용하도록 해 국민이 전자정부 서비스를 안전하고 편리하게 이용하고, 관련 법 · 제도 변경 사항 등을 반영하기 위함이라 설명돼 있습니다. 보안 관련된 내용만 살펴보면 아래와 같습니다.

(출처: 국가법령정보센터)

보안성 강화 부분에서 국내외 최신 보안 약점을 반영해 소프트웨어 개발 보안 제도를 강화한다는 것을 알 수 있습니다. 또한, 지난 2020년 12월 전면 개정된 전자서명법을 반영해 공동인증서와 민간인증서 발급기관을 포함하는 ‘통합인증 공통 기반’ 적용이라는 내용이 추가된 것을 확인할 수 있습니다.

지침 제50조(소프트웨어 개발 보안 원칙)에 따라 정보시스템 사업 진행 시 개발자가 설계 및 구현 단계에서 반드시 개선 조치해야 할 소프트웨어 보안 약점 기준(지침 별표3)도 개정된 이유에 의해 변경됐습니다.

2019년 발령된 고시 대비 변경된 내용을 비교해 살펴보겠습니다.

구현단계 소프트웨어 개발 보안 항목은 총 47개에서 49개로 늘어났습니다. 신규 추가된 항목은 6개이며, 8개 항목이 통합돼 4개 항목으로 축소됐습니다.

[1. 입력 데이터 검증 및 표현] 영역에서 신규 추가된 항목은 ‘2. 코드 삽입’, ‘8. 부적절한 XML 외부 개체 참조’, ‘12. 서버사이드 요청 위조’ 3개이며, ‘9. XML 삽입’은 기존의 ‘Xquery삽입’, ‘Xpath삽입’ 보안 약점이 통합된 것입니다.
 

‘2. 코드 삽입’ 보안 약점은 ‘1. SQL 삽입’, ‘3. 경로 조작 및 자원 삽입’, ‘5. 운영체제 명령어 삽입’ 등과 같은 삽입 취약점과 같은 개념으로 eval()과 같은 함수로 이루어진 코드(명령어)가 검증되지 않고 실행 가능할 때 발생할 수 있는 보안 약점입니다.

‘8. 부적절한 XML 외부 개체 참조’ 보안 약점은 OWASP TOP 10 (2017)에서도 발표됐던 항목으로 취약한 XML 파서가 외부 개체를 삽입한 XML을 검증 없이 그대로 처리하게 될 시 발생할 수 있는 보안 약점입니다.

’12. 서버사이드 요청 위조’ 보안 약점은 서버사이드에서 이루어지는 요청을 검증하지 않아 의도하지 않은 서버로 요청이 가게 되거나 요청이 변경될 수 있는 보안 약점입니다. 크로스사이트 요청 위조와 유사하지만, 클라이언트가 아닌 서버에 영향을 줘 파급력이 크며, OWASP TOP 10 (2021)에도 새롭게 순위를 차지했습니다.

[2. 보안 기능] 영역에서 신규 추가된 항목은 ‘10. 부적절한 전자서명 확인’, ‘11. 부적절한 인증서 유효성 검증’ 2개인데요. 기존 ‘중요정보 평문저장’, ‘중요정보 평문전송’ 항목이 통합돼 ‘5. 암호화되지 않은 중요정보’ 항목이 됐고, 기존 ‘하드코드된 패스워드’, ‘하드코드된 암호화 키’ 항목이 통합되어 ‘6. 하드코드된 중요정보’ 항목이 됐습니다.

‘10. 부적절한 전자서명 확인’ 과 ‘11. 부적절한 인증서 유효성 검증’ 항목은 전자서명법 개정으로 간편인증과 같은 민간 인증사업자의 다양한 전자서명인증서비스가 활성화되며, 이에 따라 발생할 수 있는 위험을 줄이고자 추가된 항목으로 보입니다. 전자서명 및 인증서에 대한 유효성 검증이 적절하지 않아 발생하는 보안 약점입니다.

[3. 시간 및 상태] 영역은 기존 소프트웨어 개발 보안 항목과 변동된 점이 없으며, [4. 에러처리] 영역의 ‘오류 메시지 정보 노출’ 항목이 기존 [6. 캡슐화] 영역의 ‘시스템 데이터 정보 노출’ 항목과 통합됐습니다. [5. 코드오류] 영역에서는 ‘5. 신뢰할 수 없는 데이터의 역직렬화’ 항목이 새롭게 추가됐습니다.

‘5. 신뢰할 수 없는 데이터의 역직렬화’ 항목은 직렬화된 데이터를 원래 객체(Object)로 복원할 때 적절한 검증 없이 수행해 발생하는 보안 약점으로, OWASP TOP 10 (2017) 항목에도 발표된 취약점입니다.


아직 위 변경 사항이 반영된 ‘소프트웨어 개발 보안 가이드’가 개정 및 배포되지 않았지만, 지침이 고시한 날로부터 시행된 만큼 정보시스템 사업 진행 시 이를 준수해 보안 강화에 힘써야 합니다.

다음 글에서는 소프트웨어 보안 약점과 함께 OWASP TOP 10에 관해 알아보겠습니다.

[참고]

https://www.law.go.kr/행정규칙/행정기관및공공기관정보시스템구축·운영지침
owasp.org/www-project-top-ten

글 | LG CNS 사이버시큐리티팀 조민아 책임

챗봇과 대화를 할 수 있어요