SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Fourteenforty Research Institute, Inc.
1
Fourteenforty Research Institute, Inc.
システムコールフックを使用した攻撃検出
Fourteenforty Research Institute, Inc.
株式会社 フォティーンフォティー技術研究所
http://www.fourteenforty.jp
取締役技術担当 金居 良治
Fourteenforty Research Institute, Inc.
2
お題目
• System Call について
• System Call Protection
• System Call Hook
• 考察
Fourteenforty Research Institute, Inc.
3
System Call とは?
User App
Kernel
ユーザ アプリケーションからカーネル
のサービスルーチンを呼び出す
User App
Disk I/O
Network I/O
Etc…
・・・
Fourteenforty Research Institute, Inc.
4
System Call 実装方法 (i386)
• INT (Linux, FreeBSD, Windows 2000)
割り込み
• SYSENTER (Linux?, Windows XP)
高速システムコール
Fourteenforty Research Institute, Inc.
5
INT による System Call の実装概略図
…
syscall:
…
…
IRET
…
…
INT 0x80
… User
Kernel
EAX: …
EBX:…
…
IDTR: ????
…
CPU
番号 … アドレス
0x00 … …
… … …
0x80 … syscall
Interrupt Descriptor Table(IDT)
• INT = 割り込み
• 感覚的には関数
(ホントはもっといろいろやってます)
Fourteenforty Research Institute, Inc.
6
INT による System Call の特徴
• IDTというメモリ領域に割り込みハンドラのア
ドレスがある
• Windows でも 2000 以前は INT を使用
• trap gate(FreeBSD), interrupt gate(Linux)
という2種類のバリエーションがある
Fourteenforty Research Institute, Inc.
7
SYSENTER の動作概略図
…
syscall:
…
…
SYSEXIT
…
…
SYSENTER
… User
Kernel
EAX: …
…
SYSENTER*MSR: ????
SYSENTER*MSR: ????
SYSENTER*MSR: ????
…
CPU
• System Call 用に特化、高速化してある
(ホントはもっといろいろやってます)
Fourteenforty Research Institute, Inc.
8
SYSENTER による System Call の特徴
• INTのような冗長なチェックが無く、メモリアク
セスも無いので高速
• Pentium II で登場した命令
• Windows XP以降(Linuxも?)はこっち
• ここら辺の挙動が詳しく知りたい人は Intel の
ページへ
Fourteenforty Research Institute, Inc.
9
System Call で遊んでみよう!
• 以外と簡単
• System Call Protection というのを考案
• FreeBSD でカーネルモジュールとして実装
• アーキテクチャは i386 に限定
Fourteenforty Research Institute, Inc.
10
攻撃に System Call が利用される例
Local Buffer
Return Address
Shell Code
...
…
INT 0x80
…
overwrite
Stack• 例として、スタックベースのバッファ
オーバーフローについて検討
• だいたいシェルコード内でシステム
コールを使用する
• これが禁止できれば、シェルコード
が実行できても被害は最小に
• OpenBSD の W^X みたいなやつ
Fourteenforty Research Institute, Inc.
11
スタック上でのコード実行は禁止できるか
• 一部の例外を除いてスタック上でコードを実
行するようなコードは不要
• OpenBSD は出来てる
• i386では出来ないOSが多い(Windowsとか)
• FreeBSD i386 も出来ない
Fourteenforty Research Institute, Inc.
12
System Call Protection
Shell Code
...
INT 0x80
…
• 書き込み属性のあるメモリ領域か
ら System Call の呼び出しを禁止
• 呼び出し元のアドレスはスタック上
にあるので、これを調べる
• コード領域に書き込み属性が設定
されていない事を利用
• スタック/ヒープベースのオーバーフ
ローが発生しても、悪用が困難に
Int0x80_syscall
...
Check called addr
…
User
Kernel
メモリの
属性チェック
Fourteenforty Research Institute, Inc.
13
メモリの属性(パーミッション)
• FreeBSD では ports の pmap を使用して、
メモリの属性をチェックできる
Fourteenforty Research Institute, Inc.
14
System Call Hook の方法
…
syscall:
…
…
IRET
…
…
INT 0x80
… User
Kernel
EAX: …
EBX:…
…
IDTR: ????
…
CPU
番号 … アドレス
0x00 … …
… … …
0x80 … syscall
Interrupt Descriptor Table(IDT)
Fourteenforty Research Institute, Inc.
15
System Call Hook の方法
…
syscall:
…
…
IRET
…
…
INT 0x80
… User
Kernel
EAX: …
EBX:…
…
IDTR: ????
…
CPU
番号 … アドレス
0x00 … …
… … …
0x80 … syscall
Interrupt Descriptor Table(IDT) コード書き換え
IDTR変更
割り込みハンド
ラの書き換え
Fourteenforty Research Institute, Inc.
16
割り込みハンドラのアドレスを書き換える
• カーネルモジュールとしての実装が可能
• 簡単 (setidt()を呼ぶだけ)
setidt(IDT_SYSCALL, &IDTVEC(my_int0x80_syscall), SDT_SYS386TGT,
SEL_UPL, GSEL(GCODE_SEL, SEL_KPL));
• ユーザ側からすれば、カーネルの再ビルドが
不要なので、手軽に試すことが出来る
→ コンセプトコードに最適!
Fourteenforty Research Institute, Inc.
17
実行した様子
System Call Protection
On
System Call Protection
Off
スタック/ヒープ上で
System Call が呼べない!
Fourteenforty Research Institute, Inc.
18
パフォーマンス – その1
• 10秒間に何回 getpid() を呼べるか計測
• System Call によるオーバーヘッドを計測
• 7.7% のパフォーマンス低下
System Call Protect
無効 有効 パフォーマンス
24,059,220 22,195,394 92.3%
Fourteenforty Research Institute, Inc.
19
パフォーマンス – その2
• ab(apache benchmark) で1秒あたりに処理
できるリクエスト数を計測
• ab -n 10000 –c 5 http://target:80/
• 3.1% のパフォーマンス低下
System Call Protect
無効 有効 パフォーマンス
873.7 847.0 96.9%
Fourteenforty Research Institute, Inc.
20
パフォーマンスまとめ
• 実際のアプリケーションでは 3~7%程度のパ
フォーマンス低下が予想される
• ターゲットを vmware 上で動かしたので、値は
不正確かも
• connect()やexec()等の危険なSystem Callが
呼ばれた時のみチェックをするようにすれば、
比較的、安全なまま高速化が可能
Fourteenforty Research Institute, Inc.
21
考察
• OpenBSD W^X を実装すれば済む話
• ただし、mips 等では実装が不可能。そういった
環境では役に立つかも
• バイパスする方法があるが、ASLR 等の他のセ
キュリティ機能と組み合わせる事で防御できる
• いろいろ応用が可能
Fourteenforty Research Institute, Inc.
22
ありがとうございました
Fourteenforty Research Institute, Inc.
株式会社 フォティーンフォティー技術研究所
http://www.fourteenforty.jp
取締役技術担当 金居 良治
kanai@fourteenforty.jp

Más contenido relacionado

La actualidad más candente

Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Akira Nakagawa
 
Androidの入力システム
Androidの入力システムAndroidの入力システム
Androidの入力システム
magoroku Yamamoto
 
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
abend_cve_9999_0001
 

La actualidad más candente (20)

/etc/network/interfaces について
/etc/network/interfaces について/etc/network/interfaces について
/etc/network/interfaces について
 
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告
 
Takalab 勉強会#01 - Kali Linux 環境構築
Takalab 勉強会#01 - Kali Linux 環境構築Takalab 勉強会#01 - Kali Linux 環境構築
Takalab 勉強会#01 - Kali Linux 環境構築
 
Androidの入力システム
Androidの入力システムAndroidの入力システム
Androidの入力システム
 
mTCP使ってみた
mTCP使ってみたmTCP使ってみた
mTCP使ってみた
 
PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
 
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
 
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリングctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
 
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017 2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
 

Destacado

A Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization TechnologyA Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization Technology
FFRI, Inc.
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64
FFRI, Inc.
 
最新ポートスキャン対策
最新ポートスキャン対策最新ポートスキャン対策
最新ポートスキャン対策
FFRI, Inc.
 

Destacado (8)

Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
 
A Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization TechnologyA Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization Technology
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64
 
Inside Winnyp
Inside WinnypInside Winnyp
Inside Winnyp
 
