メインフレームは、多くの業界においてITインフラストラクチャーの極めて重要なコンポーネントであり、高い信頼性と多数のセキュリティー・メカニズムで大量のトランザクション処理を実現しています。銀行、航空会社、ホテル、保険会社はすべて、銀行振替、クレジットカードによる購入、予約の作成、保険請求の処理に関連するトランザクションの処理にメインフレームを使用しています。
他のコンピューター・システムと同様に、高度なセキュリティー機能を備えていても、メインフレームの構成ミスが発生する可能性があります。これらのマシンが処理する情報の重要性から、メインフレームのセキュリティーはペネトレーション・テスト担当者が定期的かつ慎重に評価することが不可欠です。各メインフレームは特定のユースケースに合わせて特別に調整されているため、ペネトレーション・テスト担当者が評価対象の環境を理解するのに時間がかかる場合があります。最初の偵察フェーズが終わると、テスト担当者はメインフレーム上で実行されているソフトウェアとアプリケーションの脆弱性や構成ミスを探します。
メインフレーム用のペネトレーション・テスト・ツールはいくつかありますが、これらはスタンドアロン・スクリプトであり、多機能ツールの一部ではありません。テスト担当者は、どのスクリプトを実行するのに適切か、そして環境で最もよく機能するスクリプトを見つける場所を判断することに時間を費やす必要があります。このギャップに対処するため、IBM X-Force RedのインターンであったElizabeth Christensenと私は、z/OSオペレーティング・システムを実行するIBMメインフレーム用の自動脆弱性スキャナーであるm-RAYを開発しました。これは、ペネトレーション・テスト担当者が初期段階でよくある構成ミスや脆弱性を特定するのを支援することを目的としています。このツールを使用することで、テスト担当者は、手動でコマンドを実行し、偵察を行う時間を削減し、潜在的な攻撃経路やピボット・ポイントについて追跡調査し、攻撃者より先に問題を特定する時間を増やすことができます。
m-Rayは、さまざまなサービスの構成の脆弱性をチェックし、z/OS環境でのスクリプトの実行プロセスを簡素化する、容易に拡張できるフレームワークとして設計されました。メインフレームはカスタマイズできる性質があるため、足すと担当者は、作業している環境に最適になるように使用したい機能を構成できます。
チェックすべき誤構成リストは、z/OS RACFセキュリティー技術実装ガイド(STIG)からまとめられました。STIGは、国防総省がシステムを保護するために使用する構成要件であり、NISTからの推奨事項に基づいています。企業がこれらの要件に準拠する必要があるかどうかにかかわらず、STIGはさまざまなソフトウェア製品の業界のベスト・プラクティスの情報源となり、このセキュリティー・ツールの基礎を形成します。チームは、テスト担当者にとって最大の価値を提供し、お客様が認識しておくべき最も重要な上位 25 の構成ミスを特定し、それらを脆弱性チェックとして実装しました。
たとえば、m-RAYは、ユーザーの権限レベルがUnixおよびTSO環境で一致しているかどうか、SSHが安全な暗号アルゴリズムを使用するように構成されているかどうか、非アクティブなアカウントが自動的に取り消されるかどうかをチェックします。現在、m-RAYは、Unix System Services環境およびz/OS上のユーザー・アクセス制御を処理するセキュリティー・ソフトウェアであるRACFにおけるメインフレームの構成ミスに関する情報を提供しています。特定の構成ミスがシステムに存在するかどうかについて決定的な答えを提供するものもあれば、特定のリソースにアクセスできるユーザー・アカウントのリストなどのシステム情報を提供するものもあります。その後、ペネトレーション・テスト担当者はお客様と協力して、アクセスが適切に制限されているかどうかを判断できます。
m-RAYのもう一つの目標は、システム構成のチェックに加えて、既存のメインフレームの機能を統合することです。これらの列挙ツールは多くの場合、メインフレーム・スクリプト言語であるREXXで作成されています。ペネトレーション・テスト中にこれらのスクリプトの1つを使用するには、テスト担当者はオープンソース・ツールを見つけてコンピューターにダウンロードし、そこからメインフレームにアップロードして実行し、結果を解釈する必要があります。この手順を簡素化するために、m-RAYには最も人気のある2つのオープンソースREXXスクリプトが含まれており、スクリプトのアップロードと実行のプロセス、およびその後の環境のクリーンアップを自動化します。テスト担当者は、独自のカスタムREXXスクリプトをツールに追加することもできます。
全体として、m-Rayを使用することで、ペネトレーション・テスト担当者は、他の方法では手動で実行しなければならない脆弱性チェックの多くを自動化することができ、システムの最初の概要を取得するのに費やす時間を短縮できます。
最新のメインフレームと連携する方法は複数あります。従来の方法はTSOであり、ユーザーはこれを使用して対話型セッションに接続し、コマンドを発行できます。これには通常、IBM 3270 プロトコル上で動作する専用の端末エミュレーターの使用が伴います。最新のメインフレームのほとんどは、すべてのプラットフォームで動作できるリモート接続プロトコルであるSSHも実行しています。これにより、TSOコマンドとUNIXコマンドの両方を実行し、スクリプトの一部としてアクションを自動化できるようになります。m-RAYはメインフレームへのSSH接続を介して動作し、SSHが提供する追加機能を活用し、プラットフォーム固有の依存関係を回避します。
メインフレーム上のSSHは、Unixシステム用に作成されたプログラムを実行できるようにするz/OSの機能、Unix System Servicesを使用します。このプロトコルを使用して、m-RAYはメインフレームへの接続を設定し、コマンドを実行して情報を収集し、構成ミス・チェックを実行します。SCPはREXXスクリプトをメインフレームに安全にコピーするために使われます。認証は、パスワードまたはキー・ペアを介して実行でき、さまざまなシステム構成に対応できます。
メイン・アプリケーションは、コマンドライン・ユーザー・インターフェースを提供し、接続を設定し、脆弱性のチェックを開始します。ペネトレーション・テストはメインフレームのIPアドレスを入力し、チェックする構成ミスのタイプを選択し、一連の低レベルの認証情報を入力します。次に、m-RAYとメインフレーム間の接続が開始され、コマンドを送信してシステムから結果を受信できるようになります。
脆弱性チェックは、Unix Systems Servicesチェック、TSOによるチェック、一般偵察の3つのカテゴリーに分類されます。これらのカテゴリーのいずれかを選択すると、テスト担当者には、すべてのチェックを実行するか、どのチェックを実行するかを構成する選択肢があります。スキャンの成果を収集した後、m-RAYは発見事項の報告書と、侵入テスト担当者が作業を進める上で方向性を示すことができるシステム情報を作成します。REXX スクリプトの実行も同様に機能します。テスト担当者は、スクリプト・オプションを選択した後、どのスクリプトを実行するかを選択できます。
このアプリケーション設計の最も重要な部分はそのモジュール性です。セキュリティーのベスト・プラクティスは時間の経過とともに進化していくため、新たな構成ミスのチェックを追加したり、既存の構成ミスを変更したりすることが必要になります。含まれているテンプレートを変更するだけで新しいチェックとスクリプトを追加でき、関連情報を収集するためにどのコマンドを実行する必要があるかを知るだけで済みます。ペネトレーション・テスト担当者がTSOコマンドの実行に関わる新しいチェックを追加する場合、メインフレームへの接続の設定方法を知る必要はなく、TSOコマンドと、オプションでコマンドの望ましい結果を知るだけで済みます。新しいチェックを追加するのにかかる時間は10分以内です。新しい接続プロトコルを追加することもできます。m-RAYは、現在の機能に最適だったため、SSHを使用しましたが、別の接続プロトコルの追加も、標準インターフェースを実装する接続クラスによって簡素化されます。
m-RAY は、こちらで入手できるオープンソース・ツールです。
このプロジェクトで期待されているのは、現在実装されている25の構成ミスと脆弱性のチェックに加えて、新しい構成ミスと脆弱性のチェックが拡張されることです。現在の選択は、ペネトレーション・テスト担当者と、ペネトレーション・テストの実施対象となるシステムのお客様の両方に、最大の価値を提供するようにキュレートされています。これを既存のオープンソース・ツールの機能と組み合わせることで、利用可能な最も包括的なメインフレーム・ペネトレーション・テストツールが実現します。