Webshell Behavior Detector エージェントインストールと実行

Prev Next

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.ncloud.com:18088/agent/wbd_installer.sh -O wbd_installer.sh
# chmod a+x wbd_installer.sh
# ./wbd_installer.sh

エージェントが正常にインストールされると、以下のようなメッセージが表示されます。
security-17-184_ko

参考
  • インストールの過程や結果が上記と異なる場合は、インストールスクリプト(wbd_installer.sh)を再実行してください。
  • インストールの過程でエラーが発生すると、トラブルシューティング > エラーメッセージをご参照ください。

2.2 (Host)Windows環境の場合

Powershellで以下のコマンドを入力してエージェントをインストールします。

PS > Invoke-WebRequest -Uri "https://wbd.ncloud.com:18088/agent/windows/x64/WBDAgent-setup.exe" -OutFile "WBDAgent-setup.exe"
PS > ./WBDAgent-setup.exe

エージェントが正常にインストールされると、以下のようなウィンドウが表示されます。
image.png

参考
  • インストールの過程や結果が上記と異なる場合は、インストールファイル(WBDAgent-setup.exe)を再実行してください。
  • インストールの過程でエラーが発生すると、トラブルシューティング > エラーメッセージをご参照ください。

2.3 Kubernetes環境の場合

kubectlを使って以下のコマンドを入力してエージェントをインストールします。

kubectl apply -f https://wbd.ncloud.com:18088/agent/wbd_agent_ds.yaml --kubeconfig kubeconfig.yaml

エージェントが正常にインストールされると、以下のようなメッセージが表示されます。
image.png

参考
  • インストールの過程や結果が上記と異なる場合は、kubectlを使って YAML設定ファイル(wbd agent ds.yaml)を再実行してください。
  • インストールの過程でエラーが発生すると、トラブルシューティング > エラーメッセージをご参照ください。

3. エージェント実行確認

3.1 (Host)Linux環境の場合

以下のコマンドを入力して、エージェントが正常にインストールされて実行中であるかを確認します。

# ps -ef | grep wbd

エージェントが正常に実行中の場合は以下のようなメッセージが表示されます。
security-17-185_ko

3.2 (Host)Windows環境の場合

Powershellで以下のコマンドを入力して、エージェントが正常にインストールされて実行中であるかを確認します。

PS > Get-Process -Name "AgentService"

エージェントが正常に実行中の場合は以下のようなメッセージが表示されます。
image.png

3.3 Kubernetes環境の場合

以下のコマンドを入力して、エージェントが正常にインストールされて実行中であるかを確認します。

# kubectl get pods --all-namespaces --kubeconfig kubeconfig.yaml | grep "wbd-daemon"

エージェントが正常に実行中の場合は以下のようなメッセージが表示されます。
image.png

もしくは NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Security > Webshell Behavior Detector > Detection Setting > Configuration メニューを順にクリックした後、検知対象リストでエージェントのステータスが有効化 に表示されているかを確認します。
wbd-wbdsetting-config-vpc-ko

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)%>

このような偽のウェブシェルファイルを、ウェブパスに推測しにくい複雑なファイル名で保存した後にアクセスしてください。NAVERクラウドプラットフォームコンソールでウェブシェル行為が検知されたら、インストールと実行が成功したことが確認できます。
wbd-wbdstart-test-vpc-ko

参考

サーバのステータスによって cmdlineは正常に収集されないことがあります。

エージェントの実行と終了

ウェブシェル検知機能の動作は、エージェントプロセスのステータスではなく、エージェントが有効化しているかどうかによって決まります。

ウェブシェル検知機能を使うには、エージェントプロセスを実行してからコンソールでエージェントを有効にしてください。エージェントが有効化するとウェブシェル検知が始まり、料金が発生します。

ウェブシェル検知機能を利用しない場合、エージェントを無効化してもプロセスは依然として実行されているため、後でコンソールで有効化してすぐに利用できます。しばらく使用する計画がない場合、プロセスを終了することもできます。後でサービスを利用する場合は先にエージェントを実行します。

エージェントプロセス実行

以下のコマンドを入力してエージェントプロセスを実行します。

[ Linux用 Agent ]
# /opt/nbp/wbd/wbd_agent

[ Windows用 Agent ]
> %LOCALAPPDATA%/WBDAgent/AgentService.exe

[ Kubernetes用 Agent ]
# kubectl apply -f https://wbd.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.ncloud.com:18088/agent/wbd_agent_ds.yaml

エージェント削除

次のコマンドを入力して、エージェントを削除します。

[ Linux用 Agent ]
# wget https://wbd.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.ncloud.com:18088/agent/wbd_agent_ds.yaml