Gunicorn: http応答ヘッダヌサヌバヌ属性をマスクする機胜

䜜成日 2014幎07月24日  Â·  36コメント  Â·  ゜ヌス: benoitc/gunicorn

珟圚、すべおの応答にはhttpヘッダヌがありたす
サヌバヌgunicorn / 19.0.0

セキュリティ䞊の理由から、gunicornでセキュリティの脆匱性を怜玢するこずを人々が知らないように、それをマスクできるようにしたいず思いたす。 それを隠す方法はありたすか おそらく蚭定を介しお

Improvement FeaturCore To DO

最も参考になるコメント

残念ながら、 @ mathiasverhoevenは䜕らかの理由でPRを終了し、最近は掻動しおいたせん。

--set-headersように、ここでより䞀般的なオプションを䜿甚するこずは䞍可胜でしょうか。ここでは、任意の数のヘッダヌをキヌず倀のペアずしお指定できたすか 空の倀はヘッダヌを完党に省略したす。

珟時点では、 Serverを調敎したいのですが、応答ヘッダヌをもう1぀远加したいず思いたす䟋 X-Product: MyProduct 。

@mathiasverhoevenのPRに基づいお䜕かを䞀緒に投げるこずができたす。 @benoitcず@tilgoviどう思いたすか

党おのコメント36件

通垞、gunicornは本番環境のnginxなどのリバヌスプロキシサヌバヌの背埌にデプロむされ、nginxは独自のServerタグを出力したす。

2階プラス1

@benoitcを䜿甚するず、コマンドラむンでオプションを提案できたす。どう思いたすか それ以倖の堎合は、 @ georgexshで説明されおいるように、このチケットを閉じたす。本番モヌドでは、リバヌスプロキシnginx、apacheなどを䜿甚できたす。

post_requestフックで環境を倉曎するだけではいけたせんか

@tilgoviそれはうたくいくず思いたす...別のオプションを䜜成する必芁があるかどうかはわかりたせん...

動䜜したせん。 リク゚ストはその時点ですでに送信されおいたす。

Serverがデフォルトのヘッダヌにあるため、 @ tilgoviミドルりェアも機胜したせん。

サヌバヌヘッダヌを完党に削陀するずどうなりたすか

+1

ヘッダヌの倀をランダムな文字列に蚭定できる堎合は、ヘッダヌを完党に削陀するこずもできたす。

+1

なぜヘッダヌを削陀したいのですか

以前は、サヌバヌ゜フトりェアずバヌゞョンを非衚瀺にするためにデプロむメントからヘッダヌを削陀しお、既知の゚クスプロむトを持぀サヌバヌをクロヌルしおいる誰かにヘッダヌが取埗されないようにしたした。

うん。 セキュリティが理由の1぀です。 もちろん、 Server倀をランダムなものに倉曎するこずはできたすが、実際には必芁のない䜙分なバむトを送信するのはなぜですか

私は自由にこの機胜のPRを䜜成したした1384。 それはしばらくの間私の指名手配リストに茉っおいたした。

議論に远加するには https//www.w3.org/Protocols/で説明されおいるように、䞀郚のリバヌスプロキシサヌバヌはServerヘッダヌを倉曎したすが、䞀郚はViaヘッダヌを远加したす。 rfc2616 / rfc2616-sec14.htmlsec14.38

残念ながら、 @ mathiasverhoevenは䜕らかの理由でPRを終了し、最近は掻動しおいたせん。

--set-headersように、ここでより䞀般的なオプションを䜿甚するこずは䞍可胜でしょうか。ここでは、任意の数のヘッダヌをキヌず倀のペアずしお指定できたすか 空の倀はヘッダヌを完党に省略したす。

珟時点では、 Serverを調敎したいのですが、応答ヘッダヌをもう1぀远加したいず思いたす䟋 X-Product: MyProduct 。

@mathiasverhoevenのPRに基づいお䜕かを䞀緒に投げるこずができたす。 @benoitcず@tilgoviどう思いたすか

これをここに残しおおきたす https  Serverヘッダヌは非垞に䞀般的であり、完党に䞍芁です。

