序章


Artilleryは、ハニーポット機能、OS強化、ファイルシステム監視、リアルタイムの脅威分析など、Linuxベースのシステム向けの多目的防御ツールです。 単独でシステムにかなりのセキュリティを提供しますが、多層セキュリティスキームの一部として使用することを目的としており、ModSecurityなどのWebアプリケーションファイアウォールとうまく連携します。

Artilleryの最も便利な機能のいくつかは、ハニーポット、ファイルシステムの監視、およびリアルタイムの脅威分析の側面であるため、この記事では主にそれらに焦点を当てます。 ハニーポットは、SSH、MSSQL、RPC / SMBなど、最も一般的に攻撃されるポートのいくつかを使用して、ポートおよび脆弱性スキャナーに応答するように設計されています。 これにより、実際には、攻撃者にとってLinuxサーバーがWindowsベースのサーバーであるように見えます。

ファイルシステムの監視は、通常ターゲットとなるディレクトリの変更(/ tmp、/ var / www)を積極的に監視し、攻撃者にとって非常に重要なファイル(/ etc / passwd、/ etc / shadow /、〜/ .ssh / authorized_keys)を監視することで機能します。 )。 Artilleryは、デフォルトでこれらの最も一般的なファイルとディレクトリを監視するように構成されていますが、監視が必要と思われるファイルやディレクトリをユーザーが簡単に含めることができます。

Artilleryを他の多くの防御ツールと区別するさらに興味深い機能の1つは、IPアドレスと既知の攻撃者に関する情報を中央フィードに集約する「ArtilleryThreat Intelligence Feed」です。これは、Artilleryを実行している任意のマシンで検出および既知の攻撃者をサーバーからリアルタイムで禁止します。

砲兵のダウンロードとインストール


Artilleryをダウンロードするには、サーバーにgitがインストールされている必要があります。 現在インストールされていない場合は、ディストリビューションパッケージマネージャーを使用してインストールする必要があります。 次のコマンドでうまくいくはずです。

apt-get update && apt-get install git 

gitのインストールが完了すると、Artilleryパッケージのクローンを作成する準備が整います。

git clone https://github.com/trustedsec/artillery/ artillery/

これで、Artilleryディレクトリに移動して、インストーラーを起動できます。

cd /artillery
./setup.py

インストール中に、y/nの回答を必要とする3つのプロンプトが表示されます。 先に進み、それぞれに「はい」と答えます。 インストールの最後に、/ var / artillery / database/temp.databaseが存在しないというエラーが発生する場合があることに注意してください。 このエラーが発生した場合は、次のコマンドで問題を解決できます。

mkdir /var/artillery/database
touch /var/artillery/database/temp.database
service artillery restart

砲兵の構成


これで、砲兵が機能的にインストールされました。 箱から出して、Artilleryは一般的なLinuxインストール用に事前構成されていますが、個々のVPSのニーズに合わせて構成をカスタマイズすることを強くお勧めします。 ここで、構成ファイルの編集について説明します。

nanoで設定ファイルを開きます。

nano /var/artillery/config

次の行を変更すると、カスタムディレクトリのファイルシステム監視が有効になります。

MONITOR_FOLDERS=”/var/www”,”/etc” 

「/etc」の後に監視したいディレクトリを追加するだけです。 たとえば、/ rootを監視する場合は、「/root」を追加します。 最終結果は次のようになります。

MONITOR_FOLDERS=”/var/www”,”/etc”,”/root”

EXCLUDEエントリを使用すると、監視すべきではないフォルダまたはファイルを指定できます。 たとえば、/ etc / passwdを監視したくない場合は、次のようにエントリを変更します。

EXCLUDE=/etc/passwd

必要に応じて、IPアドレスをホワイトリストに登録することもできます。 これは、仮想サーバーにアクセスするチームの一員であり、正しいSSHパスワードを4回入力しなかったためにだれも禁止されたくない場合に役立ちます。 ドロップレットに対して自動ポートスキャナーまたは脆弱性スキャナーを実行する予定がある場合は、少なくとも自分のIPアドレスをホワイトリストに登録することをお勧めします。そうすると、禁止が発生し、接続できなくなります。 デフォルトでは、ループバックアドレスはホワイトリストに登録されています。IPを追加するには、カンマを入力してから、次のようにIPを入力します。

WHITELIST_IP=127.0.0.1,localhost,xxx.xxx.xxx.xxx <-Replace the x's with your IP address.

さらに、ハニーポットが開いていると報告するポートを指定できます。 前述のように、ハニーポットはデフォルトで最も一般的に攻撃されるポートでハニーポットを生成するように構成されていますが、必要に応じて、コンマ区切りのエントリを追加することでポートを追加できます。 ポート1024および139を追加するには、次の行を変更します。

PORTS="135,445,22,1433,3389,8080,21,5900,25,53,110,1723,1337,10000,5800,44443"

PORTS="135,445,22,1433,3389,8080,21,5900,25,53,110,1723,1337,10000,5800,44443,1024"

auto_updateの値をonに変更して、自動更新を有効にすることをお勧めします。

AUTO_UPDATE=ON

デフォルトでは、砲兵はポート80(http)および443(https)に対するDoS(サービス拒否)攻撃を軽減しようとするように構成されています。 ドロップレットが他のポート(8080,8180,10000)でWebサービスを実行している場合は、コンマ区切りでポートを追加することにより、それらのポートでもDoS保護を有効にできます。

ANTI_DOS_PORTS=80,443,8080,8180,10000

DoS保護を無効にする場合は、ANTI_DOSの値をオフに変更するだけです。

ANTI_DOS=ON

砲兵のメンテナンス


砲兵は、インストール後にサービスとして実行されるように設計されています。 インストール中に砲兵は自動的に起動するため、サーバーを再起動する必要はありません。

砲兵は液滴が再起動するたびに起動し、バックグラウンドで一定の保護を提供します。

Apacheと同様に、Artilleryは、次のコマンドを実行することにより、サービスとして開始および再起動できます。

service artillery start   # <-Starts the service.
service artillery restart # <-Restarts the service.

次のように、psauxとtopを使用して砲兵の現在のシステムリソース使用量を確認することもできます。

プロセスID砲兵がとして実行されていることに注意してください。

ps aux | grep artillery

PIDを砲兵のプロセスIDに置き換えます。

top -p PID 

ユーザーが正しいSSHパスワードを4回続けて入力しなかった場合、ユーザーは禁止され、サーバーに接続できなくなることに注意することが重要です。 これが発生し、許可されたユーザーが禁止された場合、砲兵は禁止をリセットするためのスクリプトを含みます。 スクリプトの使用法は次のとおりです。

砲兵ディレクトリに移動します

cd /var/artillery 

xを禁止されたユーザーのIPに置き換えます。

./reset-bans.py xxx.xxx.xxx.xxx 

これで、必要に応じて砲兵の実用的なインストールが構成されているはずです。 砲兵はシステムリソースが少ないので、それに対応するためにドロップレットのCPU/メモリをアップグレードする必要はありません。 また、簡潔にするために、構成ファイルのすべてのエントリを網羅しているわけではないことにも注意してください。 代わりに、最も一般的で重要なエントリについて説明しました。 自由に実験して、どの構成オプションが最適かを確認してください。

投稿者: https ://twitter.com/Su1ph3r