この記事は↓の続きです
動機
上記環境を組みましたが、構成をAIに評価させるとセキュリティがガバガバすぎて実用には耐えられないといわれました。
実際、セキュリティのことは全く考えておらず疎通させることのみを目的としていたので、本記事では前回環境のセキュリティ強化を目標とします
脆弱性の洗い出し
↓前回の環境
この図からセキュリティリスクの洗い出しを行います。
A社本社
まず、A社本社の一つとして、FWの脆弱性が挙げられます。
現在はFWには特にフィルタなどを設けずすべての通信が通過できるようになっていますが、A・B社のいずれも業務上でインターネットアクセスが必要であるという要件はないので、12.0.0.1への通信のみを許可するのがよいと考えられます。
-->おそらく業務でweb検索は行えた方がよいと考えられるので、httpsを許可
また、A・B社の両方で公開サーバなどは見受けられないため、インバウンドの通信もやはり12.0.0.1以外は拒否してよさそうです。
次に、これはAIから直接指摘されたことなのですが、OSPFの配布インターフェイスを限定していないというものがあります。
現在はIPアドレスまたはVLANが設定されているインターフェースは図に記載しているもののみであるため問題ありませんが、今後追加したときに意図せずOSPFでの動的ルーティングを行ってしまうというリスクが存在します。
全IFを通してルーティングはOSPFで行うなどの要件があればよいですが、前回そのような発言はなかったため閉じた方がよさそうです。
また、OSPFには認証情報を載せられるのですが、前回はこれを設定しませんでした。
認証情報を設定すると意図しないルーティングを避けられるため、これは設定してもよいと考えられます。
三つ目に、最初の内容と少しかぶりますが、ACLが設定されていません。
上記からFWを設定すればインターネット上でのリスクは低減できますが、見た感じだとおそらくどうOSPF内でも特定の通信のみが行えればよいように感じるので、必要分以外はACLで制限したほうがよさそうです。
A社支社1・2・3、B社
OSPF、ACLにおいて、A社本社と同様のリスクを抱えています。
要件定義・設計
上記をもとに、セキュリティ要件を定義し設計を行います。
↓要件定義書を書きました
# セキュリティ要件定義書
### 全体
- 全インターフェースにおいて業務に必要な通信以外を制限
- 業務上必要なプロトコル: FTP,SMTP,POP,DNS,Https,icmp
- LAN内では柔軟に業務を行うため通信制限は行わない
- OSPFのセキュリティを強化
- 認証情報の設定
- 有効物理ポートの制限
### A社本社
- FW
- VPCGW以外へのアクセスを許可しない
- 業務上で必要だと思われるのでhttpsを許可
つぎに、設計を行います。
# セキュリティ設計
### 全ルータ
- all denyのACLを全通信先に対して設定
- 12.0.0.1への通信を全許可するACLを設定
- 全通信先に対してFTP,SMTP,POP,DNS,Https,icmpを許可するACLを設定
- 全通信先に対してhttps通信を許可
- OSPFの認証情報を設定
- OSPFを有効化するポートを現在利用している箇所のみに設定
### A社本社 FW
- 全通信をdeny
- VPCGWへの通信を許可
- Https通信を許可
事前準備
設定を行う前に、あらかじめセキュリティ要件の対象となる脅威、業務環境に該当する機器を設置します。
接地するものとしては、
- 脅威
- インターネット上のFTPサーバ
- 内部レイヤ2下の意図しないレイヤ3スイッチ
- 業務環境
- インターネット上のHttpsサーバ
- OSPFネットワーク内のFTPサーバ、DNSサーバ
といったところでしょうか。
↓各機器を設置しました、Risk*は脅威となる機器で、FTPServerとHttpsServerは問題のないサーバです
| 機器名 | IPアドレス | 詳細 |
|---|---|---|
| RiskServer | 13.0.0.2 | インターネット上のFTPサーバで、 接続できると情報漏洩などのリスクにつながり危険である |
| HttpsServer | 14.0.0.2 | インターネット上のHttpsサーバ。 業務上での調べごと等でアクセスを許可されている |
| FTPServer | 172.17.12.3 | A社本社側エリア0内のFTPサーバ、 業務上で他ネットワークからアクセスできる必要がある |
| RiskRouter | 172.17.12.4 | A社本社側エリア0に接続されたルータ、 内部にエリア2を持ち、 本来意図していないため接続不可である必要がある。 |
各サーバ、ルータに接続できることが確認できます
設定
それでは、設定を行い脅威を排除していきます。
全ルータへの設定
全ルータに対してACLを作成し、インターフェースに適用していきます。
ip access-list extended DEFAULT
permit icmp any any echo
permit icmp any any echo-reply
permit tcp any any eq 443
permit tcp any any eq ftp
permit tcp any any eq pop3
permit tcp any any eq smtp
permit tcp any any eq 53
permit udp any any eq 53
permit tcp any eq 443 any
permit tcp any eq ftp any
permit tcp any eq pop3 any
permit tcp any eq smtp any
permit tcp any eq 53 any
permit udp any eq 53 any
permit udp any host 12.0.0.1 eq 500
permit udp any host 12.0.0.1 eq 4500
permit esp any host 12.0.0.1
ip access-list extended OSPF
permit icmp any any echo
permit icmp any any echo-reply
permit ospf any any
permit tcp any any eq 443
permit tcp any any eq ftp
permit tcp any any eq pop3
permit tcp any any eq smtp
permit tcp any any eq 53
permit udp any any eq 53
permit tcp any eq 443 any
permit tcp any eq ftp any
permit tcp any eq pop3 any
permit tcp any eq smtp any
permit tcp any eq 53 any
permit udp any eq 53 any
permit udp any host 12.0.0.1 eq 500
permit udp any host 12.0.0.1 eq 4500
permit esp any host 12.0.0.1
interface <IF>
ip access-group DEFAULT in
次に、ospfで使用するインターフェースを限定し、コネクションごとに認証情報を設定します
router ospf 1
passive-interface default
no passive-interface <IF>
int <IF>
ip ospf authentication message-digest
ip ospf authentication-key 1 fujitani <id> <passwd>
設定により、不正なルータがOSPFに参加できなくなりました
FWの設定
FWでは外部へのhttpsアクセスと12.0.0.1へのアクセスのみができればいいので、
上り
- 443/tcpへのアクセス
- 12.0.0.1へのアクセス
下り - 443/tcpからのアクセス
- 12.0.0.1からのアクセス
を許可します。
↓設定後のaccess-list
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096) alert-interval 300
access-list 101; 4 elements; name hash: 0xb648d88c
access-list 101 line 1 extended permit ip any host 12.0.0.1(hitcnt=4) 0x25318a4e
access-list 101 line 2 extended permit tcp any any eq 443(hitcnt=25) 0x16100d49
access-list 101 line 3 extended permit icmp any any echo(hitcnt=4) 0xe390727a
access-list 101 line 4 extended deny ip any any(hitcnt=0) 0x75106844
access-list 102; 4 elements; name hash: 0x6995b43b
access-list 102 line 1 extended permit ip host 12.0.0.1 any(hitcnt=5) 0xaee264a0
access-list 102 line 2 extended permit icmp any any echo-reply(hitcnt=4) 0x3c533356
access-list 102 line 3 extended permit tcp any eq 443 any(hitcnt=15) 0x19243c86
access-list 102 line 4 extended deny ip any any(hitcnt=0) 0xd0019087
最後に、内側インターフェースにOSPFの認証情報を設定します。
テスト
設定が完了したので、最初に設置したサーバと脅威への接続をそれぞれテストします。
RiskServer
外部でFTPをホストしています。
接続できないことを確認できます。
↓ACLにもヒットしていました。
HttpsServer
インターネット上のwebサーバです。
↓httpsのみ接続できます。
FTPServer
OSPFネットワーク内のFTPサーバです。
↓接続できました
RiskRouter
想定外のAS参加ルータです。
例えば0.0.0.1/0のようなIPアドレスを設定されると、想定しないサーバにルーティングされるなどのリスクがあります。
↓上から、Edge RouterとRiskRouterのルーティングテーブルです。LSAが配布されていないことが分かります
備考
感想
それなりに堅牢にできたんじゃないかと思いますが、本来こんなのは設計以前で想定するべきことです。
次何か作るときはこういうのもこうりょしようと思いました。
おそらく、まだまだやるべきことは残ってるんじゃないかと思っています。
ほかに何かあればコメントを頂けると助かります。












