ウェブアプリケーション,インジェクション,コマンドインジェクション

androidのカーネルシステム、logcatについて

カーネル、システム、アプリケーションのログ

フォレンジック分析をする人と、セキュリティエンジニアが、
調査や監査に関する情報とファイルの位置を見つけ出せるエリアは、
標準的なLinuxファイルシステムです。
あいにく、このエリアはかなり広範囲で圧倒されるかもしれません。
ですが、関連している情報を探し始めるポイントくらいはあります。
ログファイルとデバッギングには一般的な方法と、
より効果の上がる方法の2つがあり、
開発者や管理者が、それらのアプリとシステム両方を
メンテナンスするのに使われます。
この方法はシステムがアプリを走らせているのと同じように、
アプリの中をよく観察できるようにしてくれます。
一方で、これはすべてに当てはまるわけではなく、
アプリを深く洞察できない場合には、
様々なログとデバッグファイルを単純に試験することで、
Androidデバイスから重要な情報を少しずつ収集することができます。


Linuxカーネルログ

Linuxのカーネルはローレベル、LinuxのOSは抽象的なインターフェースで、
デバイスのハードウェアにアクセスできるようになります。。
Linuxのカーネルの役割がデバイスのすべての機能の中心を
担うようになってから、
コンピュータ上で起こるイベントと動作を記録する能力に、
かなり影響されるようになりました。
カーネルログは、dmegコマンドをつかうことで、
Linuxデバイス(今のところAndroidデバイスも)にアクセスできます。
このコマンドで利用できるすべてのカーネルメッセージを
コンソールに表示されます。
入力するコマンドは、
$ dmesg(カーネルメッセージ一覧が表示されます。)

表示されたメッセージを見ると気づくかもしれませんが、
そのデータはかなり冗長で、ローレベルです。
しかし、このデータは重要なタイムスタンプ(時刻)と動作を表してます。
デバイスの起動時の情報と同じくらいの豊富さです。
もし最近デバイスの再起動がなかったとしたら、
デバイスが起動されたときの最初のログは、
もはや使い物にならないでしょう。
このdmesgコマンドは特にデバイス上の許可が必要ではありませんが、
USBでデバッギングをしなければならない場合は別です。
もし、デバイスやエミュレータでこのdmesgコマンドを走らせる場合、
スクリーンにかなりたくさんのデータが通知されてしまうでしょう。
dmesgのコンテンツをwc(word count)と呼ばれるプログラムで、
パイピング(piping | か、sending)し、
行数をカウントするように指示することで、
ログから得られる行数を調べることができます。
入力するコマンドは、
$ adb shell dmesg | wc -l
(行数が表示されます。例、1685)

HTC Incredibleを参照する上で、
例では1685行のカーネルログを得ることになります。
もしカーネルログの情報をもっと細かに、詳しく調べる必要がある場合、
または、リポートにカーネルログを含ませる場合には、
dmesgの出力をファイルに転送することができます。
$ adb shell dmesg > dmesg.log(新しく作るファイル名です。)

dmesg.logをテキストエディタや表示させる他のプログラムで
入手できるカーネルログのコンテンツを見ることができるようになります。


logcat

Androidはいくつかの付加されたデバッギング技術が利用可能です。
その1つのプログラムが、logcatです。
絶え間なくシステムの更新リストと
アプリケーションのデバッグメッセージを表示します。
$ adb shell logcat

このデータが示す小さなログの断片を素早くスキャンします。
●経度と緯度のデータ
●日にち/時間の情報
●アプリケーションの詳細
ロギング(logging)はとても冗長で、ここで提供されているサンプルは、
入手できるものの小さなサンプルになります。
それぞれのログメッセージはメッセージ型インジケータで始まります。

log Method Type
Message TypeDescription
VVerbose
DDebug
IInformation
WWarning
EError
FFatal
SSilent

logcatプログラムもセルラーradioデバッグの全部からの、
ログを提供します。
radioデバッグの内容を表示するには、
$ adb shell logcat -b radio
を入力します。
一方、ロギング(logging)は冗長で、たいていは秘密です。
logcatのデータをスキャンしていくと下記の様な情報が得られます。
●イベントが起こった時間
●やり取りをするために、セルラーモデムで使われるATコマンド
●受信者、サイズ、時間、コード化されたSMSメッセージ
●デバイスのセルラーIPアドレス、ネットワーキング、位置情報
●ワイヤレスキャリアの情報
この情報はとてもローレベルなものですが、
もし、このようなログがリカバリされたら、
ログはデバイスについての重要な情報を示します。

ちょこっと解説
UNIX時間
UNIX時間は、Unix/Linuxのシステムを基盤とするタイムスタンプの
一般的なフォーマットです。
このタイムスタンプは、1970年1月1日から秒単位(または、ミリ秒単位)で
表示される数字の値です。
大抵のタイムスタンプは秒を使い、10桁の数字となり、
一方でミリ秒を使うタイムスタンプは、13桁となります。終わり

logcatにはイベントログを表示する特性があります。
$ adb shell logcat -b events
これもくどいようですが、ここで表示されるイベント情報も
かなり長く冗長的です。
しかし、システムで起こるイベントと違い、
これらのログは非常に多くの情報を含んでいます。
このログにはmmssms.dbがあり、そこにはINSERTとSELECTの両方を
含んでいることがわかります。
このINSERTとSELECTはテキストメッセージを保存する時に使われます。

カーネル、システム、アプリケーションログのつづき
dumpsysのこと

ホーム
便利堂ロゴ
inserted by FC2 system