masaya_yoshitomi
2023年12月8日 16時58分
お世話になっております。
ネットワークセキュリティの考え方について質問です。
理解不足の点もあるかと思いますが、ご協力のほどお願いいたします。
G3を用いて製品開発を実施しており、ネットワークセキュリティをどう担保するかを検討しております。
不要ポートを閉じたり、不要なサービスを起動しない、といった対策が必要なことは理解しているのですが、どういった状態が対策できているとみなされるのかを具体的に把握したいです。
①以下の認識があっていますでしょうか。
https://armadillo.atmark-techno.com/blog/7370/2953 (Armadillo: TCP/UDPポート開放状態、アプリケーション起動状態の確認方法)
こちらのブログのArmadillo-440上でコマンドを実行した例がありますが、
”iptable -L”の実行結果では以下のようにsshポートはACCEPTになっています。これはssh(22)ポートは開放されていることを示すと認識しております。
[armadillo ~]# iptables -L #省略 ACCEPT udp -- anywhere anywhere udp dpt:ssh
そして、"netstat -a"の実行結果では以下のようにsshは表示されていないことからサービスとして立ち上がっていない(使用されていない)と認識しています。
[armadillo ~]# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:x11 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ftp 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:telnet 0.0.0.0:* LISTEN tcp 0 0 :::x11 :::* LISTEN udp 0 0 0.0.0.0:5353 0.0.0.0:* udp 0 0 :::5353 :::* Active UNIX domain sockets (servers and established) --------------以下略-----------------
"nmap"の実行結果も同様にsshはopenになっていないことから通信不可の状態であることを示していると認識しております。
atde:~/$ nmap [ArmadilloのIPアドレス] Starting Nmap 6.00 ( http://nmap.org ) at 2017-12-28 16:52 JST Nmap scan report for [ArmadilloのIPアドレス] Host is up (0.0010s latency). Not shown: 841 closed ports, 156 filtered ports PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 10.40 seconds
②セキュリティ対策の考え方としては一般的に以下の考え方であっていますでしょうか?
ポートの開放状態 x サービスの起動状態 = セキュリティのリスク状態
つまり、以下のような考え方です。
ポートが開放 x サービス起動 = セキュリティリスク高
ポートが開放 x サービス未起動 = セキュリティリスク中
ポートが閉鎖 x サービス起動 = セキュリティリスク中
ポートが閉鎖 x サービス未起動 = セキュリティリスク低
上記のブログの例の場合、「sshはポートは開放状態だが、サービスは未起動なのでリスク中であり、リスクが高い状態ではない」といった考え方は一般的でしょうか?
もちろんアプリケーションや使われ方にも依るので一概には言えないとは思いますが、、、
ご参考程度でもいいのでご教示お願いいたします。
③LTE通信の場合、何をもってセキュリティの安全を図るのか
LTE通信ではグローバルIPが降られますが、それに対してアクセスしようとしてもできない仕組みになっていそうだと思うのですがどのように安全といえるのか、、、
抽象的な質問でもうしわけありませんが、何か参考になる情報等ご存知でしたらご教示のほどお願いいたします。
at_ohsawa
2023年12月8日 20時01分
> ACCEPT udp -- anywhere anywhere udp dpt:ssh
>
ここでsshについて抜粋するのであれば、tcpの方が主として
使われるので抜粋箇所がtcpではないのが気になりますが、①の理解は正しいです。
> ②セキュリティ対策の考え方としては一般的に以下の考え方であっていますでしょうか?
というより、最終的なソフトウェアの把握と運用が確定しているのであれば、
iptablesでdropするのも、サービスが立ち上がっていないのも
通信できないことに変わり無いため基本的には同程度です。
なので、完全に管理されているのであれば中も低も同じ状態ではあります。
しかし、iptablesは一元的に通信の可否を設定できるため、運用ミスによる
「うっかりサービスを有効にしてしまった。」
「アプリケーションの実装ミスで意図せずポートをacceptしていた」
という状況を一括で拒否・許可できる上に、第三者からもポリシーが
一覧して確認できるので、明確に説明できるメリットがあります。
sshのように最初から起動してacceptしているソフトの場合は
netstatをいつ実行しても判断できますが、
例えば、動作中にごく一時期しかsocketを作らないとか、
特定の条件でしか起動しないソフトウェアだと、netstatしても
気づかないことは多々あると思います。
そういう条件で、まず第一にiptablesで厳密にdrop/acceptを決めて
自社の運用ポリシーを確定したほうがリスク管理しやすいです。
> ③LTE通信の場合、何をもってセキュリティの安全を図るのか
> LTE通信ではグローバルIPが降られますが、それに対してアクセスしようとしてもできない仕組みになっていそうだと思うのですがどのように安全といえるのか、、、
> 抽象的な質問でもうしわけありませんが、何か参考になる情報等ご存知でしたらご教示のほどお願いいたします。
当社の採用しているLTEモジュールについては内部のファイヤウォール(というかNAT)の
設定で、外部からのセッションをデフォルトで拒否しているので、
インターネット側からの接続要求はできません。
(一部製品については特別な設定をすることでファイヤウォールを開放することもできます。)
つまり、LTE側についてはLTEモジュールの機構によってiptablesのINPUTがdropと
等価いうことになり、特に何もしなくても比較的安全です。
わざわざiptablesにdropルールを設定する意味は無いと思います。
当然Armadillo側から開始したセッションは通るので、Armadilloでhttp(wgetするとか)、
ssh等は開始できます。
これについては、そういったアプリケーションを実行するかどうかの問題です。
もし、誰でもArmadilloにログインして自由にアプリケーションを起動して良い。
という運用であれば、iptablesでoutput側にも制約すると良いのですが
あまり、そういう運用をする装置はArmadilloでは作らないとは思います。