「シェルコード」とは何か【前編】
「シェルコード」とは? 凶悪なマルウェア感染を可能にする手口
攻撃者がマルウェアを感染させるための使う手段として「シェルコード」がある。どのような仕組みを持ち、どのような危険性があるのか。
「シェルコード」はコンピュータを攻撃するための、機械語で書かれたプログラムだ。「シェル」とは「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.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[富士フイルムビジネスイノベーション株式会社] データ入力業務のDXを実現 工数削減や業務品質向上に効くアプローチとは? -
製品資料
[日本ヒューレット・パッカード合同会社] AI活用で競争力を高める「最適にデザインされたAI基盤」の在り方とは? -
製品資料
[日本ヒューレット・パッカード合同会社] 「人がAIを使う時代」の次は―― “AI Ready”なIT環境が切り開く新たなAI時代 -
製品レビュー
[MNTSQ株式会社] 法務部門のための「AI導入」ロードマップ -
技術文書・技術解説
[SAPジャパン株式会社] 人手だけでは守り切れない、AI時代のERPを守る「仕組み」とは
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Microsoft 365統一で「SharePoint」が1日2TB増 富士フイルムはどう管理した?
-
2
「企業内サーバ環境の利用実態」に関するアンケート
-
3
「AI活用を前提とした業務PCへの移行」に関するアンケート
-
4
「オフィス移転・刷新に伴うネットワーク環境の実態」に関するアンケート
-
5
「社用車」に関するアンケート
-
6
AWS、Azure、GCPの「クラウドストレージ」を比較する3つのポイント
-
7
Microsoft 365侵害企業の9割はMFA導入済み 1002人調査で見えた盲点
-
8
「契約業務のAI活用」に関するアンケート
-
9
負の遺産ではない! 今こそメインフレームを再評価すべし
-
10
なぜ「PHP2Shell」はパッチを当てても終わらないのか?
ホワイトペーパーランキング PR
-
1
本当に使える「会議翻訳ツール」を見極める4つの選定基準
-
2
「IT史に名を残すシステム障害」8選
-
3
AIが苦手な「汚いデータ」になっていない? AI投資を無駄にしないための注意点
-
4
「テスト内製化&自動化」事例集:ディー・エヌ・エーなど9社に学ぶ実践のコツ
-
5
法人向け光回線のプランはどう選ぶ? 機能面/保守体制/コストを一覧で比較
-
6
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
7
有識者が語る、中堅中小企業に求められる最新のサイバーセキュリティ対策とは
-
8
Microsoft 365での情報埋没を防ぐ、社内ナレッジを資産化する情報ポータル活用
-
9
進化が遅れる「電話」をアップデート、AIを搭載した次世代の通話機能とは?
-
10
ランサムウェア攻撃“究極の対策”はこれだ
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー