From 6b5db6d9694833ea9baa1ef9f5fbdf819ed15764 Mon Sep 17 00:00:00 2001 From: Razvan Date: Fri, 22 Sep 2017 10:25:14 +0900 Subject: [PATCH] Update in view of release 0.2 Changes due to various modifications in CyRIS annd cnt2lms. --- code/instsrv.py | 90 +++++++++++--------- database/NIST-level1-content-en.yml | 120 +++++++++++++-------------- database/NIST-level1-content-ja.yml | 122 +++++++++++++--------------- database/NIST-level1-range.yml | 3 +- 4 files changed, 166 insertions(+), 169 deletions(-) diff --git a/code/instsrv.py b/code/instsrv.py index 230a284..e2bd22b 100755 --- a/code/instsrv.py +++ b/code/instsrv.py @@ -46,7 +46,8 @@ CYRIS_STATUS_FILENAME = "cr_creation_status" CYRIS_NOTIFICATION_TEMPLATE = "range_notification-cr{0}.txt" CYRIS_NOTIFICATION_SIMULATED = "range_notification-simulated.txt" -CYRIS_DESTRUCTION_SCRIPT = "whole-controlled-destruction.sh" +#CYRIS_DESTRUCTION_SCRIPT = "whole-controlled-destruction.sh" +CYRIS_DESTRUCTION_SCRIPT = "main/range_cleanup.py" CYRIS_CONFIG_FILENAME = "CONFIG" SIMULATION_DURATION = -1 # use -1 for random interval, positive value for fixed interval @@ -54,11 +55,11 @@ DEBUG = False USE_CYRIS = True -# Temporary +# Temporary solution until better way is implemented USE_CNT2LMS_SCRIPT_GENERATION = False -#CYRIS_MASTER_HOST = "172.16.1.7" -#CYRIS_MASTER_ACCOUNT = "cyuser" -#CNT2LMS_PATH = "/home/cyuser/moodle/cnt2lms/" +CYRIS_MASTER_HOST = "172.16.1.7" +CYRIS_MASTER_ACCOUNT = "cyuser" +CNT2LMS_PATH = "/home/cyuser/moodle/cnt2lms/" ############################################################################# @@ -174,6 +175,7 @@ def do_POST(self): return_value = os.system(command) exit_status = os.WEXITSTATUS(return_value) if exit_status != 0: + self.handle_cyris_error(range_id) self.send_error(SERVER_ERROR, "CyRIS execution issue") return @@ -199,39 +201,41 @@ def do_POST(self): message = urllib.quote(notification_file_content) response_content = self.build_response(Storyboard.SERVER_STATUS_SUCCESS, message) + + # We try to prepare the terminal for Moodle, but + # errors are only considered as warnings for the + # moment, since this functionality is not publicly + # released yet in cnt2lms + try: + if USE_CNT2LMS_SCRIPT_GENERATION: + ssh_command = "ssh -tt -o 'ProxyCommand ssh crond@172.16.1.3 -W %h:%p' crond@moodle" + python_command = "python -u " + CNT2LMS_PATH + "get_cyris_result.py " + CYRIS_MASTER_HOST + " " + CYRIS_MASTER_ACCOUNT + " " + CYRIS_PATH + CYRIS_RANGE_DIRECTORY + " " + range_id + " 1" + command = ssh_command + " \"" + python_command + "\"" + print "* DEBUG: instsrv: get_cyris_result command: " + command + return_value = os.system(command) + exit_status = os.WEXITSTATUS(return_value) + if exit_status == 0: + #response_content = RESPONSE_SUCCESS + pass + else: + #self.send_error(SERVER_ERROR, "LMS terminal preparation issue") + #return + print "* DEBUG: instsrv: LMS terminal preparation issue" + except IOError: + #self.send_error(SERVER_ERROR, "LMS terminal preparation I/O error) + #return + print "* DEBUG: instsrv: LMS terminal preparation I/O error" else: - # CyRIS is now destroying automatically the cyber range - # in case of error, so we just return the error status + # Even though CyRIS is now destroying automatically the cyber range + # in case of error, as it may fail we still try to clean up here + self.handle_cyris_error(range_id) response_content = self.build_response(Storyboard.SERVER_STATUS_ERROR, Storyboard.INSTANTIATION_STATUS_FILE_NOT_FOUND) except IOError: + self.handle_cyris_error(range_id) self.send_error(SERVER_ERROR, Storyboard.INSTANTIATION_CYRIS_IO_ERROR) return - # We try to prepare the terminal for Moodle, but - # errors are only considered as warning for the - # moment, since this functionality is not publicly - # released yet in cnt2lms - try: - if USE_CNT2LMS_SCRIPT_GENERATION: - ssh_command = "ssh -tt -o 'ProxyCommand ssh cyuser@172.16.1.3 -W %h:%p' cyuser@moodle" - python_command = "python -u " + CNT2LMS_PATH + "get_cyris_result.py " + CYRIS_MASTER_HOST + " " + CYRIS_MASTER_ACCOUNT + " " + CYRIS_PATH + CYRIS_RANGE_DIRECTORY - command = ssh_command + " \"" + python_command + "\"" - print "* DEBUG: instsrv: get_cyris_result command: " + command - return_value = os.system(command) - exit_status = os.WEXITSTATUS(return_value) - if exit_status == 0: - #response_content = RESPONSE_SUCCESS - pass - else: - #self.send_error(SERVER_ERROR, "LMS terminal preparation issue") - #return - print "* DEBUG: instsrv: LMS terminal preparation issue" - except IOError: - #self.send_error(SERVER_ERROR, "LMS terminal preparation I/O error) - #return - print "* DEBUG: instsrv: LMS terminal preparation I/O error" - # Don't use CyRIS, just simulate the instantiation else: # Simulate time needed to instantiate the cyber range @@ -271,14 +275,16 @@ def do_POST(self): # Use CyRIS to really do cyber range destruction if USE_CYRIS: - destruction_filename = CYRIS_PATH + CYRIS_RANGE_DIRECTORY + str(range_id) + "/" + CYRIS_DESTRUCTION_SCRIPT - if os.path.exists(destruction_filename): - os.system(destruction_filename) + destruction_filename = CYRIS_PATH + CYRIS_DESTRUCTION_SCRIPT + destruction_command = "{0} {1} {2}".format(destruction_filename, range_id, CYRIS_PATH + CYRIS_CONFIG_FILENAME) + print "* DEBUG: instrv: destruction_command: " + destruction_command + return_value = os.system(destruction_command) + exit_status = os.WEXITSTATUS(return_value) + if exit_status == 0: response_content = self.build_response(Storyboard.SERVER_STATUS_SUCCESS) else: response_content = self.build_response(Storyboard.SERVER_STATUS_ERROR, - Storyboard.DESTRUCTION_SCRIPT_NOT_FOUND) - + "CyRIS destruction issue") # Don't use CyRIS, just simulate the destruction else: @@ -327,7 +333,17 @@ def build_response(self, status, message=None): response_body = '[{' + response_status + '}]' return response_body - + + def handle_cyris_error(self, range_id): + print "* INFO: Error occurred in CyRIS => perform cyber range cleanup." + destruction_filename = CYRIS_PATH + CYRIS_DESTRUCTION_SCRIPT + destruction_command = "{0} {1} {2}".format(destruction_filename, range_id, CYRIS_PATH + CYRIS_CONFIG_FILENAME) + print "* DEBUG: instrv: destruction_command: " + destruction_command + return_value = os.system(destruction_command) + exit_status = os.WEXITSTATUS(return_value) + if exit_status != 0: + print "* ERROR: instrv: Range cleanup failed." + # Print usage information def usage(): print "OVERVIEW: CyTrONE instantiation server that manages the CyRIS cyber range instantiation system.\n" diff --git a/database/NIST-level1-content-en.yml b/database/NIST-level1-content-en.yml index 00baea3..6bd9dc5 100644 --- a/database/NIST-level1-content-en.yml +++ b/database/NIST-level1-content-en.yml @@ -1,100 +1,90 @@ --- - training: - - id: L1-E1 - description: Investigate the security of a desktop computer - header: | + - id: L1-EN + title: Investigate the security of a desktop computer + overview: |

