メニューボタン
IBMi海外記事2022.01.12

IBM i のセキュリティに対するアプローチのモダナイズもお忘れなく

Alex Woodie 著

多くのIBM i ユーザーは、IBM i アプリケーションをモダナイズする必要があるという現実に直面しています。特に、固定フォーマットRPGのモノリシックなコード ブロックがベースになっているアプリケーションの場合はなおさらです。IBM i エクスペリエンスには様々な側面がありますが、その中にも、何らかの改修の余地がある面があるかもしれません。たとえば、組織がセキュリティ設定をどのように管理しているかなどに関してです。幸いなことに、IBMは、ここ何回かのIBM i のテクノロジー リフレッシュで、まさにそうしたことを行うための、数多くの新たなSQLベースのサービスを提供しています。

従来、IBM i では、セキュリティ設定を確認および変更する際、管理者は、主に2通りの方法で行ってきました。すなわち、直接、コマンドを使用して(多くの場合、CLプログラムを通じて自動化)、設定を確認および管理することができましたし、あるいは、セキュリティ設定の確認または変更のために IBM が作成したAPIを呼び出すこともできました(多くの場合、RPGまたは別のプログラミング言語を通じて)。サードパーティ ベンダーのツールを使用してIBM i サーバーのセキュリティを管理している場合は、おそらく、そのツールではそうしたAPIを使用しています。

しかし、最近、IBMは3通り目の方法を提供しています。それは、IBM i サービスと呼ばれる短いSQLプログラムであり、Access Client Solutions(ACS)インターフェースの「SQLスクリプトの実行」コンポーネントを使用して、またはNew Navigatorを通じてアクセスおよび実行することができます。

9月初めに公開されたIBM i 7.3および7.4向けの最新のテクノロジー リフレッシュ(7.3 TR11および7.4 TR5)で、IBMは、監査ジャーナルを対象とした12件を含め、14件の新たなIBM i サービスを追加しました。同様に、 4月のTR では、10件の新たなIBM i サービスが追加され、6件のIBM i サービスが機能強化されています。また、 2020年10月のTR には、新たに追加または機能強化されたサービスが30件近く含まれていました。ご承知の通りかと思います。

喜ばしいことは、IBMが長年にわたって、こうした何百ものIBM i サービスを追加してきたということです。これらによって、IBM i サーバーの様々な面の管理に参入しようとする際の障壁は低くなってきています。コマンドまたはAPIを必要とする、以前は複雑だったプロセスが、特定のニーズに合わせてユーザーが変更できるSQLを使用して実行できるようになりました。そして、良い知らせは、それらを使用するのに、SQLのエキスパートである必要がないということです。

IBM i サービスを通じて利用可能な、この新たなセキュリティ管理の方法の導入に熱心なのは、長年にわたるIBM i エキスパートであり、 DXR Security社の共同創業者で現CTO兼社長の、Carol Woodbury氏です。Woodbury氏は、先日の COMMON主催のPOWERUpカンファレンスで行われたセッションで、このSQL方式についての自身の見解を紹介しています。

Carol Woodbury氏
Carol Woodbury氏、DXR Security社の共同創業者、CTO。

「これらのインターフェースについて気に入っていることの1つは、概して、迅速に処理できるところです。CLを介して情報を取得する場合に比べて、特にそう言えます」と、そのセッションでWoodbury氏は述べています。「RPGだけでなく、様々な言語を介して情報を取得するのが容易になります。これが素晴らしいのは、20前後のサービスが、そうした他の言語に対応しているからです。また、それらにこうしたSQLビューへ書き込ませることの方がより簡単です。そのため、率直に言ってIBM i についての知識がなくても、これを利用することで、そうした情報を取得することができます。」

また、このSQLアプローチは、より適切で、より使い勝手の良いフォーマットでセキュリティ情報を提供してくれると彼女は述べています。たとえば、一部のコマンドでは、セキュリティ情報は出力ファイルに送られることになりますが、その場合、それを解析して、内容を理解できるかどうかはユーザー次第です。一方、新たなSQL方式では、照会を実行して、直接、結果が提供されます。また、新たなSQLサービスは、暗号のような10文字のフィールドだけでなく、長い名前のフィールドもサポートしています。一方、CLアプローチでは、サポートするのは10文字のフィールドのみだと彼女は述べています。

Woodbury氏は、システム管理者およびセキュリティのプロフェッショナルに、IBM i のセキュリティに対する最新のアプローチを提供する、いくつかの主要なSQLサービスについて概観するプレゼンテーションを行いました。彼女は、IBM i サーバーのセキュリティを3本脚の椅子になぞらえて説明しました。そして、その椅子を支えている3本の脚というのが、ユーザー プロファイル、オブジェクト レベルのセキュリティ、システム値ということのようです。

