Scribble at 2022-01-24 14:42:55 Last modified: unmodified

OWASP にも参加している Tony Hsiang-Chih Hsu が書いた "Practical Security Automation and Testing" (Packt, 2019) の冒頭に、本書のテーマでもある情報セキュリティの自動テストをめぐる三つの「デタラメ(myth)」が紹介されている。

まず第一に、「情報セキュリティのテストというものは高度な技術や知識をもつ専門の技術者(いまで言えば「ホワイト・ハッカー」とか「ペンテスター」)がやるんじゃないの?」というデタラメな話がある。そもそも、システムに対する情報セキュリティのテストというものは、昨今の『MR ROBOT』を初めとするテレビ・ドラマに出てくるような技巧や知恵を使ったペネトレーション・テストのようなものだけではない。そういう頓智合戦や知恵比べみたいな操作が情報セキュリティのテストだと思うのは、実務家の意見として言えば殆ど錯覚である。たとえば総当たり攻撃(ブルートフォース攻撃)の実行成果を比べるなら、世界中のペネトレーション・テストの一流技術者が集まって、手作業で専用の自動テスト・ツールに対抗しようとしても全く無駄である。あるいは、32桁のパスワードが設定されている ZIP ファイルのパスワードを、会社の標準的なパソコンに搭載されているビデオ・カードと「ホワイト・ハッカー」とやらで競争して解析させてみてもいい。そうした、自動テストのツールが文字通り機械的に実行するような処理については、まさしく暗号学的(数論的)に証明できる方法で人間は勝てないのだ。

第二に、自動テストを実行する場合に、どう処理して検査するかを「フレームワーク」として定義しなくてはならない場合が多々ある。すると、そのフレームワークを設計したりコーディングする作業だけで長い時間を取られてしまい、ソフトウェアを開発しているのか、それともテストのフレームワークを設計しているのか、仕事の目的が分からなくなるのではないかと言われたりする。すると、開発に従事している側としては本来の開発作業の方が重要に決まっているのは確かなので、これを優先してしまうだろう。すると、コードが頻繁に変更されることに対して、変更されたコードをテストするためのフレームワークの変更が追い付かなくなるのではないか。これについては、いまや Security by Design あるいは DDT (data-driven testing) という発想のもとで、頻繁なコードの変更に追随できるフレームワークを用意したテスト・ツールが用意されている。そもそも、情報セキュリティを除外しても、ユニット・テスト(単体試験)のような機能要件のテストは必要であり、それに対応する自動テストのツールは数多く発表され活用されている。情報セキュリティの自動テストについても、同じようにコードの小さな変更に応じてチェックする仕組みがある。

そして第三に、情報セキュリティのフレームワークには信頼するに足りる定番がないとか、あるいは実効性のあるフレームワークが一つもないという、デタラメというよりも FUD や言いがかりに近いことを信じている人がいるらしい。もちろん、この手の戯言は実際に自動テストどころか、開発の現場で「テスト」という業務に携わったことのない人が往々にして口にするものだし、はっきり言えば情報セキュリティの素人しか言わないことだ(つまり、情報セキュリティのエンジニアや実務家でこんなことを言うのはモグリということ)。なぜなら、これは攻撃や防御の手法として唯一のアルゴリズムやベクトルがある(たとえば、或る文字列をハッシュ化するのに一つだけの「絶対に正しいアルゴリズム」がある)と言っているに等しいからである。こんなことが数学的にも、あるいは工学的に許容可能な時間内で制限してもありえないことくらい、コンピュータ・サイエンスの学部どころか専門学校を卒業したていどでもわかるだろう。アルファベット文字を「暗号」にする最も簡単なアルゴリズムは、アルファベットの並び順としてズラして別の文字に置き換えることである。標準的な教科書では、これを「(単一)換字式暗号」と言う。或る文字を「アルファベットの並び順で後の文字に置き換える(Z は A に戻す)」というルールで、"YOU" を "ZPV" に("Y" の次は "Z"、"O" の次は "P"、"U" の次は "V" と)置き換えるわけである。では、文字をアルファベットで「後に一文字ぶんだけズラす」ことと「前に一文字ぶんだけズラす」ことは、どちらがどう他のアルゴリズムよりも有利なのだろうか。後にズラす方が前にズラすよりも情報セキュリティとして「強い」アルゴリズムだろうか。

というわけで、要するにテストの自動化という処理や業務を、何かケータイのしょーもないアプリを使ってコチョコチョとやってる子供の遊びみたいに錯覚したり思い込むから、そういう作り話を信じてしまう人が出てくるのだろう。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook