2008年2月24日日曜日

solarisセキュリティ

■OpemBootのセキュリティレベルを変更
noe
 パスワード必要無し。デフォルトの設定。
command
 bootおよびgoをのぞく全てのコマンドについてパスワードが必要。
full
 goを除く全てのOpenBootコマンドにてパスワードが必要。

<パスワード設定>
・rootでの設定方法
 #eeprom security-passwd
・OpenBootでの設定方法
 ok passwd

<セキュリティモード変更>
・rootでの設定方法
 #eeprom security-mode=command
・OpenBootでの設定方法
 ok setenv security-mode full

■ファイルシステムのセキュリティ
・ファイルの削除はそのファイルので権限ではなく、ファイルが存在するディレクトリの権限に依存する。
・SetUID(SetGID)
 ファイルがプログラムの場合のみ有効。
 たとえ誰がそのプログラムを実行しようと、プログラムが特定のユーザであるように見せる。
 一定のプログラムしか一定の情報にアクセスすることを許可しない場合に有用される。

■ファイルシステム監査ツール
ASET(Automated System Enhancement tool)
 パーミッション設定やシステムファイルの内容をチェックするパッケージ。
 脆弱性を調べ、レポートを出力する。
 リリースメディアに含まれる。(SUNWastパッケージ)
 #pkginfo | grep SUNWast

fuserコマンド
 どのプロセスがファイルを開いているかを確認する。
 PID+状態
 <状態の種類>
  c:プロセスのカレントDIR
  r:プロセスのrootDIR
  o:普通のオープンされているファイル
  m:メモリにマップされているファイル
  t:テキストファイル

■ユーザアカウント、環境
・必要のないPATHは環境変数として設定しない。

・アカウントパスワードパラメータ
 /etc/default/passwd
・rootでの直接ログインを防ぐ
 /etc/default/login
 CONSOLE=/dev/null
・suコマンドのログ
 /etc/default/su
 SULOG=/var/adm/sulog 書き込むログファイルを指定
 SYSLOG=YES syslogにも記録するかどうかを指定
 CONSOLE=/dev/console どのスクリーンにsuのメッセージを表示するか指定
 PATH=/usr/bin: 新しいユーザのシェルのデフォルトパスを指定
 SUPATH=/usr/sbin:/usr/bin rootに変更した場合のパスを指定
・プロンプトへのユーザ名の表示
 .login
 set prompt="`uname -n` #"
・制限つきシェル
 /usr/lib/rsh(Bourneシェル)、/usr/bin/rkshの二つは制限つきシェルが使える。
 ディレクトリの移動ができない、PATH環境変数が変更できない、リダイレクトが使えないなど。

■cronの制御
・/etc/cron.d/cron.allow
 crontabの使用を許可するユーザーリスト
・/etc/cron.d/cron.deny
 crontabの使用を許可しないユーザーリスト
→リストされたユーザーIDでのcronジョブの実行か可能だが、リストの参照、変更処理を行えないため、セキュリティが向上する。

・実行シェル内部に不要なPATHを設定しない。
→コマンド同じファイルを用意し、わざと実行させる(トロイの木馬)攻撃を防ぐ。
 内部で実行するコマンドはひとつひとつ変数として定義する方が安全性が高い!!

■各種システムログ
syslog
・UDP514番を使用する。
loginlog [/var/adm/loginlog]
・ログイン試みが6回失敗するとログを出力。
・/var/adm/loginlogを作成する。
sulog [/var/adm/sulog]
・suコマンドの試みを全て出力。
wtmpx [/var/adm/wtmpx]
・ユーザーのログイン、ログアウト、システム再起動情報を出力。
・lastコマンドにて内容を確認できる。
vold.log [/var/adm/vold.log]
・VolumeManagerのログを出力。

logcheckツール
・キーワードが登録されているフィルタファイルを用い、記録するログにキーワードが含まれているとメッセージを送る。
・必要な間隔でcronから起動される。

■不要なサービスの停止
<設定ファイル>
/etc/inet/services
 ポートタイプとポート番号をサービス名と関連付ける。
 サービス名 ポート番号/プロトコル サービス別名
/etc/inetd.conf
 システムが提供する各ネットワークサービスを結びつける。
 サービス名 ソケットタイプ プロトコル {wait|nowait} サービスを実行させているユーザ名 サービスパス プログラム引数
 

0 件のコメント: