サイバーセキュリティにおけるリバースエンジニアリング なぜ重要なのか?

サイバーインシデントが絶えない今の時代、脅威をいち早く特定してビジネスを守ることは必須です。

サイバーセキュリティに関する専門的な知識やスキルを持った人材を求める企業が増え続けています。Cybersecurity Venturesによりますと、世界のサイバーセキュリティ人材の求人の数は、2013年には約100万人ほどでしたが、2021年には350万人と、3.5倍増加しています。当社のリサーチャーは、この先5年間も求人数は変わらないと予測しています。

この状況の背景にあるのは、即戦力となる実務の経験や適性を持つスペシャリストが不足しているという現実があります。学生が大学院でサイバーセキュリティ、コンピューターサイエンス、またはそれに類する分野の学位を取得していたとしても、働きたいと希望する企業が求める専門性と異なる場合があり、採用に至るとは限りません。また、企業が設ける要件のなかには、リバースエンジニアリングのハードスキルがあります。サイバー犯罪者は一般的に、他にはない自作のプログラムを使用してマルウェアを作成し、企業を攻撃するため、それを防ぐのもその後の調査も特別なスキルが必要となります。したがって、企業が求めているのは、任意のプログラム言語で書かれていて、その上極めて難読化されたコードを読み解くことができるエキスパートです。そういった人材には実務経験が必須で、基本的なプログラムを扱っているだけでは身に付けることは難しいでしょう。

リバースエンジニアリングとは何か、それがビジネスにどう役立つのか?

サイバーインシデントは、2022年の最も深刻なビジネスリスクとして上位にランクインしており、発生頻度は2023年以降ますます増えると予測されています。上述のとおり、最近の企業に対する攻撃は、標準的な手法ではなく、他にはない自作プログラムを使ったものが多数確認されています。企業のデータを守るため、また、少なくとも攻撃による損害を最小限に抑えるためには、インシデントが発生した直後に悪意のあるコードを詳しく調べる必要があります。ここで役立つのがリバースエンジニアリングです。ソフトウェアの挙動を分析して、製品の脆弱性を発見するのに役立つスキルです。

現代のマルウェアは、リサーチャーが解析しづらいように設計されています。サイバー犯罪者は、難読化技術や暗号化、その他の手法を使ってプログラムを複雑化しているといわれています。同様に、検知を難しくするためにコードを頻繁に変更しているとも指摘されています。企業のサイバーセキュリティにおいて、ハッカーに悪用される恐れがある弱点を発見するには、ITセキュリティのプロが協力し、サイバー犯罪者ならどう攻撃するか、第三者の視点を持って調べる必要があります。弱点を特定したら、ソフトウェアのコードを変更して、防御対策を強化できます。このような対策が事前に取られていれば、ハッカーが企業の脆弱性を発見するのが難しくなり、さらにコストもかかるため、最終的にハッカーがあきらめる可能性が高いでしょう。

対策を講じていたにもかかわらず悪意のあるプログラムが検知されたら、リバースエンジニアリングを行います。その場合にまず行うことは、プログラムの仕組みを理解すること、そしてその次にどのように進化するかを予測することです。セキュリティリサーチャーは、この目的のためにマルウェアのリバースエンジニアリングを行いますが、それにはアセンブリ言語とコンピューターアーキテクチャに関する理解が必要です。

リバースエンジニアに必要なスキルとは?

リバースエンジニアとは、常に悪意のあるプログラムを解析している専門家のことを指します。そのため、新しいタスクで常にマシンとソフトウェアの動作について学ぶ心構えが必要です。したがって、この職業に適しているのは、生涯学び続ける覚悟がある人、そして1週間に40時間コードを見続けても平気な人です。

この仕事で成功するためには、論理的思考や数学的思考に加え、能率が良く、そして粘り強く、向上心を持って仕事に取り組むといったソフトスキルを伸ばすことをお勧めします。あらゆる新機能を調べたり、プログラムを分解したり、ファイル形式を分析したりするのに熱心な人はこの仕事に向いています。リバースエンジニアの強みは、細部への配慮、関係性を見つけだす能力、そして複雑なシステムも理解し、他のプログラマーが作成したコードからその意図を読み取れるような優れた想像力です。

同時に、ハードスキルを向上させることも重要です。たとえば、システムプログラミングをマスターすること(コンピューターのハードウェアとやりとりするソフトウェアを構築できるという証明)、プログラムのリバースエンジニアリングスキルを高めること、そしてディスアセンブラ(IDA Pro)を使用できることも必須です。C言語とPython、x86およびARMアーキテクチャの機能の知識も役に立つでしょう。

また、リバースエンジニアリングを開始する前に、フレームワークやライブラリで使われる概念を学ぶことも推奨します。これらの概念は、ドキュメンテーション、詳細な記事、または設計文書を使って学習することができます。入手できたものをすべて読み、確認した上で、実際のコードの調査にかかります。

まとめにかえて

悪意のあるソフトウェアに関する実務経験や専門知識が不足している状態で情報セキュリティのキャリアをスタートさせるのは容易なことではありません。当社は先月、サイバーセキュリティ専門家向けのオンライントレーニングの新しい講座「Reverse Engineering 101」を新たに開講いたしました。こういった専門のコースを受講して、経験豊富なリバースエンジニアの体験をエキスパートから聞いたり、実例を使った実習に参加し、実用的なスキルを身に着けることをお勧めします。

このようにして専門知識を身に付ければ、希望するセキュリティ関連の企業や部門の採用への一歩になります。Salary.comによると、リバースエンジニアの2022年の平均年収は120,000米ドル(約1580万円相当)です。ただ、報酬は、学歴や資格、その他のスキル、経験年数などさまざまな要素によって変わります。またリバースエンジニアリングで長いキャリアを築くためには、ハードスキルだけでなく、根気強く学び続け、スキルを高めようという意欲も必須です。

 

ヒント