네이버클라우드

[Ncloud] File Safer로 내 파일 악성코드 잡아내기

graph-dev 2023. 8. 6. 22:52
728x90

ncloud 로고

 

악성코드 탐지의 필요성

 보안(Security)에 대한 관심이 높아지는 추세입니다. 많은 콘텐츠들이 디지털화되고, 해킹에 대한 위험도 함께 높아지고 있습니다.  2020년도 경험한 침해사고 유형을 살펴보면 다음과 같습니다.

과학기술정보통신부,「정보보호실태조사」, 2020, 2023.08.06, 침해사고 경험 유형

 

침해사고 경험 유형

 그 결과 랜섬웨어가 약 47%로 가장 높았고, 그 다음으로 악성코드(컴퓨터 바이러스, 웜, 트로이잔, APT공격 등)에 의한 공격이 41.7%로 높게 나타났습니다. 어느정도 악성코드에 대한 대비책이 필요하겠죠? 이와 관련하여 간단히 File Safer라는 상품군에 대해 알아보겠습니다.

 

 

File Safer 소개

File Safer

 먼저 File Safer 상품에 대해 알아보겠습니다. 파일의 악성코드 여부를 쉽고 간편하게 탐지하는 서비스입니다. 파일을 업로드하거나 다운로드 할 때, Rest API를 활용해서 검사할 수 있다고 합니다. 

 

 이번에는 이와 관련하여 Ncloud에서 소개하는 악성코드 탐지 시나리오를 살펴보겠습니다. 이용 신청 후, File Safer API를 연결해서 파일 업로드 및 다운로드를 하면 API를 통해 검사 요청 후 진단 결과를 받습니다. 잠시 사이트로 가서 개념과 시나리오만 읽고 오겠습니다.

https://guide.ncloud-docs.com/docs/filesafer-concept

 

File Safer 개념

 

guide.ncloud-docs.com

악성코드 시나리오

 시나리오를 읽다보니 File filter와 Hash Filter라는게 있고, Hash Filter는 빠른 검사, File Filter는 정밀 검사라는 느낌을 받았습니다. 상대적으로 트랜잭션이 느린 File Filter는 서비스 이용 속도에 영향을 줄 수 있다는 것이죠. 서비스의 속도에 영향을 주는 것을 잘 고려해서 두가지를 복합적으로 사용해야 한다는 점이 제일 중요한 포인트였습니다. 

 

Hash는 빠른 검사, File Filter는 정밀검사 좋아요.
그래서 그거 어디에 씁니까?

 

 

 그냥 생각하면 파일 업로드, 다운로드하는 기능에 그냥 붙이면 되는 것 아닐까 싶은데요. 사용하기 전에 실제 사용 사례를 먼저 살펴보고 도입 여부를 결정하면 좋겠죠?

 

 우선 사용자 가이드에 따르면 네이버 메일, 네이버 블로그 등에서 이러한 File Safer 서비스를 적용하고 있다고 해서, 한번 각 서비스별로 고객센터 공지사항에 관련 글이 있는지 간단히 살펴봤습니다.

 

사례1. 네이버 메일

 메일의 경우 2018년도 공지를 가져왔습니다. 다만 바이러스 검사, 악성 코드 검사를 다 같이 진행하는 것으로 보이며 File Safer에서 제공하는 Hash filter, file filter 중 어느 것을 사용하는지는 확실하지 않네요.

https://notice.naver.com/notices/mail/655?

 

네이버메일::공지사항

 

notice.naver.com

네이버 메일 고객센터 공지사항

 

 

사례 2. 네이버 블로그

 고객센터를 참고하면, 네이버 블로그는 파일을 첨부할 때 해시 필터링(Hash Filter) 시스템을 적용하고 있다고 합니다. 빠르게 검사할 수 있고 서비스 이용 속도에도 영향을 적게 주므로 잘 활용하기 좋겠습니다.

https://help.naver.com/service/5593/contents/15412?lang=ko 

 

악성코드 파일 제한 안내 : 블로그 고객센터

아래 사유로 2010년부터 악성코드 해시 필터링 시스템을 적용합니다.​1. 악성코드에 감염된 파일의 블로그 서비스 내 확산 방지2. 악성코드에 감염된 파일로 PC 시스템 성능이 저하하고 개인정보

help.naver.com

 

 