OSb: OSv on BitVisor
OSb: OSv on BitVisorOSb: OSv on BitVisor
OSb: OSv on BitVisor
 
最新ポートスキャン対策
最新ポートスキャン対策最新ポートスキャン対策
最新ポートスキャン対策
 
Mr201401 consideration for indicators of malware likeness based on static fil...
Mr201401 consideration for indicators of malware likeness based on static fil...Mr201401 consideration for indicators of malware likeness based on static fil...
Mr201401 consideration for indicators of malware likeness based on static fil...
 
Cisco Connect Japan 2014:Cisco ASA 5500-X 次世代ファイアウォールの機能と、安定導入・運用方法
Cisco Connect Japan 2014:Cisco ASA 5500-X 次世代ファイアウォールの機能と、安定導入・運用方法Cisco Connect Japan 2014:Cisco ASA 5500-X 次世代ファイアウォールの機能と、安定導入・運用方法
Cisco Connect Japan 2014:Cisco ASA 5500-X 次世代ファイアウォールの機能と、安定導入・運用方法
 

Similar a システムコールフックを使用した攻撃検出

ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPSハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
FFRI, Inc.
 
Fighting advanced malware using machine learning (Japanese)
Fighting advanced malware using machine learning (Japanese)Fighting advanced malware using machine learning (Japanese)
Fighting advanced malware using machine learning (Japanese)
FFRI, Inc.
 
システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009
システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009
システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009
Tsukasa Oi
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Panda Yamaki
 
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
CODE BLUE
 
Mr201303 trust zone
Mr201303 trust zoneMr201303 trust zone
Mr201303 trust zone
FFRI, Inc.
 
Mr201305 tizen security_jpn
Mr201305 tizen security_jpnMr201305 tizen security_jpn
Mr201305 tizen security_jpn
FFRI, Inc.
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
Yoshihisa Ozaki
 
Android: 設計上の技術的な問題点
Android: 設計上の技術的な問題点Android: 設計上の技術的な問題点
Android: 設計上の技術的な問題点
FFRI, Inc.
 

Similar a システムコールフックを使用した攻撃検出 (20)

FFR EXCALOC
FFR EXCALOCFFR EXCALOC
FFR EXCALOC
 
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPSハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
 
Fighting advanced malware using machine learning (Japanese)
Fighting advanced malware using machine learning (Japanese)Fighting advanced malware using machine learning (Japanese)
Fighting advanced malware using machine learning (Japanese)
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
 
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護
 
システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009
システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009
システムレジスタの不足と2つのシンプルなアンチフォレンジック攻撃 - AVTokyo 2009
 
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
 
4章 Linuxカーネル - 割り込み・例外 4
 4章 Linuxカーネル - 割り込み・例外 4 4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4
 
debugging server with strace
debugging server with stracedebugging server with strace
debugging server with strace
 
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
 
Mr201303 trust zone
Mr201303 trust zoneMr201303 trust zone
Mr201303 trust zone
 
Mr201305 tizen security_jpn
Mr201305 tizen security_jpnMr201305 tizen security_jpn
Mr201305 tizen security_jpn
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
 
Android: 設計上の技術的な問題点
Android: 設計上の技術的な問題点Android: 設計上の技術的な問題点
Android: 設計上の技術的な問題点
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
 

Más de FFRI, Inc.

Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARMAppearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
FFRI, Inc.
 
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARMAppearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
FFRI, Inc.
 

Más de FFRI, Inc. (20)

Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARMAppearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
 
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARMAppearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
 
TrustZone use case and trend (FFRI Monthly Research Mar 2017)
TrustZone use case and trend (FFRI Monthly Research Mar 2017) TrustZone use case and trend (FFRI Monthly Research Mar 2017)
TrustZone use case and trend (FFRI Monthly Research Mar 2017)
 
