先輩に聞く前に読む!「脆弱性」「マルウェア」ってなんですか?
lifehack

先輩に聞く前に読む!「脆弱性」「マルウェア」ってなんですか?

2014.02.25

ent11_img01.jpg

PCを買ったらまず最初にセキュリティソフトを入れましょう、というのはもはや「常識」でしょう。世界初の「コンピューターウイルス」は1982年に登場したエルク・クローナ(Elk Cloner)だと言われています。これは友人をからかうために作られた、メッセージを出すだけのコンピューターウイルスでした。

そんな牧歌的な時代はとうの昔に終わってしまいました。いまや「オレはこんなことができるんだぞ!」と自らの技術力を誇示するようなウイルスは存在しません(映画やドラマではよく見ますけれども……)。PCを脅かす犯罪者は、いかにして人やセキュリティソフトを作る企業にバレないように活動するかが鍵となっています。目的はあなたの「お金」。うまく活動すれば儲かるのなら、悪い人たちも頑張りますよね。(宮田 健

■ そういえば最近「コンピューターウイルス」って聞かなくなった?

ところで最近、「コンピューターウイルス」という言葉があまり使われなくなったのにお気づきでしょうか。テレビのニュースなどでは簡単にウイルスという言葉を使うことも多いですが、IT系のメディアではウイルスよりも少し定義の広い「マルウェア」というような表現をよく使うようになりました。

マルウェアとは、「悪意のあるプログラム」の総称で、自分が想定していない挙動をするアプリケーションを指します。悪意あるプログラムはあなたのお金、情報を盗むためならなんでもします。例えば、あなたのクレジットカード情報を不正な方法で抜き出し、それをブラックマーケットで売ることで金銭を得るのです。

では、どのような方法で抜き出すのでしょうか。このときにマルウェアが利用するのがさまざまなアプリケーションの「脆弱性」です。

脆弱性とは、情報システムにおいて、悪意ある行動に利用できる欠陥を指します。いわゆる「プログラムのバグ」が脆弱性となることが多いです。
コンピューターの挙動を熟知した悪意ある攻撃者が、想定しないアプリケーションの使い方を行うことで攻撃を成立させるのです。例えば、数字しか入らないと想定していた入力欄に、全てのデータを消去するような命令を入力してしまうと、プログラムの作り方によってはそれが実行されてしまうことがあるのです。それ以外にも、パズルのピースのように攻撃コードをメモリ内に埋め込んで実行させるなど、とてもトリッキーな、知らなければ確実に気付かない手法で攻撃を行うことができてしまいます。

プログラムのバグとしての脆弱性を排除するには、セキュアなプログラミング手法を学ぶ必要があります。攻撃者の手法は守る側にとってもとても有用な情報で、最近では攻撃手法をクイズ形式で学ぶ「CTF」(Capture the Flag)というような試みも盛んに行われています。これからプログラマーとして活躍する方は、1冊だけでもセキュリティプログラミングに関する本を読んでおくといいと思います。

■ 脆弱性は「プログラムのバグ」だけではない

実は脆弱性はプログラムのバグだけではありません。運用上の仕組みや、人自体が脆弱性になることもあります。

以前、アメリカで話題になった手法として、本人確認を「クレジットカードの下四桁」で行う企業に対し、あらかじめ別のWebサービスにて「正しい手段で」ターゲットとなる他人のアカウントに自分のメールアドレスを登録、ターゲットのクレジットカード番号下四桁を入手し、堂々とパスワードのリセットを行ったという事件がありました。これらは制度上の問題が脆弱性を生んだ事例です。

セキュリティはよく「鎖」に例えられます。弱い部分が1つでも存在すると、引っ張ったときに切れてしまいます。脆弱性と聞くとコンピューターウイルスやマルウェアがぱっと思いつく方も多いかもしれませんが、実はそれだけでなく、人間自身が脆弱性になる可能性もあります。
もしセキュリティや脆弱性という言葉が資料に出てきたら、そんなことをちょっとだけ思い出してみてください。

原稿:宮田健(みやた たけし)
主にネットワークやセキュリティを中心とした、エンタープライズITに関する情報を追うフリーのライター。
IT以外にも旅行やエンターテイメントなども広くカバーし、趣味と仕事の境界をどこまであいまいにできるか挑戦中。
http://dpost.jp/about/

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW