コラム概要
■こんな方におすすめ:
- OSについて知りたい方
- 脆弱性の基礎について知りたい方
- アプリ開発初心者
■難易度:★☆☆
■ポイント:
- OSの脆弱性によりアプリ改ざん等の攻撃が実行される
- OSの状態は消費者のデバイス環境に依存するため、アプリ開発者が対策を行うことは難しい
- OSの脆弱性発生を防ぐためにすべきことは、OSを最新状態に保つ
1.はじめに
セキュリティ担当者の方にとって、
アプリが不正な方法で操作されないかということは非常に重要な事項です。
そのため、アプリ自体のセキュリティには常に目を光らせていると思います。
しかし、アプリ自体には問題がなくとも、
別のアプローチから不正な動作を起こすことが可能になる場合があります。
今回はそのような状況を引き起こす「OSの脆弱性」についての説明を行い、
セキュリティを維持するために何ができるかを解説したいと思います。
2.「OSの脆弱性」とは?
まず、「OSの脆弱性」とは何か?という点から説明します。
OSとは“Operating System”の略であり、
パソコンやスマートフォン上でアプリケーションを動かすために必須のシステムです。
このOSはアプリの動作を管理するだけでなく、
キーボードからの入力、ファイルの呼び出し、メモリの読み込みなど様々な動作を管理しています。
そのため、OSには大きな権限が与えられています。
そんなOSを何らかの方法で乗っ取ることができれば、
様々なアプリから情報を抜き取る、
あるいはデータを破壊してパソコンを動かせないようにするなど、
様々な悪事が可能になってしまいます。
もちろんそのようなことが起きないよう、OSは堅牢なプログラムになっています
しかし、それでも時にはバグや設計の問題でOSに侵入できる方法が見つかってしまいます。
そのような欠陥を「OSの脆弱性」と呼びます。(※1)
3.「OSの脆弱性」を利用したセキュリティ被害
過去から現在に至るまで、
OSの脆弱性を利用したセキュリティ上の被害は枚挙にいとまがありません。
ここでは一部の例を挙げて、どのような被害が存在するかを見ていきましょう。
1.[Windows] MSBlaster(※2)
MSBlasterは、2003年頃に現れた
ワーム(自身を複製して他システムに拡散しようとするマルウェア)プログラムでした。
Windowsの脆弱性を利用することで、感染者のパソコンにワームをダウンロード・実行させます。
このワームが実行されると、以降から起動時にワームが実行されるように変更されると共に、
IPアドレスにより他パソコンを検索し感染を拡大させようとします。
更に特定日時になるとWindows Updateに対して
サービス妨害攻撃をしかけるという動作が組み込まれていました。
2.[Linux] BootHole(※3)
正確にはOSの脆弱性ではありませんが紹介します。
2020年夏頃、多くのLinuxディストリビューションで用いられる
GRUB2ブートローダー(OSを起動するために用いるソフトウェア)に脆弱性が見つかりました。
ブートローダーの脆弱性を利用することで
OSが読み込まれる前に任意のコードが実行できるようになり、
事実上OSを乗っ取ることが可能になっていました。
3.[iOS] Jailbreak(脱獄)
脆弱性はウイルスだけでなく、他にも悪用されることがあります。
2020年春頃、iOSカーネルのJailbreakに繋がるような脆弱性が発見されました。
この脆弱性は当時の最新OSにも影響があったため、
その脆弱性を突いて端末をJailbreakさせるようなツールが公開される事態がありました。
このように、OSの脆弱性をついた攻撃は時代とともに多様化しています。
特にOSを入り口としてPC・スマートフォンが乗っ取られるという事態は、
個人情報抜き取りの他、デバイス内のアドレスを自動で検索し
マルウェアをメールで添付し拡散する動きに繋がります。
つまり、アプリ自体が乗っ取られ悪用の起点となり得るのです。
4.対策
OSの脆弱性が完全になくなることは恐らくありません。
では、アプリの制作者は自ら対応できないOSの脆弱性に対して、
どのような対策を取ることができるでしょうか。
1.最新のOSにアップデートするよう呼びかける
OSの脆弱性が見つかった場合、OSがサポート期間内であれば
通常はセキュリティ関係のアップデートが行われるはずです。
アプリの利用者に対し、最新のOSを利用するように勧めることで、
脆弱性の存在する期間を減らし安全性を高めることができます。
2.脆弱性情報を追う
しかし、最近ではOSのアップデートが行われる前に
脆弱性を利用した攻撃を行うゼロデイ攻撃といったものも増えてきています。
そういった攻撃については、日ごろから脆弱性についてアンテナを張り、
どのような動作が危険なのか理解することで対応ができる場合もあります。
脆弱性については、
脆弱性対策情報データベース(https://jvndb.jvn.jp/index.html )などから情報を収集することができます。
こちらを定期的にチェックすることも大切です。
5.まとめ
アプリの脆弱性と異なり、
OSの脆弱性はアプリの制作者がアプリをリリース後に対応することは非常に難しいです。
というのも、アプリはインストールされる一般消費者のデバイスの状況に依存してしまいます。
いくらアプリ制作時に脆弱性を作らないように気を付けても
デバイス側の条件次第では脆弱性が発生してしまいます。
ですが、その危険性を知り対応を学ぶことで、
少しでも危険性を減らすことが何より重要だと思います。
一般消費者の方々はOSの脆弱性といった専門的な内容に触れることは少ないので、
アプリ制作者の責任としてユーザー・会社を攻撃から守るために意識と行動が重要です。
出典
※1:総務省 国民のための情報セキュリティサイト『脆弱性とは?』※更新日記載なし
https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/risk/11.html
※2:IPA情報処理推進機構『「W32/MSBlaster」ワームに関する情報』最終更新日:2004年 2月25日https://www.ipa.go.jp/security/topics/newvirus/msblaster.html
※3:Eclypsium『There’s a Hole in the Boot』最新子更新日:2020年7月29日
https://eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/