Syhunt
  1. HOME
  2. -BLOG
  3. -Syhunt WEB UI版について

Syhunt WEB UI版について

公開日:技術ドキュメント

このドキュメントの情報は、Syhunt Hybridバージョン 7.1.6に適用されます。



はじめに


Syhunt Hybrid バージョン7.1.6以降では、Windows、Linux、Macマシンで利用できる堅牢なWebユーザーインターフェース(Web UI)が搭載されています。

対応Linux

Web UI版では、以下の機能をご利用いただけます。

  • DAST、SAST、MASTスキャンの起動
  • スキャンの結果表示(GUI、CLI、REST API、スケジューラー経由のスキャンを含む)
  • レポートの生成とエクスポート
  • ユーザー・ユーザー権限・アクティブセッションの管理
  • コンソールコマンドの実行 など

※現在、英語・ドイツ語・スペイン語・フランス語・イタリア語・日本語・韓国語・ポルトガル語の8言語に対応。

また、Web UI版では、堅牢なWebサーバーである Openresty (Nginx + Lua) 上に構築されており、パスワードハッシュに高い係数を持つBcryptを使用し、セッションIDを安全に生成し、ブルートフォースに対するログイン保護を実装しています。





1. Web UI版を有効にする手順


(★)はオプションになります。




1. コマンドプロンプトまたはターミナルを開き、Syhunt CLIの場所へ移動
(場所はOSによって異なります)

Windowsの場合
powershell Start-Process cmd -ArgumentList '/k "cd /d \"%ProgramFiles%\Syhunt Hybrid\""' -Verb runAs



2. ユーザーアカウントを設定

(1)管理者パスワードを生成・設定をするには、次のコマンドを実行する

scancore -pwdgen:admin

(2)生成されたパスワードを保存する。
(後でログインするときに必要になります)

(3)追加でアカウント設定をするには、次のコマンドを実行する。★

scancore -pwdgen:someusername

(4)Web UIで別の言語に切り替える場合は、以下のコマンドを実行する。★

scancore -langset:CODE



3. サーバーを実行する

(1)Linux または Mac の場合:
syservicereg を実行すると、Web UIサービスがインストールされます。

(2)Windows の場合:
Windowsを再起動すると、Web UIが立ち上がります。
再起動したくない場合は、管理者として以下を実行ください。

scansched -restart



4. Web UI にアクセスしログインする
http://127.0.0.1:8017/syhunt/ へログインします。
Syhunt REST APIも使用できるようになります。
ログインでは以下を使用します。

ログイン情報
・ユーザー名: admin
・パスワード: 生成されたパスワード。




2. 追加の手順と注意事項

  • LinuxまたはMacでSASTおよびMASTを実行する場合、必ずHybrid Plus拡張機能を有効にしてください。
  • Alma LinuxでWeb UIが正常に起動しない場合、以下の通りSELinuxを永続的に無効化する必要ががあります。
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config && sudo reboot
  • Windowsでは、管理者パスワードを設定すると、Hybrid Schedulerが起動するたびにWeb UIが起動します。
  • これにより、現在のユーザーがログアウトしてもWeb UIは引き続き実行されます。
  • Linuxでは、Syhunt Web UIサービスを使用することで同様の動作が利用できます。




3. パスワードポリシーについて


