引き続き、Coursera で Google Cybersecurity Professional Certificate のコースを受講しているので、自分用の防備として後々復習するとき見直すかも、なメモ書きです。
Course 1 〜 Course 5 まではコースに関する感想が多いですが、Course 5 及び Course 6 の内容がセキュリティの専門的なものになってくるので、個人的なメモ書きの気配が強くなってます。
2024年1月5日現在、 Course 8 のサイバーセキュリティ職への準備に関するコースは、まだ未公開で受講できませんでした。公開を待ちます。
Courses
Google Cybersecurity Professional Certificate は8つのコースから構成されています。全部修了しなければ Cybersecurity Professional Certificate の修了書はもらえません。
大まかに以下みたいな構成でした。 (若干名称は違います。)
- 基礎知識
- セキュリティリスク管理(フレームワークとか国際規格とかの例示)
- ネットワークとそのセキュリティ
- Linux & SQL
- アセット、脅威と脆弱性
- 検知と対応
- Python によるセキュリティタスクの自動化
- サイバーセキュリティ関連職への準備
Course 1: 基礎知識
ここは簡単、というか、ある程度ITリテラシがあれば まぁそんなに苦労するでもなく理解できます。
ただし、元々のコースの設計がアメリカ向けの内容になっているので、アメリカの行政機関とか業界団体とかのガイドラインや用語に慣れる必要があります。 PII : Personally identifiable information とかがそれですね。「個人を識別できる情報」、日本語で言うところの個人情報です。
基礎知識というだけあって、かなり大枠な話なので抽象的です。具体例とかもうちょっと欲しいかなと、個人的には思いました。
Google の現役スタッフが自分のキャリアについて語ってくれたりするので、そこはモチベーション保ったりとかに大いに貢献してくれます。
Course 2: セキュリティリスク管理
Course 1 で説明のあった、フレームワークのもう少し詳細な説明や CISSP: Certified Information Systems Security Professional という認定で定められている8つのセキュリティドメインについての細かい説明があります。
他にも、OWASP: Open Web Application Security Project のセキュリティ原則であったり、CIA triad (confidentiality, integrity and availability) あたりは勉強になりました。
SIEM: Security information and event management ツールというものがあるのですが、この辺の具体的なツールを持ち出して解説してくれるのも良かったですね。 Splunk および Chronicle SIEM です。
また、コース後半では、セキュリティインシデントが発生した想定でのロールプレイがあり。なかなかに面白かったです。
Course 3: ネットワークとそのセキュリティ
こちらはまず、ネットワークの多重レイヤ構造で有名な2つのモデルについての説明です。例のあれです。OSI基本参照モデルとTCP/IPの階層モデル。
そして、ハブやスイッチ、ルーター、モデムなどの基本的なネットワーク機器の役割などの説明がありました。他にも、ファイヤウォールのもう少し細かい分類であったりDMZ等の説明があります。
続いて、具体的なプロトコルについての説明。IP、TCP、UDP、SSHなどなど、個人的にVPNはそこまで調べたことなかったので、勉強になりました。
もちろん、無線LAN IEEE802.11についても学習します。WPAの各バージョンと脆弱性懸念について知識のおさらいです。
あとは、DoS攻撃分類(SYNフラッド、ICMPフラッド、Ping of Death)や、DDoS攻撃とDoS攻撃との違いなんかも面白かったです。
ついでに、IPスプーフィングとパケットスニッフィングについて、改めて用語の確認。
最後のモジュールで、OSレベルからネットワーク、クラウドレベルまでのセキュリティハードニングの例について確認。NGFWは、パケットのヘッダだけでなくコンテンツの部分も読み込み対処可能。
この辺りは、基本情報技術者とか応用情報技術者でしっかり学習しておけば、難なく対応できるかなと思います。
Course 4: Linux & SQL
個人的に楽しみにしてたコースです。
OSの主な機能について、は 情報系学んでた人なら余裕です。
OS
一般的に使用されているOSの識別、もとくに困ることなく。
OSとアプリケーション・ハードウェアの関連性、については、OSの主な機能とほぼ同じでちょっと深掘りしてあるぐらい。
GUI と CLI の比較、はどっちも使ってる人なら、基本的なことばかりなので苦もなくいけます。
SQLが「エスキューエル」以外にも「sequel(シークウェル)」って発音されてるのは初めて知りました、講師陣がみんな sequel って言ってたので、Google 圏内だとこっちの方が一般的なのかな?と思います。ちなみに、GUI: graphical user interface は、「gu:i:(グーイー)」とも発音されるですね。初めて知りました。
BIOS: Basic Input/Output System から UEFI: Unified Extensible Firmware Interface への変遷とかの話がありました。BIOSとか名前だけでも懐かしさがあります。
Linux のディストリビューションについて、普段使いしてるのは Debian ですが、 KALI Linux というセキュリティ周りに特化したディストリビューションがあるってことは初めて知りました。各脆弱性のチェックやパケットキャプチャツール、デジタルフォレンジクスツール、ペネトレーションテストツール群が標準装備となってるみたいです。ついでに、Debian ベースなのがちょっと嬉しいです。apt ですね。
ツールとしては、Metasplot, Burp Suite, John the Ripper あたりは調べておきたいです。
ロールプレイでは、”Qwiklabs” なるものを使うみたいですね。使ったことないのですが、だいたい次の感じのものみたいです。”Qwiklabs provides real Google Cloud environments that help developers and IT professionals learn cloud platforms and software.” 要するに、「Google Cloud 上の学習用の環境でクラウドプラットフォームとかソフトウェアとかいろいろ触ってみれます。」ってことです。
使ってみた感じ、Coursera のコースと連動させる必要がある関係だと思うのですが、ブラウザのタブで Qwiklabs と Coursera を行ったり来たりで更新かけたりとか、最初はちょっと戸惑うと思います。(そのまま Labs の作業完了しただけだと完了のチェックマークがつかないので)
ロールプレイする内容は一般的な Linux の操作です。新しくユーザやファイル作成したり権限の付与や削除、パッケージマネジメントツール使ってアプリケーションインストールしたり、マニュアル表示させたりです。
“World writable file” (誰でも自由に書き込めるファイル)って用語が初見だったので、ここだけ覚えときます。
SQL
こちらも基本的には Linux に関するセクションと同じで、Qwiklabs を使って SQL でクエリ打ち込んでいきます。基礎となる、 SELECT some_columns FROM table; から順を追って説明してくれます。
この辺から理解度チェックの問題がちょっとレベル上がってきます。実際に問題文読み解いてSQL組んで吐き出されたレコードについて回答したりって内容になってきます。
Qwiklabs 上で利用するのは MariaDB です。Google が提供してるんで MySQL か MariaDB の選択になるんでしょうね。
この辺はウェブアプリケーション作って、DBからデータのフェッチしようと思うと必須になってくるあたり、別にセキュリティだけに役立つわけではないので、汎用性高めの内容です。
WHEREを使用してパターンマッチさせる際には “=” 演算子が使えないので LIKE演算子を使用する、とか、よく忘れるのでチェックです。
データベースの結合も割とややこしかったりするので良い復習になりました。 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 等
Course 5: アセット、脅威と脆弱性
まずは、もう一歩踏み込んだアセット、脅威、脆弱性についての定義からは始まって、それぞれの用語のドメインを決めたあと、細かい話に入っていきます。
アセットマネジメントでは、アセット分類やアセットインベントリの作成について説明があります。
管理すべきアセットとしてのデータは3種類に分類され、それぞれすべて保護される必要があるって話があります。これをInfoSecと呼び、3つの状態が Data in use, Data in transit, Data in rest です。
NIST Cyber Security Framework における Core, Tiers, Profiles の意味:
- Core:一般的なサイバーセキュリティのコントロール群
- Tiers:セキュリティを定量的に評価するための基準
- Profiles:コントロールにおけるベストプラクティス
サイバーセキュリティにおける、情報プライバシと情報セキュリティの意味合いの違い:
- 情報プライバシ:自分の個人情報に関する共有方法をコントロールできるようにすること
- 情報セキュリティ:潜在的な脅威から情報を守ること。(プライバシがまずあること)
把握しておくべき個人情報保護規制(レギュレーション)。以下について、特定の地域や国で制定されているが、グローバルなレギュレーション制定へかなり影響を与えているもの:
- GDPR: General Data Protection Regulation
EU一般データ保護規則 - PCI DSS: Payment Card Industry Data Security Standard
- HIPAA: The Health Insurance Portability and Accountability Act
(米国)医療保険の携行性と責任に関する法律
Security Assessment と Security Audit について:
- Security Assessment:セキュリティ評価、脅威に対する耐性を調べる、測る。
- Security Audit:セキュリティ監査、まず基準があり、その基準に適合するか確認する。
暗号化について、一般知識の説明。PKI: Public Key Infrastructure 公開鍵暗号基盤などなど。
また、非対称暗号化と対称暗号化の違い:
- Asymmetric encryption:非対称暗号化、いわゆる公開鍵暗号方式
- Symmetric encription:対称暗号化、いわゆる秘密鍵暗号方式
Cipher(暗号化アルゴリズム)について。
対称暗号化アルゴリズム:
- 3DES:Data Encryption Standard、192ビット鍵 データ量に制限
- AES:Advanced Encryption Standard、128, 192, 256ビット鍵 セキュリティ高い
非対称暗号化アルゴリズム:
- RSA:Rivest Shamir Adleman、人名、1,024, 2,048, 4,096ビット鍵 機密性高いデータ向け
- DSA :Digital Signature Algorithm、2,048ビット鍵、RSAの補完として利用されている
一般には、秘密鍵と公開鍵の生成が必要な非対称暗号化方式の方がより長いビット調の鍵が必要となる。
Kerckhoffs’ principle:ケルクホフスの原理 ->「暗号技術においては、秘密鍵以外の全てが公になったとして、なお安全であるよう設計されるべきである」
Qwiklabs の実践では、Linux 上の openssl を使って、ファイルの復号化を行なったりします。この辺はなかなか面白いです。
データのハッシュ化は、ウェブアプリケーションのログイン認証とかで使ってるのはみたことありますが、アプリケーションの完全性(正当性)を評価することにも使われてるみたいですね。セキュリティ分野において。
悪意のある人が、社内用アプリケーションを表面的な機能はそのままに、意図しない動作をバックグラウンドで処理するようなアプリケーションと置き換えた場合、置き換え前後のハッシュ値が全く異なったものになることからセキュリティ的な検知が可能となる。
代表的なハッシュ関数:
- MD5: Message Digest Algorithm 5、128ビットのハッシュ値 ハッシュ値の衝突による脆弱性あり
- SHA: Secure Hash Algorithm、160ビットハッシュ値、衝突に強い
レインボーテーブル:プレーンテキストとそのハッシュ値をテーブルにしたもので攻撃に使われる
ソルティング:ハッシュ化の入力にランダムなテキストを追加することでハッシュ値を強固にする対策
アクセス制御における3つの要素(AAAフレームワーク):
- 認証:アクセスしようとする人の正当性の確認 大きく3つの方法
- 知識情報
- 所持情報
- 生体情報
- 認可:アクセスする人に特定の権限を与える。認証が大前提
- アカウンティング:システムのアクセスログを監視すること
IAM: Identity and Access Management、デジタル ID を管理するプロセスとテクノロジーによる仕組みでアクセス制御の分類に特徴。基本的にはAAAとほぼ同じ:
- MAC:Mandatory Access Control、強制アクセス制御
- DAC:Discretionary Access Control、任意アクセス制御
- RBAC:Role-based access control、ロールベースアクセス制御
IAM は AWS でもサービスとして見かけますね。
脆弱性に対しては、基本的には多層防御を行う。Multi-layered Defense または、Castle-and-moat や Castle approach とも呼ばれる。
脆弱性は主にシステムの弱点に対して使われ、エクスポージャは人為的なミスに対して使われる。
CVEリスト:Common Vulnerabilities and Exposures は脆弱性とエクスポージャに関するポピュラーなライブラリ。CVE Numbering Authorities という機関によって評価される。
ONIST:Open Source Intelligence、オープンソースインテリジェンス。インテリジェンスとは、情報に基づいて生み出されるものであって、情報は収集されるもの。つまり、情報を集めて、そこからインテリジェンスを生み出しましょうってことですね。
ONISTの文脈では、すでにある程度まとめられて、専門家による検討がなされたリソースって感じでしょうか。
脆弱性スキャナは、多層防御の各層に対して使用される:
- 境界防御層:ユーザ認証など
- ネットワーク層:ネットワーク関連、ファイアウォール含む
- エンドポイント層:端末とか
- アプリケーション層:ユーザアプリケーション
- データ防御層:in use, in transit, in rest 全ての状態を含む
ペネトレーションテスト:Penetration test (Pen test) 、プロセスの脆弱性を確認するための、模擬攻撃 そのアプローチから大きく3つに分類される:
- Red team testing:主に攻撃のシュミレート
- Blue team testing:防御とインシデント対応
- Purple team testing:Red と Blue の組み合わせで主にセキュリティポスチャの改善を目指す
さらに、その戦略からも3つに分類:
- Open box testing:模擬攻撃対象の情報を持った状態で
- Closed box testing:模擬攻撃対象の情報を持たない状態で
- Partial Knowledge Testing:上記の中間、部分的に情報を持って
一般的なマルウェアと主な分類:
- ウイルス:ファイルに寄生して悪さをする
- ワーム:ウイルスと違い単体で実行される
- トロイの木馬:有益なソフトウェアに見せかけてインストールさせられる
- ランサムウェア:最近流行ってる、ファイルを暗号化して身代金を要求される
- スパイウェア:情報を「無断で」外部に発信する
マルウェアの分類ぐらいは、ITリテラシあれば一般常識ですね。
XSS: Cross Site Scripting とその分類:
- 反射型XSS:URLに悪意のあるコードを埋め込む
- 格納型XSS:サーバー側のCMSなどのコンテンツに悪意のあるコードを埋め込む
- DOM-baesd XSS:悪意のあるコードを処理できるJavaScriptを悪用する
って感じですね。反射型と格納型が共にサーバーとやり取りするのに対して、DOM-based はクライアント側の JavaScript だけで悪意のあるコードを実行させてしまう。(実行中か後にデータ飛ばすのは別として)
XSSに対して、SQLインジェクションは、悪意のあるSQLインジェクションをバックグラウンドで走ってるデータベースに渡して処理させてしまうような攻撃手法。同じく主要なものに3種類:
- In-bound SQLインジェクション:最も一般的、正規の通信チャネルを使って悪意のあるSQLをDBサーバーまで送る
- Out-of-bound SQLインジェクション:かなり珍しい、通常は開かれていない通信チャネルを使って悪意のあるSQLをDBサーバーまで送る
- Inferential SQLインジェクション:攻撃者が直接秘匿された情報を見ることはできないが、発生されるエラーメッセージからデータベースの構造などの情報を得てそれを悪用する
SQLインジェクション攻撃の防御策としては、入力データに対するサニタイジングやバリデーションが重要となる。
脅威モデリングのフレームワークに PASTA:Process for Attack Simulation and Threat Analysis があり、7つのステージからなっている。
流石にこの辺ぐらいまでセキュリティに特化した内容になってくると覚え直すことがたくさんでした。
Course 6: 検知と対応
さて、続いてセキュリティの醍醐味?と言ってもいいかもしれない、攻撃の検知やインシデント対応についてです。
まずは、NISTのインシデント対応ライフサイクル。準備、検知と分析、封じ込め、根絶と復旧、事後対応のステップで定義される。
インシデントに対応する部隊として、CSIRT: Computer Security Incident Response Team を組織できる。 基本的には以下の要素が必要:
- コマンド:リーダーシップと指示
- コントロール:技術的側面の管理
- コミュニケーション:ステークホルダーとの情報共有
そして、以下のロールで組織される:
- セキュリティアナリスト:セキュリティ上の脅威への継続的な監視
- テクニカルリード:技術面でのリードを行う 根本原因の特定や技術対応など
- インシデントコーディネータ:関連する部門との調整 情報共有
また、CSIRT と同様に SOC: Security Operation Center も組織できる。これは、CSIRTの一部門として、または独立した1つのユニットとなりうる。
SOCは上位のレイヤーから順に:
- SOCマネージャ:チームのパフォーマンス管理や、メンバの採用・トレーニング
- Tier3 SOCリード:チームの運営管理、高度な技術の検討、SOCマネージャへの報告
- Tier2 SOCアナリスト:ツールのコンフィギュレーション、Tier1からの情報取りまとめ
- Tier1 SOCアナリスト:アラートの監視、レビュー、優先順位付けとエスカレーション
検知ツールには大きく以下3つの分類がある:
- IDS: Intrusion Detection System、基本的には検知のみ
- IPS: Intrusion Prevention System、検知プラス攻撃の阻止まで
- EDR: Endpoint Detection and Response、一番モダンでアクティビティの分析から自動対応まで実施する。その際、基本的には機械学習やAIによる自動化が一般的
検知の出力アラートは以下4種類:
- True Positive: 陽性
- True Negative: 陰性
- False Positive: 偽陽性
- False Negative: 偽陰性 -> 最も危険
SIEM: Security Information and Event Management と共に、SOAR: Security Orchestration, Automation and Response が使われることも多い。
SIEMがログの収集分析に特化した仕組みであるのに対し、SOAR は、インシデントの対応までを自動化するような仕組み。
ネットワークモニタリングでは、まず、正常な範囲と異常な範囲を区別するベースラインを設定する。
その上で、基本的には以下3つの観点からネットワークを監視する:
- フロー分析:例えば、一般的なプロトコルで通常は使用されないようなポートに対する通信
- パケットのペイロード情報:ペイロード情報をのモニタリングには復号化が必要
- 通信の時間帯:それぞれの国(拠点)の活動時間外に大量のトラフィックがある場合 等
SOC: Security Operation Center はセキュリティ全般なのに対し、NOC: Network Operation Center はネットワークに特化。特に、IoC: Indicator of Compromise (侵害の痕跡) と呼ばれる、セキュリティインシデントの兆候を監視する。
ツールとしては、IDSやNetwork Protocol Analyzer を用いて監視する。 Network Protocol Analyzer の有名どころとしては、 tcpdump や wireshark あたり。
Lateral Movement: ラテラルムーブメントとは、攻撃者がシステムに侵入成功した場合に、重要なアセットを探すため、横方向にネットワークを巡回するような行動のこと。
Packet Capture: パケットキャプチャとは、パケットをキャプチャする動作のこと。(キャプチャするツールのとこではない)または、その出力データを意味する場合もある。
Network Protocol Analyzer を使用する際、基本的に NIC が自端末に関係あるパケットしか受け入れないようになっている設定を変更する必要がある。これをワイヤレスインターフェースでは、「Monitor Mode」といい、有線インターフェースでは「Promiscuous Mode」と呼ばれる。
パケットキャプチャの形式には、使用するライブラリによって数種類ある:
- Libpcap:Linux や MacOS のような UNIX系のシステム用に設計されたライブラリ
- WinPcap:Windows OS デバイス用に設計されたもの、古いのであまり使われてない
- Npcap:Windows OS 用で一般的に使用されている
- PCAPng:最も新しいライブラリ、キャプチャと保存を同時に処理できる
パケットキャプチャは、郵便の封筒を見るようなもので、その次に行うパケット解析が、封筒の中身の手紙を読むようなもの。
IPv4 のヘッダ情報には13のフィールドがある:
- バージョン:IPv4 or IPv6
- ヘッダー長: (HLEN):ヘッダーの長さ オプション含む
- サービスタイプ:パケット配信の優先順位
- パケット長:パケット全体の長さ ヘッダ、ペイロード含む
- 識別子:フラグメント固有の識別子
- フラグ:フラグメントされていることを示すフラグ
- フラグメントオフセット:フラグメントの順序を識別するためのもの
- 生存機関 (TTL):ネットワーク内をパケットが流通できる限界を示す
- プロトコル:ペイロード部分に使用されているプロトコル
- ヘッダーチェックサム:ヘッダー用のチェックサム
- 送信元IPアドレス
- 宛先IPアドレス
- オプション:セキュリティオプションを設定する場合に使用
続いて、IPv4 よりもアドレス空間の大きな IPv6 のヘッダ、こちらは8つのフィールド:
- バージョン:IPv4 or IPv6
- トラフィッククラス:パケットの優先度やクラスに関する情報
- フローラベル:パケットのシーケンスを識別する
- ペイロード長:ヘッダを含まないペイロードのサイズ
- 次ヘッダー:IPv6 の次のプロトコルのヘッダーの種類
- ポップリミット:パケットが破壊されるまでにパケットがネットワーク内を移動できる限界
- 送信元IPアドレス
- 宛先IPアドレス
Wireshark はオープンソースのネットワークプロトコルアナライザ、GUI で操作できる。プロトコルごと、IPアドレスごと、ポートごとなどでフィルタリングができ、比較演算子なども使用可能。
tcpdump は、CLIベースのネットワークプロトコルアナライザで、多くの Linux ディストリビューションでプリインストールされている。基本的な tcpdump のコマンド構成は以下:
sudo tcpdump [-i interface] [option(s)] [expression(s)]
Quiklabs で構築された Linux とか Windows のVM上で実践させてくれる演習があったので、ここは役に立ちました。会社のネットワークの調子が悪かった時に wireshark 使ってパケット解析したことがありましたが、それ以来触ってなかったので良い復習になりました。
Cyber Deception: 悪意のある攻撃者を意図的に欺く防御のことで、主なものに、ハニーポットがある。
Honeypot: 不正アクセスを受けることを前提として、作成された罠としてのファイルなど
IoC: Indicator of Compromise -> 侵害の痕跡 が、攻撃後の情報に着目しているのに対して、IoA: Indicator of Attack -> 攻撃の指標 は、攻撃の最中の情報に着目している点で違いがある。
Pyramid of Pain: 痛みのピラミッド とは、IoC と、それをセキュリティ担当者が防御した際に悪意のある攻撃者に与える困難さのレベルとの比較表を提供する。
TTP: Tactics, Techniques, and Procedures とは、主に悪意のある攻撃者が用いる、戦略・技術・手順のこと。
Triage: 医療におけるトリアージと同じで、セキュリティにおいては、アラートを重要度や緊急度の尺度で評価し、インシデントに優先順位をつけることを意味する。
BCP: Business Continuity Plan とは、重大な混乱時(紛争や感染症など)及びその後に事業を継続するためのプロセスをまとめた計画書。事業継続計画とも呼ばれる。
BCP は特に COVID-19 の拡大初期によく新聞でも目にすることがありますね。これ以降、ISOなどの審査などでもたまに問われ始めました。
ログには、各イベントの情報を表すエントリが含まれる。主なフォーマットとしては以下が使われる:
- JSON: JavaScript Object Notation
- syslog: 3つの意味があり、それぞれフォーマット、プロトコル、ロギングサービス
- XML: eXtensible Markup Language
- CSV: Comma-Separated Values
- CEF: Common Event Format
IDS: Intrusion Detection System には以下の分類がある:
- HIDS: Host-based Intrusion Detection System
- NIDS: Network-based Intrusion Detection System
Signature: シグネチャとは、アクティビティを監視するために指定するルールで、悪意のあるアクティビティに関連するパターンのこと。IDS は、シグネチャに該当したものにアラートを発する
Anomaly: アノマリーとは、訓練と検知の2つのフェーズによってベースラインを確立し、そこから外れたアクティビティに対して IDS はアラートを発する。
Suricata: オープンソースの IDS, IPS, かつネットワーク分析ツール。https://suricata.io/
Suricata では、シグネチャを設定することによってイベントを検出する。Suricata のシグネチャの構成要素は以下の3つ:
- アクション:アクティビティがシグネチャと一致した際にとるアクション
- ヘッダ:IPアドレスやポート、プロトコルなどのトラフィック情報
- ルールオプション:シグネチャをカスタマイズするためのオプショ
Log Ingestion: ログインジェスションとは、ログソースからログを収集して SIEM ツールにインポートするプロセス。
Log Forwarder: SIEM ツールに対して、データを収集して送信するアプリケーション、基本的には SIEM ツールとは別体で運用する。OS によってはネイティブのフォワーダを有するものもある。
この辺りも Course 5 と同様にかなり専門的な内容になっていたので、覚えることたくさんありました。パケット解析の実践的な演習をツール使ってできたのは良いとこですね。
Course 7: Python によるセキュリティタスクの自動化
続いて、Python です。たまに実務でも業務効率化で使ったりしてるので、多分そこまで困ることはないかと思います。
まずは基本のコメントと文字列出力から、プリミティブな型に行って、演算関係ですね。
以下の演算は初めて知りました、”//” で整数を返す除算となります。1/4 = 0.25 ≒ 0 なので、”0″ が出力される。
print(1//4)
続いて変数の取り扱い、ですが、最近は静的型付け言語の Rust ばっかり触ってたので、動的に変数の型が変化する Python のコード見るとちょっと変な感じがします。
Jupyter Notebook も久々に触るので、その辺も思い出しながら進めます。
条件文については、特に一般的な内容なのでサクッと済ませます。
関数呼び出し、定義、引数、戻り値、パラメータも一般的な内容で。
それから文字列操作です。ここは Rust でもメイントピックスの1つとして取り上げられてましたし、ひいては、どのプログラミング言語でも文字列操作は重要です。
ブラケット記法やスライスについてざっと復習。合わせてリストも同時に。
正規表現は、Python 以外でも通用するし、ジェネリックな内容なので、おさらいも兼ねてちょっとだけ細かく見てます。
# 1桁から3桁までの数字にマッチ
pattern_1 = "\d{1,3}"
# 1文字以上の英数字にマッチ
pattern_2 = "\w+"
# 0または1文字以上の記号を含む文字にマッチ
pattern_3 = ".*"
ファイルの読み書きには、原則 with 文を使ってリソースの割り当てと解放を自動で行わせること。
最後はデバッグについておさらいして終了です。意外とデバッガーとか使わずに人力でやってました。
例外、シンタックスエラー、論理エラー、の分類についてはもう一度はっきりさせとこうと思います。
Course 8: サイバーセキュリティ関連職への準備
未公開のため、近日 受講後にまとめます。
長いこと待たされましたが、2024/1/20時点で開講されたので順に見ていきます。就職の準備関係の内容についてはアメリカ国内での就職を想定されているので、ざっと流すだけにします。
サイバーセキュリティ上の一般的なデータの分類:
- 一般公開データ:このデータは一般に公開されていますが、それでもセキュリティ攻撃から防御する必要がある。
- 限定公開データ:公開されるべきではない情報。当然に防御する必要がある。
- 極秘データ:情報システムへの運用認可を受けていないすべての人から防御される必要がある。
- 機密データ:組織の継続的なビジネス運用にとって重要なデータ。
CISO: Chief Information Security Officer
セキュリティインシデントのエスカレーションとインシデント情報のコミュニケーション
レジュメには、何をしてきたかという事実が書かれ、カバーレターはどんな人かを書かれるもの。カバーレターには特にその職種に対する情熱や関心を関心を書くと良い。
Rapport: [rəpɔ́r] ラポール、互いの考えを理解し意思疎通がうまくいっている友好的な関係
The STAR method is an interview technique that gives you a straightforward format you can use to tell a story by laying out the situation, task, action, and result.
- Situation
- Task
- Action
- Result
Imposter syndrome (IS) is a behavioral health phenomenon described as self-doubt of intellect, skills, or accomplishments among high-achieving individuals.
まとめ
さすが Google が提供するだけあって、サイバーセキュリティを網羅的・体系的に学ぶことができます。
また、仮想化技術とかも存分に使ってあって、実際にコードやコマンド打ち込んでみて、作動確認してってとこまでできるので、かなり実践的なのではないかなと思います。
ただし、Cybersecurity Professional Certificate と銘打ってありますが、あくまでも初級セキュリティアナリスト向けの内容なので、特別専門的な内容でもないです。サイバーセキュリティに興味ある人とか、サイバーセキュリティ業界に飛び込んでみたい人とかにはいい教材です。
前提知識として必要になるのは、基本情報技術者試験ぐらいは持っておいた方が良いです。基礎知識がない状態からやるとなるとかなり時間がかかると思います。相当頑張っても3ヶ月ぐらいはかかりそう。
逆に、基礎知識のある人は、頑張れば1ヶ月、のんびりやっても3ヶ月ぐらいで終了できる量です。
ついでに、このコースを受講する前に CLI: Command Line Interface は慣れておいた方が良いです。GUIだけだと戸惑うと思います。
全体的に、価値のあるいいコースだと思いました。それでは!
コメント