ユーザー プロファイル

IBMは、特殊権限の有無、グループ プロファイルのメンバーシップ、およびパスワード設定など、ユーザー プロファイルの様々な属性をSQLベースで監視および管理するための手法を数多く提供しています。

これらの処理に関しては、Woodbury氏は、数年前にQSYS2ライブラリーに追加されている、USER_INFOサービスへの移行を勧めています。このselectステートメントを実行することで、デフォルト パスワードのままであるユーザーの数や、ALLOBJなどの特殊権限を持つプロファイルの数など、数多くの詳細な情報を返すことができます。

また、User_Infoステートメントは、管理者が、たとえば、デフォルト パスワードのままになっている、ALLOBJを持つプロファイルをリスト アップするなど、ビューをフィルタリングすることを可能にします。「そのため、はるかに情況を把握しやすくなり、より情報およびリスクに基づいたやり方で、対応に当たることができるようになります」と彼女は述べています。

また、このアプローチでは、データが常に最新であるという、さらなるメリットもあります。従来のユーザー プロファイルを分析するためのアプローチでは、管理者が定期的にコマンドを実行して、出力ファイルへ結果が書き出されるようにする必要があります。しばらくそのコマンドが実行されていない場合や、夜間に実行されなかった場合、データは古いものとなっています。

SECURITY

「これらのビューの使用の素晴らしいところは、データが最新であることです。常に最新であり、直ちに最新になるということです」と彼女は述べています。「データが古いのではないかと心配する必要はないのです。」

また、Woodbury氏は、春のTRでSYSTOOLSに導入されたCHANGE_USER_PROFILE表関数についても絶賛しています。管理者は、この表関数を使用して、ユーザー プロファイルを変更することができます。たとえば、アクティブでないプロファイルを無効にするという場合に重宝します。「この表関数を使用することで、where節で指定した内容に基づいて、実際に、ユーザー プロファイルを有効のステータスから無効のステータスへ変更することができます」と彼女は述べています。この表関数の詳細については、 こちらを参照してください。

また、GROUP_PROFILE_ENTRIESビューと呼ばれる、認可ユーザー表示(DSPAUTUSR)コマンドに対するSQLでの代替手法もあります。このビューにより、管理者は、どのユーザー プロファイルが特定のグループ プロファイルと関連付けられているのか確認できるようになります。このことは、たとえば、ある職員が社内で昇進したり、異動したりした場合に重要となることがあります。

「定期的にレビューが行われていない場合は、おそらく、ユーザーは前職のグループに属したままになっている可能性が高いでしょう。本来、新たな職務ではアクセスできない情報に、現在もアクセスできたり、それ以降もアクセスし続けることができたりする状態になっているということです」とWoodbury氏は述べています。「だからこそ、グループ メンバーシップを定期的にレビューすることが必要になるわけです。」

USER_INFOサービスは、真に時間を節約してくれる手法です。「USER_INFOからどのような情報を引き出すことができるかは、ユーザー次第です。実際のところ、可能性は無限です」と彼女は述べます。ただし、情報が返されるのに、いくぶん時間が長く掛かるという場合は、IBMが春のTRで導入したUSER_INFO_BASICを試してみることをWoodbury氏は勧めています。

オブジェクト レベルのセキュリティ

オブジェクト レベルのセキュリティに取り掛かる際に使用する標準的なコマンドは、オブジェクト権限表示(DSPOBJAUT)というコマンドです。このコマンドに対するSQLベースでの新たな代替手法は、OBJECT_PRIVILEGESというビューであり、そのコマンドと同じ情報を表示します。同様に、IFS_OBJECT_PRIVILEGESは、IFSについての同様な情報を提供することができます。

このビューを使用することができるタスクに、ライブラリーの中で、名前の由来となっているユーザーによって所有されていないのはどれなのかを見つけるというタスクがあります。そのような状況である場合は、何かがおかしい兆候である可能性があります。OBJECT_PRIVILEGESビューは、管理者がそれらを追跡するのに役立てることができるとWoodbury氏は述べています。

SECURITY
IBM i のショップは、セキュリティに対するアプローチもモダナイズする必要があります。

また、権限リストは、ビューを使用してトラッキングすることもできます。たとえば、新たなAUTHORIZATION_LIST_USER_INFOおよびAUTHORIZATION_LIST_INFOビューは、権限リスト表示(DSPAUTL)コマンドと同様の情報を返すことができます。

「ビューを使用することにより、スプール ファイルまたは5250画面を眺めて、こうした情報を解読しようとする場合に比べて、はるかに簡単に、そうした情報の処理およびレビューを行えるようになります」とWoodbury氏は述べています。「ずっと簡単に情報を表示することができるので、必要に応じて、フィルタリングして、ファイルのようにして表示したり、あるいは、別の順序にソートしたりすることもできます。」