Today is your first day on the job as a sysadmin. Your boss tells you that he suspects somebody tried to hack into your company's network, and asks you to investigate a possible cyber attack that may have happened when the system administrator was a guy called Daniel Craig. The boss sits you in front of the previous sysadmin's computer, and wishes you good luck.

You glance at the machine and reluctantly get to work.

level: 1 questions: - - id: R-L1-001 - type: fill - content: The operating system and kernel release number can tell you about the possible vulnerabilities of a computer. Find out the full kernel release number of the machine (e.g., 3.4.5-6.7.8.abc.x86_64). - answer: 3.10.0-514.16.1.el7.x86_64 + - id: L1-EN-001 + body: The operating system and kernel release number can tell you about the possible vulnerabilities of a computer. Find out the full kernel release number of the machine (e.g., 3.4.5-6.7.8.abc.x86_64). + answer: 3.10.0-514.21.1.el7.x86_64 hints: - - hint: You can use the command uname to find out OS details. - - hint: $ uname -r - - hint: An alternative solution is to get the required information from the /proc/version file. + - You can use the command uname to find out OS details. + - $ uname -r + - An alternative solution is to get the required information from the /proc/version file. - - id: R-L1-002 - type: fill - content: In order to understand the network your computer is connected to, you should know more about the machine. Find out the IPv4 address of its first network interface, and enter the last 2 bytes (inverse netmask /16 address) below (e.g, 0.0.123.234). + - id: L1-EN-002 + body: In order to understand the network your computer is connected to, you should know more about the machine. Find out the IPv4 address of its first network interface, and enter the last 2 bytes (inverse netmask /16 address) below (e.g, 0.0.123.234). answer: 0.0.1.2 hints: - - hint: You can use the command ifconfig to find out NIC information. - - hint: $ ifconfig eth0 - - hint: "An alternative solution is to use the ip command: $ ip addr show dev eth0" + - You can use the command ifconfig to find out NIC information. + - $ ifconfig eth0 + - "An alternative solution is to use the ip command: $ ip addr show dev eth0" - - id: R-L1-003 - type: fill - content: You also need to know about the routing settings of the machine. Find out the IPv4 address of the default gateway, and enter the last 2 bytes (inverse netmask /16 address) below (e.g, 0.0.123.1). + - id: L1-EN-003 + body: You also need to know about the routing settings of the machine. Find out the IPv4 address of the default gateway, and enter the last 2 bytes (inverse netmask /16 address) below (e.g, 0.0.123.1). answer: 0.0.1.1 hints: - - hint: You can use the command route to obtain routing information. - - hint: $ route -n | grep ^0.0.0.0 - - hint: "It is also possible to use the netstat command: $ netstat -rn | grep ^0.0.0.0" + - You can use the command route to obtain routing information. + - $ route -n | grep ^0.0.0.0 + - "It is also possible to use the netstat command: $ netstat -rn | grep ^0.0.0.0" - - id: R-L1-004 - type: fill - content: Investigating deeper requires you to know what accounts exist on the computer. Find out the user name of the previous system administrator. + - id: L1-EN-004 + body: Investigating deeper requires you to know what accounts exist on the computer. Find out the user name of the previous system administrator. answer: daniel hints: - - hint: The name of the previous sysadmin was already mentioned on this page. The /home directory could also provide some hints. - - hint: The /etc/passwd file is used to store login-related information. - - hint: $ grep -i Daniel /etc/passwd + - The name of the previous sysadmin was already mentioned on this page. The /home directory could also provide some hints. + - The /etc/passwd file is used to store login-related information. + - $ grep Craig /etc/passwd - - id: R-L1-005 - type: fill - content: A network intrusion is suspected, so you should check the relevant log file. Find out how many unsuccessful login attempts using the account of the previous sysadmin have occurred on March 28th, 2017. + - id: L1-EN-005 + body: A network intrusion is suspected, so you should check the relevant log file. Find out how many unsuccessful login attempts using the account of the previous sysadmin have occurred on March 28th, 2017. answer: 54 hints: - - hint: Unsuccessful login attempts are specific kind of authentication events. - - hint: In CentOS authentication events are logged in the file /var/log/secure. - - hint: $ sudo grep "Failed password" /var/log/secure | grep daniel | grep -c "Mar 28" + - Unsuccessful login attempts are specific kind of authentication events. + - In CentOS authentication events are logged in the file /var/log/secure. + - $ sudo grep "Failed password" /var/log/secure | grep daniel | grep -c "Mar 28" - - id: R-L1-006 - type: choice - content: You believe that the previous administrator's account password is too weak, which may have contributed to the hacking. What is his password? - choice: "\"JasonBourne\", \"GoldenEye\", \"JamesBond\", \"CasinoRoyale\"" + - id: L1-EN-006 + body: You believe that the previous administrator's account password is too weak, which may have contributed to the hacking. What is his password? + choices: "\"JasonBourne\", \"GoldenEye\", \"JamesBond\", \"CasinoRoyale\"" answer: JamesBond hints: - - hint: This is a multiple-choice question, so one of the answers must be the password. - - hint: You can use the command su to switch to another user. - - hint: $ su daniel + - This is a multiple-choice question, so one of the answers must be the password. + - You can use the command su to switch to another user. + - $ su daniel - - id: R-L1-007 - type: fill - content: You suspect that someone may have hacked the previous administrator's account. You need to verify whether this would have allowed hackers to have root privileges on this machine. What commands was the sysadmin allowed to execute as root? + - id: L1-EN-007 + body: You suspect that someone may have hacked the previous administrator's account. You need to verify whether this would have allowed hackers to have root privileges on this machine. What commands was the sysadmin allowed to execute as root? answer: ALL hints: - - hint: One can execute commands as root by using the command sudo. - - hint: The configuration file for sudo is /etc/sudoers. - - hint: $ sudo grep daniel /etc/sudoers + - One can execute commands as root by using the command sudo. + - The configuration file for sudo is /etc/sudoers. + - $ sudo grep daniel /etc/sudoers - - id: R-L1-008 - type: fill - content: You report the attempted intrusion and the sysadmin account weaknesses to your boss. He congratulates you and provides you with more data so that you can continue your investigation. The file /home/traffic.pcap contains the traffic capture related to a password guessing attack. In which country did the attack originate? + - id: L1-EN-008 + body: You report the attempted intrusion and the sysadmin account weaknesses to your boss. He congratulates you and provides you with more data so that you can continue your investigation. The file /home/traffic.pcap contains the traffic capture related to a password guessing attack. In which country did the attack originate? answer: Russian Federation hints: - - hint: "You can use the tool called Wireshark (or the terminal-based tshark or tcpdump commands) to investigate traffic capture files. For example: $ tshark -r /home/traffic.pcap -p ssh" - - hint: Use the IP address identified as source of the SSH login attempts to identify the country associated to it. - - hint: $ geoiplookup IP_ADDRESS + - "You can use the tool called Wireshark (or the terminal-based tshark or tcpdump commands) to investigate traffic capture files. For example: $ tshark -r /home/traffic.pcap -p ssh" + - Use the IP address identified as source of the SSH login attempts to identify the country associated to it. + - $ geoiplookup IP_ADDRESS - - id: R-L1-009 - type: fill - content: You are worried that hackers may still be connected to the machine. Find out what ports are open for all the IPv4 interfaces. + - id: L1-EN-009 + body: You are worried that hackers may still be connected to the machine. Find out what ports are open for all the IPv4 interfaces. answer: 22 hints: - - hint: You can use the command netstat to investigate network status. - - hint: $ netstat -atun | grep LISTEN - - hint: "An alternative is to use the lsof command: $sudo lsof | grep LISTEN" + - You can use the command netstat to investigate network status. + - $ netstat -atun | grep LISTEN + - "An alternative is to use the lsof command: $sudo lsof | grep LISTEN" - - id: R-L1-010 - type: fill - content: You suspect that malware may be running on your machine. Find out the name of the malware. + - id: L1-EN-010 + body: You suspect that malware may be running on your machine. Find out the name of the malware. answer: DAEMON hints: - - hint: A basic way to differentiate between legit processes and rogue ones is to look at process names. - - hint: "The command ps can be used to display all the running processes on a computer. For example: $ ps -ef" - - hint: You can use the command top to view the processes with highest CPU utilization. + - A basic way to differentiate between legit processes and rogue ones is to look at process names. + - "The command ps can be used to display all the running processes on a computer. For example: $ ps -ef" + - You can use the command top to view the processes with highest CPU utilization. diff --git a/database/NIST-level1-content-ja.yml b/database/NIST-level1-content-ja.yml index b24e5b3..b152005 100644 --- a/database/NIST-level1-content-ja.yml +++ b/database/NIST-level1-content-ja.yml @@ -1,100 +1,90 @@ --- - training: - - id: L1-J1 - description: デスクトップコンピュータのセキュリティ調査 - header: | + - id: L1-JA + title: デスクトップコンピュータのセキュリティ調査 + overview: |

本日はシステム管理者として初めての仕事の日です。あなたの上司は、誰かがあなたの会社のネットワークに攻撃しようとしたことを疑っており、あなたにダニエル・グレイグと呼ばれる男が管理者だった頃に起こった可能性のあるサイバー攻撃を調査するよう頼みました。上司は前任のシステム管理者のコンピュータの前にあなたを座らせて、上手くいくことを望んでいます。

あなたはパソコンを見て、渋々仕事に取り掛かります。

level: 1 questions: - - id: R-L1-001 - type: fill - content: オペレーティングシステムとカーネルリリース番号はコンピュータにどの脆弱性の可能性があるか伝えることができます。マシンのカーネルリリース番号を探してください。(例:3.4.5-6.7.8.abc.x86_64 ) - answer: 3.10.0-514.16.1.el7.x86_64 - hints: - - hint: あなたはunameコマンドを使ってOSの詳細を探すことができます。 - - hint: $ uname -r - - hint: 別の方法として,/proc/versionファイルから必要な情報を探すことができます。 + - id: L1-JA-001 + body: オペレーティングシステムとカーネルリリース番号はコンピュータにどの脆弱性の可能性があるか伝えることができます。マシンのカーネルリリース番号を探してください。(例:3.4.5-6.7.8.abc.x86_64 ) + answer: 3.10.0-514.21.1.el7.x86_64 + hints: + - あなたはunameコマンドを使ってOSの詳細を探すことができます。 + - $ uname -r + - 別の方法として,/proc/versionファイルから必要な情報を探すことができます。 - - id: R-L1-002 - type: fill - content: あなたのコンピュータが接続しているネットワークを理解するために、そのパソコンについてもっと知る必要があります。1つ目のネットワークインターフェースに設定されたIPv4アドレスを探して、最後の2 バイト(逆マスク/16 のアドレス)を入力してください。(例:0.0.123.4 ) + - id: L1-JA-002 + body: あなたのコンピュータが接続しているネットワークを理解するために、そのパソコンについてもっと知る必要があります。1つ目のネットワークインターフェースに設定されたIPv4アドレスを探して、最後の2 バイト(逆マスク/16 のアドレス)を入力してください。(例:0.0.123.4 ) answer: 0.0.1.2 hints: - - hint: あなたは、ifconfigコマンドによりNICの情報を探すことができます。 - - hint: $ ifconfig eth0 - - hint: 別のソリューションとしてipコマンドを使用する方法があります。$ ip addr show dev eth0 + - あなたは、ifconfigコマンドによりNICの情報を探すことができます。 + - $ ifconfig eth0 + - 別のソリューションとしてipコマンドを使用する方法があります。$ ip addr show dev eth0 - - id: R-L1-003 - type: fill - content: あなたは、この機械のルーティング設定についても知る必要があります。IPv4アドレスに対するデフォルトゲートウェイを探して、最後の2 バイト(逆マスク/16 のアドレス)を入力してください。(例:0.0.123.1 ) + - id: L1-JA-003 + body: あなたは、この機械のルーティング設定についても知る必要があります。IPv4アドレスに対するデフォルトゲートウェイを探して、最後の2 バイト(逆マスク/16 のアドレス)を入力してください。(例:0.0.123.1 ) answer: 0.0.1.1 hints: - - hint: routeコマンドを使用してルーティング情報を得ることができます。 - - hint: $ route | grep default - - hint: netstatコマンドを使うことでも可能です。$ netstat -r | grep default + - routeコマンドを使用してルーティング情報を得ることができます。 + - $ route | grep default + - netstatコマンドを使うことでも可能です。$ netstat -r | grep default - - id: R-L1-004 - type: fill - content: より詳しい調査は、どのアカウントがコンピュータ上に存在するか知る必要があります。前任のシステム管理者のユーザネームを探してください。 + - id: L1-JA-004 + body: より詳しい調査は、どのアカウントがコンピュータ上に存在するか知る必要があります。前任のシステム管理者のユーザネームを探してください。 answer: daniel hints: - - hint: 前任のシステム管理者の名前はすでにこのページに記載されています。/homeディレクトもヒントになります。 - - hint: /etc/passwdファイルはログイン関連の情報を保存するために使われます。 - - hint: $ grep -i Daniel /etc/passwd + - 前任のシステム管理者の名前はすでにこのページに記載されています。/homeディレクトもヒントになります。 + - /etc/passwdファイルはログイン関連の情報を保存するために使われます。 + - $ grep Craig /etc/passwd - - id: R-L1-005 - type: fill - content: ネットワークに対する侵入が疑われおり,あなたは関連するログファイルを確認する必要があります。前任のシステム管理者のアカウントを使用したログインの試行が2017年3月28日に何回発生したか調べてください。 + - id: L1-JA-005 + body: ネットワークに対する侵入が疑われおり,あなたは関連するログファイルを確認する必要があります。前任のシステム管理者のアカウントを使用したログインの試行が2017年3月28日に何回発生したか調べてください。 answer: 54 hints: - - hint: ログインに失敗した試行はauthenticationイベントで見つかります。 - - hint: CentOSでは認証イベントは/var/log/secureファイルに記録されます。 - - hint: $ sudo grep "Failed password" /var/log/secure | grep daniel | grep -c "Mar 28" + - ログインに失敗した試行はauthenticationイベントで見つかります。 + - CentOSでは認証イベントは/var/log/secureファイルに記録されます。 + - $ sudo grep "Failed password" /var/log/secure | grep daniel | grep -c "Mar 28" - - id: R-L1-006 - type: choice - content: あなたは,前管理者のアカウントのパスワードが弱すぎたためにハッキングを寄与したと考えています。彼のパスワードは何でしょうか? - choice: "\"JasonBourne\", \"GoldenEye\", \"JamesBond\", \"CasinoRoyale\"" + - id: L1-JA-006 + body: あなたは,前管理者のアカウントのパスワードが弱すぎたためにハッキングを寄与したと考えています。彼のパスワードは何でしょうか? + choices: "\"JasonBourne\", \"GoldenEye\", \"JamesBond\", \"CasinoRoyale\"" answer: JamesBond hints: - - hint: これは選択式の質問であるためどれかがパスワードです。 - - hint: あなたは、コマンドsu を用いて他のユーザに切り替えることができます。 - - hint: $ su daniel + - これは選択式の質問であるためどれかがパスワードです。 + - あなたは、コマンドsu を用いて他のユーザに切り替えることができます。 + - $ su daniel - - id: R-L1-007 - type: fill - content: あなたは、誰かが前任者の管理者アカウントをハッキングした可能性があると疑っています。あなたは、ハッカーがこのマシンのroot権限を取得しているか調査する必要があります。どのコマンドでrootとして実行をシステム管理者許可しましたか? + - id: L1-JA-007 + body: あなたは、誰かが前任者の管理者アカウントをハッキングした可能性があると疑っています。あなたは、ハッカーがこのマシンのroot権限を取得しているか調査する必要があります。どのコマンドでrootとして実行をシステム管理者許可しましたか? answer: ALL hints: - - hint: sudoコマンドを用いてrootとして実行が可能です。 - - hint: sudoの設定ファイルは/etc/sudoersです。 - - hint: $ sudo grep daniel /etc/sudoers + - sudoコマンドを用いてrootとして実行が可能です。 + - sudoの設定ファイルは/etc/sudoersです。 + - $ sudo grep daniel /etc/sudoers - - id: R-L1-008 - type: fill - content: あなたは、侵入試行やシステム管理者のアカウントの弱点を上司に報告します。彼は,あなたを祝福し、継続して調査できるように追加の情報を提供します。/home/traffic.pcap はパスワード推測攻撃による通信をキャプチャーした情報を含んでいるファイルです。攻撃元の国はどこですか? + - id: L1-JA-008 + body: あなたは、侵入試行やシステム管理者のアカウントの弱点を上司に報告します。彼は,あなたを祝福し、継続して調査できるように追加の情報を提供します。/home/traffic.pcap はパスワード推測攻撃による通信をキャプチャーした情報を含んでいるファイルです。攻撃元の国はどこですか? answer: Russian Federation hints: - - hint: Wireshark(又はコマンドラインのtsharkもしくはtcpdump)と呼ばれるツールを通信を調査するために使用してください。例:$ tshark -r /home/traffic.pcap -p ssh - - hint: SSHへのログイン試行に使用されたIPアドレスを関連の国を特定するために使います。 - - hint: $ geoiplookup IP_ADDRESS + - Wireshark(又はコマンドラインのtsharkもしくはtcpdump)と呼ばれるツールを通信を調査するために使用してください。例:$ tshark -r /home/traffic.pcap -p ssh + - SSHへのログイン試行に使用されたIPアドレスを関連の国を特定するために使います。 + - $ geoiplookup IP_ADDRESS - - id: R-L1-009 - type: fill - content: あなたは、攻撃者がマシンに接続することをまだ心配しています。IPv4インターフェースで開いている全てのポートを探してください。

