Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

カーネルモジュールでキーロガー

2,178 views

Published on

LTDD #03 で発表した資料です。

Published in: Software
  • Be the first to comment

カーネルモジュールでキーロガー

  1. 1. カーネルモジュールで キーロガー 2014/05/03 LTDD #03 ねむねむ@nemumupoyo
  2. 2. HN:ねむねむ 情報系の学生です Twitter:@nemumupoyo
  3. 3. タイトルが釣りっぽい と思った人
  4. 4. 正解です (概要が多め)
  5. 5. カーネルモジュールとは?
  6. 6. カーネルモジュールとは • カーネルの拡張を目的としたモジュール ! • カーネルランドで動作する ! • procファイルを介して入力を行う ! • 活用例:NAT箱やデバイスドライバなど
  7. 7. ざっくりとした説明 カーネルランド ユーザランド (保護領域) カーネルモジュール ハードウェア
  8. 8. ざっくりとした説明 カーネルランド ユーザランド (保護領域) カーネルモジュール ハードウェア 落ちる = カーネルパニック
  9. 9. メリット • カーネルの再コンパイルが不要 ! • システムコールフックが可能 ! • L3レベルでの操作が可能 (ネットワーク) ! • ひっそりうっかり入れても気づきにくい
  10. 10. デメリット • コンパイル時にカーネルのソースが必要 ! • ライセンスの汚染問題 ! • メモリ常駐による負荷 ! • 動的リンクができない ! • 依存関係が大変
  11. 11. キーロガーとは?
  12. 12. キーロガーとは • キー入力を監視・記録するプログラム ! • 外部への送信機能を持つことが多い ! • Linuxでのキーロガーには2種類ある • システムコールフック (今回はこっち) • ttyから読み取る
  13. 13. ttyとは? • キャラクタ端末 (SSHなどのptsはttyの疑似端末) [root@lab6 ~]# hexdump /dev/input/event3 0000000 bc29 5363 0000 0000 d028 0002 0000 0000 0000010 0004 0004 0002 0000 bc29 5363 0000 0000 0000020 d034 0002 0000 0000 0001 0002 0001 0000 0000030 bc29 5363 0000 0000 d035 0002 0000 0000 0000040 0000 0000 0100 0000 bc29 5363 0000 0000 0000050 5872 0003 0000 0000 0004 0004 0002 0000 0000060 bc29 5363 0000 0000 587f 0003 0000 0000 0000070 0001 0002 0000 0000 bc29 5363 0000 0000 0000080 5880 0003 0000 0000 0000 0000 0000 0000 (/usr/include/linux/input.hで定義)
  14. 14. システムコールをフックしてみる
  15. 15. プログラム
  16. 16. まとめ • UDP送信機能を付けたかった ! • 低レイヤーを操作する際には便利 ! • サンプルコードが少ない ! • 低レイヤーだとカーネルコンパイルが必要
  17. 17. ご静聴ありがとうございました @nemumupoyo

×