元ソフトウェア屋としての矜持的な何かが私を突き動かしたので書きなぐってみようかなーなんて思った次第。

パソコンが一般ぴーぽーに普及し、スマートフォンなるものが台頭した今、ソフトウェアの価値とは何なのかを今一度見つめ直してもらいたい今日この頃。

というか、先の Windows XP のサポート終了の件の補足話なんだけども。

 

 

セキュリティホールとは

セキュリティホールです(キリッ

…というのは冗談で。一言で言えば「保安上の抜け穴」かしら?

「セキュリティ上の穴」でもいいけど。

結局は穴なのよ。論理的な。

 

ここではあえて「バグ」(プログラムの誤り)とは切り分けて扱うわね。

一応、バグじゃないセキュリティホールもあるし。

 

で、セキュリティホールってなんやねんという話だけど、簡単に説明するのは難しいから身近なことで表してみると

  • オレオレ詐欺等の偽装行為への対応能力の欠如
  • 生活保護の不正受給等の法の穴

とか。

 

…どうかしら。なんとなく伝わったかしら。

 

ソフトウェア上ではこれ以上に高度なソレが、人間では判断不可能なレベルで行われているわ。

それこそ神経細胞レベルの細かさで。

 

で、この理解不能なくらい細かで高度な情報の穴を突いてコンピューターをだまくらかしてアレコレするのがサイバー攻撃ってヤツね。

 

 

簡単なセキュリティホールの例

とはいえ、なんとなく解んないと思われるので、ひじょーに初歩的なセキュリティホールの例を紹介。

 

プログラムはここに示した通りに動くものとし、仕様は公開されているものます。

 

  • アクセスするには10文字以内のID4ケタの数字をパスワードとして使用します。
  • IDは使用者の名前(戸籍上の表記)です。
  • パスワードが間違っている場合は「パスワードが間違っています」と表示します。

 

すごく初歩的なアレだけど、これの何処に問題があるかわかるかしら?

「ブルートフォースアタック」で誰でも突破できる初歩的なヤツなんだけど。

 

 

答え。

  • 使用者の名前が解れば10000回のパスワード入力試行でパスワードを特定できる。

でしたー。

 

パスワードは0000~9999までの10000万通りに限定されるから、これらを全て入力してみれば誰でも突破可能なセキュリティホールよ。

ブルートフォースアタックは日本語で「総当たり攻撃」

まさにコンピューターの能力を生かした力技ねーw

 

ちなみにコレ、郵便局とか銀行のATMのシステムの簡易版なのよ。

IDはキャッシュカードに相当。パスワードはそのまんまね。

 

もちろん、実際のATMは10000回も入力試行はさせてくれないし、中には3回間違うとその日は完全にアクセスできなくなる物もあるわ。

とはいえ、誕生日をパスワードにしたりすると少ない試行回数でパスワードを特定されちゃったりするから、一般的には推測されやすいものは使用しないようにって御触れが出てるわよね。

 

こんな感じで、仕組みとしては間違っていないけどセキュリティ的には問題があるものをセキュリティホールと言うわけよ。

 

 

 

人間が考えた以上、そこには何らかの矛盾が生まれる

そんな感じで、例として簡単なモノを示してみたけど、実際にはもっと高度で複雑なプログラムであるOSやセキュリティソフトなんかは、人間だけじゃなくプログラム的にも矛盾や綻び、間違いが無いか長い時間かけて徹底的に検査されるんだけど、言ってしまえば所詮は人間の創造物完全完璧なものは存在しないわ。

これは宿命というかモノの性質レベルと言っても過言じゃないと思うの。

 

これらのソフトウェアは発売してからも毎日のように動作検証して問題が無いか常に監視されていて、何か危険そうなものが見つかれば即座に修正されるというのが慣例ね。

けど、それはサイバー攻撃する側も同じ。

攻撃したい相手のことを研究して常に綻びが無いか目を光らせているわ。

 

修正と攻撃はイタチゴッコのように繰り返される宿命なのよ。

 

 

 

余談:膨大な資産の管理には人も時間も必要

で、これらの修正を積み重ねていくと、それがソフトウェア的「資産」となってどんどん貯まっていくわ。

攻撃されては修正して~と、何千何万回と繰り返していくと、その分だけ「修正プログラム」が増えていくの。

場合によっては「修正プログラム」自体にもまた新たなセキュリティホールがあって、それによって攻撃されてしまうというケースもあるから、今まで作ったモノは全部管理しなくちゃならない。

そうなると、管理に費やす人や時間は増えていくばかりよね。

 

だから、ある程度の規模になったら。あるいはある程度の期間がたったら今までのセキュリティホールを全部無くしてしまう必要が出てくるわ。

それがフルスクラッチと言われる、いわゆる全とっかえ。

つまり、今までの経験を元に今までのセキュリティホールを生まないような新しいソフトウェアを作るという事をするの。

 

実際は流石に全部作り直しだと大変だから、部分的に作り直す方法がとられるのが一般的じゃないかしら。

その際に、過去のソフトウェアと同じ作りや機能では問題が残ってしまう事があるから、それも一新する必要が出る事になるわ。

そこで互換性の問題が出てくるのよ。今まで使っていた機能を新しい機能に置き換える必要が出るの。

WindowsXP から WindowsVista の間でそれが発生してるわ。

 

ついでに言うと WindowsVista から次の Windows 間でもそれは起こっているけど、今の所それに依存した問題は出ていないみたいね。

…詳しい事は知らないけど。

 

 

以上が私の知る限りのセキュリティホール関係の事情よ。

この記事を読んでなんとなくセキュリティに関して理解を持ってもらえたら幸いだわ。

 

ここまで読んでくれてありがと。

また機会(書く気分w)があったら一般には知られていないソフトウェア事情とか書いてみようと思う次第よ。

 

 


↓ランキングに参加してます↓
ブログランキング・にほんブログ村へ
人気ブログランキングへ