この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。
私は、今年に入ってからセキュリティに関する活動を始めました。
今までは主にネットワークやシステム管理といった、IT インフラに関して取り組んできましたが、セキュリティという分野は、実は以前から最も興味があり、手探り状態ですが独学で学んできました。
日本ではセキュリティを教えられる人がまだあまり居ないので、自分の力だけで勉強していくことが必要です。
しかし最近、セキュリティ分野特有の知識
というものはほとんどないのではないかと思うようになりました。
良く例として取り上げられるのは、泥棒や空き巣の考え方です。
例えば、空き巣が誰かの家の玄関に備え付けられている鍵をこじ開けるような場合を考えてみると分かりやすいかもしれません。
空き巣は悪意があるものとして、自分のものではない鍵を開ける場合、鍵やセキュリティに関する一般的な知識だけではもちろん開けることは出来ないでしょう。
開けるためには何が必要かというと、鍵の内部構造や挙動といった、鍵そのものに関する深い知識です。
鍵が開く時には鍵穴の内部では何が起こっているのか、何が起こってないといけないのか、を詳細に把握しているが故に開けることが出来るのだと思います。
これは情報セキュリティに関しても同じことが言えるのではないでしょうか。
ソフトウェアやサービスが、内部的にどんなときにどんな処理をしているのかを把握していることが、攻撃する側か守る側かに関わらず大事なのであって、セキュリティ特有の知識というものは、ほとんどの場合、重要ではありません。
そして先ほどの例えで言うと、自分なら本来の鍵を使わなくても開けられてしまうような脆弱な鍵を、空き巣本人が住む自宅に設置したいと思うでしょうか。
これも同様に、ソフトウェアの実装を良く知り、その後で攻撃者の考え方や手法を知れば、自分が管理するシステムのセキュリティ向上に役立つのではないでしょうか。
情報セキュリティを勉強するにあたって、攻撃者の手口を知ることも大事ですが、自分はまず身近でいつも使っているようなソフトウェアの実装や、ネットワークプロトコルの仕様に関してなどを、さらに深く勉強していきたいと思っています。
Author: Masato Kaneko