AntiPortscan-20190925

8b87ad1460f4051001d3b70211f05576?s=47 hiro
September 25, 2019

 AntiPortscan-20190925

8b87ad1460f4051001d3b70211f05576?s=128

hiro

September 25, 2019
Tweet

Transcript

  1. IDS/IPSのお話
 ~ポートスキャンを遮断してみた~
 第31回ゼロから始めるセキュリティ入門 勉強会
 2019/09/25
 hiro(@ctrl_z3r0) a.k.a ねこさん⚡(@catnap707)


  2. 自己紹介


  3. アジェンダ
 1 IDS/IPSとは
 2 IDS/IPSの仕組み
 3 ポートスキャンとは
 4 代表的なOSS(Snort/Suricata/PortSentry)
 5 PortSentryでポートスキャンを遮断
 6 Snortでポートスキャンを遮断
 7 まとめ
 ▪参考情報
 ・IDS・IPS(不正侵入検知・防御)とは?違いや仕組みを図解!(2019-03-15)


     https://it-trend.jp/ids-ips/article/explain
 ・IDS・IPSとは?不正侵入検知・防御サービス解説(2019-04-18)
  https://www.kagoya.jp/howto/network/ids-ips/
 ・情報セキュリティ入門 IDSとIPS(2006-09-05)
  https://tech.nikkeibp.co.jp/it/article/COLUMN/20060830/246798/
 ・無料で使えるIDS製品2選!OSSのメリットと注意点も解説!(2019-05-24)
  https://it-trend.jp/ids-ips/article/257-0026
 ・IPSの接続形態(インラインモードとプロミスキャスモード)とその特徴について()
  http://sayacafe.sub.jp/sec/no007.php
 ・侵入防止システム(IPS)を探る(2005-07-14)
 https://japan.zdnet.com/article/20085358/

  4. 4 1 IDS/IPSとは


  5. IDS/IPSとは(1/3)
 5 ▪IDS/IPSの概要  
 ▪参考情報
 ・ハニーポットとは - IT用語
  https://e-works.jp/w/ハニーポット.html
 ・ハニーポット -

    WikiPedia
  https://ja.wikipedia.org/wiki/ハニーポット
  IDS(Intrusion Detection System)は、不正に侵入しようとする通信を検 知するシステム、IPS(Intrusion Prevention System)は、不正侵入を防止 するシステムを指します。
 ネットワーク型
 設置
 ネットワーク上に設置
 (インラインモードと、プロミスキャスモード)
 監視範囲
 ネットワークセグメント
 ホスト型
 設置
 サーバ上にインストール
 監視範囲
 サーバ

  6. 6 ▪設置方法による違い 
    
 IDS/IPSとは(2/3)
 ネットワーク型
 インライン
 モード
 通信路上に設置し、全てのパケットを 検査する
 プロミスキャス


    モード
 スイッチングHUBのミラーポートに
 設置し、パケットを検査する
 ホスト型
 ー
 ホストに到達したパケットを検査する
 ▪参考情報
 ・IPSの接続形態(インラインモードとプロミスキャスモード)とその特徴について()
  http://sayacafe.sub.jp/sec/no007.php
 ・侵入防止システム(IPS)を探る(2005-07-14)
 https://japan.zdnet.com/article/20085358/
 IPアドレスは
 割り当てない。

  7. 7 IDS/IPSとは(3/3)
 ▪FireWall、WAFとの違い
 ▪参考情報
 ・WAFとIPS/IDSのちがいとは?(2019-05-08)
  https://www.shadan-kun.com/blog/measure/1390/
 ・IDS・IPSとWAF、ファイアウォールの違いとは?(2019-03-25)
  https://it-trend.jp/ids-ips/article/difference
 ・WAFとは |

    ファイアウォールやIPS/IDSとの違いと関係性・仕組みや導入方法(2019-03-12)
  https://boxil.jp/mag/a2381/

  8. 8 2 IDS/IPSの仕組み


  9. IDS/IPSの仕組み(1/2)
 9 ▪IPSはどうやって遮断しているのか
  TCPのコネクションをリセットしている。
  IPSが、それぞれ相手を偽装したRSTパケットを送信している。
 ターゲット 攻撃者 攻撃者 ターゲット 攻撃者

    ターゲット RST
 パケット
 RST RST RST
 パケット
 IPS ▪参考情報
 ・RSTパケット 【 reset packet 】 RST packet
  http://e-words.jp/w/RSTパケット.html
 ・第15回 信頼性のある通信を実現するTCPプロトコル(2) (2/3)(2004-01-29)
  https://www.atmarkit.co.jp/ait/articles/0401/29/news080_2.html
  UDPの場合は、ICMPの不達通知パケット(Destination Unreachable)を送信。

  10. IDS/IPSの仕組み(2/2)
 10  シグネチャ検知(パターンマッチング)と、アノマリ検知(異常通信を検知)が ある。ウイルス対策ソフトと同じように、パターンファイルや検索エンジンの アップデートが欠かせない。
 ▪シグネチャ検知とアノマリ検知
  フォールスポジティブ(FP:False Positive)は、正常なものを異常と誤検知す ること。(過検知)
  フォールスネガティブ(FN:False

    Negative)は、異常なものを正常として見逃 すこと。(検出漏れ)
 ▪フォールスポジティブとフォールスネガティブ
 ▪参考情報
 ・フォールスポジティブ(誤検知)やフォールスネガティブ(見逃し)(2018-11-28)
  http://sc.seeeko.com/archives/4559461.html
 ・誤検知 - F5 GLOSSARY
  https://www.f5.com/ja_jp/services/resources/glossary/false-positive
 フォールス ポジティブは、シグネチャの追加時に発生しやすくなる。
 フォールス ネガティブは、新たに発見された攻撃手法のシグネチャを
 継続的に追加していくことで発生頻度を下げていくことが可能。
 

  11. 11 3 ポートスキャンとは


  12. 12 ポートスキャンとは
 ▪参考情報
 ・ポートスキャン 【 port scan 】 ポートスキャニング /

    port scanning
  http://e-words.jp/w/ポートスキャン.html
 ・攻撃はポートスキャンから始まる(上)(2004-04-28)
  https://tech.nikkeibp.co.jp/it/members/NBY/Security/20040415/1/
 ▪攻撃はポートスキャンから始まる
 ポートスキャンとは、ネットワークを通じた攻撃手法の一つで、対象のコン ピュータのTCPあるいはUDPのポートに接続を試み、機能停止や侵入などの 攻撃に使えそうな脆弱性がないか調べること。特に、多数あるいは全ての ポートに次々に連続的にアクセスし、各ポートの状態を網羅的に調べあげる こと。

  13. 13 4 代表的なOSS
 (Snort/Suricata/PortSentry)


  14. 代表的なOSS(Snort)
 14 ▪ネットワーク型IDS/IPS
 ソフトウェア
 Snort(スノート)
 特徴
 Snortはパケットスニファ/パケットロガーとして開発。
 ポートスキャンや、OSフィンガープリント調査、サーババナー 探索、バッファオーバーフロー攻撃などを検知可能。
 検知ルールを自作することも可能。


    oinkmasterツールで検知ルールの自動更新が可能。
 リリース
 初期:1998年ごろ ※2013年7月にCiscoが買収
 安定版:2.9.14.1(2019-08-02)
 公式HP
 https://www.snort.org/
 ▪参考情報
 ・Snortでつくる不正侵入検知システム(1):不正侵入検知システムを知る (1/3)(2004-08-10)
  https://www.atmarkit.co.jp/ait/articles/0408/10/news087.html
 ・Snort (software) - Wikipedia
  https://en.wikipedia.org/wiki/Snort_%28software%29

  15. 代表的なOSS(Suricata)
 15 ▪ネットワーク型IDS/IPS
 ソフトウェア
 Suricata(スリカタ)※ミーアキャット(マングース科)
 特徴
 マルチスレッド対応のエンジン。ネイティブIPv6サポート、ファ イル解凍機能及びその他多くの機能。
 既存のSnortルールを読み込むことができる。
 Snorbyツールで、ログをGUIで表示可能。


    リリース
 初期:1.0(2010-07-01)
 安定版:4.1.4(2019-04-30)
 公式HP
 https://suricata-ids.org/
 ▪参考情報
 ・Suricata freecode日本語情報ページ - OSDN(2014-05-21)
  https://ja.osdn.net/projects/freshmeat_suricata/
 ・【初心者向け】オープンソースのIPS「Suricata」をCentOSに構築した話(2016-11-10)
 https://qiita.com/curryperformer-kato/items/60b88418a2c7c22d3a61
 ・趣味でIPSを使ってみた話(2017-12-16)
  https://qiita.com/kouta_hara/items/4229be2ef36e00778a22

  16. 代表的なOSS(PortSentry)
 16 ▪ホスト型IDS/IPS
 ソフトウェア
 PortSentry(ポートセントリー)
 特徴
 設定がシンプルで導入が容易なIPS/IDS。
 設定したポートへのアクセスを検知し、送信元IPアドレスを iptablesやhosts.denyに登録しアクセスを拒否する。
 リリース


    初期:1.0(2003-05-03) ※2002年にCiscoが買収
 安定版:1.2(2003-05-23)
 公式HP
 https://sourceforge.net/projects/sentrytools/
 ▪参考情報
 ・Sentry Tools(2016-07-16)
  https://sourceforge.net/projects/sentrytools/
 ・PortSentry に関する日本語情報(2010-05-24)
  http://pocketstudio.jp/linux/?PortSentry
 ・Nmap対策Portsentry 不正アクセス撲滅委員会[即BAN]
  https://sys-guard.com/post-2110/
 ・Psionic PortSentry サポートに関する FAQ(2006-01-19)
  https://www.cisco.com/c/ja_jp/support/docs/security/ips-4200-series-sensors/62957-psionic-portsentry.html

  17. 17 5 PortSentryでポートスキャンを遮断


  18. PortSentryの場合(1/3)
 18 ▪参考情報
 ・Sentry Tools(2016-07-16)
  https://sourceforge.net/projects/sentrytools/
 ・PortSentry に関する日本語情報
  http://pocketstudio.jp/linux/?PortSentry
 ・Nmap対策Portsentry

    不正アクセス撲滅委員会[即BAN]
  https://sys-guard.com/post-2110/
 ▪PortSentryの構築(Ubuntuの例)
 【aptでインストール】
 $ sudo apt install portsentry
 
 【設定ファイル】
 /etc/portsentry/portsentry.conf
 
 【実行】
 $ sudo service portsentry start
 
 【ログ】
 /var/lib/portsentry/portsentry.blocked.tcp
 /var/lib/portsentry/portsentry.blocked.udp
 /var/lib/portsentry/portsentry.history
 
 

  19. TCP_PORTS="21,25,79,80,110,111,119,123,139,143,443,445,1080,3128,3389,8080,12345" UDP_PORTS="69,135,137,138" ADVANCED_PORTS_TCP="1024" ADVANCED_PORTS_UDP="1024" ADVANCED_EXCLUDE_TCP="113,139" ADVANCED_EXCLUDE_UDP="520,67" IGNORE_FILE="/etc/portsentry/portsentry.ignore" HISTORY_FILE="/var/lib/portsentry/portsentry.history" BLOCKED_FILE="/var/lib/portsentry/portsentry.blocked" RESOLVE_HOST

    = "0" BLOCK_UDP="1" BLOCK_TCP="1" KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP" KILL_HOSTS_DENY="ALL: $TARGET$ : DENY" SCAN_TRIGGER="0" PortSentryの場合(2/3)
 19 “1”にすると、iptablesでDROPできる。
 ・/etc/portsentry/portsentry.conf   
 監視対象のポート番号を設定する。

  20. PortSentryの場合(3/3)
 20 portsentry[2430]: attackalert: Connect from host: 10.0.0.x/10.0.0.x to TCP

    port: 21 portsentry[2430]: attackalert: Host 10.0.0.x has been blocked via wrappers with string: "ALL: 10.0.0.x : DENY" portsentry[2430]: attackalert: Host 10.0.0.x has been blocked via dropped route using command: "/sbin/iptables -I INPUT -s 10.0.0.x -j DROP" ALL: 10.0.0.x : DENY Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.x 0.0.0.0/0 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ・/var/log/syslog   
 ・/etc/hosts.deny  
 ・iptables -L -n  
 FTP(21/tcp)へのアクセスを検知 し、DROP

  21. PortSentryの場合(ログイメージ)
 21

  22. 22 6 Snortでポートスキャンを遮断


  23. Snortの場合(1/3)
 23 ▪参考情報
 ・Snort - Network Intrusion Detection & Prevention

    System 
  https://snort.org/
 ・10分で出来る snort インストールと検知テスト(2013-07-16)
  https://www.morihi-soc.net/?p=29
 ▪Snortの構築(Ubuntuの例)
 【aptでインストール】
 $ sudo apt install snort
 
 【設定ファイル】
 /etc/snort/snort.conf
 
 【実行】
 $ sudo service snort start
 
 【ログ】
 /var/log/snort/snort.log
 /var/log/snort/snort.alert
 /var/log/syslog
 
 
 

  24. # Portscan detection. For more information, see README.sfportscan preprocessor sfportscan:

    proto { all } memcap { 10000000 } sense_level { low } # syslog # output alert_syslog: LOG_AUTH LOG_ALERT output alert_syslog: LOG_LOCAL0 Snortの場合(2/3)
 24 ・/etc/snort/snort.conf   
 portscanのプリプロセッサを有効
 /var/log/syslogへ出力
 ・/etc/rsyslog.conf   
 local0.* /var/log/snort/snort.log ・/etc/snort/rules/scan.rules  
 #alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"SCAN nmap XMAS"; flow:stateless; flags:FPU,12; reference:arachnids,30; classtype:attempted-recon; sid:1228; rev:7;) alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"SCAN nmap XMAS FlexResp"; flow:stateless; flags:FPU,12; reference:arachnids,30; classtype:attempted-recon; sid:1228; rev:7; resp:rst_all) FlexRespでRSTパケットを送るという指定
 ▪参考情報
 ・FlexResp で自己防衛を行う (2019-05-18)
  http://safe-linux.homeip.net/security/linux-snort3-12.html

  25. Snortの場合(3/3)
 25 ▪nmapによるポートスキャンを遮断   
 遮断すると空きポートが検知されない。
 
 ALL 1000 scanned ports on

    xx are closed

  26. 26 7 まとめ


  27. ◆攻撃を観察してみよう!
 27 まとめ
 ◆どんな仕組みか考えてみよう
 ◆ネットワークの知識は役に立つので勉強
  しよう!


  28. ご清聴ありがとうございました。
 28 フォロー待ってるニャ!
 @catnap707


  29. 29