システム値

Woodbury氏は、SECURITY_INFOについて大きく取り上げています。これは、セキュリティ設定についての詳細情報を表示するためのより効果的な方法としてIBMが今年4月に導入したものです。「このビューは、実際には、機密保護属性の表示(DSPSECA)コマンドを実行した場合に取得できるデータと同じようなデータ、ないしはそうしたデータの集合を返します」と彼女は述べています。

しかし、他のどこでも表示されない、SECURITY_INFOビューでのみ確認できる値もいくつかあります。たとえば、セキュリティ レベル(QSECURITY)または最小パスワード レベルが変更されたものの、IPLが必要なためにまだ有効になっていない場合に、その情報はここで表示されるとWoodbury氏は述べています。「したがって、このビューは、次回のIPL後に行われることになる変更が実際にあるかどうかが分かる、システムにおける唯一の場所です」と彼女は述べます。

また、SECURITY_INFOには、機密保護監査の表示(DSPSECAUD)コマンドを使用して収集されていた情報も含まれているとWoodbury氏は述べています。たとえば、監査システム値が何に設定されているか、現在接続されているレシーバーは何か、およびネットワーク属性などです。

「さて、最初に導入された時点では、セキュリティ関連のシステム値のいくつかが言わば抜けていたのですが、今回の最新のテクノロジー リフレッシュで、セキュリティ関連の属性がすべて含まれるようになりました」と彼女は述べます。「SECURITY_INFOは、そうしたセキュリティ関連のシステム値および設定についての完全なリストを生成します。監査担当者はシステム値の設定をレビューしたいものです。SECURITY_INFOは、セキュリティ関連のシステム値、ネットワーク属性、および監査値などのリストを、監査担当者が利用しやすいフォーマットで取得できる方法となるでしょう。」

また、Woodbury氏は、IBMが2021年秋のTRでSYSTOOLSオファリングに追加した、監査ジャーナルに関連する新たな表ビューについても大きく取り上げています。この新たなビューは、監査ジャーナル項目タイプそれぞれに特有の表関数を提供します。たとえば、コマンド ストリングの使用(CDタイプ)、オブジェクト作成(CO)、ユーザー プロファイル変更(CP)、削除操作(DO)、環境変数(EV)、汎用レコード(GR)、システム値に対する処理(SV)、およびDb2 Mirror操作に関連するいくつかの監査ジャーナル項目タイプ(M0M6M7M8M9)などです。

「IBMは、そうした2文字のコードの監査ジャーナル項目タイプを、計11種類提供しています」とWoodburyは述べています。「IBMが行えることは、もっとたくさんあります。彼らは、次に何を行うべきかに関して情報提供を待っています。最も使用されるものを最優先したいと考えるため、この問題に関するフィードバックをScott Forstie氏に送ることをお勧めします。彼と彼のチームが次に何を提供したらよいか優先順位を付けるのに役立ててもらうためです。」

IBM i 7.3で追加された「権限収集」も、最新のSQLベースの手法を活用できる場所です。IBM i 管理者は、最新のSQLベースの手法を用いることで、ユーザーがアクセスするオブジェクト、およびそれらがどのような権限を必要とするかについて確認することができます。実際、「権限収集」はSQLの使用を前提としているとWoodbury氏は指摘しています。ユーザーは、IBMがACSで提供している用例を手本にして、状況に合うようにカスタマイズするとよいと彼女は述べます。

IBMは、IFSオブジェクトに対して必要とされる権限を判定するための同様な機能を提供しています。「これも信じられないほど便利です。何より、多くの人々にとってIFSはちょっとした謎の存在であるように思われているからです。よく分かります」とWoodbury氏は述べます。「そして、ここでもまた、あるディレクトリーにアクセスするにはどのような権限が必要なのか正確にリストします。」

Woodbury氏は、この他にも、モダンなIBM i 管理者が、そのプラットフォーム上で円滑にシステムを運用するのに役立てることができる、いくつかのSQLビューおよび関数について触れていました。注目すべき重要なこととして彼女は、これらの新ツールを使用するのに、管理者がSQLのエキスパートである必要はない、と述べています。

「お勧めしたいことは、SQLのエキスパートでなかったとしても、逃げ出ないということです」と彼女は述べます。「何も怯えることはありません。SQLのエキスパートでなくても、利用可能な、役に立つリソースがたくさんあるからです。私自身、どこからどう見ても、SQLのエキスパートではありません。私は、何か新しいことを始めるときには、必ず支援を求めるようにしています。」

こうしたことからも、最新のACSリリースに常に通じていることが大事だ、と彼女は付け加えています。

あわせて読みたい記事

PAGE TOP