PGPでメールを暗号化して送信してみた

PGPとはメールの暗号化に用いられる公開鍵暗号ソフトウェアでの1つであり、企業などでのメール交換などに利用されているらしいです。

詳しい仕組みについてはこちらのサイトで解説されています。

1分でわかるPGP - 村川猛彦

今回はPGP鍵を利用してIPAにあるサイトの脆弱性の報告をしてみました。

続きを読む

オープンセミナー岡山2014に行ってきた #OSO2014

オープンセミナー岡山という勉強会へ行ってきました。

よくオープンセミナー(OS*)とオープンソースカンファレンス(OSC)の違いが分かりづらいという話を聞きますがオープンセミナーは民営でオープンソースカンファレンスは株式会社びぎねっとという企業が主催しているIT勉強会だそうです。

というわけで大都会岡山へ行ってきました。

発表内容

オープンセミナー2014@岡山 まとめ #oso2014 - Togetterまとめ

テーマは「フロントエンドとサーバーサイド」でした。

IT系の発表の他にデザイナー視点でのソフトウェア開発についての発表もあり、今まで意識することの無かった考え方を取り入れる良い機会になりました。

 

懇親会での感想は広島と比べて岡山ではLTのネタ枠に力を入れている印象でした。(ネタ枠は大事)

 

岡山は広島とはまた違った雰囲気があり、新しい人たちとも知り合うことも出来た為、良い刺激になりました。

ドメインが凍結されたお話 [すごい広島51]

すごい広島 #51に参加しました。

すごい広島というのは広島のエンジニアやウェブデザイナーが毎週集まって、 もくもくと作業をしたり読書をしたりしてコミュニケーションの輪を広げる集まりです。

今回のやることリスト

今回はICANNドメイン(nemumu.com)を凍結されてしまったお話です。

 

続きを読む

カーネルモジュールでキーロガー [LT駆動開発 03]

LT駆動開発 03 - ひとりでもライトニングトークができるか」に参加してきました。

LT駆動開発というのは参加者がお互いにLT(ライトニングトーク)をしてまさかりを投げたり投げられたりする事で発表者も含む参加者全員で学ぼうという勉強会です。

LTの内容AWS-S3をHaskellで叩いてみた話やサーバのアクセスログ解析ツールを開発した話やFireChatというP2Pチャットアプリなど様々なジャンルの発表がありました。

 

今回僕が発表したLTの内容は「カーネルモジュールでキーロガー」です。

尚、サンプルプログラムはGitHubにてダウンロードが可能です。

内容はスライドの通りですが、今回は時間が限られていたため一部説明できなかった内容も含めて少し補足説明を加えておきます。

 

ライセンス汚染

Linuxカーネル自体がGPLライセンスで作成されているため、それを用いたカーネルモジュールもGPLライセンスとなります。ライセンスをBSDにしたり、ライセンスを指定しないとコンパイルエラーになります。

 

カーネルモジュールの導入

insmodでカーネルモジュールの挿入・rmmodで除去が可能です。また、lsmodで現在挿入されているカーネルモジュールの列挙ができます。

今回提示したプログラムだとinsmod logger.koなどで挿入できます。

 

導入されているカーネルソースコードを使う理由

カーネルモジュールにカーネル自体の一部機能を組み込む形となるため、カーネルソースコードが必要となります。

また、カーネルモジュール内部にターゲットカーネルのバージョンが格納されていて、異なるバージョンのカーネルには挿入できないようになっています。

(arm-linux-gnueabiなどのクロスコンパイラを使えば他環境へ移動しても稼働するという噂を聞いたことがありますが未検証です)

カーネルソースコード

CentOSではyum kernel-devel

Ubuntuではapt-get install kernel-sourcecode?

などで取得できます。

サンプルプログラムではMakefileカーネルソースのディレクトリを指定します。

 

セキュリティ対策

カーネルモジュールはカーネルランドで稼働するため、システムの乗っ取りなどが行われると恐ろしい事になります。実運用ではセキュリティ対策・例外処理が非常に重要です。

 

LT駆動開発はほぼ毎月開催予定ですが、ネタ系から技術系まで幅広いジャンルを和やかに受け入れてくれる雰囲気なので興味があれば参加してみてください。