z/OSに対するセキュリティシステム監査(EXIT)

EXITとは何か

EXITとは、出口ルーチンと呼ばれるz/OS特有のカスタマイズ方法です。RACFにも多数の出口ルーチンが用意されており、EXITを使用することでRACF機能を拡張したりRACFのユーザービリティを最適化することが出来ます。例えば、EXITを使用すると次のような機能を実装することが出来ます。

  1. RACFが提供していない特別なパスワード構文ルールを適用する。

  2. データセットへのアクセスに独自ルールを追加する

  3. パスワードの暗号化(ハッシュ化)に独自手法を導入する。

  4. TopSecretからRACFへ移行する場合にTopSecret側と同等の機能をRACF側に実装する。

下図のイメージは厳密性にはかけますが、z/OSやRACFが処理した後(あるいは前)に呼び出されて追加のルールを適用することが可能となり、マニュアル等には記載のない挙動をさせることが出来ます。また、RACF側のパラメーターが設定されていてもオーバライドされる場合があることからEXIT側の仕様を確認しなければ本当のセキュリティ設定を把握することが出来ません。
(z/OSやRACFが処理して出た後に追加で対応することから”出口ルーチン(EXIT)”と呼ばれています。)

上記では結果が上書きされていますが、パスワード構文ルールの判定のようにRACFとEXITの両方で判定する場合もあります。

導入されているEXIT確認方法

DSMONの「RACF 出口ルーチン報告書」にてRACF関連で導入されているEXITを確認することが出来ます。RACF側の設定値のみで監査を行った場合に、EXITが導入されていると正しく評価出来ない可能性があります。そのため、監査の初期段階で導入されているEXIT導入状況を把握し、被監査部門に対してEXITの仕様書の提出を依頼する必要があります。

EXITのもたらす問題

EXITは原則としてIBM以外が作成して使用しており、IBM側でのz/OSおよびRACFバージョンアップ時には考慮されません。過去にRACFにはない機能をEXITを使用して実装しておりRACFバージョンアップにて該当機能が網羅された場合でもEXITがあるために正規の機能が使用出来ない、あるいはRACF機能を新規に適用する場合にEXITが干渉してRACFの正規機能を適用できないなどの諸問題を発生させています。

また、それだけではなくEXITはアセンブラ等の特殊な言語を使用して作成されていますが、アセンブラ等に造詣の深い技術者が高齢化して少なくっています。また場合によっては、EXITの制作者がすでに引退(場合によって他界している)などして知見が消滅している場合があります。このようにEXITとは、z/OSのカスタマイズ柔軟性を高める一方でレガシーたらしめている原因の1つです。
(EXITの仕様書をお願いすると手書きの仕様書が出てくる場合がたまにあります)

監査のポイント

RACFのEXITに関する仕様書は作成されていますか。また、必要に応じて更新されていますか。

この記事が気に入ったらサポートをしてみませんか?