「シェルコード」とは何か【前編】
「シェルコード」とは? 凶悪なマルウェア感染を可能にする手口
攻撃者がマルウェアを感染させるための使う手段として「シェルコード」がある。どのような仕組みを持ち、どのような危険性があるのか。
「シェルコード」はコンピュータを攻撃するための、機械語で書かれたプログラムだ。「シェル」とは「Linux」の「bash」や「Windows」の「コマンドプロンプト」といった、コンピュータに対する命令を解釈するソフトウェアを指す。本来シェルコードとは、文字通り「シェルを呼び出し、そこでコマンドを実行させるためのプログラム」を表す単語だった。今では、たとえシェルを呼び出さなくても、実行中のアプリケーションに挿入された段階で実行可能になる機械語のプログラムを指すようになった。
バッファ(一時的な記憶領域)に許容量を超えるデータを書き込む脆弱(ぜいじゃく)性「バッファオーバーフロー」を悪用した攻撃や、シェルに読み込ませる文字列を使ってメモリの値を不正に読み書きする「書式文字列攻撃」に、シェルコードが悪用される。攻撃者は標的のアプリケーションで致命的なエラーを発生させ、そのアプリケーションがシェルコードを実行するように仕向ける。
攻撃者がシェルコードを悪用する目的はさまざまだ。シェルコードは、侵入先のコンピュータを不正操作するためのツール群「rootkit」や、一見無害だが特定の条件で攻撃活動をするマルウェア「トロイの木馬」のインストールに加え、マルウェア対策機能の停止、不正なファイルのアップロード/ダウンロードなどを可能にする。
シェルコード悪用の仕組み
シェルコードを作成するためには、機械語や「C」「C++」などの一般的なプログラミング言語、プロセッサのアーキテクチャ、標的とするOSの仕組みに関する深い知識が求められる。例えばWindowsを狙うシェルコードは、Linuxを狙うシェルコードとは大きく異なる。
アプリケーションや機能がデータを正しく検証しないことが、シェルコードの悪用を可能にする要因だ。OSは変数、定数、配列などのデータを保持するために記憶領域を確保する。そうした記憶領域がバッファだ。一般的にコンピュータがプログラムを読み込んだりプログラムを実行したりする間に、バッファは動的に作成される。バッファの許容量を超えるデータが送り込まれるとバッファオーバーフローが発生する。収まり切らないデータが他の記憶領域やバッファにあふれ出し、その記憶領域にあるデータの一部あるいは全部を上書きしてしまうのだ。
シェルコードによる攻撃を防ぐためにソフトウェア開発者は、プログラムがどれくらいの量のデータを書き込むのかを適切に見積もる必要がある。「Java」や「C#」といった高度なメモリ管理機能を持つプログラミング言語は、そうしたメモリ管理によるエラーは起こりにくい。だがCやC++のように高度なメモリ管理機能が備わっていないプログラミング言語で書かれたアプリケーションについては、シェルコードによるメモリ悪用の危険性を考慮しなくてはいけない。
米国標準技術研究所(NIST)の脆弱性データベース「Common Vulnerabilities and Exposures」の統計によると、バッファオーバーフローに起因する被害は2017年から2018年にかけて急増した。複数の攻撃者が高度な符号化を利用しているため、侵入検知システム(IDS)によるシグネチャの照合ではシェルコードを検出することが難しくなっている。ではどのような対策がシェルコードによる攻撃に対して有効なのだろうか。後編で紹介する。
変更履歴(2020年2月3日20時33分)
記事冒頭のシェルコードに関する内容を一部変更しました。本文は変更済みです。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー