アカウント名:
パスワード:
最低限の権限で動かせば、仮にセキュリティホールがあっても被害が最小限で済むのにいまのWindowsには、サンドボックス的な機能が標準装備されてるんだからそれ使えばいいのに
Linux だって、1024 番未満のポートは “privileged port” と呼ばれてですね、root が無いと bind できないんですよ。逆に root 以外が bind できてしまったら、root より先にそのポートを bind して偽のサーバを動かすといった攻撃ができちゃうでしょ。
DNS System の port は何番だか知ってますか?答えは53番です。つまり、これを bind するには Administrators の権限がいるのは当然のことです。
最近じゃあ、*nixでは起動時だけroot権限どころか、むしろrootだと起動できないサービスの方が多い。さらに外部とやりとりするようなサービスでは、昔からchrootやjailなどで囲って起動するなど当たり前だし。qmailやpostfix、dovecotなどに代表されるように、用途に応じて多数のプロセスとユーザを使いわけ、キュー管理やロギングなどの権限が必要となるプロセスにだけroot権限を付与するやり方。POSIX Capabilityによる、単純にそのまま使うには強力すぎるroot権限の分離、seccompによるサンドボックス化などなど、root権限ひとつ使うにしてもそのまま使うことの方が今や稀。むしろその流れに逆行しroot権限でスーパーデーモンのようなことをやり、しかもPID 1で動作してることがsystemdが叩かれてることの最たる理由。
だいたいあれだけボロクソ言われてるbindですらが、UID(53):GID(53)のbindユーザで、かつchroot/jailされて動作させるのが普通という事実。それすら、少なくともコンテンツサーバキャッシュサーバを分けて上げろ、とdjbdns登場時点から識者より何度も何度も指摘されてる。
権限分割もサンドボックス化もchroot/jailすらせずに、のんべんだらりとシステム権限与えて起動、使用させてたWindows Serverが何如にイカレていたか素人でもわかる。頭おかしいってレベルじゃねーわ。こんな設計が随所に見受けられるからWindows Serverなんて使いたくないんだよ。
そもそも今時権限分割もサンドボックス化もできないOSなんてWindowsくらいのものだろ。システム権限与えるか否かしか選べない。chrootすら何それ美味しの?レベル。ユーザ端末として使うならともかく、サーバとして使うにはゴミすぎて使いものにない。
ADサーバーは、他の役割と兼用を禁じているので、(個人から見ると高い)WinSv1ライセンスを使って、広義のサンドボックスになっている?後、SysVolはnamed/chroot/etcみたいなものでは?また、権限分割ですが、rootとWinのアクセス許可・拒否だと、後者の方が細かい様にも見えますが?さらに、ベストプラクティスとして、公開用のDNSはLinuxとかでして、ADのDNSは外部に見せるなとかも有ります。もちろんADは、ゼロトラスト的には不十分かもしれませんが、ゼロトラストは全ての箇所で確認する代わりに、箇所での多重防御が疎かになっている嫌いが有るので、よしわるしです。
10年以上前のWindowsにすらサービス実行ユーザーを分ける機能あるし、なんならサービス実行ユーザーになれるかを指定する設定すらある。https://www.atmarkit.co.jp/ait/spv/0905/08/news095.html [atmarkit.co.jp]というかWindowsサーバーの運用ではむしろ分ける。脆弱性の宝庫のような扱いのIISのFAQとして、ワーカープロセスの実行ユーザーがWebアプリのフォルダにちゃんとアクセス権持ってますか?というのがあるくらい。
どちらかというと、権限管理の設計が杜撰なのは Unix/LinuxLinuxは、全てのプロセスがrootで動いてるものから、権限を落として起動する。なので、Linuxはバグでフォールバックすると簡単にroot権限が手に入る。ログインなんかさいたる例で、root権限で動いてるプロセスがわざわざユーザー権限に落とすから、ユーザー認証する処理がrootで動いてる。
NTでは、全てのプロセス(カーネル含む)が、何の権限もない状態で起動してから、昇格して権限を得る。バグでフォールバックしても永遠にroot権限のような物は手に入らない。昇格するための穴を探す必要がある。そもそもの話 rootのような何でもありという権限も存在していない。
あと、カーネルを含む全てのプロセスが無権限から昇格しているとすれば、その昇格を認可するのは誰なんでしょ?認可無しで昇格可能なら最初から昇格済みと同じことでは?
90年代じゃないんだから、最低限度OSのお勉強しようぜ。昔は書籍ぐらいしかなかったけど、今はネットにも資料も論文も溢れてるんだから。LinuxでもTrusted OS版の実装ではWindowsの認証の仕組み採用してるよ。
その昇格を認可するのは誰なんでしょ?
それこそがカーネルだと思う。「カーネルを含む全てのプロセス」とは言うけど、アカウントの認証を行うカーネルの部分はプロセス(ユーザーモードプロセス)の外の存在と解釈すればよいのではないだろうか?
そもそもの話 rootのような何でもありという権限も存在していない。
SYSTEMアカウントってrootみたいななんでもありな存在と言っていいのでは?そりゃCAP_FOWNERみたいにファイルに対する権限ガン無視みたいな機能はないですけれど。
> rootのような何でもありという権限いつの時代の話をしているんだろう
そもそも今時権限分割もサンドボックス化もできないOSなんてWindowsくらいのものだろ。
PrivilegeというCapabilityみたいな仕組みだけは一応ある。Privilege自体は昔からあって、Windows Vista/Server 2008からサービスごとに必要なPrivilegeを指定できるようになった。
Windows Server 2019でDNSサーバーをインストールして、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSを見たら、RequiredPrivilegesでこの指定を行っている。なので、DNSのプロセスは、本来のSYSTEM (LocalSystem)アカウントよりは少ない特権で動いている。
とは言え、LocalSystemあったら、大抵のファイル・レジストリ・各種
chroot/jailを入れていいなら、IEの保護モード下で仮想+階層型ファイルパスの下で動くというのがある。ActiveXアドオンでファイル保存したつもりがその場所にファイルがないなんてことになる。
より純粋なサンドボックスなら、旧EdgeがHyper-Vベースのサンドボックスの下で動くというのがある。今や旧EdgeがOSから隠ぺいされる感じになったが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
なんでDNSサーバをシステム権限で動かすんだ? (スコア:0)
最低限の権限で動かせば、仮にセキュリティホールがあっても被害が最小限で済むのに
いまのWindowsには、サンドボックス的な機能が標準装備されてるんだからそれ使えばいいのに
Linux だってそうでしょう (スコア:0)
Linux だって、1024 番未満のポートは “privileged port” と呼ばれてですね、root が無いと bind できないんですよ。
逆に root 以外が bind できてしまったら、root より先にそのポートを bind して偽のサーバを動かすといった攻撃ができちゃうでしょ。
DNS System の port は何番だか知ってますか?
答えは53番です。
つまり、これを bind するには Administrators の権限がいるのは当然のことです。
Re:Linux だってそうでしょう (スコア:-1)
最近じゃあ、*nixでは起動時だけroot権限どころか、むしろrootだと起動できないサービスの方が多い。
さらに外部とやりとりするようなサービスでは、昔からchrootやjailなどで囲って起動するなど当たり前だし。
qmailやpostfix、dovecotなどに代表されるように、用途に応じて多数のプロセスとユーザを使いわけ、キュー管理やロギングなどの権限が必要となるプロセスにだけroot権限を付与するやり方。
POSIX Capabilityによる、単純にそのまま使うには強力すぎるroot権限の分離、seccompによるサンドボックス化などなど、root権限ひとつ使うにしてもそのまま使うことの方が今や稀。
むしろその流れに逆行しroot権限でスーパーデーモンのようなことをやり、しかもPID 1で動作してることがsystemdが叩かれてることの最たる理由。
だいたいあれだけボロクソ言われてるbindですらが、UID(53):GID(53)のbindユーザで、かつchroot/jailされて動作させるのが普通という事実。
それすら、少なくともコンテンツサーバキャッシュサーバを分けて上げろ、とdjbdns登場時点から識者より何度も何度も指摘されてる。
権限分割もサンドボックス化もchroot/jailすらせずに、のんべんだらりとシステム権限与えて起動、使用させてたWindows Serverが何如にイカレていたか素人でもわかる。
頭おかしいってレベルじゃねーわ。
こんな設計が随所に見受けられるからWindows Serverなんて使いたくないんだよ。
そもそも今時権限分割もサンドボックス化もできないOSなんてWindowsくらいのものだろ。
システム権限与えるか否かしか選べない。chrootすら何それ美味しの?レベル。
ユーザ端末として使うならともかく、サーバとして使うにはゴミすぎて使いものにない。
Re: (スコア:0)
ADサーバーは、他の役割と兼用を禁じているので、(個人から見ると高い)WinSv1ライセンスを使って、
広義のサンドボックスになっている?
後、SysVolはnamed/chroot/etcみたいなものでは?
また、権限分割ですが、rootとWinのアクセス許可・拒否だと、後者の方が細かい様にも見えますが?
さらに、ベストプラクティスとして、公開用のDNSはLinuxとかでして、ADのDNSは外部に見せるな
とかも有ります。
もちろんADは、ゼロトラスト的には不十分かもしれませんが、ゼロトラストは全ての箇所で確認する
代わりに、箇所での多重防御が疎かになっている嫌いが有るので、よしわるしです。
Re: (スコア:0)
10年以上前のWindowsにすらサービス実行ユーザーを分ける機能あるし、なんならサービス実行ユーザーになれるかを指定する設定すらある。
https://www.atmarkit.co.jp/ait/spv/0905/08/news095.html [atmarkit.co.jp]
というかWindowsサーバーの運用ではむしろ分ける。脆弱性の宝庫のような扱いのIISのFAQとして、ワーカープロセスの実行ユーザーがWebアプリのフォルダにちゃんとアクセス権持ってますか?というのがあるくらい。
Re: (スコア:0, 参考になる)
どちらかというと、権限管理の設計が杜撰なのは Unix/Linux
Linuxは、全てのプロセスがrootで動いてるものから、権限を落として起動する。
なので、Linuxはバグでフォールバックすると簡単にroot権限が手に入る。
ログインなんかさいたる例で、root権限で動いてるプロセスがわざわざユーザー権限に落とすから、ユーザー認証する処理がrootで動いてる。
NTでは、全てのプロセス(カーネル含む)が、何の権限もない状態で起動してから、昇格して権限を得る。バグでフォールバックしても永遠にroot権限のような物は手に入らない。
昇格するための穴を探す必要がある。そもそもの話 rootのような何でもありという権限も存在していない。
Re: (スコア:0)
あと、カーネルを含む全てのプロセスが無権限から昇格しているとすれば、
その昇格を認可するのは誰なんでしょ?
認可無しで昇格可能なら最初から昇格済みと同じことでは?
Re: (スコア:0)
90年代じゃないんだから、最低限度OSのお勉強しようぜ。
昔は書籍ぐらいしかなかったけど、今はネットにも資料も論文も溢れてるんだから。
LinuxでもTrusted OS版の実装ではWindowsの認証の仕組み採用してるよ。
Re: (スコア:0)
その昇格を認可するのは誰なんでしょ?
それこそがカーネルだと思う。「カーネルを含む全てのプロセス」とは言うけど、アカウントの認証を行うカーネルの部分はプロセス(ユーザーモードプロセス)の外の存在と解釈すればよいのではないだろうか?
Re: (スコア:0)
そもそもの話 rootのような何でもありという権限も存在していない。
SYSTEMアカウントってrootみたいななんでもありな存在と言っていいのでは?そりゃCAP_FOWNERみたいにファイルに対する権限ガン無視みたいな機能はないですけれど。
Re: (スコア:0)
> rootのような何でもありという権限
いつの時代の話をしているんだろう
Re: (スコア:0)
そもそも今時権限分割もサンドボックス化もできないOSなんてWindowsくらいのものだろ。
PrivilegeというCapabilityみたいな仕組みだけは一応ある。Privilege自体は昔からあって、Windows Vista/Server 2008からサービスごとに必要なPrivilegeを指定できるようになった。
Windows Server 2019でDNSサーバーをインストールして、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSを見たら、RequiredPrivilegesでこの指定を行っている。なので、DNSのプロセスは、本来のSYSTEM (LocalSystem)アカウントよりは少ない特権で動いている。
とは言え、LocalSystemあったら、大抵のファイル・レジストリ・各種
Re: (スコア:0)
chroot/jailを入れていいなら、IEの保護モード下で仮想+階層型ファイルパスの下で動くというのがある。
ActiveXアドオンでファイル保存したつもりがその場所にファイルがないなんてことになる。
より純粋なサンドボックスなら、旧EdgeがHyper-Vベースのサンドボックスの下で動くというのがある。
今や旧EdgeがOSから隠ぺいされる感じになったが。