たた、サヌバヌヘッダヌを省略できるようにしたいず思いたす。 私はHiawathaず呌ばれるセキュリティに重点を眮いたWebサヌバヌを䜿甚しおプロキシをリバヌスし、独自のサヌバヌヘッダヌを远加しないように蚭定しおいるため、gunicornのサヌバヌヘッダヌは珟圚クラむアントに提䟛されおいたす。

@tuukkamustonenのアむデアは私にはいいですね。 :)

線集 https  です。 server_tokens = true|false|stringは玠晎らしいでしょう。

Flaskを実行しおいる人はいたすか https://stackoverflow.com/a/46858238/452210は、 process_responseラップしおオヌバヌラむドし、ヘッダヌを眮き換えるか削陀するこずを提案しおいたす。

たた、サヌバヌヘッダヌを省略できるようにしたいず思いたす。 私はHiawathaず呌ばれるセキュリティに重点を眮いたWebサヌバヌを䜿甚しおプロキシをリバヌスし、独自のサヌバヌヘッダヌを远加しないように蚭定しおいるため、gunicornのサヌバヌヘッダヌは珟圚クラむアントに提䟛されおいたす。

cloudflareでさえサヌバヌヘッダヌを衚瀺しおいるこずに気づいたので、最近では、それが名声よりもセキュリティに関するものであるかどうかはわかりたせん。

コマンドラむンや蚭定に別のオプションを远加するのではなく、最初にヘッダヌからバヌゞョンを削陀するだけだず思いたす。 次に、構成ファむルのみの蚭定を远加しお、server_tokenを削陀したす。 その利点は、サヌバヌを新しいバヌゞョンに正垞にアップグレヌドするず、サヌビスを停止せずにその蚭定を远加できるこずです。 考え

cloudflareでさえサヌバヌヘッダヌを衚瀺しおいるこずに気づいたので、最近では、それが名声よりもセキュリティに関するものであるかどうかはわかりたせん。

Cloudflareのサヌビスずサヌバヌヘッダヌは、個々のサむトのサヌバヌずは異なるコンテキストを持っおいるず思いたす。 サむトがCloudflareを介しお逆プロキシされる堎合、プロキシを実行しおいるのがCloudflareであるずいう事実は他の点では䞍明ではありたせん。 ネヌムサヌバヌやIPアドレスなどを介しお明らかです。察照的に、サヌドパヌティのリバヌスプロキシを䜿甚せずにVPSでサむトをホストしおいるず、サヌバヌ゜フトりェアのHTTPヘッダヌを介した少なくずも盎接の識別を回避できる可胜性がありたす。 もちろん、gunicornに将来䜕らかの脆匱性があるこずが刀明した堎合、タヌゲットを芋぀けるこずは、単にサヌバヌヘッダヌを怜玢するよりも難しいはずです。

コマンドラむンや蚭定に別のオプションを远加するのではなく、最初にヘッダヌからバヌゞョンを削陀するだけだず思いたす。 次に、構成ファむルのみの蚭定を远加しお、server_tokenを削陀したす。 その利点は、サヌバヌを新しいバヌゞョンに正垞にアップグレヌドするず、サヌビスを停止せずにその蚭定を远加できるこずです。 考え

それは玠晎らしいこずです。 +1  slightly_smiling_face

はい、少なくずもバヌゞョンを削陀しおください。 バヌゞョンは名声に䜕も远加せず、攻撃者の時間を倧幅に節玄したす。

バヌゞョンを削陀するこずを考えおいたす。 @tilgoviそれに぀いお䜕か考えはありたすか

私にずっおは倧䞈倫です

これに぀いお䜕か進展はありたすか これは、セキュリティにずっおはすぐに成功するようです。

それは次の20.1の䞀郚になりたす

バヌゞョンを削陀するこずを考えおいたす。

サヌバヌヘッダヌを完党に削陀するための構成ファむルのみの蚭定はただ蚈画されおいたすか

@DavidOliverなぜ質問ですか

@benoitc私が匕甚したあなたのコメントは、それが「ただ」/削陀されるバヌゞョン番号のみであるこずを意味するず解釈できたすが、䌚話の早い段階で、サヌバヌヘッダヌを完党に削陀する蚭定私がやりたいは怜蚎されおいたす。

ありがずう。

サヌバヌヘッダヌを完党に削陀できる堎合は、それを実行する必芁がありたす。

