April 16, 2005
多くの方々にご好評頂いている『ドラマに見る「緊急対応」に対する一般的イメージ』ですが、鈴木島男氏ほどの天才プログラマーにかかれば、「サーバ侵入型新型ウィルス」だって、即その場で入手元不明の patch をあてて、駆除してしまう。
鈴木島男の仕事ぶりを尊敬してやまない自分としては、鈴木島男氏が、あの緊急対応時に、どんな作業を行なっていたのか、スロー再生を行ない画面を凝視して検証しまとめてみた。
鈴木島男の仕事ぶりを尊敬してやまない自分としては、鈴木島男氏が、あの緊急対応時に、どんな作業を行なっていたのか、スロー再生を行ない画面を凝視して検証しまとめてみた。
■ ls コマンドを叩いたのは、どうやら一番最初だけ
これは驚き。
画面に ls っぽさが見当たらなかったので、見てみたら、一度きりだった。
ディレクトリを移動するたびに手癖のように ls を打つ自分は、島男基準で見たら完全に「負け組」
■ 一番最初の ls 以外で使われていたコマンドは、diff と patch だけ
もっと驚き。
ソースコードに patch あてて脆弱性対策をして復旧したのかも知れないが「コンパイル」という作業を経ずに復旧してしまう。
…ということは、これはインタプリタだったと推測するのだが、
■ patch をあてた先は、BIND 8 のソースツリー
驚愕の新事実。意外な落し穴。
どうしてドクロと睨み合っただけの島男が、即座に「BIND 8 の脆弱性を突いた Ajax ウィルス」であることに気付いたんだろう。
ともかく、今回の検証の結果、ターゲットが BIND 8 であると言い切ったには根拠がある。
diff や patch の画面上で視認出来た対象ファイル名は
irpd.c
db_glue.c
db_ixfr.c
db_defs.h
の 4 つ (登場順)
全て BIND 8 のソースツリーに
src/bin/irpd/irpd.c
src/bin/named/db_glue.c
src/bin/named/db_ixfr.c
src/bin/named/db_defs.h
というのが実在する。
ファイル名だけでなく、画面に表示された patch と実ソースを比較してみたが明らかに同じものであった。
ついでに、一瞬画面に
/* catch bad values */
というコメントが登場したので、それで grep し前後行等を比較してみたところ BIND 8 のsrc/bin/named/db_load.c
がこれに該当し、今回の patch の対象に含まれていた。
【結論】
- 緊急時は ls とか打つな
- diff とかは、じっくり眺めて適度に patch をあてろ
- 天才プログラマが愛用する DNS は BIND だ。djbdns とか使う香具師は負け組
- C のソースコードに patch あてても決してコンパイルするな。…いや、これは何故だかまったく判らないけど
ここで、私からこんな島男スタイルを提唱する。
これをやればあなたも一見天才プログラマーだ。
結線していないキーボードをものすごい勢いで打鍵しながら
% tail -f /usr/local/apache/logs/access_log
これ、一般人から見たら間違いなく最強です。