A.7. strace の変更点
Red Hat Developer Toolset 11.0 には strace 5.13 が同梱されています。
以下の機能は、Red Hat Developer Toolset の以前のリリース以降に追加または変更されています。
動作の変更
変更した
%processクラスには、プロセスのライフサイクル(作成、実行、および終了)に関連するシステムコールが含まれます。-
新しい呼び出し:
kill、tkill、tgkill、pidfd_send_signal、およびrt_sigqueueinfo -
廃止された呼び出し:
arch_prctlおよびunshare
-
新しい呼び出し:
改良
-
新しい
-n(--syscall-number)オプションは、システムコール番号を出力します。 -
新しい
--secontext[=full]オプションは SELinux コンテキストを表示します。 -
ポク挿入インジェクションが実装され、2 つの新規オプションが追加されました(
--inject=SET:poke_enter=および--inject=SET:poke_exit=)。 - IBM POWER アーキテクチャーでは、System Call Vectored(SCV)ABI のサポートが追加されました。
-
libdw- ベースのスタックトレースは、ネイティブでないパーソナリティーに対して有効になります。 - netlink データは、より構造化された方法で出力されます。
-
以下のシステムコールのデコードは、
close_range,epoll_pwait2,faccessat2,landlock_add_rule,landlock_create_ruleset,landlock_restrict_self,mount_setattr, andprocess_madvise. -
io_uring_setup、membarrier、perf_event_open、およびpidfd_openのシステムコールのデコードが強化されました。 -
GPIO_*およびTEE_*ioctlコマンドを実装します。 -
以下の
ioctlコマンドのデコードが実装されています。 fs_IOC_FS[gs]etXATTR, fs_IOC_[gs]etFLAGS, fs_IOC32_[gs]etFLAGS, lOOP_CONFIGURE, siOCADDMULTI, siOCDELMULTI, sIOCGIFENCAP,SIOCOUTQNSD、SIOCSIFENCAP、SIOCSIFHWBROADCAST、UBI_IOCRPEB および UBI_IOCSPEB、V4L2_BUF_TYPE_META_CAPTURE、V4L2_BUF_TYPE_META_OUTPUT、 およびVIDIOC_QUERY_EXT_CTRL。 -
NT_PRSTATUSおよびNT_FPREGSETregsets のPTRACE_GETREGSETおよびPTRACE_SETREGSETptraceリクエストのデコードが実装されています。 -
Ptrace 要求の
regs引数のデコードが実装されています。PTRACE_GETREGS64、PTRACE_GETREGS64、PTRACE_SETREGS64、PTRACE_SETREGS64、PTRACE_SETREGS64、PTRACE_SETFPREGS、およびPTRACE_SETFPREGS。 -
IPC_INFOおよびMSG_INFOmsgctlシステムコールのstruct msginfo引数のデコードが実装されています。 -
MSG_STAT および
引数が実装されています。MSG_STAT_ANYmsgctlシステムコールコマンドのstruct msqid_ds -
IPC_INFOおよびSEM_INFOsemctlのシステムコールのstruct seminfo引数が実装されています。 -
IPC_SET、IPC_STAT、SEM_STAT、および SEM_STAT のstruct semid_ds引数、およびSEM_STAT_ANYsemctl のシステムコールコマンドを実装します。 -
IPC_INFOshmctlシステムコールコマンドのstruct shminfo引数の記述が実装されています。 -
SHM_INFOshmctlシステムコールコマンドのstruct shm_info引数の記述が実装されています。 -
SHM_STAT および
引数が実装されています。SHM_STAT_ANYshmctlシステムコールコマンドのstruct shmid_ds -
IFLA_BRPORT_*netlink 属性を Linux 5.12 カーネルに一致するように更新。 -
以下の定数のリストが更新されます。
*_magic ,aLG_*, audit_*, bpf_*, btRFS_*, cap_*, close_RANGE_*, devCONF_*, eth_*,fAN_*,ifLA_*,iNET_DIAG_*,iORING_*,ipv6_*,ip_*,kEXEC_*,keyCTL_*,key_*,kvm_*,lOOP_*,mdbA_*,memBARRIER_CMD_*,mPOL_*,ms_*,mtD_*, nda_*,nFT_MSG_*,nlMSGERR_*,nt_*,Pr_*,ptp_PEROUT_*,pTRACE_*,resolve_*,rtAX_*,rtA_*,rtc_*,rtM_*,rtNH_*,rtPROT_*,sctp_*,seGV_*,so_*,statX_*,st_*,sys_*,tCA_*,trAP_*,ufFDIO_*,UFFD_*およびV4L2_*。 -
ioctlコマンドの一覧は、Linux 5.13 カーネル更新のこのようなリストに一致するように更新されます。 RHEA-2022:4635 アドバイザリーがリリースされると、strace が実際の SELinux コンテキストと、SELinux コンテキストデータベースから抽出した定義が一致しなくなるようになりました。
strace の既存の
--secontextオプションが、mismatchパラメーターで拡張されました。このパラメーターを使用すると、不一致の場合にのみ、実際のコンテキストとともに期待されるコンテキストを出力できます。出力は、2 つの感嘆符 (!!) で区切られます。最初は実際のコンテキスト、次に期待されるコンテキストです。以下の例では、コンテキストのユーザー部分が不一致であるため、full,mismatchパラメーターは、実際のコンテキストとともに期待される完全なコンテキストを出力します。ただし、単独のmismatchを使用する場合は、コンテキストのタイプ部分のみをチェックします。コンテキストのタイプ部分が一致するため、予期されるコンテキストは出力されません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux コンテキストの不一致は、SELinux に関連するアクセス制御の問題を引き起こすことがよくあります。システムコールトレースに出力された不一致により、SELinux コンテキストの正確性のチェックが大幅に迅速化されます。システムコールトレースは、アクセス制御チェックに関する特定のカーネルの動作を説明することもできます。
バグ修正
-
SIOCGIFINDEXコマンド、SIOCBRADDIF、およびSIOCBRDELIFioctlコマンドのデコードが修正されました。 -
clock_gettime64、lock_settime64、lock_adjtime64、およびlock_getres_time64システムコールが%clockトレースクラスに追加されます。 -
statxシステムコールが%fstatトレースクラスに追加されます。 -
以前は、strace はネットワークインターフェース名の出力にバッファーサイズが十分に使用していました。これにより、引用が必要なインターフェース名(たとえば、
-xxモードの 4 文字を超える名前など)をアサーションに試行していました。RHEA-2022:4635 アドバイザリーでは、このバグが修正されています。