블로그 고객센터 사례

 

  그 외에도 네이버 소프트웨어 파일 업로드 및 카페, 지식인 서비스에도 다운로드 시 자동으로 악성 코드를 검사한다고 합니다. 자세한 것은 네이버 클라우드 플랫폼에서 소개하는 File Safer 사용 사례를 참고해주세요.
https://www.ncloud.com/product/security/fileSafer

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

 이제 실습을 해보겠습니다. 관련해서, 길이 글어질 수 있어서 Hash Filter만 진행하고, File Filter는 대략적인 흐름만 살펴보겠습니다.

 

File Safer 사용하기

 먼저 네이버 클라우드 플랫폼에서 콘솔창으로 들어가서 서비스 중 Security > File Safer로 이동하면 아래와 같은 화면이 나타납니다. 상품 이용 신청을 눌러주세요.

 

File Safer 신청 화면

 

신청하고 나면, 이용 신청 중으로 변경되며, Hash Filter, File Filter, Notification setting, Subscription 메뉴가 있습니다. 이번 글에서는 Hash Filter를 알아보겠습니다.

 

 신청 후, 웹(콘솔) 창에서는 아래와 같이 검사 결과 수치와 이용량을 조회할 수 있고, 단일 Hash 값을 검사할 수 있습니다. 실질적으로 개인 웹 사이트 내에서 탐지하기 위해서는 REST API라는 것을 활용해야 합니다.

 

Hash Filter 콘솔 화면

 

 

웹 콘솔에서 검사하기

 위 콘솔 화면에서 Hash 조회를 눌러줍니다. 그러면 아래와 같은 창이 뜹니다. Hash 알고리즘이 SHA-1, MD5인 경우 드롭박스 메뉴에서 선택하고, 검사하고자 하는 Hash 값을 알고리즘에 맞게 입력하고 조회를 누르면 됩니다.

 

hash 조회 화면

 

 그런데, 파일의 Hash 값은 어떻게 구할 수 있을까요? 저는 Mac OS를 사용하므로, MD5 해시 값을 한번 찾아보겠습니다. 터미널 명령어를 사용해보겠습니다. MAC OS 기준으로 사용할 명령어는 다음과 같습니다.

 

md5 FILE_PATH

 

간단하죠? "이것은예제파일이다.rtf"라는 파일을 활용해보겠습니다. 아래와 같이 MD5 알고리즘을 사용한 Hash 값이 나타납니다. '=' 기호 이후에 나타난 값들을 복사해줍니다.

 

md5 hash 값

 

 다시 복사한 값을 File Safer > Hash Filter > Hash 조회로 가서 MD5로 알고리즘을 선택해주고, Hash 값을 입력해줍니다.

 

Hash 조회 화면

 

 이렇게 Hash 조회를 마쳤고 8원(1건 기준)이 부과될 예정입니다. 상태는 Not Detect로 감지되지 않았다고 결과가 아래 회색 칸에 나타납니다. 다시 탐지 이력을 조회해보겠습니다. 이제 전체건수가 0건에서 1건으로 늘어났습니다.

 

조회후 화면

 

File Filter 알아보기

 File Filter는 File을 분석해서 악성코드를 탐지하는 서비스입니다. 테스트하는 비용이 비싸지만, 사용하는 법은 알아두면 좋기 때문에, 간단히 콘솔로만 살펴보겠습니다. File Safer > File Filter로 넘어가면 아래와 같은 화면이 나타납니다. File 분석을 눌러줍시다.

 

File Filter

 

누르면 아래와 같은 창이 나타납니다. 여기서 File 분석에 필요한 파일을 업로드해주시고, "전송시작"을 누르면 분석을 수행합니다. 그리고 암호가 걸린 압축 파일이라면 압축할 때 설정하신 비밀번호를 아래 압축 Password란에 넣어주면 됩니다.

 

File 분석시 등장하는 화면

 

 전송 완료 후에는 창이 자동으로 종료되고 File Filter 창에서 분석 결과를 확인해주시면 됩니다.

 

 

통보 설정(Notification Setting)

 지금까지 두 Filter 방식에 대해 알아봤습니다. 그런데 이러한 필터링을 진행해도 사용자가 알아차리지 못하면 대응이 어렵겠죠? 그래서 특정 이벤트가 발생하면 사용자에게 알림이 가도록 설정해주겠습니다. 구체적으로, 통보 대상자를 설정해서 이메일 등 수단을 사용해서 분석했다는 것을 알리는 방법에 대해 살펴보겠습니다. 

 

 가장 먼저 통보 대상자 설정을 위해 Notification Setting 으로 들어갑니다. 통보대상 설정에서 드롭박스 메뉴로 선택해줍니다. 통보대상자가 없다면 통보대상관리를 눌러서 대상자 정보(Email, 휴대폰번호 등)을 추가해주고 진행해주세요. 저는 이메일만 통보방법으로 선택해보겠습니다.

 