+ - id: L1-JA-009 + body: あなたは、攻撃者がマシンに接続することをまだ心配しています。IPv4インターフェースで開いている全てのポートを探してください。

answer: 22 hints: - - hint: あなたは、netstatコマンドを使用してネットワーク状況を調査することができます。 - - hint: $ netstat -atun | grep LISTEN - - hint: 他の方法としては、lsofコマンドを使用することができます。$sudo lsof | grep LISTEN + - あなたは、netstatコマンドを使用してネットワーク状況を調査することができます。 + - $ netstat -atun | grep LISTEN + - 他の方法としては、lsofコマンドを使用することができます。$sudo lsof | grep LISTEN - - id: R-L1-010 - type: fill - content: あなたのマシン上でマルウェアが動作してかもしれないと疑っています。マルウェアの名前を見つけてください。 + - id: L1-JA-010 + body: あなたのマシン上でマルウェアが動作してかもしれないと疑っています。マルウェアの名前を見つけてください。 answer: DAEMON hints: - - hint: 正しいプロセスと不正なプロセスを区別する基本的な方法は,プロセス名を確認することです。 - - hint: psコマンドを使って、全ての実行中のプロセスを表示できます。例:$ ps -ef - - hint: topコマンドで最もCPU 使用率の高いプロセスを確認できます。 + - 正しいプロセスと不正なプロセスを区別する基本的な方法は,プロセス名を確認することです。 + - psコマンドを使って、全ての実行中のプロセスを表示できます。例:$ ps -ef + - topコマンドで最もCPU 使用率の高いプロセスを確認できます。 diff --git a/database/NIST-level1-range.yml b/database/NIST-level1-range.yml index 7ca0ecd..7943470 100644 --- a/database/NIST-level1-range.yml +++ b/database/NIST-level1-range.yml @@ -8,12 +8,13 @@ - guest_settings: - id: desktop basevm_host: host_1 - basevm_config_file: /home/cyuser/images/basevm_desktop.xml + basevm_config_file: /home/cyuser/images/basevm_small.xml basevm_type: kvm tasks: - add_account: - account: daniel passwd: JamesBond + full_name: Daniel Craig - install_package: - package_manager: yum