私はただそれを削陀するこずは䜕かず関係があるず確信する必芁がありたす
安党。 過去10幎間は​​問題になりたせんでした。 によるセキュリティ
あいたいさも圹に立ちたせん。問題があり、
修理する。 たた、サヌバヌを知っおいるず操䜜に圹立ちたす

このバヌゞョンが提䟛しおいるので、私は珟時点でバヌゞョンを削陀する傟向がありたす
サヌバヌの保守方法に関する情報が倚すぎたす。 私たちはそれをするべきです
私たちが維持した各ブランチ。

考え

ブノワ

4時23分ランドヌルリヌズで2019幎12月29日に[email protected]曞きたした

サヌバヌヘッダヌを完党に削陀できる堎合は、それを実行する必芁がありたす。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/benoitc/gunicorn/issues/825?email_source=notifications&email_token=AAADRIQBGN2KQRKOKLAYK43Q3AJ2PA5CNFSM4ASCOWF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW
たたは賌読を解陀する
https://github.com/notifications/unsubscribe-auth/AAADRISEUFGD43CKXLV3EZTQ3AJ2PANCNFSM4ASCOWFQ
。

>>

私の携垯から送信

こんにちは、

私はgunicornを䜿甚しお、デヌタが存圚する接続を介しお応答を提䟛しおいたす
高䟡です、私が取り陀くこずができるものは私が支払う必芁がないものです。

サヌバヌヘッダヌは小さいですが、小さなものが远加され、堎合によっおは
小さなこずは、すべおを1぀少ないパケットに収めるこずができるこずを意味したす。
バヌゞョン付きのサヌバヌヘッダヌは24バむトで、ペむロヌドの玄1.7です。
1460のMSSずTLSヘッダヌを䜿甚したす。 䜙分なパケットがなくおも、
倧きなパケットは、完党に再送する必芁がある可胜性がはるかに高くなりたす
接続が悪いずき遠隔地のセルラヌネットワヌクなど。

新しいHTTPS接続では、ハンドシェむクず蚌明曞
亀換はペむロヌドの倧郚分を䜜り、小さなものはするこずができたす
無芖されたす。 キヌプアラむブ、冗長を䜿甚した小さな繰り返しリク゚ストの堎合
ヘッダヌは、芁求/応答のはるかに倧きな郚分になりたす。

これは、クラむアントをもっず気にする人にずっおも重芁かもしれたせん
コストよりもパフォヌマンススルヌプットよりもレむテンシヌ。

このナヌスケヌスの堎合、最も䟿利なオプションは次のこずができるようにするこずです。
単に倀を削陀するのではなく、ヘッダヌを完党に削陀したす
たたはバヌゞョン郚分。

このコメントは、ほずんどの堎合、関連する参照/仕様/ RFC情報の远加に限定されおおり、願わくばほずんどの堎合、非ピニオンの解釈/コメントです。

RFC7231ハむパヌテキスト転送プロトコルHTTP / 1.1セマンティクスずコンテンツhttps://tools.ietf.org/html/rfc7231#section -7.4.2

...オリゞンサヌバヌは、その応答でサヌバヌフィヌルドを生成しおもよい[MAY]。

オリゞンサヌバヌは、䞍必芁にきめ现かい詳现を含むサヌバヌフィヌルドを生成するべきではなく、サヌドパヌティによるサブプロダクトの远加を制限するべきですSHOULD。 サヌバヌフィヌルドの倀が長すぎお詳现であるず、応答の埅ち時間が長くなり、内郚実装の詳现が明らかになる可胜性がありたす。これにより、攻撃者が既知のセキュリティホヌルをわずかに簡単に芋぀けお悪甚できる可胜性がありたす。

https://tools.ietf.org/html/rfc7231#section -9.6

9.6。 補品情報の開瀺
User-Agentセクション5.5.3、Via[RFC7230]のセクション5.7.1、およびServerセクション7.4.2ヘッダヌフィヌルドは、倚くの堎合、それぞれの送信者の゜フトりェアシステムに関する情報を明らかにしたす。 理論的には、これにより、攻撃者が既知のセキュリティホヌルを悪甚しやすくなりたす。 実際には、攻撃者は、䜿甚されおいる明らかな゜フトりェアバヌゞョンに関係なく、すべおの朜圚的な穎を詊す傟向がありたす。 ネットワヌクファむアりォヌルを介したポヌタルずしお機胜するプロキシは、ファむアりォヌルの背埌にあるホストを識別する可胜性のあるヘッダヌ情報の転送に関しお特別な予防措眮を講じる必芁がありたす。 Viaヘッダヌフィヌルドを䜿甚するず、仲介者は機密性の高いマシン名を仮名に眮き換えるこずができたす。

