Jira インスタンスの安全性が CVE-2019-11581 によって低下していないか確認する
このドキュメントではセキュリティ評価に使用できるガイダンスを記載していますが、システムが侵害されていないことは保証できません。詳細なガイダンスについては、IT セキュリティ チームにご相談いただくことを強くお勧めします。
アクセス ログの改ざん、切り替え、または削除が行われた可能性があるため、これは包括的なアプローチではありません。必要に応じて、Jira インスタンスのログをリバース プロキシやロード バランサーなどの他のソースと比較してください。
このドキュメントに記載されているコマンドライン手順は、Linux 環境用です。Windows 環境でも同等のコマンドを使用できます。
以下の例で使用されている IP アドレスは、単なる IP アドレスの例です。
以下の手順は、例として「管理者への連絡」フォームに焦点を当てていますが、同じ手順を適応して
SendBulkMail
エンドポイントも調べられます。
- 関連するエンドポイントをすべてブロックしながら軽減手順が正確にフォローされていれば、Jira インスタンスは脆弱になりません。
- インターネット経由でアクセスできなければ、Jira インスタンスは対外的に脆弱にはなりません。
- 脆弱性、Jira インスタンスで脆弱性を緩和する方法、アップグレード先のバージョンの詳細については、完全なアドバイザリーを参照してください。
フォームの送信と電子メールを追跡する
「管理者への連絡」フォームが正しく使用されている場合は、各送信をメールまで遡れます。逆に、バグを悪用してメールを作成できる可能性がありますが、メールの件名や本文 (« 2 »
) が不自然なものになります。これにより、「管理者への連絡」フォームで不審なアクティビティを特定できるようになります。
これをチェックし始めるには何を知っておく必要がありますか?
「サイト管理者への連絡」フォームは、
/<context_path>/secure/ContactAdministrators.jspa
への POST 経由で送信されます。「メールの送信」フォームは管理者のみがアクセスできて、
/<context_path>/secure/admin/SendBulkMail.jspa
への POST 経由で送信されます。Tomcat アクセス ログ バルブは server.xml でデフォルトで有効になっているため、この情報は
<JIRA_INSTALL>/logs/access_log.YYYY-MM-DD
の下のアクセス ログ内にあります。フォームが正当に使用されていれば、各送信はメールまで追跡されます。
「管理者への連絡」フォームが使用された場合は、Jira 管理者まで。
SendBulkMail エンドポイントが使用された場合は、選択されたロール/グループまで。
手順
アクセス ログ ファイル内の
/<context_path/secure/ContactAdministrators.jspa
への POST のすべてのタイムスタンプを検索します。grep '"POST /<context_path>/secure/ContactAdministrators!default.jspa' access_log.* | grep -o "\[.*\]" [12/Jun/2019:09:22:31 +0200] [10/Jul/2019:10:13:37 +0200] [10/Jul/2019:10:14:11 +0200]
Jira 管理者が受信したメールとタイムスタンプを照合確認します。
SMTP サーバー上の処理エラーとタイムスタンプを照合確認します。
SMTP サーバーで件名行ログが有効になっている場合は、上で抽出された時刻の前後に管理者に送信されたメールの件名で不審なコンテンツ (数字や複数の特殊文字を含む件名、空の件名など) がないかどうかを調べます。
メールのコンテンツに基づいて、ブロック エラーがないかどうかを SMTP ログを確認します。たとえば、Google SMTP サーバーは不審なメールをブロックして次のメッセージを表示します。
The error was: com.sun.mail.smtp.SMTPSendFailedException: 552-5.7.0This message was blocked because its content presents a potential 552-5.7.0security issue.Please visit 552-5.7.0 https://support.google.com/mail/?p=BlockedMessage to review our 552 5.7.0message content and attachment content guidelines.q7sm17997992wrx.6- gsmtp
不審なリクエストのソース IP を追跡する
Jira のアクセス ログには、リクエストのソース IP が含まれています。このデータを分析して、社内ネットワークまたは VPN の外部から発信された IP を慎重に調べられます。
手順
アクセス ログ ファイル内の
/<context_path/secure/ContactAdministrators.jspa
への POST のソース IP をすべて抽出して、テキスト ファイルに保存します。grep '"POST /<context_path>/secure/ContactAdministrators!default.jspa' access_log.* | cut -d' ' -f1 | grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -vE '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)' | sort -u 192.0.2.65 198.51.100.24 198.51.100.89 203.0.113.134 203.0.113.211
コマンドラインで正規表現検索して (
grep -vE '^(192.168|10.|172.1[6789].|172.2[0-9].|172.3[01].)'
など)、プライベート IP を除外できます。また、このコマンドを適用して、既知の企業および VPN IP アドレスを除外できます。
結果のリストで不審な IP アドレスがないかどうかを確認します。
リクエスト回数を調べる
IP あたり
同じ IP アドレスからフォームへの POST リクエストが多い場合は、不審なアクティビティである可能性があります。次のように、IP ごとにソートされたリクエスト回数を生成できます。
grep '"POST /<context_path>/secure/ContactAdministrators!default.jspa' access_log.* | cut -d' ' -f1 | grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -vE '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)' | sort | uniq -c | sort -n
1 192.0.2.65
1 198.51.100.24
1 198.51.100.89
35 203.0.113.134
1 203.0.113.211
1 分あたり
または次のように検索して、最もアクティビティが多い期間を探し出せます。
grep '"POST /<context_path>/secure/ContactAdministrators!default.jspa' access_log.* | grep -o "\[.*\]" | cut -d\[ -f2 | cut -d: -f1,2,3 | uniq -c
1 10/Jul/2019:08:30
1 10/Jul/2019:09:30
26 10/Jul/2019:10:14
1 10/Jul/2019:10:30
1 10/Jul/2019:12:10