セキュリティログ¶
セキュリティログには、認証・認可の結果などのセキュリティに関連する情報が出力されます。このログとリクエストログを合わせて解析することにより、不正アクセスを見つけ出すための情報を得ることも可能です。
モジュール コアモジュール 設定場所 %CONTEXT_PATH%/WEB-INF/conf/log/im_logger_security.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 <included> <!-- - SECURITY_LOG --> <appender name="SECURITY_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${im.log}/platform/security.log</file> <append>true</append> <!-- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern> ${im.log}/platform/security-%d{yyyy-MM-dd}.log </fileNamePattern> </rollingPolicy> --> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${im.log}/platform/security%i.log</fileNamePattern> <minIndex>1</minIndex> <maxIndex>5</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>10MB</maxFileSize> </triggeringPolicy> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="jp.co.intra_mart.common.platform.log.layout.OutputStackTracePatternLayout"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %X{log.report.sequence} %-5level %logger{255} %X{tenant.id} %X{log.id} - %X{security.id.session} %X{security.id.account} %X{security.id.usertype} [%X{log.message.code}] %msg %X{request.id}%nopex%n</pattern> <enableOutputStackTrace>true</enableOutputStackTrace> <stackTraceDir>${im.log}/platform/exception/</stackTraceDir> <stackTraceFilename>'exception_'yyyy-MM-dd_HH-mm-ss'_%logId.log'</stackTraceFilename> </layout> </encoder> </appender> <logger name="SECURITY_LOG" additivity="false"> <level value="warn" /> <appender-ref ref="STDOUT" /> <appender-ref ref="SECURITY_FILE" /> </logger> </included>
ログレベルごとの出力内容¶
ログレベルごとのセキュリティログの出力内容を紹介します。
WARNレベル¶
このログレベルのセキュリティログが短時間で連続して出力されている場合、サーバに対して何らかの攻撃が行われている可能性があります。WARNレベルにて出力される内容は以下の通りです。
ケース メッセージ例 認証に失敗した場合 ログインに失敗しました。ログインパスワードが間違っています。 認証確認に失敗した場合 認証確認に失敗しました。 権限の無いページへのアクセスした場合 アクセスする権限がありません。 SecureToken機能にてセキュアトークンが不正である場合 セキュアトークンが不正です。 アプリケーションライセンスを保持していない利用者がライセンスが必要な機能にアクセスした場合 アプリケーション「(プロダクトID)」のライセンスが設定されていないため、アクセスできません。 2段階認証の検証に失敗した場合 2段階認証に失敗しました。 管理者がユーザの2段階認証を必須にしており、ユーザのログインと同時に行う2段階認証設定の有効化に失敗した場合 2段階認証の設定に失敗しました。 管理者がユーザの2段階認証を必須にしており、ユーザのログインと同時に行う2段階認証設定の有効化のための確認コードの検証に失敗した場合 多要素認証の設定に失敗しました。
INFOレベル¶
INFOレベルにて出力される内容は以下の通りです。
ケース メッセージ例 認証に成功した場合 ログインに成功しました。 認証確認に成功した場合 認証確認に成功しました。
DEBUGレベル¶
DEBUGレベルにて出力される内容は以下の通りです。
ケース メッセージ例 ページへのアクセスに成功(権限があるページにアクセス)した場合 アクセスに成功しました。 SecureToken機能にてセキュアトークンのチェックに問題が無い場合 セキュアトークンのチェックに成功しました。 アプリケーションライセンスを保持している利用者がライセンスが必要な機能にアクセスした場合 アプリケーション「(プロダクトID)」のライセンスチェックに成功しました。 2段階認証設定が行われているユーザに2段階認証を要求した場合 ユーザに2段階認証を要求します。 管理者がユーザの2段階認証を必須にしており、ユーザのログインと同時に行う2段階認証設定を要求した場合 ユーザに2段階認証の設定を要求します。
標準出力設定¶
ログレベル(初期値) WARN 出力先(初期値) コンソールファイル - ${im.log}/platform/security.log
出力パターン¶
利用可能なパターン文字列¶
利用可能なMDCキー¶
セキュリティログで利用可能なMDCのキーは以下の通りです。MDCについては「MDC」を参照してください。
MDCキー 設定有無(初期値) 説明 log.thread.group × スレッドグループ log.report.sequence ○ ログ出力順序番号 log.id ○ ログ ID security.id.session ○ セッション ID security.id.account ○ セキュリティに関する操作を行ったユーザコード例として、ログイン画面でユーザコードに login_user と入力し、ログインに失敗した場合は、 login_user が取得されます。security.id.usertype ○ セキュリティに関する操作を行った際の、操作に関わるユーザ種別administrator : システム管理者platform : ジョブなどのバックグラウンドuser : 一般ユーザ例として、システム管理者のログインに失敗した場合は、administrator が取得されます。log.message.code ○ ログメッセージコード request.id ○ リクエスト ID tenant.id ○ ログ出力時のアカウントコンテキストのテナント IDintra-mart Accel Platform 2014 Spring(Granada) 以降で利用可能です。security.id.authtype ○ ログインや認証確認等の認証操作を行った際の認証方式intra-mart Accel Platform 2023 Autumn(Hollyhock) 以降で利用可能です。admin_login : システム管理者のログインadmin_login_confirm : システム管理者の認証確認login : 一般ユーザのログインlogin_confirm : 一般ユーザの認証確認shortcut_force_login : ショートカットアクセス時の強制ログインpassword_changing_force_login : 期限切れによるパスワード更新時の強制ログインbasic : BASIC 認証によるログインoauth : OAuth 認証によるログインapi_key : API キー認証によるログインim_saml : SAML 認証によるログインwindows : 統合 Windows 認証によるログインim_sso : IM-SecureSignOn(VANADIS SecureJoin)認証によるログインws_auth : Web サービス・プロバイダの認証によるログインimaca : 外部ソフトウェア接続モジュールによる外部ソフトウェア連携時のログインimaca_force_login : 外部ソフトウェア接続モジュールによる外部ソフトウェア連携(ユーザコードのみ指定した連携)時の強制ログインslack_action : Slack 連携(Slack Action)実行時のログインコラム
アカウントコンテキストの詳細については、「アカウントコンテキストのJavaDoc」を参照してください。