セキュリティ強化とコンプライアンス確保のために、Syhunt 7.1では厳格なWeb UIパスワードポリシーを導入しています。


  • パスワードの最小文字数
    (1)管理者以外のアカウント: 最低16文字
    (2)管理者アカウント: 最低26文字

  • パスワードの再利用制限
    (1)管理者アカウント: 過去24回のパスワードを再利用することはできません
    (2)管理者以外のアカウント: 過去10個のパスワードを再利用することはできません

  • パスワードの複雑さの要件
    (1)ユーザー名やフルネームの一部を含めることはできません
    (2)少なくとも以下のものを含めること
    ・大文字1文字(A~Z)
    ・小文字1文字(az)
    ・1桁の数字(0~9)
    ・1つの非アルファベット文字(例:@、#、$、%)

  • パスワードには以下を含んではいないこと
    (1)3つ以上の連続した同一文字(例:AAA)
    (2)3 つの連続する昇順または降順の文字 (例: 123、321、ABC、CBA)

これらの強化されたセキュリティ対策により、Syhunt 7.1は業界標準の準拠を維持しながら、パスワード関連の脅威に対する保護を強化しています。新しいパスワードを設定する際には、上記の要件が遵守されます。アップグレード後、ログイン時に以前に設定したパスワードにこれらのパターンのいずれかが見つかった場合は、パスワードをリセットください。


パスワード生成を簡素化するために、Syhunt 7.1 ではscancore コマンドに「-pwdgen:[username]」パラメータが追加されています。これにより、安全に生成・設定されたパスワードを出力できるようになりましたが、「-pwdset 」パラメータを使用することで、手動で入力することもできます。





4. ユーザーロールの設定について


管理者は各ユーザーに対して以下の4つのロールを設定することができます。(任意)

役割 内容    
管理者・すべてのスキャンの実行と結果の表示
・ユーザー権限の設定や編集
・コンソールコマンドの実行
(現在、管理者アカウントは1つだけとなります)
オペレーターすべてのスキャンを開始し結果を表示
制限付きオペレータースキャンはできますが、自分が開始したスキャンの結果のみが見れます
閲覧者すべてのスキャンの結果を見れますが、スキャン自体をかけることはできません




5. Web UIの公開について


Syhunt Web UIサーバーについては、事前に設定済みでSyhuntのアップグレードごとに更新がされるため、設定変更は推奨しておりません。

Web UIをインターネットまたはイントラネットに公開する場合には、SSLを有効にしたリバースNginxプロキシを設定することをお勧めします。使用する「certificate.crt」と「private.key」を生成する必要があります。(以下の手順は、既に証明書が用意されていることが前提となります)



  • Windowsの場合:

(1)「Windows用 Nginx」をダウンロード: http://nginx.org/en/download.html
(2)以下「Nginx nginx.conf」の設定変更を適用します。




  • Linuxの場合:

(1)Nginx をインストールする。

Ubuntuの場合
sudo apt install nginx
CentOS 7の場合
sudo yum install nginx 
CentOS 8の場合
sudo dnf install nginx  



(2)Nginx設定ファイルを編集

sudo nano /etc/nginx/nginx.conf  

 ・次の行をコメント化します

include /etc/nginx/conf.d/*.conf;およびinclude /etc/nginx/sites-enabled/*;  

 ・http セクションに以下を含めてください。

server { 
listen 80;
server_name _;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name _;

ssl_certificate /etc/ssl/certificate.crt;
ssl_certificate_key /etc/ssl/certificate.key;

location / {
return 301 https://$host/syhunt/;
}

location /syhunt/ {
proxy_pass http://127.0.0.1:8017;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}


(3)変更を保存したら、以下の通り新しい設定をテストをする

nginx -t


(4)ローカルからポート8017へのトラフィックと、ポート443への着信トラフィックを許可

【Ubuntuの場合】
・sudo ufw allow from 127.0.0.1 to any port 8017
・sudo ufw allow 443


【CentOS の場合】
sudo firewall-cmd --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port port=8017 protocol=tcp accept'
sudo firewall-cmd --reload



(4)以下でNginxサーバーを再起動する
systemctl restart nginx





6. ヒント


MacOSについて
スキャン スケジューラ画面に表示される時刻がオペレーティングシステムの時刻と一致しない場合は、以下のコマンドを実行し修正ください。

sudo /usr/sbin/systemsetup -settimezone "Europe/Lisbon"

(Europe/Lisbon を自分のゾーンに置き換えてください)





7. その他制限事項


  • LinuxまたはMacでは、Web UIで起動したコードスキャンは、公開GITリポジトリのみを対象とします。
  • プライベートリポジトリを対象にする場合には、リポジトリの認証情報またはSSHキーを設定した後、scancode CLIコマンドを使ってスキャンを行います。
  • LinuxまたはMacマシンでは、GIT以外のAzure(TFS)リポジトリへの直接接続はサポートされていません。