Android Things Security Research in Developer Preview 2 (FFRI Monthly Researc...
Android Things Security Research in Developer Preview 2 (FFRI Monthly Researc...Android Things Security Research in Developer Preview 2 (FFRI Monthly Researc...
Android Things Security Research in Developer Preview 2 (FFRI Monthly Researc...
 
An Overview of the Android Things Security (FFRI Monthly Research Jan 2017)
An Overview of the Android Things Security (FFRI Monthly Research Jan 2017) An Overview of the Android Things Security (FFRI Monthly Research Jan 2017)
An Overview of the Android Things Security (FFRI Monthly Research Jan 2017)
 
Black Hat Europe 2016 Survey Report (FFRI Monthly Research Dec 2016)
Black Hat Europe 2016 Survey Report (FFRI Monthly Research Dec 2016) Black Hat Europe 2016 Survey Report (FFRI Monthly Research Dec 2016)
Black Hat Europe 2016 Survey Report (FFRI Monthly Research Dec 2016)
 
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
 
STRIDE Variants and Security Requirements-based Threat Analysis (FFRI Monthly...
STRIDE Variants and Security Requirements-based Threat Analysis (FFRI Monthly...STRIDE Variants and Security Requirements-based Threat Analysis (FFRI Monthly...
STRIDE Variants and Security Requirements-based Threat Analysis (FFRI Monthly...
 
Introduction of Threat Analysis Methods(FFRI Monthly Research 2016.9)
Introduction of Threat Analysis Methods(FFRI Monthly Research 2016.9)Introduction of Threat Analysis Methods(FFRI Monthly Research 2016.9)
Introduction of Threat Analysis Methods(FFRI Monthly Research 2016.9)
 
Black Hat USA 2016 Survey Report (FFRI Monthly Research 2016.8)
Black Hat USA 2016  Survey Report (FFRI Monthly Research 2016.8)Black Hat USA 2016  Survey Report (FFRI Monthly Research 2016.8)
Black Hat USA 2016 Survey Report (FFRI Monthly Research 2016.8)
 
About security assessment framework “CHIPSEC” (FFRI Monthly Research 2016.7)
About security assessment framework “CHIPSEC” (FFRI Monthly Research 2016.7) About security assessment framework “CHIPSEC” (FFRI Monthly Research 2016.7)
About security assessment framework “CHIPSEC” (FFRI Monthly Research 2016.7)
 
Black Hat USA 2016 Pre-Survey (FFRI Monthly Research 2016.6)
Black Hat USA 2016 Pre-Survey (FFRI Monthly Research 2016.6)Black Hat USA 2016 Pre-Survey (FFRI Monthly Research 2016.6)
Black Hat USA 2016 Pre-Survey (FFRI Monthly Research 2016.6)
 
Black Hat Asia 2016 Survey Report (FFRI Monthly Research 2016.4)
Black Hat Asia 2016 Survey Report (FFRI Monthly Research 2016.4)Black Hat Asia 2016 Survey Report (FFRI Monthly Research 2016.4)
Black Hat Asia 2016 Survey Report (FFRI Monthly Research 2016.4)
 
ARMv8-M TrustZone: A New Security Feature for Embedded Systems (FFRI Monthly ...
ARMv8-M TrustZone: A New Security Feature for Embedded Systems (FFRI Monthly ...ARMv8-M TrustZone: A New Security Feature for Embedded Systems (FFRI Monthly ...
ARMv8-M TrustZone: A New Security Feature for Embedded Systems (FFRI Monthly ...
 
CODE BLUE 2015 Report (FFRI Monthly Research 2015.11)
CODE BLUE 2015 Report (FFRI Monthly Research 2015.11)CODE BLUE 2015 Report (FFRI Monthly Research 2015.11)
CODE BLUE 2015 Report (FFRI Monthly Research 2015.11)
 
Latest Security Reports of Automobile and Vulnerability Assessment by CVSS v3...
Latest Security Reports of Automobile and Vulnerability Assessment by CVSS v3...Latest Security Reports of Automobile and Vulnerability Assessment by CVSS v3...
Latest Security Reports of Automobile and Vulnerability Assessment by CVSS v3...
 
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
 
A Survey of Threats in OS X and iOS(FFRI Monthly Research 201507)
A Survey of Threats in OS X and iOS(FFRI Monthly Research 201507)A Survey of Threats in OS X and iOS(FFRI Monthly Research 201507)
A Survey of Threats in OS X and iOS(FFRI Monthly Research 201507)
 
Security of Windows 10 IoT Core(FFRI Monthly Research 201506)
Security of Windows 10 IoT Core(FFRI Monthly Research 201506)Security of Windows 10 IoT Core(FFRI Monthly Research 201506)
Security of Windows 10 IoT Core(FFRI Monthly Research 201506)
 
Trend of Next-Gen In-Vehicle Network Standard and Current State of Security(F...
Trend of Next-Gen In-Vehicle Network Standard and Current State of Security(F...Trend of Next-Gen In-Vehicle Network Standard and Current State of Security(F...
Trend of Next-Gen In-Vehicle Network Standard and Current State of Security(F...
 

システムコールフックを使用した攻撃検出

  • 1. Fourteenforty Research Institute, Inc. 1 Fourteenforty Research Institute, Inc. システムコールフックを使用した攻撃検出 Fourteenforty Research Institute, Inc. 株式会社 フォティーンフォティー技術研究所 http://www.fourteenforty.jp 取締役技術担当 金居 良治
  • 2. Fourteenforty Research Institute, Inc. 2 お題目 • System Call について • System Call Protection • System Call Hook • 考察
  • 3. Fourteenforty Research Institute, Inc. 3 System Call とは? User App Kernel ユーザ アプリケーションからカーネル のサービスルーチンを呼び出す User App Disk I/O Network I/O Etc… ・・・
  • 4. Fourteenforty Research Institute, Inc. 4 System Call 実装方法 (i386) • INT (Linux, FreeBSD, Windows 2000) 割り込み • SYSENTER (Linux?, Windows XP) 高速システムコール
  • 5. Fourteenforty Research Institute, Inc. 5 INT による System Call の実装概略図 … syscall: … … IRET … … INT 0x80 … User Kernel EAX: … EBX:… … IDTR: ???? … CPU 番号 … アドレス 0x00 … … … … … 0x80 … syscall Interrupt Descriptor Table(IDT) • INT = 割り込み • 感覚的には関数 (ホントはもっといろいろやってます)
  • 6. Fourteenforty Research Institute, Inc. 6 INT による System Call の特徴 • IDTというメモリ領域に割り込みハンドラのア ドレスがある • Windows でも 2000 以前は INT を使用 • trap gate(FreeBSD), interrupt gate(Linux) という2種類のバリエーションがある
  • 7. Fourteenforty Research Institute, Inc. 7 SYSENTER の動作概略図 … syscall: … … SYSEXIT … … SYSENTER … User Kernel EAX: … … SYSENTER*MSR: ???? SYSENTER*MSR: ???? SYSENTER*MSR: ???? … CPU • System Call 用に特化、高速化してある (ホントはもっといろいろやってます)
  • 8. Fourteenforty Research Institute, Inc. 8 SYSENTER による System Call の特徴 • INTのような冗長なチェックが無く、メモリアク セスも無いので高速 • Pentium II で登場した命令 • Windows XP以降(Linuxも?)はこっち • ここら辺の挙動が詳しく知りたい人は Intel の ページへ
  • 9. Fourteenforty Research Institute, Inc. 9 System Call で遊んでみよう! • 以外と簡単 • System Call Protection というのを考案 • FreeBSD でカーネルモジュールとして実装 • アーキテクチャは i386 に限定
  • 10. Fourteenforty Research Institute, Inc. 10 攻撃に System Call が利用される例 Local Buffer Return Address Shell Code ... … INT 0x80 … overwrite Stack• 例として、スタックベースのバッファ オーバーフローについて検討 • だいたいシェルコード内でシステム コールを使用する • これが禁止できれば、シェルコード が実行できても被害は最小に • OpenBSD の W^X みたいなやつ
  • 11. Fourteenforty Research Institute, Inc. 11 スタック上でのコード実行は禁止できるか • 一部の例外を除いてスタック上でコードを実 行するようなコードは不要 • OpenBSD は出来てる • i386では出来ないOSが多い(Windowsとか) • FreeBSD i386 も出来ない
  • 12. Fourteenforty Research Institute, Inc. 12 System Call Protection Shell Code ... INT 0x80 … • 書き込み属性のあるメモリ領域か ら System Call の呼び出しを禁止 • 呼び出し元のアドレスはスタック上 にあるので、これを調べる • コード領域に書き込み属性が設定 されていない事を利用 • スタック/ヒープベースのオーバーフ ローが発生しても、悪用が困難に Int0x80_syscall ... Check called addr … User Kernel メモリの 属性チェック
  • 13. Fourteenforty Research Institute, Inc. 13 メモリの属性(パーミッション) • FreeBSD では ports の pmap を使用して、 メモリの属性をチェックできる
  • 14. Fourteenforty Research Institute, Inc. 14 System Call Hook の方法 … syscall: … … IRET … … INT 0x80 … User Kernel EAX: … EBX:… … IDTR: ???? … CPU 番号 … アドレス 0x00 … … … … … 0x80 … syscall Interrupt Descriptor Table(IDT)
  • 15. Fourteenforty Research Institute, Inc. 15 System Call Hook の方法 … syscall: … … IRET … … INT 0x80 … User Kernel EAX: … EBX:… … IDTR: ???? … CPU 番号 … アドレス 0x00 … … … … … 0x80 … syscall Interrupt Descriptor Table(IDT) コード書き換え IDTR変更 割り込みハンド ラの書き換え
  • 16. Fourteenforty Research Institute, Inc. 16 割り込みハンドラのアドレスを書き換える • カーネルモジュールとしての実装が可能 • 簡単 (setidt()を呼ぶだけ) setidt(IDT_SYSCALL, &IDTVEC(my_int0x80_syscall), SDT_SYS386TGT, SEL_UPL, GSEL(GCODE_SEL, SEL_KPL)); • ユーザ側からすれば、カーネルの再ビルドが 不要なので、手軽に試すことが出来る → コンセプトコードに最適!
  • 17. Fourteenforty Research Institute, Inc. 17 実行した様子 System Call Protection On System Call Protection Off スタック/ヒープ上で System Call が呼べない!
  • 18. Fourteenforty Research Institute, Inc. 18 パフォーマンス – その1 • 10秒間に何回 getpid() を呼べるか計測 • System Call によるオーバーヘッドを計測 • 7.7% のパフォーマンス低下 System Call Protect 無効 有効 パフォーマンス 24,059,220 22,195,394 92.3%
  • 19. Fourteenforty Research Institute, Inc. 19 パフォーマンス – その2 • ab(apache benchmark) で1秒あたりに処理 できるリクエスト数を計測 • ab -n 10000 –c 5 http://target:80/ • 3.1% のパフォーマンス低下 System Call Protect 無効 有効 パフォーマンス 873.7 847.0 96.9%
  • 20. Fourteenforty Research Institute, Inc. 20 パフォーマンスまとめ • 実際のアプリケーションでは 3~7%程度のパ フォーマンス低下が予想される • ターゲットを vmware 上で動かしたので、値は 不正確かも • connect()やexec()等の危険なSystem Callが 呼ばれた時のみチェックをするようにすれば、 比較的、安全なまま高速化が可能
  • 21. Fourteenforty Research Institute, Inc. 21 考察 • OpenBSD W^X を実装すれば済む話 • ただし、mips 等では実装が不可能。そういった 環境では役に立つかも • バイパスする方法があるが、ASLR 等の他のセ キュリティ機能と組み合わせる事で防御できる • いろいろ応用が可能
  • 22. Fourteenforty Research Institute, Inc. 22 ありがとうございました Fourteenforty Research Institute, Inc. 株式会社 フォティーンフォティー技術研究所 http://www.fourteenforty.jp 取締役技術担当 金居 良治 kanai@fourteenforty.jp