Amazon GuardDuty를 사용하면 AWS 계정과 워크로드를 모니터링하여 악의적인 활동을 탐지할 수 있습니다. 오늘은 GuardDuty에 맬웨어를 탐지하는 기능을 추가합니다. 맬웨어는 워크로드를 위협하거나 리소스를 다른 용도로 사용하거나 데이터에 무단으로 액세스하는 데 사용되는 악성 소프트웨어입니다.
GuardDuty 맬웨어 보호를 활성화하는 경우 EC2에서 실행 중인 EC2 인스턴스 또는 컨테이너 워크로드 중 하나가 의심스러운 활동을 수행하고 있음을 GuardDuty에서 탐지하면 맬웨어 스캔이 시작됩니다. 예를 들어, EC2 인스턴스가 다른 EC2 인스턴스에 대해 서비스 거부(DoS) 또는 무차별 대입 공격을 수행하거나 악의적으로 알려진 명령 및 통제 서버와 통신하는 경우 맬웨어 스캔이 트리거됩니다.
GuardDuty는 많은 파일 시스템 유형을 지원하고, Windows 및 Linux 실행 파일, PDF 파일, 아카이브, 2진, 스크립트, 설치 프로그램, 이메일 데이터베이스 및 일반 이메일이 있는 맬웨어를 포함하거나 확산시키는 데 사용되는 것으로 알려진 파일 형식을 스캔합니다.
잠재적 맬웨어가 식별되면 위협 및 파일 이름, 파일 경로, EC2 인스턴스 ID, 리소스 태그, 컨테이너의 경우 컨테이너 ID 및 사용된 컨테이너 이미지와 같은 정보를 포함하는 조치 가능한 보안 조사 결과가 생성됩니다. GuardDuty는 고객 관리형 Kubernetes 클러스터 또는 개별 도커 컨테이너를 포함하여 EC2에서 실행 중인 컨테이너 워크로드를 지원합니다. 컨테이너가 Amazon Elastic Kubernetes Service (Amazon EKS) 또는 Amazon Elastic Container Service (Amazon ECS)에서 관리되는 경우 조사 결과에는 클러스터 이름 및 태스크 또는 포드 ID도 포함되므로, 애플리케이션 및 보안 팀은 영향을 받는 컨테이너 리소스를 빠르게 찾을 수 있습니다.
다른 모든 GuardDuty 조사 결과와 마찬가지로, 맬웨어 탐지 정보를 GuardDuty 콘솔로 전송하고 Amazon EventBridge를 통해 푸시한 후 AWS Security Hub로 라우팅하고 인시던트 조사를 위해 Amazon Detective에서 사용 가능하게 합니다.
GuardDuty 맬웨어 보호 작동 방식
맬웨어 보호를 활성화하는 경우 맬웨어 스캔을 수행할 권한을 GuardDuty에 부여하는 AWS Identity and Access Management(IAM) 서비스 연결 역할을 설정합니다. EC2 인스턴스에 대해 맬웨어 스캔이 시작되면 GuardDuty 맬웨어 보호는 해당 권한을 사용하여 크기가 1TB 미만인 연결된 Amazon Elastic Block Store(EBS) 볼륨의 스냅샷을 생성한 다음, 동일한 AWS 리전에 있는 AWS 서비스 계정의 EBS 볼륨을 복원하여 맬웨어가 있는지 스캔합니다. 태그 지정을 사용하여 해당 권한 및 스캔에서 EC2 인스턴스를 포함하거나 제외할 수 있습니다. 그러면 맬웨어를 모니터링하기 위해 보안 소프트웨어나 에이전트를 배포할 필요가 없으며 볼륨을 스캔해도 실행 중인 워크로드에 영향을 주지 않습니다. 스캔 후 서비스 계정의 EBS 볼륨과 계정의 스냅샷은 삭제됩니다. 선택적으로 맬웨어가 탐지되면 스냅샷을 보존할 수 있습니다.
서비스 연결 역할은 EBS 볼륨을 암호화하는 데 사용되는 AWS Key Management Service(AWS KMS) 키에 대한 액세스 권한을 GuardDuty에 부여합니다. 잠재적으로 손상된 EC2 인스턴스에 연결된 EBS 볼륨이 고객 관리형 키로 암호화되는 경우 GuardDuty 맬웨어 보호는 동일한 키를 사용하여 복제본 EBS 볼륨도 암호화합니다. 볼륨이 암호화되지 않은 경우 GuardDuty는 자체 키를 사용하여 복제본 EBS 볼륨을 암호화하고 개인 정보를 보호합니다. EBS 관리형 키로 암호화된 볼륨은 지원되지 않습니다.
클라우드에서의 보안은 사용자와 AWS 간의 공동 책임입니다. 가드레일로, GuardDuty 맬웨어 보호에서 사용하는 서비스 연결 역할은 GuardDutyExcluded
태그가 있는 경우 리소스(예: EBS 스냅샷 및 볼륨, EC2 인스턴스 및 KMS 키)에 대해 어떠한 작업도 수행할 수 없습니다. GuardDutyExcluded
를 true
로 설정하고 스냅샷을 표시하면 GuardDuty 서비스는 이러한 스냅샷에 액세스할 수 없습니다. GuardDutyExcluded
태그는 모든 포함 태그를 대체합니다. 또한, 권한을 통해 스냅샷을 GuardDuty 서비스 계정과 공유하는 동안 공개하지 않도록 GuardDuty에서 스냅샷을 수정하는 방법을 제한합니다.
GuardDuty에서 생성한 EBS 볼륨은 항상 암호화됩니다. GuardDuty는 GuardDuty 스캔 ID 태그가 있는 EBS 스냅샷에서만 KMS 키를 사용할 수 있습니다. 스캔 ID 태그는 EC2 조사 후 스냅샷이 생성될 때 GuardDuty에 의해 추가됩니다. GuardDuty 서비스 계정과 공유되는 KMS 키는 Amazon EBS 서비스를 제외한 다른 컨텍스트에서 호출할 수 없습니다. 스캔이 성공적으로 완료되면 KMS 키 권한 부여가 취소되고 GuardDuty 서비스 계정의 볼륨 복제본이 삭제되어 스캔 작업을 완료한 후에는 GuardDuty 서비스가 사용자의 데이터에 액세스할 수 없습니다.
AWS 계정에서 맬웨어 보호 활성화
아직 GuardDuty를 사용하지 않는 경우 계정에서 GuardDuty를 활성화하면 맬웨어 방지가 기본적으로 활성화됩니다. 저는 이미 GuardDuty를 사용하고 있으므로 콘솔에서 맬웨어 방지를 활성화해야 합니다. AWS Organizations를 사용하는 경우 위임된 관리자 계정에서 기존 멤버 계정에 대해 이 기능을 활성화하고 조직의 새 AWS 계정을 자동으로 등록할지 여부를 구성할 수 있습니다.
GuardDuty 콘솔의 탐색 창에서 설정(Settings) 아래에 있는 맬웨어 보호(Malware Protection)를 선택합니다. 여기서 활성화(Enable)를 선택하고 맬웨어 보호 활성화(Enable Malware Protection)를 선택합니다.
스냅샷은 스캔 후 자동으로 삭제됩니다. 일반 설정(General settings)에 맬웨어가 탐지된 스냅샷을 AWS 계정에 보관하고 추가 분석에 사용할 수 있는 옵션이 있습니다.
스캔 옵션(Scan options)에서 포함 태그 목록을 구성하면 이 태그가 있는 EC2 인스턴스만 스캔할 수 있습니다. 또는 제외 태그 목록을 구성하면 목록에서 이 태그의 EC2 인스턴스를 건너뜁니다.
맬웨어 보호 GuardDuty 조사 결과 테스트
새로운 맬웨어 보호 조사 결과를 포함하여 여러 Amazon GuardDuty 조사 결과를 생성하기 위해 Amazon GuardDuty 테스터 리포지토리를 복제합니다.
$ git clone https://github.com/awslabs/amazon-guardduty-tester
먼저 guardduty-tester.template
파일을 사용하여 AWS CloudFormation 스택을 생성합니다. 스택이 준비되면 지침에 따라 Bastion 호스트를 통해 테스터 인스턴스에 로그인하도록 SSH 클라이언트를 구성합니다. 그런 다음, 테스터 인스턴스에 연결합니다.
테스터 인스턴스에서 guardduty_tester.sh
스크립트를 시작하여 조사 결과를 생성합니다.
$ ./guardduty_tester.sh
***********************************************************************
* Test #1 - Internal port scanning *
* This simulates internal reconaissance by an internal actor or an *
* external actor after an initial compromise. This is considered a *
* low priority finding for GuardDuty because its not a clear indicator*
* of malicious intent on its own. *
***********************************************************************
Starting Nmap 6.40 ( http://nmap.org ) at 2022-05-19 09:36 UTC
Nmap scan report for ip-172-16-0-20.us-west-2.compute.internal (172.16.0.20)
Host is up (0.00032s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp closed http
5050/tcp closed mmcc
MAC Address: 06:25:CB:F4:E0:51 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 4.96 seconds
-----------------------------------------------------------------------
***********************************************************************
* Test #2 - SSH Brute Force with Compromised Keys *
* This simulates an SSH brute force attack on an SSH port that we *
* can access from this instance. It uses (phony) compromised keys in *
* many subsequent attempts to see if one works. This is a common *
* techique where the bad actors will harvest keys from the web in *
* places like source code repositories where people accidentally leave*
* keys and credentials (This attempt will not actually succeed in *
* obtaining access to the target linux instance in this subnet) *
***********************************************************************
2022-05-19 09:36:29 START
2022-05-19 09:36:29 Crowbar v0.4.3-dev
2022-05-19 09:36:29 Trying 172.16.0.20:22
2022-05-19 09:36:33 STOP
2022-05-19 09:36:33 No results found...
2022-05-19 09:36:33 START
2022-05-19 09:36:33 Crowbar v0.4.3-dev
2022-05-19 09:36:33 Trying 172.16.0.20:22
2022-05-19 09:36:37 STOP
2022-05-19 09:36:37 No results found...
2022-05-19 09:36:37 START
2022-05-19 09:36:37 Crowbar v0.4.3-dev
2022-05-19 09:36:37 Trying 172.16.0.20:22
2022-05-19 09:36:41 STOP
2022-05-19 09:36:41 No results found...
2022-05-19 09:36:41 START
2022-05-19 09:36:41 Crowbar v0.4.3-dev
2022-05-19 09:36:41 Trying 172.16.0.20:22
2022-05-19 09:36:45 STOP
2022-05-19 09:36:45 No results found...
2022-05-19 09:36:45 START
2022-05-19 09:36:45 Crowbar v0.4.3-dev
2022-05-19 09:36:45 Trying 172.16.0.20:22
2022-05-19 09:36:48 STOP
2022-05-19 09:36:48 No results found...
2022-05-19 09:36:49 START
2022-05-19 09:36:49 Crowbar v0.4.3-dev
2022-05-19 09:36:49 Trying 172.16.0.20:22
2022-05-19 09:36:52 STOP
2022-05-19 09:36:52 No results found...
2022-05-19 09:36:52 START
2022-05-19 09:36:52 Crowbar v0.4.3-dev
2022-05-19 09:36:52 Trying 172.16.0.20:22
2022-05-19 09:36:56 STOP
2022-05-19 09:36:56 No results found...
2022-05-19 09:36:56 START
2022-05-19 09:36:56 Crowbar v0.4.3-dev
2022-05-19 09:36:56 Trying 172.16.0.20:22
2022-05-19 09:37:00 STOP
2022-05-19 09:37:00 No results found...
2022-05-19 09:37:00 START
2022-05-19 09:37:00 Crowbar v0.4.3-dev
2022-05-19 09:37:00 Trying 172.16.0.20:22
2022-05-19 09:37:04 STOP
2022-05-19 09:37:04 No results found...
2022-05-19 09:37:04 START
2022-05-19 09:37:04 Crowbar v0.4.3-dev
2022-05-19 09:37:04 Trying 172.16.0.20:22
2022-05-19 09:37:08 STOP
2022-05-19 09:37:08 No results found...
2022-05-19 09:37:08 START
2022-05-19 09:37:08 Crowbar v0.4.3-dev
2022-05-19 09:37:08 Trying 172.16.0.20:22
2022-05-19 09:37:12 STOP
2022-05-19 09:37:12 No results found...
2022-05-19 09:37:12 START
2022-05-19 09:37:12 Crowbar v0.4.3-dev
2022-05-19 09:37:12 Trying 172.16.0.20:22
2022-05-19 09:37:16 STOP
2022-05-19 09:37:16 No results found...
2022-05-19 09:37:16 START
2022-05-19 09:37:16 Crowbar v0.4.3-dev
2022-05-19 09:37:16 Trying 172.16.0.20:22
2022-05-19 09:37:20 STOP
2022-05-19 09:37:20 No results found...
2022-05-19 09:37:20 START
2022-05-19 09:37:20 Crowbar v0.4.3-dev
2022-05-19 09:37:20 Trying 172.16.0.20:22
2022-05-19 09:37:23 STOP
2022-05-19 09:37:23 No results found...
2022-05-19 09:37:23 START
2022-05-19 09:37:23 Crowbar v0.4.3-dev
2022-05-19 09:37:23 Trying 172.16.0.20:22
2022-05-19 09:37:27 STOP
2022-05-19 09:37:27 No results found...
2022-05-19 09:37:27 START
2022-05-19 09:37:27 Crowbar v0.4.3-dev
2022-05-19 09:37:27 Trying 172.16.0.20:22
2022-05-19 09:37:31 STOP
2022-05-19 09:37:31 No results found...
2022-05-19 09:37:31 START
2022-05-19 09:37:31 Crowbar v0.4.3-dev
2022-05-19 09:37:31 Trying 172.16.0.20:22
2022-05-19 09:37:34 STOP
2022-05-19 09:37:34 No results found...
2022-05-19 09:37:35 START
2022-05-19 09:37:35 Crowbar v0.4.3-dev
2022-05-19 09:37:35 Trying 172.16.0.20:22
2022-05-19 09:37:38 STOP
2022-05-19 09:37:38 No results found...
2022-05-19 09:37:38 START
2022-05-19 09:37:38 Crowbar v0.4.3-dev
2022-05-19 09:37:38 Trying 172.16.0.20:22
2022-05-19 09:37:42 STOP
2022-05-19 09:37:42 No results found...
2022-05-19 09:37:42 START
2022-05-19 09:37:42 Crowbar v0.4.3-dev
2022-05-19 09:37:42 Trying 172.16.0.20:22
2022-05-19 09:37:46 STOP
2022-05-19 09:37:46 No results found...
-----------------------------------------------------------------------
***********************************************************************
* Test #3 - RDP Brute Force with Password List *
* This simulates an RDP brute force attack on the internal RDP port *
* of the windows server that we installed in the environment. It uses*
* a list of common passwords that can be found on the web. This test *
* will trigger a detection, but will fail to get into the target *
* windows instance. *
***********************************************************************
Sending 250 password attempts at the windows server...
Hydra v9.4-dev (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-05-19 09:37:46
[WARNING] rdp servers often don't like many connections, use -t 1 or -t 4 to reduce the number of parallel connections and -W 1 or -W 3 to wait between connection to allow the server to recover
[INFO] Reduced number of tasks to 4 (rdp does not like many parallel connections)
[WARNING] the rdp module is experimental. Please test, report - and if possible, fix.
[DATA] max 4 tasks per 1 server, overall 4 tasks, 1792 login tries (l:7/p:256), ~448 tries per task
[DATA] attacking rdp://172.16.0.24:3389/
[STATUS] 1099.00 tries/min, 1099 tries in 00:01h, 693 to do in 00:01h, 4 active
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-05-19 09:39:23
-----------------------------------------------------------------------
***********************************************************************
* Test #4 - CryptoCurrency Mining Activity *
* This simulates interaction with a cryptocurrency mining pool which *
* can be an indication of an instance compromise. In this case, we are*
* only interacting with the URL of the pool, but not downloading *
* any files. This will trigger a threat intel based detection. *
***********************************************************************
Calling bitcoin wallets to download mining toolkits
-----------------------------------------------------------------------
***********************************************************************
* Test #5 - DNS Exfiltration *
* A common exfiltration technique is to tunnel data out over DNS *
* to a fake domain. Its an effective technique because most hosts *
* have outbound DNS ports open. This test wont exfiltrate any data, *
* but it will generate enough unusual DNS activity to trigger the *
* detection. *
***********************************************************************
Calling large numbers of large domains to simulate tunneling via DNS
***********************************************************************
* Test #6 - Fake domain to prove that GuardDuty is working *
* This is a permanent fake domain that customers can use to prove that*
* GuardDuty is working. Calling this domain will always generate the *
* Backdoor:EC2/C&CActivity.B!DNS finding type *
***********************************************************************
Calling a well known fake domain that is used to generate a known finding
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> GuardDutyC2ActivityB.com any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11495
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;GuardDutyC2ActivityB.com. IN ANY
;; ANSWER SECTION:
GuardDutyC2ActivityB.com. 6943 IN SOA ns1.markmonitor.com. hostmaster.markmonitor.com. 2018091906 86400 3600 2592000 172800
GuardDutyC2ActivityB.com. 6943 IN NS ns3.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns5.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns7.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns2.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns4.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns6.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns1.markmonitor.com.
;; Query time: 27 msec
;; SERVER: 172.16.0.2#53(172.16.0.2)
;; WHEN: Thu May 19 09:39:23 UTC 2022
;; MSG SIZE rcvd: 238
*****************************************************************************************************
Expected GuardDuty Findings
Test 1: Internal Port Scanning
Expected Finding: EC2 Instance i-011e73af27562827b is performing outbound port scans against remote host. 172.16.0.20
Finding Type: Recon:EC2/Portscan
Test 2: SSH Brute Force with Compromised Keys
Expecting two findings - one for the outbound and one for the inbound detection
Outbound: i-011e73af27562827b is performing SSH brute force attacks against 172.16.0.20
Inbound: 172.16.0.25 is performing SSH brute force attacks against i-0bada13e0aa12d383
Finding Type: UnauthorizedAccess:EC2/SSHBruteForce
Test 3: RDP Brute Force with Password List
Expecting two findings - one for the outbound and one for the inbound detection
Outbound: i-011e73af27562827b is performing RDP brute force attacks against 172.16.0.24
Inbound: 172.16.0.25 is performing RDP brute force attacks against i-0191573dec3b66924
Finding Type : UnauthorizedAccess:EC2/RDPBruteForce
Test 4: Cryptocurrency Activity
Expected Finding: EC2 Instance i-011e73af27562827b is querying a domain name that is associated with bitcoin activity
Finding Type : CryptoCurrency:EC2/BitcoinTool.B!DNS
Test 5: DNS Exfiltration
Expected Finding: EC2 instance i-011e73af27562827b is attempting to query domain names that resemble exfiltrated data
Finding Type : Trojan:EC2/DNSDataExfiltration
Test 6: C&C Activity
Expected Finding: EC2 instance i-011e73af27562827b is querying a domain name associated with a known Command & Control server.
Finding Type : Backdoor:EC2/C&CActivity.B!DNS
몇 분 후에 GuardDuty 콘솔에 조사 결과가 나타납니다. 맨 위에 보면 새로운 맬웨어 보호 기능에서 찾은 악성 파일이 있습니다. 조사 결과 중 하나는 EC2 인스턴스와 관련이 있고 다른 하나는 ECS 클러스터와 관련이 있습니다.
먼저 EC2 인스턴스와 관련된 조사 결과를 선택합니다. 패널에 인스턴스 및 악성 파일에 대한 정보(예: 파일 이름 및 경로)가 표시됩니다. 맬웨어 스캔 세부 정보(Malware scan details) 섹션에서 조사 결과 ID 트리거(Trigger finding ID)는 맬웨어 스캔을 트리거한 원래 GuardDuty 조사 결과를 가리킵니다. 여기에서 원래 조사 결과는 이 EC2 인스턴스가 다른 EC2 인스턴스에 대해 RDP 무차별 대입 공격을 수행한다는 내용입니다.
여기에서는 Detective에서 조사(Investigate with Detective)를 선택하고 GuardDuty 콘솔에서 직접 Detective 콘솔로 이동하여 조사 결과와 관련된 EC2 인스턴스, AWS 계정 및 IP 주소에 대한 AWS CloudTrail 및 Amazon Virtual Private Cloud(Amazon VPC) 플로우 데이터를 시각화합니다. Detective를 사용하여 GuardDuty에서 찾은 의심스러운 활동의 근본 원인을 분석, 조사 및 식별할 수 있습니다.
ECS 클러스터와 관련된 조사 결과를 선택하면 ECS 클러스터의 세부 정보, 태스크, 컨테이너, 컨테이너 이미지 등 영향을 받는 리소스에 대한 자세한 정보가 표시됩니다.
GuardDuty 테스터 스크립트를 사용하면 실제 위협이 탐지될 때에 대비할 수 있도록 사용하는 다른 보안 프레임워크와 GuardDuty의 전반적인 통합을 더 쉽게 테스트할 수 있습니다.
Amazon Inspector와 GuardDuty 맬웨어 보호 비교
이 시점에서 소프트웨어 취약성 및 의도하지 않은 네트워크 노출에 대해 AWS 워크로드를 스캔하는 서비스인 Amazon Inspector와 GuardDuty 맬웨어 보호가 어떤 관련이 있는지 궁금할 수 있습니다. 두 서비스는 서로를 보완하며 서로 다른 보호 계층을 제공합니다.
- Amazon Inspector는 공격자가 리소스를 위협하고 맬웨어를 설치할 수 있는 진입점 역할을 하는 것으로 알려진 소프트웨어 및 애플리케이션 취약성을 식별하고 해결함으로써 사전 예방적인 보호 기능을 제공합니다.
- GuardDuty 맬웨어 보호는 활발하게 실행 중인 워크로드에 존재하는 것으로 알려진 맬웨어를 탐지합니다. 이 시점에서 시스템은 이미 위협을 받았지만 GuardDuty는 감염 시간을 제한하고 시스템 위협으로 인해 비즈니스에 영향을 미치는 이벤트가 발생하기 전에 조치를 취할 수 있습니다.
가용성 및 요금
Amazon GuardDuty 맬웨어 보호는 AWS 중국(베이징), AWS 중국(닝샤), AWS GovCloud(미국 동부) 및 AWS GovCloud(미국 서부) 리전을 제외하고 GuardDuty를 사용할 수 있는 모든 AWS 리전에서 현재 사용할 수 있습니다.
출시 시점을 기준으로 GuardDuty 맬웨어 보호는 다음과 같은 파트너 제품과 통합됩니다.
GuardDuty를 사용하면 맬웨어를 모니터링하기 위해 보안 소프트웨어나 에이전트를 배포할 필요가 없습니다. 파일 시스템에서 스캔한 GB(EBS 볼륨 크기가 아님)와 계정에 보관하는 동안 EBS 스냅샷에 대한 비용만 지불하면 됩니다. 맬웨어가 발견될 때 스냅샷 보존을 활성화하지 않는 한, GuardDuty에서 생성한 모든 EBS 스냅샷은 스캔 후 자동으로 삭제됩니다. 자세한 내용은 GuardDuty 요금 및 EBS 요금 섹션을 참조하세요. GuardDuty는 크기가 1TB 미만인 EBS 볼륨만 스캔합니다. 비용을 관리하고 경보의 반복을 방지하기 위해 동일한 볼륨은 24시간마다 한 번 이상 스캔되지 않습니다.
Amazon GuardDuty를 사용하여 악의적인 활동을 탐지하고 맬웨어로부터 애플리케이션을 보호하세요.
— Danilo