0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Splunk: 謎のコマンドwindbagを追いかけたらGoogleに行きついた

0
Posted at
実施環境:Splunk Cloud 10.5.2605.3

1. windbag というコマンドがあるらしい

以前 Splunk でダミーデータの生成方法を調べていて、 windbag というコマンドを知った。
実際実行してみると確かにダミーデータが生成される。
ただ、公式ドキュメントに記載は無いし、軽く検索してみてもあんまり情報が出てこない。
ということで、今回は Gemini の助けを借りて調べてみた。

ちなみに、 windbag とはもともと英語で「(パイプオルガンなどの)ふいご」のことで、それが転じて今では「無駄話が多い人」を表すスラングとなったようだ。

2. 実行して挙動を眺めてみた

実行してみた結果が以下。
ちょうど 100 件のデータが生成されているのがわかる。

WS000256.JPG

時間で見ると、検索期間に関係なく現在時刻からおおよそ 30 時間以内にデータが均等に散らばっている。

WS000260.JPG

1 つ 1 つのデータを見ると、 index は無く、 host = HAL_9000 , source = SpaceOdyssey , sourcetype = fictional は共通しているようだ。
なお、「 Space Odyssey 」は名作 SF 映画「 2001 年宇宙の旅」の原題で、「 HAL 9000 」は作中に登場する AI の名称である。

WS000257.JPG

sample には様々な言語の文字列が入れられており、 lang はどうも sample に格納された文字列の言語を表しているようだ。
position には 0 から連番がふられていて、奇数の場合は odd というフィールドが追加され同じ値を入れられている。

WS000258.JPG

他に、以下のカラムも全データに共通して含まれている。

<script>alert("field_name_unescaped!")</script> = field_name_exploit_test
fancy_constant_field = "double quotes" 'single quotes' \slashes\ `~!@#$%^&*()-_=+{}|;:<>,./? [brackets]
field_value_exploit_test = <script>alert("field_value_unescaped!")</script>
punct = `~!@#$%^&*()-_=+\"'{}|;:<>,./?[]

WS000259.JPG

こうしてみると、テスト用としてなかなか便利なデータを出すコマンドのようだ。

3. で、結局 windbag って何者?

では、結局 windbag とは何者なのか。
先ほど言った通り、公式ドキュメントには何も見つからない。

Gemini に聞いたところ、以下のサイトに行きついた。
どうやら Splunk 社についての歴史を有志が収集しているコミュニティサイトらしい。

で、この中に windbag についての記述があった。

ざっくりまとめると、 Splunk 社のエンジニアが製品の多言語対応を行った際、 UTF-8 で正常に処理できるかをテストするために使用していたコマンドのようだ。
コマンドの実行結果についての説明もあるが、こちらも先ほど眺めたのとだいたい一致している。
公式のサイトでは無いが、話としては特におかしいところは無いと思うし、多分これであっているのだろう。

4. 「私はガラスを食べられる」

ただ、上記のサイトの中で一つ気になる記述があった。

「私はガラスを食べられる、それは私を傷つけない。( I can eat glass, it does not hurt me. )」

windbag コマンドが出力しているのは、このフレーズを様々な言語で翻訳したものらしい。
このフレーズは一体何なのか?

調べたところ、どうやら文字コードなどのテスト用として結構有名なフレーズのようだ。
1990年代、当時ハーバード大学の学生だったイーサン・モリックなる人物がとあるジョーク的なプロジェクトを立ち上げた。
それが上記のフレーズ、「 I can eat glass, it does not hurt me. 」を様々な言語で翻訳したリストを作ろうというプロジェクトだった。

インターネット黎明期、これがミームとして流行ったらしく、結果として150種類以上の翻訳テキストが収集された。
上記のホームページを見ると、一般的な言語はもちろん、コンピュータ言語や古代語、果ては架空の言語まで含まれているのがわかる。

5. そして Google へ...

これが多言語対応において文字化けなどを確認するテスト用に非常に便利だったらしく、エンジニアがしばしば利用するようになったようだ。
そして、 Kermit プロジェクトという通信プロトコルの開発プロジェクトにおいて前述のデータセットを UTF-8 に変換したものが公開され、世界的に幅広く利用されることになったらしい。

で、これらのデータセットを用いた製品の 1 つに、 GoogleChrome (正確にはそのベースとなった Chromium )がある。
Google は以下の通りこの製品のソースコードリポジトリを公開しており、その中に該当のフレーズが確認できる。
他に、 Android の開発でもこのフレーズを利用しているようだ。

ささいなコマンド 1 つにも、いろいろな歴史が詰まっているのだな、という話。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?