linux
業務中に Linux の OOM キラーの dmesg を見ていたら、見慣れない形式のログがあったので調べてみた ログ こんなログです May 23 02:06:26 **** kernel: [40872.663481] Memory cgroup out of memory: OOM victim 46452 (nginx) is already exiting. Skip ki…
Linux で setuid したバイナリで検証作業している時に知った /edtc/suid-debug について調べた内容です。 なぜ こんなことを調べているのですか? まず、setuid-sleep という setuid したバイナリがあリます。これは sleep するだけの setuid 検証用のバイナ…
ryuichi1208.hateblo.jp ↑ 同僚のエントリを読んで 早速調べものをしていたのだが、8進数で書かれたフラグを理解するのがちょっと大変。 lsof あたりで人間が読みやすくするようにサポートしてないのかな? ... と調べたらあった! lsof +f g オプション lsof …
www.kernel.org Linux Kernel 4.20 で導入された PSI - Pressure Stall Information の /proc/pressure/io について気になることがあったので調べていました イントロダクション PSI を使うと CPU, メモリ, IO で stall した時間(割合) を計測できるってなこ…
イントロダクション cgroup v1 の memory コントローラーで memory.kmem.limit_in_bytes を制限すると slab_out_of_memory を起こすことができるので、それを調べたり観察したエントリです 不具合・バグの調査ではないです ソースやコマンドの結果を大量に貼…
表題の通りなのだが、結論からいうと sysrq-trigger を使うのがいいみたい 「特定のタスクがクリティカルセクションを実行していてボトルネックとなっているが、どのタスクなのか分からない」という事象を正確に観測したくて、このテーマで調べました カーネ…
前回の続き hiboma.hatenadiary.jp rtnl_mutex でロックを獲得してクリティカルセクションを実行中のタスクを何らかの方法でトレースしたり、時間を計測したいと思って、あれこれ調べたり、試行錯誤していた 最終的に bpftrace でがちゃがちゃと試すまでを記…
strace.io strace 5.2 で追加された -z -Z オプションが面白かったので書いておきます (注意: この記事を書いた時点では 5.3 が最新です ) -Z 失敗したシステムコールだけフィルターしてくれるオプション root@xenial:~/strace-5.3# ./strace -Z ls >/dev/nu…
Linux Kernel で struct net_device や Routing Netlink の処理を排他制御する mutex である rtnl_mutex を任意の時間 ロックするカーネルモジュールを作成して、rtnl_mutex のロックがユーザランドのプロセスやカーネルスレッド等にどういった影響を及ぼす…
hiboma.hatenadiary.jp 前回の続きのエントリです カーネルのバージョンを変えつつ ソースを読み込んでみたところ理解が進んだ点が2つあったのでまとめます ファイルシステム(マウントポイント?) を remount すると dentry を破棄できる evict_inodes() を…
動機 社内の同僚がカーネル周りの問題を調べていて slab キャッシュ ( = dentry, inode ) に関する内容を追っていた。 その問題自体の内容は、アレがコレで、伏せておく。 その問題をみているうちに 「特定のディレクトリ以下の slab キャッシュ = dentry / …
表題の通り CVE-2019-9857 が出ており、その PoC を書いてどのような影響があるのを検証・観察した. CVE-2019-9857 の概要 nvd.nist.gov In the Linux kernel through 5.0.2, the function inotify_update_existing_watch() in fs/notify/inotify/inotify_us…
前回の続きです hiboma.hatenadiary.jp 実装の話 本エントリでは ProcDump が コアダンプをどのように採取するかを調べていく. (現状の) Linux ProcDump は gcore を薄くラップして扱うバイナリと理解した ダンプの採取方法を調べる github.com ソースコー…
先のエントリで書いたように最近は Windows も触っていて 主に Sysinternals ツールを使って Windows 探検をしている hiboma.hatenadiary.jp その流れで ProcDump の使い方を調べていた. Sysinternals の ProcDump technet.microsoft.com Windows 版の詳細は…
抽象ソケットアドレス abstract socket address について 2011年にエントリを書いていた d.hatena.ne.jp しばらく存在を忘れていたのだけど、社内 slack に話題が上がって思い出した。以下のような UNXI ソケットの亜種である。 abstract (抽象): 抽象ソケッ…
3つのエントリで問題を追いかけたのでまとめ 追いかけていた問題 httpd + mod_php で glibc をアップデート後、 logrotate 時に以下のログを出して失敗する問題を追っていた Graceful restart requested, doing restart httpd: Syntax error on line 39 of /…
hiboma.hatenadiary.jp hiboma.hatenadiary.jp 上記エントリの続きです 前回まで調べていたこと CentOS7 で glibc をアップデート後、 mod_php + httpd の logrotate (reload ) が失敗するのを調べていた 失敗する際に以下のログを出す Graceful restart req…
CentOS7 で glibc をアップデート後、mod_php + httpd の logrotate(reload) に失敗する という内容を追いかけるエントリです (追記) 社内で共有してみたところ、前に踏んだ && 対応してたという事例もあがってきた。よくある問題なのかなぁ 経緯 社内の同僚…
表題の通り Linux Kernel に付いた CVE-2018-5390 / SegmentSmack の PoC を書いて検証・観察をしていた VirtualBox で CVE-2018-5390 SegmentSmack を再現できたぽい? ( si = software interrupts が 100% 近くで張り付く + tcp_collapse_ofo_queue() を呼…
hiboma.hatenadiary.jp hiboma.hatenadiary.jp ↑ のようなエントリを書いていたが、0.100.2 がリリースされて次の展開を見せた blog.clamav.net On-Access "Extra Scanning," an opt-in minor feature of OnAccess scanning on Linux systems, has been disa…
表題の通り CVE-2017-18017 の PoC を書いてどのような影響があるのを検証・観察した ⚠️ 一年以上前に修正パッチが出ている CVE です CVE の Description The tcpmss_mangle_packet function in net/netfilter/xt_TCPMSS.c in the Linux kernel before 4.11,…
2018年3月に ClamAV のバグレポートを出していた hiboma.hatenadiary.jp 最近、進捗があったようで、以下のようなコメントをもらった Due to time constraints in the development process for version 0.101, OnAccessExtraScanning will be disabled in th…
Linuxカーネルの Changelog を斜め読みしていたら hidepid オプションなるものが出ていたのを知りました。 ps や top 等のコマンドを使うと他ユーザのプロセス名やその他の情報を procfs (/proc) を通していい感じに参照できますが、procfsの仕組みとしてこ…
ひょんなことから 32bit カーネルで動いている Apache (MPMは worker = マルチスレッド) を /usr/bin/pmap で調べていました。調べている中で pthread のスタックの割当テ方にも興味がわいたので glibc なども深追いして調べました。以降の内容は次の環境で…
initプロセス ( pid = 1 ) を strace できることを昨日知りました下のログは Ubuntu Server、カーネルは 2.6.38 で実行したものです # strace -p 1 Process 1 attached - interrupt to quit select(11, [3 5 6 7 8 9 10], [], [7 8 9 10], NULL) = ? ERESTAR…
IPv6->IPv4にするhttp://linux2ch.is.land.to/index.php?NetworksFAQs#f8b2e994 ブラウザなどで名前解決が異常に遅いです †アクセスの際に IPv6 で接続しようとするため、アドレス解決に時間がかかっていると考えられます。その結果、ページが表示されるまで…
Macを手に入れてから一戦を退いてたDynabook E7にUbuntuを入れてみました。何も問題なく一発で入ったのが嬉しいです。以前ほかのディストリビューションを試した時は全然ダメだったからなぁ。
下記のelispを.emacs.el等に貼付けてから M-x zsh-last-historyすると,zshで最後に打ったコマンドを編集中のバッファに挿入します。ChangeLogとか書いてる時にコマンド履歴をいちいちコピペするの面倒だと思って書いた。 環境に依存しないとは思うけど、いち…
zsh: diffの結果をvimで色付けして表示するグローバルエイリアス でも、diffの結果はちょっと読みにくい。もしdiffの結果が色付けされていたら、もっと読みやすいじゃないかと、今日ふと思いました。 そこで、zshのグローバルエイリアスを使って、diffの結果…
root /home/svnroot/wkdir # rm -rf /* rm: cannot remove directory `/boot': デバイスもしくはリソースがビジー状態です rm: cannot remove `/dev/pts/0': 許可されていない操作です rm: cannot remove `/dev/pts/1': 許可されていない操作です rm: cannot…