ã¯ããã«
ã»ãã¥ãªãã£å¯Ÿçã¯ãå€ãã®äŒæ¥ã§å®æœãããŠããŸãã
AWS ç°å¢ã§ã¯ãSecurity Hub ã GuardDutyãInspector ãªã©ãçšããŠç°å¢ã®ä¿è·ãè¡ã£ãŠããäŒæ¥ãå€ããšæããŸãã
ã»ãã¥ãªãã£å¯Ÿçãå§ããäŒæ¥ã§ã課é¡ã«äžããã®ã¯ã»ãã¥ãªãã£éçšã§ãã
ã»ãã¥ãªãã£ãµãŒãã¹ã¯ãæŒå€åãã倧éã®ã»ãã¥ãªãã£ã€ãã³ããéç¥ããããšããããŸãã
éçšæ
åœè
ã¯ãéåžžã®æ¥åã«å ããŠå€ãã®ã»ãã¥ãªãã£éçšã«è¿œãããŠããŸãã
ä»åããããã®èª²é¡ã«å¯Ÿå¿ãããããAmazon BedrockïŒAWS ã®çæ AI ãµãŒãã¹ïŒ ãçšããŠèªååãããŠã¿ãŸããã
çæ AI ãšã¯
çæ AI ã¯ãæšä»å€ãã®å Žæã§æŽ»çšããããã®æšè«åãããžãã¹ãå€é©ããŠããŸãã
çæ AI 㯠ChatBot ã«ä»£è¡šããããããªããŠãŒã¶ãŒå ¥åãžã®å¯Ÿå¿ãã¯ãããRAG (Retrieval-Augmented Generation) ã«ããäŒæ¥å ææžã«åºã¥ãåçã®çæãªã©ãå€ãã®ããšãã§ããããã«ãªã£ãŠããŸãã
çæ AI ã«ããã»ãã¥ãªãã£éçšãèãããšããæšè«ã RAG ãªã©ã«ããææžã«åºã¥ã察å¿ã§ã¯äžååã§ããããšã«çŽé¢ããŸãã
ããšãã°ãGuardDuty ã«ãããæå·é貚ãã€ãã³ã°æ€åº (CryptoCurrency:EC2/BitcoinTool.B) ãæ€ç¥ããéãã»ãã¥ãªãã£ãªãã¬ãŒã¿ãŒã¯ EC2 ã® Metrics ããAudit ãã°ãAWS Config ã«ããæ§æã®ã¿ã€ã ã©ã€ã³ãªã©å€ãã®æ
å ±ãããšã«æ€ç¥ã®åŠ¥åœæ§ã倿ããŸãã
éçšã«é¢ããææžãåºã«ããæ©èœã§ã¯äžååã§ãããä»ã®æ å ±ãçµ±åçã«å€æããããšãæ±ããããŸãã
ä»åã¯ãçæ AI ãçšããŠãã®èª²é¡ã®è§£æ±ºã詊ã¿ãŸããã
LangChain
çæ AI ã§åºãå©çšãããã©ã€ãã©ãªã« LangChain ããããŸãã
ããã¯ãæ¥ã 鲿©ããçæ AI ã® RAG ãªã©ã®æ¯æŽããAmazon Bedrock ãªã©ã®çæ AI ãšã³ãžã³ã«å¯ŸãããµããŒããªã©ãè¡ããéçºè ã«å¯Ÿããæ¯æŽãè¡ããã®ã§ãã
LangChain ã®æ©èœã®äžã€ã«ãTools ãšããæ©èœããããŸãã
Tools
Tools ã®æ©èœãšããŠãããå©çšãããã®ã¯æ°åŠèšç®ã§ãã
åºãç¥ãããŠããããšã§ãããçæ AI ã¯èšç®ãèŠæã§ãã
çæ AI ã¯ãæèãçè§£ããŠããã£ãšããããåçãè¡ãããšã¯åŸæã§ãããæ°å€èšç®ã®ããã«çããå°ãããšã¯èŠæãšããŠããŸãã
ãããã®åŒ±ç¹ãè£ããããæ°å€èšç®ã宿œãã Tools ãªã©ãçšæããçæ AI ã®å€éšã§èšç®ãããŸãã
ããšãã°ãæãç®ãè¡ãå Žåã¯ä»¥äžã®ãããªã³ãŒããçšæããŸãã
ïŒåŒçšãCreate tools using the tool function ïŒ
import { tool } from "@langchain/core/tools";
import { z } from "zod";
const multiply = tool(
({ a, b }: { a: number; b: number }): number => {
/**
* Multiply two numbers.
*/
return a * b;
},
{
name: "multiply",
description: "Multiply two numbers",
schema: z.object({
a: z.number(),
b: z.number(),
}),
}
);
ããã ãã ãšãTools ã¯èšç®ãè¡ãã ãã®æ©èœã®ããã«æããŸãããTools ã®æ¬è³ªã¯ããã§ã¯ãããŸããã
Tools ã®æ¬è³ªã¯ãçæ AI ãæ¬²ãããšæã£ãŠããæ å ±ãæç€ºãããå€éšæ©èœãæäŸã§ãããšããããšã§ãã
çæ AI ã«ããã»ãã¥ãªãã£ãªãã¬ãŒã·ã§ã³
ä»åã®åãçµã¿ã¯ãTools ã«ãã£ãŠå¿ èŠãªæ©èœãçæ AI ã«æç€ºãæšè«ãè¡ãããšã§ãçæãã調æ»ããè¡ãã蚌æ ã«åºã¥ãã倿ããè¡ããããã«ããŸããã
ä»å䜿çšãããã¯ããã¯ã¯ãããã³ãããã¥ãŒãã³ã°ãã¬ãŒãã¬ãŒã«ããããŠãTools ã«ããæ å ±æç€ºã§ã
ãããã®ãã¯ããã¯ã掻çšããŠãçæ AI ãã»ãã¥ãªãã£ãªãã¬ãŒã¿ãŒãšããŠåäœããããã«å¯Ÿå¿ããŠããŸãã
LLM ã¢ãã«
ä»åå©çšããã¢ãã«ã¯ amazon.nova-lite-v1 ã§ãã
Nova 㯠Amazon ãäœæããã¢ãã«ã§ ãæ¥æ¬èªã«ã察å¿ããããã¹ãæšè«ãå¯èœã§ãã
Nova lite ã¯ã軜éã§ã³ã¹ããšããã©ãŒãã³ã¹ãè¯ããããä»åã®ãã¹ãã§æ¡çšããŸããã
(ãã®ã¢ãã«ãæé©ãªéžæè¢ã§ããããç§ã¯å€æãã§ããŸããã§ãã)
ããã³ãããã¥ãŒãã³ã°
ããã³ããã§ã¯ãã圹å²ããåŠçæ¹æ³ããåºåæ¹æ³ããªã©ãæç€ºããããšã§ãçæ AI ã¯åäœãå®å®ããŸãã
ãã®ãããä»åã¯ä»¥äžã®ãããªããã³ãããã·ã¹ãã ããã³ãããšããŠäžããŸããã
You are a risk analyst.
Please analyze the detected risk based on the facts and rate the likelihood of it being True Positive on a scale of 1 to 10.
1 is False Positive and 10 is True Positive.
If no signs of attack are found, treat it as a false positive.
The response to the user should follow the #Template.
Please reply in Japanese.
# Template
æŠèŠ: {Summary of analyze result}
ã¹ã³ã¢: {Score of True Positive}
*äºå®*
{Bulleted list of supporting facts.}
*è£è¶³*
{Bulleted supplemental survey results.}
*å¿
èŠãªå¯Ÿå¿*
{Itemize research requests to the customer, including obtaining additional information.}
蚌æ ã«åºã¥ã倿ããããšããã³ãæ»æã®å åãèŠãããªãå Žåã¯èª€æ€ç¥ãšããããšã AI ã«éç¥ããŠããŸãã
ã¬ãŒãã¬ãŒã«
Amazon Bedrock ãå«ããçæ AI ã¯æ§çã䟮蟱çãç¯çœªè¡çºãªã©ãäžé©åãªåçã宿œããå ŽåããããŸãã
ãã®ãããAmazon Bedrock ã«ã¯ ã¬ãŒãã¬ãŒã« ãšããæ©èœãçšæãããŠãããçæ AI ã«ããäžé©åãªåçããããã¯ããŠããŸãã
å€ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããã®ãŸãŸã®å©çšã§åé¡ãããŸããããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã®å Žåã«ã¯ãã¥ãŒãã³ã°ãå¿ èŠã§ãã
Bedrock ã®ã¬ãŒãã¬ãŒã«æ©èœã¯ãçæ AI ãæªçšããç¯çœªãææ¢ããæäœéã®æ©èœã§ãã
ããããç¡å¹åãããšãçæ AI ã¯æªæããåçãè¡ãããšãå¯èœãªãããå®éã«ããžãã¹ã§å©çšããéã¯ããªã¹ã¯ã¢ã»ã¹ã¡ã³ããå¿
èŠãšãªããŸãã
ã»ãã¥ãªãã£ãªãã¬ãŒã·ã§ã³ã§ã¯ãç¹ã«ç¯çœªè¡çºãæŽåçãªè¡šçŸãå€ãæ±ããŸãã
倿ææãšããŠãæ»æã®ææ³ãããåãããããæ»æã®å¯Ÿè±¡ãå
·äœåããããã§ãã
ãã®ãããä»åã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãç¬èªã®ã¬ãŒãã¬ãŒã«ãäœæã MISCONDUCT ã VIOLENCE ã«é¢ããæ€åºãç¡å¹ã«ããŸããã
Tools
ä»åã®åãçµã¿ã®äž»ãããšããã§ãã
ä»åã¯ãå¹æã®æ€èšŒã§ããã·ããªãªã«åºã¥ãããããæ¯æŽããæäœéã®ããŒã«ãå®è£
ããŸããã
ãã¹ãå®è¡ããã·ããªãªãå®çŸããããããAWS Config ã®å€æŽå±¥æŽã®äœæãããCloudMetrics ãã CPUãNetwork In / Out ã® Metrics ååŸãããAWS ã® Document ãããGuadDuty Detect type ã®è©³çްååŸãã® 3ã€ã® Tools ãäœæããŸããã
Amazon Bedrock ã® Nova ã¯ãã€ã³ã¹ã¿ã³ã¹ ID ã Detect type ããããã®ããŒã«ã«èªåçã«æž¡ããŠãçæ AI èªèº«ãå¿ èŠãªæ å ±ãååŸããŸãã
å¹æã®æ€èšŒ
ä»åã¯ãããããå®è£ ããããã§ GuardDuty æ€åºã奿©ãšããŠã調æ»ãè¡ããå ±åããããšããã·ããªãªã宿œããŸããã
ãã¡ãããå®éã«ã¯æ»æã¯èµ·ããŠããŸããã
ãã®ããã誀æ€ç¥ (False Positive) ã§ããããšã倿ããŠæ¬²ããã·ããªãªãšãªããŸãã
å ¥å
å
¥åæã¯ä»¥äžã®ãšããã§ãã
ããã§æ³šç®ããŠæ¬²ããç¹ã¯ãäžåã®æ§é åããããŠããªãææžã§ãããšããç¹ã§ãã
äžè¬çã«ã·ã¹ãã ãæ±ãããã¡ã€ã«ã¯ã JSON ã YAML ãªã©ã§æ§é åãããããã飿ºã·ã¹ãã éã§ããåãã§ããå Žåã«éãããŸãã
ä»åã®ããã«èªç¶ãªææžãæ±ããããšã¯ãçæ AI ãå©çšããã¡ãªããã®äžã€ã§ãã
AWS GuardDuty ã¯ãi-xxxxxxxxxx ã® EC2 ã€ã³ã¹ã¿ã³ã¹ã«ãããŠã
CryptoCurrency:EC2/BitcoinTool.B ãšããæ€åºçµæãå ±åããŸããã
æ€åºå
容:
ã€ã³ã¹ã¿ã³ã¹ID: i-xxxxxxxxxx
æ€åºã¿ã€ã: CryptoCurrency:EC2/BitcoinTool.B
åŠç
äžèšã¯ãLangChain ã®åŠçãã³ãæ
å ±ã®äžéšã§ãã
çæ AI ã¯ãInstgance ID ã GuardDuty detect type ãååŸã㊠Tools ã«æž¡ããŠããããšã芳枬ã§ããŸãã
{
"tool_calls": [
{
"id": "tooluse_jbS62FP4SPeX3dRickFXAQ",
"name": "guardduty",
"args": {
"id": "CryptoCurrency:EC2/BitcoinTool.B"
},
"type": "tool_call"
},
{
"id": "tooluse_7HximA0fTv-SMC-Tirv05w",
"name": "metricsEc2",
"args": {
"id": "i-xxxxxxxxxx"
},
"type": "tool_call"
},
{
"id": "tooluse_1n5_q-35RqSHx9NdSAPQcg",
"name": "config",
"args": {
"id": "i-xxxxxxxxxx"
},
"type": "tool_call"
}
]
}
åºå
以äžã¯çæ AI ã«ããåºåæã«ãªããŸãã
ä»åã®å ŽåãCPU 䜿çšçããããã¯ãŒã¯å ¥åºåãåæããŠãããã誀æ€ç¥ ïŒFalse PositiveïŒã§ããå¯èœæ§ãé«ããšå ±åããŸããã
# Template æŠèŠ: EC2 ã€ã³ã¹ã¿ã³ã¹ã§ãããã³ã€ã³ãã€ãã³ã°ããŒã«ã®äœ¿çšã瀺ãå¯èœæ§ã®ããæ€åºãå ±åãããŸãããã ã¡ããªã¯ã¹ããã¯éåžžã®äœ¿çšãã¿ãŒã³ãšã¯ç°ãªããŸãããã®ãããæ€åºãèª€å ±ã§ããå¯èœæ§ãé«ãã§ãã ã¹ã³ã¢: 3 *äºå®* - AWS GuardDuty ãã€ã³ã¹ã¿ã³ã¹ i-xxxxxxxxxx ã§ CryptoCurrency:EC2/BitcoinTool.B ã®æ€åºãå ±åããŸããã - EC2 ã€ã³ã¹ã¿ã³ã¹ã®ã¡ããªã¯ã¹ã§ã¯ãCPU 䜿çšçãšãããã¯ãŒã¯ã®å ¥åºåãäžè²«æ§ã®ãªãäœãå€ã瀺ããŠããŸãã *è£è¶³* - éåžžããããã³ã€ã³ãã€ãã³ã°ããŒã«ã皌åããŠããå ŽåãCPU 䜿çšçã¯é«ãããããã¯ãŒã¯ã®å ¥åºåãäžè²«æ§ã®ããé«ãå€ã瀺ãåŸåããããŸãã *å¿ èŠãªå¯Ÿå¿* - ã€ã³ã¹ã¿ã³ã¹ã®ãã°ã調ã¹ãå®éã®ã¢ã¯ãã£ããã£ã確èªããŸãã - ã€ã³ã¹ã¿ã³ã¹ã«ã€ã³ã¹ããŒã«ããããœãããŠã§ã¢ãå®è¡äžã®ããã»ã¹ã確èªããŸãã - ã€ã³ã¹ã¿ã³ã¹ã®ã»ãã¥ãªãã£èšå®ãšã¢ã¯ã»ã¹ãã°ã調æ»ããŸãã
äžæ¹ãTools ãç¡å¹åããç¶æ
ã®åºåã¯ä»¥äžã®ãšããã§ãã
ãã®äŸã§ã¯ãäžè¬çãªæ
å ±ã®ã¿ã®åºåãšãªããã»ãã¥ãªãã£éçšãšããŠã¯äžååãªçµæã«ãªã£ãŠãããšã確èªã§ããŸãã
# ãã³ãã¬ãŒã æŠèŠ: æ€åºãããCryptoCurrency:EC2/BitcoinTool.Bã¯ã EC2ã€ã³ã¹ã¿ã³ã¹ã§ä»®æ³é貚ãã€ãã³ã°ããŒã«ãå®è¡ãããŠããå¯èœæ§ã瀺ããŠããŸãã ãããããã®æ€åºãæ£åœãªãã®ã§ãããã©ããã¯ããããªã調æ»ãå¿ èŠã§ãã ã¹ã³ã¢: 5 *äºå®* - AWS GuardDutyãi-0d9932474466bfcd2ã®EC2ã€ã³ã¹ã¿ã³ã¹ã§CryptoCurrency:EC2/BitcoinTool.Bã®æ€åºãå ±åããŸããã - æ€åºã¿ã€ãã¯CryptoCurrency:EC2/BitcoinTool.Bã§ãã *è£è¶³* - éå»ã®é¡äŒŒæ€åºã®åæçµæã¯ããã®æ€åºãæªæã®ããæŽ»åãšé¢é£ããŠããããšãå€ãããšã瀺ããŠããŸãã - ã€ã³ã¹ã¿ã³ã¹ã®ãã°ãšãã¡ã€ã«ã·ã¹ãã ã®èª¿æ»ãå¿ èŠãªå ŽåããããŸãã *å¿ èŠãªå¯Ÿå¿* - ã€ã³ã¹ã¿ã³ã¹ã®ãã°ãã¡ã€ã«ã確èªããŠãBitcoinTool.Bã«é¢é£ããããã»ã¹ãã³ãã³ãã®åºçŸã調ã¹ãã - å®è¡äžã®ããã»ã¹ãšéããŠãããããã¯ãŒã¯ããŒãã®è©³çްæ å ±ãååŸããã - ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã®ãªã¹ããæäŸããã - æè¿ã®å€æŽãäžå¯©ãªã¢ã¯ãã£ããã£ã«ã€ããŠã®è©³çްæ å ±ãæäŸããã
ãŸãšã
å¹æã®æ€èšŒãèŠãŠããã ããšåããéããä»åã®è©Šã¿ã¯ã»ãã¥ãªãã£éçšã®çæ AI ã«ããæ¯æŽãšããŠæçšãªçµæã§ãããšèããŸãã
ã»ãã¥ãªãã£ã€ãã³ãã«å¯ŸããŠãMetrics ä»ãå¿
èŠãªæ
å ±ãååŸããŠæ€ç¥ã®åŠ¥åœæ§ã倿ããŸãã
ä»å㯠Metrics ååŸã® Tool ããçšæããŸããã§ããããAmazon Bedrock ã¯çŸç¶ã®æ å ±ã§äžè¶³ããŠããæ å ±ã¯è¿œå ã§ååŸãå¿ èŠãªæ å ±ããŸãšããŠæç€ºãããªã©ãå®çšå¯èœãªã¬ãã«ã§åäœããŸããã
å¿ èŠãªæ å ±ãäžããããšã§ãã»ãã¥ãªãã£ãªãã¬ãŒã¿ãŒã®ãããªé«åºŠãªåœ¹å²ããçæ AI ã«å®æœãããããšãå¯èœã§ãããšããããšãããããŸããã