Notification Setting

 

자세한 것은 아래 가이드를 참고해주세요.

https://guide.ncloud-docs.com/docs/filesafer-noti

 

Notification Setting

 

guide.ncloud-docs.com

 

File Safer > Hash Filter로 들어가서 결과 통보 설정 버튼을 누릅니다.

결과통보 설정

 그러면 아래와 같은 화면이 나타납니다. 일반 설정은 쉽게 통보 조건만 선택하면 됩니다. 고급 설정에서는 임계치를 정해서 해당 값 이상일 경우에만 통보하도록 세부 조정이 가능합니다.

통보설정

 일반 설정, 고급 설정 둘 다 설정해주면 이중으로 알림을 받는다고 하는데요, 직접 해보겠습니다. 이렇게 설정하고 앞서 진행한대로 Hash Filter를 수행합니다.

 

그리고 설정한 메일로 이동하면 아래와 같이 메일을 확인할 수 있습니다.

 

받은 메일함 전달된 hash 조회 알림
상세 내용

 위의 화면처럼 잘 메일 알림이 왔고 상세 내용에 Hash Type, Hash 값을 함께 알려주고 있습니다. 이를 잘 활용하면 자동 검사를 실시할 때 알림을 받고 잘 대응할 수 있겠네요.

 

이용 요금

 Hash Filter만 사용하는 이유는 요금 체계가 File Filter와 다르게 설정되어있기 때문입니다. 실질적인 부담이 있기도 하고, 이것은 사용자마다 좀 다르게 보시면 되겠습니다. 아래 요금 표를 참고해주세요.

File Safer 요금체계

https://www.ncloud.com/product/security/fileSafer

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

 요약하면 Hash Filter는 매월 30만건 이하일 경우, 1건당 8원이 부과되고, File Filter는 매월 10만건 이하일 경우 검사 건수는 1만건을 기준으로 10만원이 들어갑니다. 즉, 대량으로 검사하는 경우에 File Filter도 함께 사용하면 좋다는 거죠.

 

 이게 잘 느껴지지 않는다면 요금 계산기 화면을 보여드리겠습니다.

 

요금 계산기

 아주 극단적으로 설정해보았습니다. Hash Filter는 1건을 사용하면 8원이 부과됩니다. File Filter는 1건만 사용해도 10만원이 부과된다는 사실을 알 수 있습니다. 이러한 요금체계도 앞서 말씀드린 시나리오와 함께 고려해서 File Safer 상품군을 이용하시면 좋겠습니다.

 

 

미리보기: REST API로 조회

잠깐 API 가이드를 보고 정신을 잃을 뻔했습니다. 쉽지 않은 여정이 기다릴 것인가..말이죠. 함께 보고 오시죠!

https://api.ncloud-docs.com/docs/common-ncpapi

 

Ncloud API

 

api.ncloud-docs.com

 

 저 가이드를 보면, 갑자기 개발 가이드로 넘어갑니다. REST API를 사용하는 앱을 만드는 사람을 대상으로 한 문서인 듯 싶습니다. 하지만 저는 아직 그런 앱을 만들진 않았고, 만들려면 시간이 걸리므로 최대한 간단한 버전으로 진행해볼 예정입니다. 가이드에서 꼭 필요한 부분만 발췌해보겠습니다.

 

Hash Filter 코드 작성시,

 

1. 악성 코드로 의심되는 파일을 구분 (악성코드가 필요한 파일 구분해두기)

2. 구분된 파일에서 Hash 값 추출

3. 인증값 생성

 

정리해보면, 2번까지는 위의 터미널 작업만으로도 MD5 hash 값을 뽑아냈다는 것을 알 수 있습니다. 이제 3번의 인증값 생성만 수행해보겠습니다. 필요한 것은 Access key, 시그니처 값, API Key, timestamp라는 것입니다. Access Key는 마이페이지 > 인증키 관리에서 구하면 됩니다.

 

그런데, 생각보다 길어질 것 같습니다. 그래서 다음 콘텐츠에서 REST API를 활용한 Hash Filter 적용 방법에 대해 정리해서 소개해드리겠습니다.