ソーシャルエンジニアリングとリバースエンジニアリング、両方エンジニアリングという言葉が入りますが、実は意味が全然違います。
ちょっとややこしいので、二つの言葉の違いを解説します。
ソーシャルエンジニアリングとは?
先ず、ソーシャルエンジニアリングという言葉はセキュリティ関連の用語です。
この言葉の意味はログインIDやパスワードなどの重要な情報を盗み出すために様々なIT技術を使用せずに人の手で行うことです。
具体的には、セッションハイジャックやSQLインジェクション、キーロガーなどを使う手法では無く、人間の心理的な隙を狙ったり、行動におけるミスにつけ込む手法となります。
では、ソーシャルエンジニアリングのいくつかの具体的な手法を以下で説明します。
電話を利用して情報を聞き出す(なりすまし)
昔からある代表的な盗みの手法です。情報を聞き出す利用者のユーザID等を入手したら、その利用者をなりすまして、システム管理者に電話をかけ、その中でパスワードを聞き出したり、パスワードの変更を管理者に依頼します。
その反対にシステム管理者になりすまして、直接利用者にパスワードを確認することもあります。
こんな方法で情報を聞き出せる訳ないでしょー。って思いますが、意外と人間って信じてしまうので、聞き出せてしまうのです...
このなりすましの対策としては、事前に電話では「パスワードなどの重要な情報」を相手に伝えないというルールを決めておくしかありません。
肩越しにキー入力を見る(ショルダーハック)
ショルダーハックは有名な言葉ですね。 パスワードを端末に入力しているところを後ろから近づいて、覗き見る方法です。肩越しに覗くことから、ショルダー(shoulder=肩)ハッキングと呼ばれています。
オフィス内でも気を付ける必要はありますが、特に外のオープンなスペースでログインIDやパスワードを入力する際は周りを見て、気を付ける必要がありますね。
ゴミ箱を漁る(トラッシング)
ごみ箱に捨てられた資料(紙や記憶媒体あんど)から、サーバやルータなどの設定情報を始め、ネットワーク構成、IPアドレスの一覧、ユーザ名やパスワードといった重要な情報をを探し出し、悪用する手法です。
まさかゴミ箱が漁られるなんて思いもしないですが、重要な書類はシュレッダで裁断したり、溶解したりと確実に廃棄することが重要ですね!
ソーシャルエンジニアリングは個人の意識が非常に大事になってくるので、セキュリティ対策をシステムのみに依存するだけだと危険です。常にセキュリティに意識をもった行動を心がけることが大事になりますね。
続いてもう一つのエンジニアリングである、リバースエンジニアリングを解説します。
リバースエンジニアリングとは?
リバースエンジニアリングとは、ソフトウェア(プログラム)やハードウェア製品の構造を分析し、その製造方法や構成部品、ソースコードや設計書などの技術情報を調査して、明らかにすることです。
もう少し簡単にすると「プログラムのソースコードを解析して、プログラムの仕様はや設計書を復元すること」です。データベースシステムの定義情報からER図で表現した設計書を作成したりすることもリバースエンジニアリングとなります。
なぜ、リバースエンジニアリングで復元する必要があるかというと、既にあるソフトウェアを再利用することで、新規開発や仕様書が所在不明になっているような旧来のシステムの保守や更新に役立てることができるからです。
昔のソフトは仕様書が無くなっている!、構築ベンダさんが既にいない!なんてことはよくあったりしますので、このような困った時に役立ちます。
リバースエンジニアリングをする際の大事なことがあります。それは、元となるソフトウェア権利者の許可なくリバースエンジニアリングを行い、そこで得た情報を使って新規ソフトウェアを開発したり販売したりすることです。この行為は知的財産権の侵害に当たる可能性があるため注意が必要です!!
知的財産権を侵害して得られた技術情報は、製品の不正コピーや、脆弱(ぜいじゃく)性の悪用といった目的で利用されることもあるため、リバースエンジニアリングという言葉自体にマイナスのイメージを持つときもありますね。
まとめ
今回はエンジニアリングが付く言葉である、「ソーシャルエンジニアリングとリバースエンジニアリング」の違いを解説しました。
ポイント
- ソーシャルエンジニアリングは重要な情報を盗み出すために人の手で行う行為のこと
- リバースエンジニアリングはプログラムのソースコードを解析して、プログラムの仕様はや設計書を復元すること
言葉は似てますが、意味は全然違いますので、よく理解して使い分けることが大事ですね。
以上です!
参考URL)