SELinux解析

メモ

昨日の高速化実現のため、ソース解析。メモ。 open時のパーミッションチェック 前も調べた気もするが。 security_inode_permission というLSMで行われるようだ。 どうよばれるかというと、 may_open -> vfs_permission -> permission -> security_inode_perm…

SELinuxパーミッションドキュメントについてコメントがきた。 netlink_audit_socketに関するパーミッションはLauSのためにあると書いてたが、CAPP auditing systemのためのものと指摘された。修正。 Linux Auditing Systemについての勘違い LauSとLinuxカー…

アクセスベクタprocess:siginhについて。 「シグナルハンドラの継承」を許可したりするものだが, そもそも「シグナルハンドラの継承」はどうなってたっけ? と検証。 一見すべての場合継承されるように思えたが… ●結論:exec時には,シグナルハンドラは継承…

sethostname

「sethostname」の調査。 知りたいのは,「sethostname」の制限が/proc/sys/kernel/hostname へのアクセス制御で実現できるか。以下が,sethostnameのソース。 1513 asmlinkage long sys_sethostname(char __user *name, int len) 1514 { 1515 int errno; 15…

Capability CAP_SYS_ADMIN lxrでCAP_SYS_ADMINを改めて検索(これは,普通のLinuxにもありますよ)。 やっぱ分からん。 色んなドライバにまで入っている。 「ドライバまたはカーネルサブシステムの開発者」が,「なんとなくこの操作は危険だ(ioctlの中に入っ…

無駄なパーミッション

id:himainu:20051104の続き SELinuxには意味が重なるアクセスベクタ定義が沢山ある。 これらをうまく整理すれば,設定要素を減らせる。 旧バージョンのPolicy Editorでは, 私の経験と勘に基づき,設定要素を減らしてましたが(適当だ…), 今改めて考え直し…

capability sys_tty_config capabilityのsys_tty_config(CAP_SYS_TTY_CONFIG)が気になるので,もう少し調べる。 man capabilitiesによると, vhangupシステムコールの利用を制限するとのことだった。 man 2 vhangupを見てもよく分からんので,実際に検証コー…

アクセスベクタ解析結果のドラフトを http://seedit.sourceforge.net/doc/access_vectors.pdf に置いときます。スペルチェックもしてませんので,英語滅茶苦茶です。 #スペルチェック環境が整ってるマシンが,今使えなくなってて… 今気づいたのですが, late…

ようやく全アクセスベクタの解析が終わった…疲れた。 学校向けにlatexでレポート書いてますが,そのうち公開しようと思います。

オブジェクトクラスprocessのアクセスベクタのうち分かりにくいもの。 前提知識:fork,cloneで何が継承されるか ソース見てもいいけど, http://www.linux.or.jp/JM/html/LDP_man-pages/man2/clone.2.html を見たほうが早い。 fork,cloneともファイルディス…

netlinkソケットの解析

netlinkソケットは,ユーザ→カーネルの通信のために使われる。普通のread, writeアクセスベクタのチェックのほかにさらに詳細なチェックが行われる。特に,オブジェクトクラス「netlink_audit_socket(Linux Auditing System(LauS)と通信するためのnetlinkソ…

ドメイン遷移の解析。

今日はオブジェクトクラスprocess関連の解析。 これに先立って,ドメインがどんなふうにSELinuxに割り当てられるか解析しておく必要があった。 ドメイン遷移の仕組み ドメイン遷移は, do_execv(execシステムコールの本体)の中で起こる。 do_execvの動作の…

解析日記になってきたので分かりやすさのため「SELinux解析」トピックを作る。 最近思うのは,アクセスベクタの意味を調べる場合, ソース解析にミスがある可能性があるので, 本当は,検証コードを書かなければと思う。 #またはSmalley氏に聞くのが一番早…

ソケット関連アクセスベクタの間違い id:himainu:20051017で間違い。 「ioctl, append, lock, setattr」は使われている。 またSmalley氏にMLで教えてもらった… ソケットは,ファイルディスクリプタ経由で扱われるが, ファイルディスクリプタに各種システム…

Capability audit_writeとaudit_controlの解析

まずは結論から。 audit_writeの意味: ユーザスペースのAVCのログをカーネルに送る(拒否,許可されてもログ出ない) audit_controlの意味: LAuS(Linux Auditing System)の設定を変えるために必要(拒否,許可されてもログでない) /proc/self/loginuidの…

今日もひたすらアクセスベクタの解析。 ほとんど自分用メモ。 ネットワークとプロセス間通信の制御でSELinuxができること このところの解析のまとめ。 TCP/IP通信 ドメイン間通信の制御は(直接の形では)できない ソケットの利用許可・不許可自体の制御は可…

どこまでも続くアクセスベクタ解析。 オブジェクトクラスnode, netif 意味はアクセスベクタ名のまま。 一つ,netifの「enforce_dest」は使われてない。 IPC関連のオブジェクトクラスの意味。 shm, msgq, semはそのまま,プロセス間通信の共有メモリ,メッセ…

今日もアクセスベクタ解析。ソケット関連の解析がようやく終わった。 使われてないアクセスベクタ ソケット全般 ioctl, append, lock, relabelfrom, relabelto, recvfrom,setattr(前書いたのはsetattrが抜け) unix_stream_socket newconn, acceptfrom tcp_s…

全アクセスベクタ解析続き。

寝る前の日課 ソケット関連アクセスベクタの注意 昨日今日はソケット関連。昔MLで書いたが,TCP,UDPソケットを使ったドメイン間通信の制御はできないのに注意。TCP,UDPソケットの利用を全部禁止,はできるのだが。UNIXドメインソケットの場合「connect」のドメ…

全アクセスベクタの解析中。 「実は利用不能なアクセスベクタ」があることに気づく。 例えば,「swapon」。 swaponは,swaponコール時にチェックされるアクセスベクタである(理論上)。 swaponを実験してみた。 ファイルhogeに対して, mkswap hoge swapon …