LinuCレベル3 303試験の例題と解説
328.2ネットワークの侵入検知
LinuCレベル3 303試験の出題範囲から「328.2 ネットワークの侵入検知」についての例題を解いてみます。
このテーマは、ネットワークにおけるセキュリティスキャンや侵入検知などセキュアな環境を構築するためのソフトウェアに関する内容が含まれます。システムに対する新しい攻撃手法が公開された場合には、攻撃に対する対策を反映させる必要がある為、しっかりと理解しておきましょう。各ソフトウェアを実際に使ってみるのがおすすめの学習法です。
例題
以下の条件に合うSnortルールのヘッダー記載方法として正しいものを選択せよ。
・TCP通信
・送信元ネットワーク:変数HOME_NETで定義
・送信元ポート番号:any
・宛先ネットワーク:変数EXTERNAL_NETで定義
・宛先ポート番号:変数HTTP_PORTで定義
- alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORT
- alert udp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORT
- alert tcp $HOME_NET $HTTP_PORT -> $EXTERNAL_NET any
- alert tcp $HOME_NET any > $EXTERNAL_NET $HTTP_PORT
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1.alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORT」です。
Snortルールのヘッダーは、
"Action" "Protocol" "Networks" "Ports" "Direction Operator" "Networks" "Ports"という順で記載します。
各項目は、以下を指定します。
Action | : | alert(通知する)・log(記録する)・pass(無視する)など |
Protocol | : | tcp・udpなど |
Networks | : | 対象ネットワークを変数で定義など |
Ports | : | 対象ポート番号を変数で定義など |
Direction Operator | : | "->"などで通信方法を表現 |
今回の条件の場合、alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORT となります。
以下に、Snortルール(ルールファイル一覧とその一部)を示します。
ubuntu@ubuntu:~$ ls /etc/snort/rules/
attack-responses.rules community-mail-client.rules community-web-iis.rules imap.rules pop3.rules web-cgi.rules
backdoor.rules community-misc.rules community-web-misc.rules info.rules porn.rules web-client.rules
bad-traffic.rules community-nntp.rules community-web-php.rules local.rules rpc.rules web-coldfusion.rules
chat.rules community-oracle.rules ddos.rules misc.rules rservices.rules web-frontpage.rules
community-bot.rules community-policy.rules deleted.rules multimedia.rules scan.rules web-iis.rules
community-deleted.rules community-sip.rules dns.rules mysql.rules shellcode.rules web-misc.rules
community-dos.rules community-smtp.rules dos.rules netbios.rules smtp.rules web-php.rules
community-exploit.rules community-sql-injection.rules experimental.rules nntp.rules snmp.rules x11.rules
community-ftp.rules community-virus.rules exploit.rules oracle.rules sql.rules
community-game.rules community-web-attacks.rules finger.rules other-ids.rules telnet.rules
community-icmp.rules community-web-cgi.rules ftp.rules p2p.rules tftp.rules
community-imap.rules community-web-client.rules icmp-info.rules policy.rules virus.rules
community-inappropriate.rules community-web-dos.rules icmp.rules pop2.rules web-attacks.rules
ubuntu@ubuntu:~$ cat /etc/snort/rules/web-attacks.rules
# Copyright 2001-2005 Sourcefire, Inc. All Rights Reserved
#
# This file may contain proprietary rules that were created, tested and
# certified by Sourcefire, Inc. (the "VRT Certified Rules") as well as
# rules that were created by Sourcefire and other third parties and
# distributed under the GNU General Public License (the "GPL Rules"). The
# VRT Certified Rules contained in this file are the property of
# Sourcefire, Inc. Copyright 2005 Sourcefire, Inc. All Rights Reserved.
# The GPL Rules created by Sourcefire, Inc. are the property of
# Sourcefire, Inc. Copyright 2002-2005 Sourcefire, Inc. All Rights
# Reserved. All other GPL Rules are owned and copyrighted by their
# respective owners (please see www.snort.org/contributors for a list of
# owners and their respective copyrights). In order to determine what
# rules are VRT Certified Rules or GPL Rules, please refer to the VRT
# Certified Rules License Agreement.
#
#
# $Id: web-attacks.rules,v 1.18.2.2.2.1 2005/05/16 22:17:52 mwatchinski Exp $
# ----------------
# WEB ATTACKS
# ----------------
# These signatures are generic signatures that will catch common commands
# used to exploit form variable vulnerabilities. These signatures should
# not false very often.
#
# Please email example PCAP log dumps to snort-sigs@lists.sourceforge.net
# if you find one of these signatures to be too false possitive.
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-ATTACKS /bin/ps command attempt"; flow:to_server,established; uricontent:"/bin/ps"; nocase; classtype:web-application-attack; sid:1328; rev:6;)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-ATTACKS ps command attempt"; flow:to_server,established; uricontent:"ps%20"; nocase; classtype:web-application-attack; sid:1329; rev:6;)
.
.
.
Snortやそのルールの詳細については、以下で確認することが出来ます。
https://www.snort.org/
なお、Snortのバージョン(version2 or version3)によって、ルールの記載方法が異なるため、注意が必要です。
例題作成者
鯨井 貴博 (LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 ゼウスITトレーニングセンター)