私は最近ある小さな会社で仕事を始めたのですが、CTO は SSH サービスを、よく知られた 22 番ポートではなく、不明瞭で高い番号のポートでホストすることを好んでいます。彼の根拠は、「スクリプトキディ攻撃の99%を防ぐことができる」というものです。
直感的にわかりやすいと思います。しかし、私たち2人はほとんど独学で勉強していますし、私は、確立された慣習に従うのではなく、即興で独自のセキュリティ手順を作るという考え方に違和感があります。 一般的に、暗号の仕組みやプロトコルは、専門家のチームによって丹念に設計されており、細部にわたって、それがどんなに些細に見えても何らかの攻撃に対して防御することを目的としていることを知っています。このような推奨事項から外れた場合、意図しない結果になることが心配です。
しかし、私の同僚は証拠をつかんでいるようだ。彼は、22番ポートを試してそのまま移動する攻撃を、毎日何十回も受けていることを証明することができました。私は、一般に、不明瞭さによるセキュリティを避けるべきであるということを知っていますが、この共通のターゲットから離れることは、本当にほとんどの攻撃を阻止しているようです。
これは良い方法なのでしょうか、それともそうでないのでしょうか?よく知られたポートを使うべきでしょうか?
**追加情報
無名ポートだけに頼っているわけではありません。他にも、必須のハードウェアキーなど、多くのセキュリティ対策を行っています。私の質問をもっと明確に言い直します。
**SSHのポート22が特に選ばれた理由は何ですか?他のポートを使うのは危険なのでしょうか?
デフォルトのポートを変更すれば、ポートスキャンやスクリプトキディから逃れることはできますが、攻撃者がポートとは無関係に実行中のサービスを特定できるような標的型攻撃には耐えられない可能性があります。
スクリプトキディから逃れるためだけなら、これは役に立つかもしれませんが、残りの高度な攻撃から身を守ることはできないかもしれません。
私の推奨は、デフォルトのポートを使用し(管理者のオーバーヘッドを減らすことができる)、攻撃を軽減するために多面的なセキュリティ防御を展開することです。
例えば、デフォルトのポートを使用する場合、SSHによる証明書ベースの認証を導入し、特定の信頼できるソースにのみアクセスを許可するようにします。
脆弱性の高いアプリケーションに非標準のポートを使用することは、非常に良い習慣です。SSH には多くの脆弱性があり、22 はブルートフォースで使用される一般的なデフォルトポートです。
とはいえ、おそらく場合によるのでしょう。特に企業環境では、DMZサーバで22番ポートに対するブルートフォース攻撃を見ることはよくあります。多くの企業、例えば金融業界では、組織間の有効なデータ転送のために、SSH/SFTPトラフィックに別のデフォルトポートを使用しています。
この場合のアイデアは、ノイズ(ポート22のブルートフォース)の一部をフィルタリングし、別のポートの他のトラフィックを監視しやすくすることです。インターネットに面したサーバーの開いているポートを見つけるのは、誰でもできることだ。
これはリスク軽減、リスク低減の一形態と考えられる。
編集:追記します。私がグッドプラクティスと言ったのは、インターネットに接続されたデバイスにおけるグッドプラクティスのことです。ファイアウォールの内側にあるものは、一般的に*安全です。