- 인쇄
- PDF
WebShell Behavior Detector 에이전트 설치 및 실행
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
WebShell Behavior Detector가 정상적으로 웹쉘 행위 탐지를 시작하려면 등록된 탐지 대상 서버에 에이전트를 설치하고 실행해야 합니다. 또한 WebShell Behavior Detector 작동 중에도 에이전트를 원격으로 실행하거나 종료하는 등 원격 제어가 필요할 수 있습니다. 다음을 참고하여 에이전트를 설치하고 제어해 주십시오.
에이전트 설치 및 실행
에이전트 설치 및 실행은 명령어를 통해 다음과 같은 과정으로 진행합니다.
1. 탐지 대상 서버 접속
2. 에이전트 설치
3. 에이전트 실행 확인
4. 정상 탐지 테스트
1. 탐지 대상 서버 접속
1.1 (Host)Linux, Windows 환경인 경우
탐지 대상 서버에 에이전트를 설치하려면 먼저 해당 서버에 root (Linux 환경), Administrator (Windows 환경) 권한으로 접속해야 합니다. 서버에 원격으로 접속하는 방법은 서버 접속 가이드를 참조해 주십시오.
1.2 Kubernetes 환경인 경우
탐지 대상 서버에 에이전트를 설치하려면 먼저 클러스터 접속 권한이 있어야 합니다. Kubernetes 클러스터를 접속 및 관리하는 방법은 클러스터 접속 및 관리 가이드를 참조해 주십시오.
2. 에이전트 설치
2.1 (Host)Linux 환경인 경우
다음 명령어를 입력해 에이전트를 설치해 주십시오.
# wget https://wbd.gov-ncloud.com:18088/agent/wbd_installer.sh -O wbd_installer.sh
# chmod a+x wbd_installer.sh
# ./wbd_installer.sh
에이전트가 성공적으로 설치되었다면 다음과 같은 문구가 표시됩니다.
- 설치 과정 또는 결과가 위와 다르게 나타나면 설치 스크립트(wbd_installer.sh)를 다시 실행해 주십시오.
- 설치 과정에서 오류가 발생하면 오류 코드별 대응 방법을 참조해 주십시오.
2.2 (Host)Windows 환경인 경우
Powershell에서 다음 명령어를 입력해 에이전트를 설치해 주십시오.
PS > Invoke-WebRequest -Uri "https://wbd.gov-ncloud.com:18088/agent/windows/x64/WBDAgent-setup.exe" -OutFile "WBDAgent-setup.exe"
PS > ./WBDAgent-setup.exe
에이전트가 성공적으로 설치되었다면 다음과 같은 창이 표시됩니다.
- 설치 과정 또는 결과가 위와 다르게 나타나면 설치 파일(WBDAgent-setup.exe)을 다시 실행해 주십시오.
- 설치 과정에서 오류가 발생하면 오류 코드별 대응 방법을 참조해 주십시오.
2.3 Kubernetes 환경인 경우
kubectl을 이용하여 다음 명령어를 입력해 에이전트를 설치해 주십시오.
kubectl apply -f https://wbd.gov-ncloud.com:18088/agent/wbd_agent_ds.yaml --kubeconfig kubeconfig.yaml
에이전트가 성공적으로 설치되었다면 다음과 같은 문구가 표시됩니다.
- 설치 과정 또는 결과가 위와 다르게 나타나면 kubectl을 이용하여 YAML 설정 파일(wbd_agent_ds.yaml)을 다시 실행해 주십시오.
- 설치 과정에서 오류가 발생하면 오류 코드별 대응 방법을 참조해 주십시오.
3. 에이전트 실행 확인
3.1 (Host)Linux 환경인 경우
다음 명령어를 입력해 에이전트가 성공적으로 설치되어 실행 중인지 확인해 주십시오.
# ps -ef | grep wbd
에이전트가 정상적으로 실행 중이라면 다음과 같은 문구가 표시됩니다.
3.2 (Host)Windows 환경인 경우
Powershell에서 다음 명령어를 입력해 에이전트가 성공적으로 설치되어 실행 중인지 확인해 주십시오.
PS > Get-Process -Name "AgentService"
에이전트가 정상적으로 실행 중이라면 다음과 같은 문구가 표시됩니다.
3.3 Kubernetes 환경인 경우
다음 명령어를 입력해 에이전트가 성공적으로 설치되어 실행 중인지 확인해 주십시오.
# kubectl get pods --all-namespaces --kubeconfig kubeconfig.yaml | grep "wbd-daemon"
에이전트가 정상적으로 실행 중이라면 다음과 같은 문구가 표시됩니다.
또는 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Security > WebShell Behavior Detector > Detection Setting > Configuration 메뉴를 차례대로 클릭한 후 탐지 대상 목록에서 에이전트 상태가 활성화로 표시되는지 확인해 주십시오.
4. 정상 탐지 테스트
Webshell Behavior Detector 에이전트가 정상적으로 설치되어 실행되고 있음을 확인했다면, 가짜 웹쉘 파일을 통해 웹쉘 행위를 잘 탐지하는지 확인해 주십시오.
- 가짜 웹쉘 파일은 인자 값을 받지 않는 형태로 작성해 주십시오.
예시: webshell.php?cmd=cat /etc/hosts - 유추할 수 없는 경로와 파일명으로 작성해 주십시오.
예시: webshelltestfile_202001011230.php - 테스트를 완료한 후에는 가짜 웹쉘 파일을 반드시 삭제해 주십시오.
다음은 가짜 웹쉘 파일의 예시입니다. 가짜 웹쉘 파일 작성 시 참고용으로만 활용해 주십시오.
- PHP
<?php
system("ls -al /tmp/thereisnodir");
?>
- JSP
<%@ page import="java.io.*"%>
<% Process child = Runtime.getRuntime().exec("ls -al /tmp/thereisnodir");
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
out.print((char)c);
}
%>
- ASP(Classic ASP용)
<%response.write server.createobject("wscript.shell").exec("cmd.exe /c ipconfig").stdout.readall%>
- ASP(ASP.NET용)
<%@ Page aspcompat=true %>
<%response.write (server.createobject("wscript.shell").exec("cmd.exe /c ipconfig").stdout.readall)%>
이와 같은 가짜 웹쉘 파일을 웹 경로에 유추하기 어려운 파일명으로 저장한 후 접근을 시도해 주십시오. 네이버 클라우드 플랫폼 콘솔에서 웹쉘 행위를 탐지한다면 설치 및 실행이 성공한 것을 확인할 수 있습니다.
서버 상태에 따라 cmdline은 제대로 수집되지 않을 수 있습니다.
에이전트 실행 또는 종료
웹쉘 탐지 기능 작동은 에이전트 프로세스의 상태가 아니라 에이전트 활성화 여부에 따라 결정됩니다.
웹쉘 탐지 기능을 이용하려면 에이전트 프로세스를 실행한 뒤 콘솔에서 에이전트 활성화를 진행해 주십시오. 에이전트가 활성화되면 웹쉘 탐지가 시작되어 과금이 적용됩니다.
웹쉘 탐지 기능을 이용하지 않을 때에는 에이전트를 비활성화하면 프로세스는 여전히 실행되고 있기 때문에 추후 콘솔을 통해 활성화하여 바로 이용할 수 있습니다. 당분간 사용할 계획이 없다면 프로세스를 종료할 수도 있습니다. 추후 서비스 이용 시에는 먼저 에이전트를 실행해야 합니다.
에이전트 프로세스 실행
다음 명령어를 입력해 에이전트 프로세스를 실행해 주십시오.
[ Linux용 Agent ]
# /opt/nbp/wbd/wbd_agent
[ Windows용 Agent ]
> %LOCALAPPDATA%/WBDAgent/AgentService.exe
[ Kubernetes용 Agent ]
# kubectl apply -f https://wbd.gov-ncloud.com:18088/agent/wbd_agent_ds.yaml
에이전트 프로세스 종료
다음 명령어를 입력해 에이전트 프로세스를 종료해 주십시오.
[ Linux용 Agent ]
# /opt/nbp/wbd/wbd_agent -s stop
[ Windows용 Agent ]
> %LOCALAPPDATA%/WBDAgent/AgentService.exe exit
[ Kubernetes용 Agent ]
# kubectl delete -f https://wbd.gov-ncloud.com:18088/agent/wbd_agent_ds.yaml
에이전트 삭제
다음 명령어를 입력해 에이전트를 삭제해 주십시오.
[ Linux용 Agent ]
# wget https://wbd.gov-ncloud.com:18088/agent/wbd_installer.sh -O wbd_installer.sh
# chmod a+x wbd_installer.sh
#./wbd_installer.sh uninstall
[ Windows Agent ]
C:\ > %LOCALAPPDATA%/WBDAgent/uninstall.exe
[ Kubernetes용 Agent ]
# kubectl delete -f https://wbd.gov-ncloud.com:18088/agent/wbd_agent_ds.yaml