본문 바로가기
공부/KISA

무결성 검사 없는 코드 다운로드 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 21.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr


구현 단계 시큐어코딩 가이드 - 보안 기능 - 무결성 검사 없는 코드 다운로드 

가. 개요

  • 원격으로부터 소스코드 또는 실행파일을 무결성 검사 없이 다운로드하고, 이를 실행하는 제품들이 종종 존재한다. 이는 호스트 서버의 변조, DNS 스푸핑 (Spoofing) 또는 전송 시의 코드 변조 등의 방법을 이용하여 공격자가 악의적인 코드를 실행할 수 있도록 한다.

나. 보안대책

  • DNS 스푸핑(Spoofing)을 방어할 수 있는 DNS lookup을 수행하고 코드 전송 시 신뢰할 수 있는 암호 기법을 이용하여 코드를 암호화한다. 또한 다운로드한 코드는 작업 수행을 위해 필요한 최소한의 권한으로 실행하도록 한다.

다. 코드예제

JAVA
더보기

이 예제는 URLClassLoader()를 통해 원격에서 파일을 다운로드한 뒤 로드하면서, 대상 파일에 대한 무결성 검사를 수행하지 않아 파일 변조 등으로 인한 피해가 발생할 수 있는 경우이다. 이러한 경우 공격자는 악의적인 실행코드로 클래스의 내용을 수정할 수 있다.

이를 안전한 코드로 변환하면 다음과 같다. 클래스를 로드하기 전 클래스의 체크섬(Checksum)을 실행하여 로드하는 코드가 변조되지 않았음을 확인한다.

 

C#
더보기

파일 무결성 검사를 하지 않고 파일을 다운로드하는 C#코드 예제이다.

해쉬값 등을 이용하여 파일 무결성 검사 후 다운로드를 해야 한다.

 

C
더보기

리턴 값을 이용하여 무결성 검사를 하지 않은 C 코드의 예제이다.

리턴 값을 이용하여 무결성을 확인한 후 사용해야 한다.


참고자료

반응형

댓글