001.最低限の指針
選択理論心理学
https://u-hyogo.repo.nii.ac.jp/record/1080/files/KJ00010292219.pdf
※ アクセスするとpdfがダウンロードされるので注意
‐選択理論による「行動のセルフコントロールの 7 つの習慣」‐①今ここで自分が行動せよ(効果的な行為、見方、考え方を選択せよ)。
②自分の様々な願望(上質世界の写真アルバム)を明確にせよ。
③相手を振り回すな(外的コントロールするな)。相手の主体性と行動選択を尊重せよ。
④相手や環境、過去の出来事に振り回されるな(外的コントロールされるな)。外から入ってくるものは「情報」に過ぎない。どう対応するかは自分が選択できる。
⑤相手の上質世界を理解し尊重せよ。意見が異なるときは、違いをよくすり合わせ、自分から「できる妥協」をせよ。
⑥以上を、自分の「内的行動選択のサイクル」を上手に使って実践せよ。
⑦自分の幸せのために行動する責任は、他人ではなく自分にあると自覚せよ。
002.このブログの作り方
1.https://github.com/otoyo/astro-notion-blog のREADMEに従ってあれこれする
2.forkしたコードをちょっと編集する。
(MITライセンスなので Powered by astro-notion-blog を右下に残してる)
以上
要約すると、MIT Licenseとは次のようなライセンスである。
- このソフトウェアを誰でも無償で無制限に扱って良い。ただし、著作権表示および本許諾表示をソフトウェアのすべての複製または重要な部分に記載しなければならない。
- 作者または著作権者は、ソフトウェアに関してなんら責任を負わない。
ちなみにドメインは10年分買ってる(約1万3千円)。
いつでも5億円で売却するので欲しい人は連絡してください。
Githubでコードを管理しているけど(非公開)
個人の運用なのでmainとdevelopブランチのみ。
main | 本番 |
develop | 開発&準本番 |
feature | 開発 |
コードを変更するとCloudflareのデプロイが自動で走る。
developにコミットしてデプロイされたやつにアクセスして確認、
問題なければmainへdevelopを取り込む一般的なスタイル。
notionでの変更は自動で反映されない。
手動でデプロイを再実行するか、コードを適当に変えるかする必要あり。
リンクされることを一応想定して、なるべく変わらないように努めたい。
あとは全て気分次第。
003.RPCI
RPCIとは、「Response Practice for Cyber Incidents」を意味する演習です。
国立開発研究法人情報通信機構(NICT)が提供している実践的サイバー防御演習CYDER※の大規模な実機演習環境のノウハウを活かし、
情報処理安全確保支援士(登録セキスペ)特定講習向けカリキュラムとシナリオを構築しました。
本番に近いリアルな環境でのインシデント対応を行う演習になります。
情報処理安全確保支援士の重要な役割のひとつである「脅威への対応と対策」に関して実践で学べます。
受講者のみなさんは、仮想組織のネットワークをシミュレートした演習環境上で擬似的に発生させたサイバー攻撃に、
最大4人一組のCSIRTとしてチームで対処します。実際に起こり得る攻撃シナリオで、
実機を用いてインシデントハンドリングのプロシージャーを1から10まで学ぶことが可能です。
※CYDER: 政府のサイバーセキュリティ戦略等に基づき、国の機関、地方公共団体、
重要社会基盤事業者等を対象に実施している実践的サイバー防御演習です。
セキュリティインシデントが発生した際の対応手順や事前の備え等について学ぶことができます。
修得できるスキル
Wiresharkを利用した特定のプロトコルのパケット解析
Nmapを利用したネットワークアクセスコントロールの適正動作確認
Hydraを利用した、自らが管理するネットワーク機器への侵入試験
ネットワーク機器への侵入軽減に対する対策説明能力
CISO(最高情報セキュリティ責任者)に対する優先度をつけた再発防止策の提案
事前学習
(標準学習時間2時間程度)
演習で利用するツール(Wireshark, Nmap, Hydra等)の操作方法や、受講する際に必要となる知識を学ぶことが出来ます。
※2024年度は、2025年1月17日(金)正午まで事前学習サイトへのアクセスが可能です。演習後の復習にもご活用いただけます。
集合演習(ハンズオン&グループワーク)
仮想組織のネットワークをシミュレートした演習環境を舞台に、
最大4名のチームで攻撃者からの攻撃に対処し、インシデントハンドリングのプロシージャーを
「ひとつひとつのステップ」を踏みながら1から10まで学びます。また、平時にどのようなセキュリティ対策や備えを実施しておく必要があるのかを学べます。
ハンズオン
チームに分かれ、インシデントハンドリングを一通り体験し、報告書を作成します。
インシデントの発見(検知)、初動対応、指示、報告、ベンダーへの依頼、問題箇所の特定・隔離、
ログ分析、被害状況の確認、フォレンジック等を、実際にパソコンを操作しながら体験します。
グループワーク
ハンズオンを通して気づいたポリシー等の運用面の課題を明確にし、解決策や強化策を検討するディスカッションを行い、他チームに向けて発表します。
別組織の方の意見を聞くことで、アプローチ⽅法の違い等、新たな発⾒や気づきを得ることができます。
シナリオ例
ある日、さいだ市の職員Aさんが、取引業者から納品されたUSBメモリを自分のパソコンに挿入し、USBメモリに入っていたファイルをクリックしました。
数日後、ネットワーク監視会社から「さいだ市職員の業務用パソコンから不正な通信を検出した」と連絡を受けました。
01検知・連絡受付
パソコンやサーバーなどの不審な動作を検知。組織内外からの通報を受け付けます。
シナリオ例:寄せられた情報が正しい情報であるか真正性を確認する。
02トリアージ(優先順位付け)
インシデントが疑われる事象に対して、情報収集やログ調査などを行い、事実関係を確認します。
インシデントと判断した場合には、被害状況を把握した上で重要度によって対応に優先順位を付けていきます。
シナリオ例:不正な通信がどんな内容のものか、どの職員のパソコンかを特定する。
03インシデントレスポンス(対応)
組織として、どのように対応すべきか、外部に協力を求める必要があるかなどを検討します。
「証拠保全」「封じ込め」「根絶」「復旧措置(暫定対応)」を行います。
シナリオ例:影響範囲を特定し、被害拡大を防ぐ適切な対処を実施する。
04報告・公表
被害の度合いや影響を及ぼしている範囲に応じて、報告・公表します。
組織内部への報告に加えて、被害者、監督官庁などの外部関係者にも併せて報告します。
シナリオ例:インシデントへの対応を時系列でまとめ、報告書を作成する。
05事後対応
インシデントに関わったすべての関係者が参加して「振り返り」を実施します。
同様のインシデントを防ぐための今後の対応などを含め、最終報告書に取りまとめます。
シナリオ例:インシデント対応の中で得られた経験、気付きを共有する。
実践的な講習を受けることにはどのような意味があるのか?
→知識として知っている段階から、実践できる段階へのレベルアップになる
また、ふんわりとした知識が実践を通すことでしっかりした知識として定着する
逆に言えば、知識として知っているだけでは、実践できない。
004.IPA春ネスペ
午後1のSD-WANで大失点しているはず。
午後2は↓の通り不備あり、公式にアナウンス。
→もし万が一午後1を突破していれば合格の可能性が無きにしも非ず。
https://qiita.com/angel_p_57/items/aa6b58cf7130006810b5
https://www.ipa.go.jp/news/2024/shiken_20240607.html
いずれは自分で問題の不備を指摘できるようになりたい気持ちではある。
005.SpringBoot練習台
環境を汚染したくないのでDockerで作った。
*Docker Desktop は、Docker Personal サブスクリプションの一部として、個人、非商用のオープン ソース開発者、学生、教育者、従業員数 250 名未満かつ年間売上高 1,000 万ドル未満の小規模企業が無料で使用できます。従業員数 250 名を超える企業または年間売上高 1,000 万ドルを超える企業で Docker Desktop を商用利用するには、有料サブスクリプション (Pro、Team、または Business) が必要です。
% tree
.
├── Dockerfile
├── README.md
├── docker-compose.yml
├── javaapp
│ ├── pom.xml
│ ├── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller
│ │ │ │ └── UserController.java
│ │ │ ├── model
│ │ │ │ └── User.java
│ │ │ └── service
│ │ │ └── UserService.java
│ │ └── resources
│ │ ├── application.properties
│ │ └── templates
│ │ ├── complete.html
│ │ ├── confirm.html
│ │ └── input.html
│ └── target
│ ├── classes
│ │ ├── application.properties
│ │ ├── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── DemoApplication.class
│ │ │ ├── controller
│ │ │ │ └── UserController.class
│ │ │ ├── model
│ │ │ │ └── User.class
│ │ │ └── service
│ │ │ └── UserService.class
│ │ └── templates
│ │ ├── complete.html
│ │ ├── confirm.html
│ │ └── input.html
│ ├── demo-0.0.1-SNAPSHOT.jar
│ ├── demo-0.0.1-SNAPSHOT.jar.original
│ ├── generated-sources
│ │ └── annotations
│ ├── maven-archiver
│ │ └── pom.properties
│ └── maven-status
│ └── maven-compiler-plugin
│ └── compile
│ └── default-compile
│ ├── createdFiles.lst
│ └── inputFiles.lst
└── output
└── demo-0.0.1-SNAPSHOT.jar
アプリの中身は適当に。
あとはルートディレクトリで↓を順番に打てば…
docker-compose up -d
docker build -t spring-boot-app .
docker run -p 8080:8080 spring-boot-app
↓こうなる。で、ブラウザでhttp localhostにアクセスするとアプリが見れる。
% docker run -p 8080:8080 spring-boot-app
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.6)
2024-06-08 06:49:04.720 INFO 1 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication v0.0.1-SNAPSHOT using Java 11.0.16 on e827d294a1ec with PID 1 (/app/demo.jar started by root in /app)
2024-06-08 06:49:04.723 INFO 1 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2024-06-08 06:49:05.712 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2024-06-08 06:49:05.727 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2024-06-08 06:49:05.727 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.54]
2024-06-08 06:49:05.779 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2024-06-08 06:49:05.779 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 992 ms
2024-06-08 06:49:06.254 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2024-06-08 06:49:06.265 INFO 1 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.983 seconds (JVM running for 2.391)
dockerファイルの中身
version: '3.8'
services:
java-build:
image: maven:3.8.1-openjdk-11-slim
working_dir: /app
volumes:
- ./javaapp:/app
- ./output:/output
command: /bin/sh -c "mvn clean package && cp /app/target/*.jar /output"
# ベースイメージとしてOpenJDKを使用
FROM openjdk:11-jre-slim
WORKDIR /app
# ホストのoutputフォルダからビルド成果物をコピー
COPY ./output/*.jar /app/demo.jar
CMD ["java", "-jar", "/app/demo.jar"]
006.天気の話
https://www.youtube.com/watch?v=Zn9AVySCHOY
ポジティブ・ポライトネス
ネガティブ・ポライトネス
プライベートに踏み込み過ぎるとネガティブ・ポライトネスの侵害行為にあたる
話しかける(言葉を交わす)こと自体に意味があり内容は重要ではない
同意を得やすい内容を選ぶのが重要
雨を責める→共通の敵を作ることによる同意
グライスの公理に沿ったもの(協調の原理)
※国によっては天気が固定的で天気の話が一般的ではない
「天気の話」
程よく接近し、程よく離れる
内容はあり過ぎず、なさ過ぎず
立ち入り過ぎず、反論もされにくい
その場に関連し、連帯感を高められる
007.IP Anycast
https://zenn.dev/kameoncloud/articles/330891fa5b043a
余談ですがIPv6のこの可読性の悪さはなんとかならないかなと思っています。v6の導入が阻害される要因の一つかもしれません。とはいえネットワークに携わる人はv6を推進する義務を持っていると思っているのでこの記事では全てv6を使います
v6推進は義務です。
1対1の多数の関係 とIP Unicast上の図で示したように、通信自体はIP Unicastとして行われます。別の言い方をするとUnicastとは技術的な通信方式を指し、Anycastとはその運用上の形態を指します。Anycastというコンセプトを支えるために個別の通信はUnicastで行われる、ということです。
用語が混ざるからややこしい。
記事についてるコメントが勉強になる。
009.delv
delv area11.org -4 -d 99 +rtraceの結果を置いておく。
~ % /opt/homebrew/Cellar/bind/9.18.26/bin/delv area11.org -4 -d 99 +rtrace
;; dispatchmgr 0x6000007380a0: dispatch_createudp: created UDP dispatch 0x154104e40 for 0.0.0.0#0
;; dispatchmgr 0x6000007380a0: dispatch_createudp: created UDP dispatch 0x154105020 for ::#0
;; adb: task-exclusive mode unavailable, initializing table sizes to 49193
;; dns_requestmgr_create
;; dns_requestmgr_create: 0x154105900
;; dns_requestmgr_whenshutdown
;; adding trust anchor .
;; fetch: area11.org/A
;; log_ns_ttl: fctx 0x155008200: fctx_create: area11.org (in '.'?): 0 0
;; findaddrinfo: new entry 0x154106840
;; dispatch 0x154104e40: UDP response 0x154107320: connected: success
;; dispatch 0x154104e40: UDP response 0x154107320: attaching handle 0x1541074f0 to 0x154107330
;; dispatch 0x154104e40: UDP response 0x154107320: reading
;; dispatch 0x154104e40: UDP response 0x154107320: connect callback: success
;; sending packet to 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44733
;; flags: rd; QUESTION: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79
;; QUESTION SECTION:
;area11.org. IN A
;; dispatch 0x154104e40: UDP response 0x154107320: sending
;; dispatch 0x154104e40: UDP response 0x154107320: sent: success
;; dispatch 0x154104e40: UDP response 0x154107320: read callback:success, requests 1
;; dispatch 0x154104e40: UDP response 0x154107320: got valid DNS message header, /QR 1, id 44733
;; dispatch 0x154104e40: UDP response 0x154107320: UDP read callback on 0x1541074f0: success
;; received packet from 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44733
;; flags: qr rd ra; QUESTION: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c343b3a853e4b35a3a
;; QUESTION SECTION:
;area11.org. IN A
;; ANSWER SECTION:
;area11.org. 300 IN A 104.21.28.158
;area11.org. 300 IN A 172.67.170.234
;area11.org. 300 IN RRSIG A 13 2 300 (
; 20240621060611 20240619040611 34505 area11.org.
; /4eOcQdLbn9ge4Wl8TqhpBpObC6e
; nEORSh+c2xPPh7z9x4upuIuZaC6a
; GfEo3j1fHRGBpgUsiEU7L7t0mwz6
; 6Q== )
;; log_ns_ttl: fctx 0x155008200: rctx_answer: area11.org (in '.'?): 0 0
;; delete_node(): 0x600001d241c0 area11.org (bucket 15)
;; dispatch 0x154104e40: UDP response 0x154107320: canceling response: operation canceled, connected/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x154107320: canceling response: operation canceled, canceled/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x154107320: destroying
;; dispatch 0x154104e40: UDP response 0x154107320: detaching handle 0x1541074f0 from 0x154107330
;; validating area11.org/A: starting
;; validating area11.org/A: attempting positive response validation
;; validating area11.org/A: seek_dnskey: creating fetch for area11.org DNSKEY
;; fetch: area11.org/DNSKEY
;; log_ns_ttl: fctx 0x155809000: fctx_create: area11.org (in '.'?): 0 0
;; findaddrinfo: found entry 0x154106840
;; dispatch 0x154104e40: UDP response 0x154005db0: connected: success
;; dispatch 0x154104e40: UDP response 0x154005db0: attaching handle 0x154005f80 to 0x154005dc0
;; dispatch 0x154104e40: UDP response 0x154005db0: reading
;; dispatch 0x154104e40: UDP response 0x154005db0: connect callback: success
;; sending packet to 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26852
;; flags: rd; QUESTION: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c343b3a853e4b35a3a
;; QUESTION SECTION:
;area11.org. IN DNSKEY
;; dispatch 0x154104e40: UDP response 0x154005db0: sending
;; dispatch 0x154104e40: UDP response 0x154005db0: sent: success
;; dispatch 0x154104e40: UDP response 0x154005db0: read callback:success, requests 1
;; dispatch 0x154104e40: UDP response 0x154005db0: got valid DNS message header, /QR 1, id 26852
;; dispatch 0x154104e40: UDP response 0x154005db0: UDP read callback on 0x154005f80: success
;; received packet from 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26852
;; flags: qr rd ra; QUESTION: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;area11.org. IN DNSKEY
;; ANSWER SECTION:
;area11.org. 3600 IN DNSKEY 257 3 13 (
; mdsswUyr3DPW132mOi8V9xESWE8j
; To0dxCjjnopKl+GqJxpVXckHAeF+
; KkxLbxILfDLUT0rAK9iUzy1L53eK
; GQ==
; ) ; KSK; alg = ECDSAP256SHA256 ; key id = 2371
;area11.org. 3600 IN DNSKEY 256 3 13 (
; oJMRESz5E4gYzS/q6XDrvU1qMPYI
; jCWzJaOau8XNEZeqCYKD5ar0IRd8
; KqXXFJkqmVfRvMGPmM1x8fGAa2Xh
; SA==
; ) ; ZSK; alg = ECDSAP256SHA256 ; key id = 34505
;area11.org. 3600 IN RRSIG DNSKEY 13 2 3600 (
; 20240819030717 20240619030717 2371 area11.org.
; i8Ipc9viENAHJdKs37ck/P4iGnXE
; itffkDUi62EgDWitx5F9xZcrILFJ
; 3vlYbfUv/CONs+g73ZmeVUyLCXN4
; Fw== )
;; log_ns_ttl: fctx 0x155809000: rctx_answer: area11.org (in '.'?): 0 0
;; delete_node(): 0x600001d38380 area11.org (bucket 15)
;; dispatch 0x154104e40: UDP response 0x154005db0: canceling response: operation canceled, connected/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x154005db0: canceling response: operation canceled, canceled/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x154005db0: destroying
;; dispatch 0x154104e40: UDP response 0x154005db0: detaching handle 0x154005f80 from 0x154005dc0
;; validating area11.org/DNSKEY: starting
;; validating area11.org/DNSKEY: attempting positive response validation
;; validating area11.org/DNSKEY: validate_dnskey: creating fetch for area11.org DS
;; fetch: area11.org/DS
;; log_ns_ttl: fctx 0x156009000: fctx_create: area11.org (in '.'?): 0 0
;; findaddrinfo: found entry 0x154106840
;; dispatch 0x154104e40: UDP response 0x153706040: connected: success
;; dispatch 0x154104e40: UDP response 0x153706040: attaching handle 0x153706210 to 0x153706050
;; dispatch 0x154104e40: UDP response 0x153706040: reading
;; dispatch 0x154104e40: UDP response 0x153706040: connect callback: success
;; sending packet to 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9358
;; flags: rd; QUESTION: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;area11.org. IN DS
;; dispatch 0x154104e40: UDP response 0x153706040: sending
;; dispatch 0x154104e40: UDP response 0x153706040: sent: success
;; dispatch 0x154104e40: UDP response 0x153706040: read callback:success, requests 1
;; dispatch 0x154104e40: UDP response 0x153706040: got valid DNS message header, /QR 1, id 9358
;; dispatch 0x154104e40: UDP response 0x153706040: UDP read callback on 0x153706210: success
;; received packet from 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9358
;; flags: qr rd ra; QUESTION: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;area11.org. IN DS
;; ANSWER SECTION:
;area11.org. 3600 IN DS 2371 13 2 (
; 8DC92119014F9D0231796382303C
; E099AF4434332D77EF30C6DFE36A
; 61AA0DE8 )
;area11.org. 3600 IN RRSIG DS 8 2 3600 (
; 20240708152459 20240617142459 55149 org.
; TPBPXuo36HzPCEy+QJ9N+kDjuYB/
; WjoIx8WJ5xvslTn4wAgYckYQpvdG
; 4FuGRlBLyXVBorRuFuzh8/Ab4CQA
; 12Abt0g/DBae2yOqlFWbLOW/uPvW
; s7yFR3mJXDdZpOpip59siodFQKv4
; zicUsw/C/HR3+8eKjFGSoLUOUjm5
; g/8= )
;; log_ns_ttl: fctx 0x156009000: rctx_answer: area11.org (in '.'?): 0 0
;; delete_node(): 0x600001d24700 area11.org (bucket 15)
;; dispatch 0x154104e40: UDP response 0x153706040: canceling response: operation canceled, connected/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153706040: canceling response: operation canceled, canceled/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153706040: destroying
;; dispatch 0x154104e40: UDP response 0x153706040: detaching handle 0x153706210 from 0x153706050
;; validating area11.org/DS: starting
;; validating area11.org/DS: attempting positive response validation
;; validating area11.org/DS: seek_dnskey: creating fetch for org DNSKEY
;; fetch: org/DNSKEY
;; log_ns_ttl: fctx 0x15600f000: fctx_create: org (in '.'?): 0 0
;; findaddrinfo: found entry 0x154106840
;; dispatch 0x154104e40: UDP response 0x153707650: connected: success
;; dispatch 0x154104e40: UDP response 0x153707650: attaching handle 0x1537061b0 to 0x153707660
;; dispatch 0x154104e40: UDP response 0x153707650: reading
;; dispatch 0x154104e40: UDP response 0x153707650: connect callback: success
;; sending packet to 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48381
;; flags: rd; QUESTION: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;org. IN DNSKEY
;; dispatch 0x154104e40: UDP response 0x153707650: sending
;; dispatch 0x154104e40: UDP response 0x153707650: sent: success
;; dispatch 0x154104e40: UDP response 0x153707650: read callback:success, requests 1
;; dispatch 0x154104e40: UDP response 0x153707650: got valid DNS message header, /QR 1, id 48381
;; dispatch 0x154104e40: UDP response 0x153707650: UDP read callback on 0x1537061b0: success
;; received packet from 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48381
;; flags: qr rd ra; QUESTION: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;org. IN DNSKEY
;; ANSWER SECTION:
;org. 917 IN DNSKEY 256 3 8 (
; AwEAAa+oGr6axy8Mt1NFEA5KoU9Z
; kKtD3U0A8XQwRwjoBtcrq0QP3I/G
; sZi3QMpKowUmLFkDVtqwbkY4qgzX
; /RQ7cZZVDO6ZqHorqtp0p50nlsY+
; Puq1phi5lroAMJfAQjXuh5Fp+sXt
; BQ/8ztwzJYpzwsIG88d+7vBK8uvA
; yJPyeMEd
; ) ; ZSK; alg = RSASHA256 ; key id = 55149
;org. 917 IN DNSKEY 257 3 8 (
; AwEAAexZJ/1wfyNCxNPrTZizaG7U
; libGhP+AyogR6bqjptKweEgE4gD8
; GxRQJkt+Fn5pCoNqzmm1ZnEoKqvm
; 93uOYtbKkYQDGH+W69J66MSKpgIy
; S+mT/4iaXn+lpb5o99l/sf7lHMa9
; 75O/fqN6aPUll4hUbN2T1LHv6HzQ
; uQCtNRJA8jHGwX5q0NMmh2Z+yaG6
; B9cISerje9l5L+ID2ydJ6zXquYte
; oIUvX2xzqnXCdHPSvD+oL6R/weW+
; tztdFS1hok/1z3tn5NzmcaOLll9n
; XniCozEpLFEGPswyvtphWgCYhI8b
; BTqhUsIwfIwLSBQTEg2oCX7sS5Cb
; Xg44OqwhIW8=
; ) ; KSK; alg = RSASHA256 ; key id = 26974
;org. 917 IN DNSKEY 256 3 8 (
; AwEAAeYQb3vGlsfovxMxKW4tN90+
; DoHp4eeeaQFuNvgHFMfe54QsOHoF
; MVMOQGy2XVDr6IdcWBUfJUzWlOnE
; qrva5M797omwGQkRlq1Sf7JWLvTm
; wlOs2gx03IQ3GXU8jMBo+WxPtNYW
; abZyCj1RvzhtcvyCCBZ4spwOEkNA
; jfpUp2S1
; ) ; ZSK; alg = RSASHA256 ; key id = 36783
;org. 917 IN RRSIG DNSKEY 8 1 3600 (
; 20240708152459 20240617142459 26974 org.
; BdP4hy6+OjsEAPgpuUqNvuWB3ebd
; 8UUhC9HrukYxnyh1EgVgfacRYF1x
; /wsPHWZEDwA//3NHWlDan2BxYeqk
; I9uk5qGkAwDNJPjrzAAaqxPFFdvy
; 8+KJPjAkLif1b1CUzQ17YdOWsmYv
; 3jGpsgaSgklSnqk+QomS3/+u58z3
; 42qMB4J/U4o1aDrNCz94NP5ujmi/
; coL31zvnoqQuMS1NyP86q90fwyKQ
; +9A69nnn4NuIIo6Ut466Ocs9Cvq1
; iX9SWulIj/sKF0TqPXunKBcjgHvr
; pwSFPF6BtgRHwM2FQzOLNgSPuI25
; eRHlmwMQ3UPu8bqoO4ZWTNW2Qb1f
; ybT9Uw== )
;; log_ns_ttl: fctx 0x15600f000: rctx_answer: org (in '.'?): 0 0
;; delete_node(): 0x600001d38c40 org (bucket 11)
;; dispatch 0x154104e40: UDP response 0x153707650: canceling response: operation canceled, connected/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153707650: canceling response: operation canceled, canceled/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153707650: destroying
;; dispatch 0x154104e40: UDP response 0x153707650: detaching handle 0x1537061b0 from 0x153707660
;; validating org/DNSKEY: starting
;; validating org/DNSKEY: attempting positive response validation
;; validating org/DNSKEY: validate_dnskey: creating fetch for org DS
;; fetch: org/DS
;; log_ns_ttl: fctx 0x156012200: fctx_create: org (in '.'?): 0 0
;; findaddrinfo: found entry 0x154106840
;; dispatch 0x154104e40: UDP response 0x153707650: connected: success
;; dispatch 0x154104e40: UDP response 0x153707650: attaching handle 0x153709de0 to 0x153707660
;; dispatch 0x154104e40: UDP response 0x153707650: reading
;; dispatch 0x154104e40: UDP response 0x153707650: connect callback: success
;; sending packet to 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18737
;; flags: rd; QUESTION: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;org. IN DS
;; dispatch 0x154104e40: UDP response 0x153707650: sending
;; dispatch 0x154104e40: UDP response 0x153707650: sent: success
;; dispatch 0x154104e40: UDP response 0x153707650: read callback:success, requests 1
;; dispatch 0x154104e40: UDP response 0x153707650: got valid DNS message header, /QR 1, id 18737
;; dispatch 0x154104e40: UDP response 0x153707650: UDP read callback on 0x153709de0: success
;; received packet from 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18737
;; flags: qr rd ra; QUESTION: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;org. IN DS
;; ANSWER SECTION:
;org. 86118 IN DS 26974 8 2 (
; 4FEDE294C53F438A158C41D39489
; CD78A86BEB0D8A0AEAFF14745C0D
; 16E1DE32 )
;org. 86118 IN RRSIG DS 8 1 86400 (
; 20240702170000 20240619160000 5613 .
; U8Fzl8J3y5hm2t8ambspQgMUEJU6
; cJqzmmR6oYc9RVmcfmSr4RD88cgn
; GaxcWF1AqlLrifFQnJn91VxujgPZ
; f/j6qRd+9lmXMivqStzzdnpuacqG
; OXomoIhGpgDekh3P24UmZLEFI0UO
; anWybO4Nmzge1c7GEKVOb2Cx+Mtm
; ExPEsOA9DyFc5Zfw3qrmc0oK8Pyh
; vrOg+qszuOjOPE2C5k9594mBSIQF
; 9akKL/SvfZIGscPUYHGjYcRMNIqu
; F3SNGOBrfAug9webMFIqlU85xkO9
; /irl4q62L9fVDsTr8sZVqHGRK+Yv
; 3MKzTI+el2iHrxuJkE8w8BXdGu/S
; 3HRRuA== )
;; log_ns_ttl: fctx 0x156012200: rctx_answer: org (in '.'?): 0 0
;; delete_node(): 0x600001d34380 org (bucket 11)
;; dispatch 0x154104e40: UDP response 0x153707650: canceling response: operation canceled, connected/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153707650: canceling response: operation canceled, canceled/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153707650: destroying
;; dispatch 0x154104e40: UDP response 0x153707650: detaching handle 0x153709de0 from 0x153707660
;; validating org/DS: starting
;; validating org/DS: attempting positive response validation
;; validating org/DS: seek_dnskey: creating fetch for . DNSKEY
;; fetch: ./DNSKEY
;; log_ns_ttl: fctx 0x15380e200: fctx_create: . (in '.'?): 0 0
;; findaddrinfo: found entry 0x154106840
;; dispatch 0x154104e40: UDP response 0x153606450: connected: success
;; dispatch 0x154104e40: UDP response 0x153606450: attaching handle 0x153606620 to 0x153606460
;; dispatch 0x154104e40: UDP response 0x153606450: reading
;; dispatch 0x154104e40: UDP response 0x153606450: connect callback: success
;; sending packet to 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59902
;; flags: rd; QUESTION: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c330ebbe88a4f4d595
;; QUESTION SECTION:
;. IN DNSKEY
;; dispatch 0x154104e40: UDP response 0x153606450: sending
;; dispatch 0x154104e40: UDP response 0x153606450: sent: success
;; dispatch 0x154104e40: UDP response 0x153606450: read callback:success, requests 1
;; dispatch 0x154104e40: UDP response 0x153606450: got valid DNS message header, /QR 1, id 59902
;; dispatch 0x154104e40: UDP response 0x153606450: UDP read callback on 0x153606620: success
;; received packet from 192.168.1.1#53
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59902
;; flags: qr rd ra; QUESTION: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; COOKIE: 5e7cf086d3134d79010000006673b8c343b3a853e4b35a3a
;; QUESTION SECTION:
;. IN DNSKEY
;; ANSWER SECTION:
;. 73558 IN DNSKEY 256 3 8 (
; AwEAAZBALoOFImwcJJg9Iu7Vy7Zy
; LjhtXfvO1c9k4vHjOpf9i7U1kKtr
; BvhnwsOni1sb50gkUayRtMDTUQqv
; ljMMf4bpkyEtcE5evCzhHbFLq1co
; L5QOix3mfJm++FvIMaAt52nOvAdq
; R/luuI11bA1AmSCIJKAUx147DcfO
; HYKg3as+dznn3Iah4cWBMVzDe7PP
; sFS1AO6gU8EpmiRJ9VMNA09fOyDu
; q9+d6sw8UUnJRMAFAuPLhUFjUAOu
; WOw74BC9lOtMQpbLMz8pX0CDKdOX
; DHjyj61nxSSWxPdUjeoxI17lQTpS
; PRtqRHFn5Fgj2e+9BVwhhWGDQN8k
; UVSJHZtQiI0=
; ) ; ZSK; alg = RSASHA256 ; key id = 5613
;. 73558 IN DNSKEY 257 3 8 (
; AwEAAaz/tAm8yTn4Mfeh5eyI96WS
; VexTBAvkMgJzkKTOiW1vkIbzxeF3
; +/4RgWOq7HrxRixHlFlExOLAJr5e
; mLvN7SWXgnLh4+B5xQlNVz8Og8kv
; ArMtNROxVQuCaSnIDdD5LKyWbRd2
; n9WGe2R8PzgCmr3EgVLrjyBxWezF
; 0jLHwVN8efS3rCj/EWgvIWgb9tar
; pVUDK/b58Da+sqqls3eNbuv7pr+e
; oZG+SrDK6nWeL3c6H5Apxz7LjVc1
; uTIdsIXxuOLYA4/ilBmSVIzuDWfd
; RUfhHdY6+cn8HFRm+2hM8AnXGXws
; 9555KrUB5qihylGa8subX2Nn6UwN
; R1AkUTV74bU=
; ) ; KSK; alg = RSASHA256 ; key id = 20326
;. 73558 IN RRSIG DNSKEY 8 0 172800 (
; 20240701000000 20240610000000 20326 .
; eMFu/6uu1WUYhDgMumLBzvIVpCIl
; m7RgN4bOWtddDAg001OtUzn89m12
; ox2FKAleQcPe1dhUAatL26w0qUeB
; B4ucXu8IB+azRu/EOwGZroZAubzp
; +vKAuUV48KqKdncw618tRJKtH+BD
; THQQxdztd7GG8dtXnqE2V7NruCjf
; 68dwOLiZTrPG3GVjyxiU0tb4JGyX
; 6SXIViRSyGjH5OGMfx9wicHwLnBy
; 29E7B4QwJ8PAhxe8TCMu+/2c5YzD
; V1k3XABj71L2Kh+zvukQ/lxB0eJH
; t0nc4rxcV8nyr7TOOIzpLyNlUhSD
; ckK1XweyTIKzJrg8pI2gQXYiOnH0
; T3I8Cg== )
;; log_ns_ttl: fctx 0x15380e200: rctx_answer: . (in '.'?): 0 0
;; delete_node(): 0x600001d348c0 . (bucket 16)
;; dispatch 0x154104e40: UDP response 0x153606450: canceling response: operation canceled, connected/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153606450: canceling response: operation canceled, canceled/not reading (none/not reading), requests 1
;; dispatch 0x154104e40: UDP response 0x153606450: destroying
;; dispatch 0x154104e40: UDP response 0x153606450: detaching handle 0x153606620 from 0x153606460
;; validating ./DNSKEY: starting
;; validating ./DNSKEY: attempting positive response validation
;; validating ./DNSKEY: verify rdataset (keyid=20326): success
;; validating ./DNSKEY: marking as secure (DS)
;; validator @0x153814000: dns_validator_destroy
;; validating org/DS: in fetch_callback_dnskey
;; validating org/DS: keyset with trust secure
;; validating org/DS: resuming validate
;; validating org/DS: verify rdataset (keyid=5613): success
;; validating org/DS: marking as secure, noqname proof not needed
;; validator @0x15380ac00: dns_validator_destroy
;; validating org/DNSKEY: in fetch_callback_ds
;; validating org/DNSKEY: dsset with trust secure
;; validating org/DNSKEY: verify rdataset (keyid=26974): success
;; validating org/DNSKEY: marking as secure (DS)
;; validator @0x156011800: dns_validator_destroy
;; validating area11.org/DS: in fetch_callback_dnskey
;; validating area11.org/DS: keyset with trust secure
;; validating area11.org/DS: resuming validate
;; validating area11.org/DS: verify rdataset (keyid=55149): success
;; validating area11.org/DS: marking as secure, noqname proof not needed
;; validator @0x15580ae00: dns_validator_destroy
;; validating area11.org/DNSKEY: in fetch_callback_ds
;; validating area11.org/DNSKEY: dsset with trust secure
;; validating area11.org/DNSKEY: verify rdataset (keyid=2371): success
;; validating area11.org/DNSKEY: marking as secure (DS)
;; validator @0x156008600: dns_validator_destroy
;; validating area11.org/A: in fetch_callback_dnskey
;; validating area11.org/A: keyset with trust secure
;; validating area11.org/A: resuming validate
;; validating area11.org/A: verify rdataset (keyid=34505): success
;; validating area11.org/A: marking as secure, noqname proof not needed
;; validator @0x155808600: dns_validator_destroy
; fully validated
area11.org. 300 IN A 104.21.28.158
area11.org. 300 IN A 172.67.170.234
area11.org. 300 IN RRSIG A 13 2 300 20240621060611 20240619040611 34505 area11.org. /4eOcQdLbn9ge4Wl8TqhpBpObC6enEORSh+c2xPPh7z9x4upuIuZaC6a GfEo3j1fHRGBpgUsiEU7L7t0mwz66Q==
;; dns_requestmgr_shutdown: 0x154105900
;; send_shutdown_events: 0x154105900
;; dns_requestmgr_detach: 0x154105900: references = 0
;; mgr_destroy
;; dispatch 0x154104e40: destroying dispatch 0x154104e40
;; dispatch 0x154105020: destroying dispatch 0x154105020
;; calling free_rbtdb(.)
;; done free_rbtdb(.)
00A.ログ設計と監視
外部から指摘を受けてからログを確認し不正を発見する、では遅い。
定期的にログを監視し、不正を能動的に検知すべきである。
大きなシステムからは膨大なログが出力されるため、ログの監視は人力では限界がある。
システムによるログ監視を行うためには、システムが読み取りやすい構造のログを設計する必要がある。
構造化されていないログ設計はシステムで監視が難しく、ログ監視が自動化されていなければ、外部から指摘を受けるまで不正に気づくことが難しくなる。
00B.特権ID管理
攻撃者はいつも不正アクセスに成功したら、次に特権を奪いに来るため、大前提として特権IDは常に存在してはいけない。
特権IDが必要な都度、一時的に特権を発行し、有効期限が過ぎたら自動的に破棄される運用にすべきである。
また、特権IDによる操作ログは当然、特権であっても消されてはいけない。
00C.VoIPのパケット盗聴
https://xtech.nikkei.com/it/article/MAG/20070731/278640/
今どき”VoIPネットワークをデータネットワークから切り離す”ことをしていない企業も少ないと思われるが。
例えば、企業の内線電話。
これがIP電話であり、通信を暗号化しておらず、PCと同じネットワークにパケットが流れていれば、
PCでパケットキャプチャすること(≒盗聴)が容易である。
それだけ。
00D.パケットレート攻撃
https://gigazine.net/news/20240703-rise-of-packet-rate-attacks/
パケットレート攻撃は、帯域幅を圧倒するような膨大なデータを送りつける代わりに、「大量の小さなパケット」をターゲットへ大量に送り付けるという手法だとのこと。
パケットレート攻撃の目的は、使用可能な帯域幅を枯渇させるのではなく、宛先に近いネットワークデバイスのパケット処理エンジンに過負荷をかけることです。一般的には、標的サービスの手前にあるロードバランサーやDDoS対策システムなどを機能不全に陥れ、関連する大規模なインフラストラクチャーに巻き添え被害を与えるとメリオ氏は説明しています。
こうなってくるとBGPレベルでのセキュリティ対策で、
攻撃元に近い箇所で攻撃をブロックすることが望ましくなる。
https://www.ipa.go.jp/shiken/mondai-kaiotu/m42obm000000afqx-att/2024r06h_nw_pm1_qs.pdf
https://www.ipa.go.jp/shiken/mondai-kaiotu/m42obm000000afqx-att/2024r06h_nw_pm1_ans.pdf
令和6年度春期ネットワークスペシャリスト試験ではBGPについて出題されていた。
これらのBGPセキュリティを提供できている事業者はどこにいるのだろうか。。
00E.着信認証関連
概要:https://lp.scala-com.jp/topics/incomingcall_authentication_feature/#3
SIMスワップ:https://www.fnn.jp/articles/-/697403
STIR / SHAKEN:https://callcenter-trend.com/2020/10/21/anti-robocall-stir-shaken01/
IMSI:https://iot.sakura.ad.jp/column/imsi/
MSISDN:https://ja.wikipedia.org/wiki/MSISDN
固定電話についてgptの見解
固定電話での着信認証や、固定電話の番号偽装についての仕組みについて説明します。
固定電話の番号の仕組み
固定電話はSIMカードのような仕組みを持っていません。固定電話の番号は、電話回線(アナログ回線やデジタル回線)に直接関連付けられています。以下の要点が固定電話の番号の仕組みに関係しています:
電話回線の割り当て:
電話会社(通信事業者)は、物理的な電話回線に電話番号を割り当てます。これにより、特定の物理的な回線が特定の電話番号に対応することになります。
交換機(スイッチ):
電話会社の交換機は、発信元の電話番号(発信者番号)を識別し、通話を適切にルーティングします。発信者番号は交換機で管理され、相手に通知されます。
固定電話の番号偽装
固定電話でも発信者番号偽装(Caller ID Spoofing)が可能です。これは特にVoIP(Voice over IP)サービスを使用する場合に発生しやすくなります。VoIPはインターネットを介して音声通話を行う技術であり、発信者番号を簡単に偽装することが可能です。
固定電話での番号偽装のリスク
攻撃者が固定電話の発信者番号を偽装することで、着信認証を行うユーザーになりすますことが可能です。以下のようなリスクが考えられます:
VoIPサービスの利用:
攻撃者はVoIPサービスを利用して、任意の発信者番号を設定して通話を発信できます。これにより、被害者の固定電話番号になりすました発信が可能です。
電話網の脆弱性:
伝統的な電話網は発信者番号の検証において限られた機能しか持たないため、発信者番号偽装を防ぐのが難しいです。
固定電話の番号偽装検知方法
固定電話の発信者番号偽装を検知する方法は限られていますが、いくつかの対策が存在します:
通信事業者の対策:
電話会社が発信者番号偽装を検知するためのシステムを導入することが考えられます。これには、発信元の電話回線の物理的な位置や通常の利用パターンの監視が含まれます。
STIR/SHAKENプロトコル:
STIR/SHAKENは主にVoIPに対して導入されていますが、固定電話回線にも適用されるよう拡張が進められています。これにより、発信者番号の信頼性が向上します。
ユーザーの教育と警戒心:
ユーザーに対して、発信者番号偽装のリスクや不審な電話に対する対応方法を教育することも重要です。
結論
固定電話での発信者番号偽装は技術的に可能であり、VoIP技術を使えば簡単に行われます。固定電話の番号は物理的な電話回線に直接関連付けられていますが、これを完全に偽装から守ることは難しいです。通信事業者の対策やプロトコルの導入、ユーザー教育などの複合的な対策が必要です。
利便性があることや、”基本的に”1人1つの電話番号だから重複を弾けるといったメリットがある。
2要素目としての運用なら問題ないが、オンリーは厳しそう。
00F.ゼロトラスト
https://x.com/nekono_naha/status/1806243729415794828
https://www.cisa.gov/resources-tools/resources/modern-approaches-network-access-security
CISAは、以下の組織と協力して、この共同ガイダンスを共同執筆しました。
- 連邦捜査局(FBI)
- ニュージーランド政府通信安全保障局(GCSB)。
- ニュージーランドのコンピュータ緊急対応チーム(CERT-NZ)。そして
- カナダサイバーセキュリティセンター(CCCS)。
このガイダンスは、あらゆる規模のビジネスオーナーに、ゼロトラスト、セキュアサービスエッジ(SSE)、セキュアアクセスサービスエッジ(SASE)など、より堅牢なセキュリティソリューションに移行し、ネットワークアクティビティの可視性を高めるよう促しています。さらに、このガイダンスは、組織が従来のリモートアクセスとVPN展開に関連する脆弱性、脅威、慣行、およびリモートアクセスのミスコンフィギュレーションによって組織のネットワークにもたらされる固有のビジネスリスクをよりよく理解するのに役立ちます。
セキュリティの方向性がゼロトラストに向かうのは以前からわかっていたこと。
これを推進できる人材が社内にいるかどうか、いなければ外注できるかどうか。