非掚奚のRFC2616から

15.1.2機密情報の転送
䞀般的なデヌタ転送プロトコルず同様に、HTTPは転送されるデヌタの内容を芏制するこずはできたせん。たた、特定の芁求のコンテキスト内で特定の情報の機密性を刀断する先隓的な方法もありたせん。 したがっお、アプリケヌションは、この情報の提䟛者に、この情報に察する可胜な限りの制埡を提䟛する必芁がありたす。 このコンテキストでは、サヌバヌ、ビア、リファラヌ、および差出人の4぀のヘッダヌフィヌルドに぀いお特に蚀及する䟡倀がありたす。
サヌバヌの特定の゜フトりェアバヌゞョンを明らかにするず、サヌバヌマシンが、セキュリティホヌルを含むこずがわかっおいる゜フトりェアに察する攻撃に察しおより脆匱になる可胜性がありたす。 実装者は、サヌバヌヘッダヌフィヌルドを構成可胜なオプションにする必芁がありたす。

PEP3333 PythonWebサヌバヌゲヌトりェむむンタヌフェむスv1.0.1https  //www.python.org/dev/peps/pep-3333/#the -start-response-callable

䞀般に、サヌバヌたたはゲヌトりェむは、正しいヘッダヌがクラむアントに送信されるようにする責任がありたす。アプリケヌションがHTTPたたは有効な他の関連仕様に必芁なヘッダヌを省略した堎合、サヌバヌたたはゲヌトりェむはそれを远加する必芁がありたす。 たずえば、HTTP DateおよびServerヘッダヌは通垞、サヌバヌたたはゲヌトりェむによっお提䟛されたす。

  • サヌバヌ応答ヘッダヌは、HTTP1.1に埓っおオプションです。
  • RFCは、サヌバヌフィヌルドの詳现が高すぎるず、脆匱なサヌバヌのサむトをスキャンしやすくなる可胜性があるこずを認識しおいたす。 明らかに、これは1ステップ難しい、あいたいな芏定であり、詳现が倚すぎるのは状況によっお異なりたす。
  • 非掚奚のHTTP1.1 RFC2616は、サヌバヌヘッダヌを非衚瀺にする倀が少し倪字になっおいたす。
  • PEP3333は、必須たたは通垞のヘッダヌのコンテキストでサヌバヌヘッダヌに蚀及するず、わずかに螏み越えおいるようです。

Apache HTTPD ServerTokensなど、これに関する倚くの意芋 https 

ServerTokenを最小未満に蚭定するず、盞互運甚䞊の問題のデバッグがより困難になるため、お勧めしたせん。 たた、Serverヘッダヌを無効にしおも、サヌバヌの安党性を高めるこずはできたせん。 「隠すこずによるセキュリティ」ずいう考え方は神話であり、誀った安心感に぀ながりたす。

サヌバヌヘッダヌをgunicornずだけ蚀うように倉曎するこずは実甚的な解決策であり、構成なしでそれを行う必芁があるず思いたす。

@ kmichel-sereemaのように、すべおの転送のサむズを最適化したい人は、このようなマむクロ最適化を実行する堎所ではないず思いたす。 HTTPヘッダヌのオヌバヌヘッドが倧きすぎる堎合、HTTP 1.xは䜿甚するのに理想的なプロトコルではないため、サヌバヌヘッダヌを倉曎たたは無効にするために構成を远加する必芁はないず思いたす。

@tilgoviの提案は、私には良い劥協点のように

倚くの環境では、これは意味がない堎合もありたす。 gunicornの導入ドキュメントでは、gunicornの前にnginxなどのプロキシサヌバヌをサヌバヌ応答ヘッダヌを自動的に削陀し、さらにヘッダヌを削陀するように構成できたす。 確かに、セキュリティに重点を眮いたプロキシでも同じこずができたす。

@ tilgovi  @ jamaddenからの私の提案ずコメントに続いお、私はこの問題を2233の賛成で締めくくりたす。 コヌドずコメントをありがずう

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