LoginSignup
2
1

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

最近SBD(Security By Design)の要件を満たすために色々苦労をしています。その業務の中で学んだことを忘れないようにするために簡単にアウトプットしていこうと思います。

用語

SBD

Security By Desigeの略
セキュリティ・バイ・デザイン(Security by Design/SBD)、またはセキュア・バイ・デザイン(Secure by Design)とは、システム開発のライフサイクルにおいて、企画・設計段階からセキュリティ対策を意識して実装すること、またその概念。

以下ChatGPTよりアウトプットを受けました。Security as an Afterthoughtって聞いたことないのですが、、、一般的なんでしょうか?

旧来のシステム開発ではセキュリティが後回しにされることが一般的でした。このアプローチは「セキュリティ後付け」(Security as an Afterthought)とも呼ばれます。

限定的なリスク評価:
プロジェクトの後半で行われるセキュリティリスクの評価は、既に実装されたシステムを基にしているため、根本的な設計変更が難しくなる。

不完全なセキュリティテスト:
開発後期に行われるセキュリティテストは、時間やリソースの制約が厳しく、包括的なテストが行えないことがある。

高コストと手間:
後からセキュリティを追加する場合、既存のコードや設計に大きな変更を加える必要があり、開発コストや手間が増大する。

セキュリティ教育の不足:
開発チームがセキュリティに関する知識や意識を十分に持たないまま開発が進められるため、脆弱性が残る可能性が高い。

Windows Eventlog

EventLogには以下の種類があります。今回はアプリケーションログ、システムログ、セキュリティログを扱っていきます。

  • アプリケーションログ:アプリケーションやプログラムが記録するイベントが含まれます。
  • システムログ:Windowsオペレーティングシステムによって記録されるイベントが含まれます。
  • セキュリティログ:セキュリティ関連のイベント(ログイン成功、失敗など)が含まれます。
  • セットアップログ:Windowsのインストールやアップグレードに関するイベントが含まれます。
  • フォワードイベントログ:他のコンピュータから転送されたイベントが含まれます。

環境イメージ

かなり簡単ですが、以下環境を作っていきます。
今回はPS1を使ってS3バケットにEventlogを保管していきますので、そのためにEC2にAWS CLIをダウンロードしていきます。また、S3へアクセスするためのIAM Roleを作成、アタッチしていきます。S3に対してのログアップロードは定期実行していきます。
※このようなEventlogをS3に退避する方法として、他にもCloudWatch Logsを使う事も出来るようです。この辺りについては今後設定方法を確認していきます。

image.png

構築

EC2作成

以下の構成でWindows Serverをデプロイしていきます。
00002.png
デプロイできましたら、画面右上の接続を押下します。
00003.png
RDPクライアントのタブを押下して、RDPファイルのダウンロードします。またこちらでRDP用のパスワードを入手します。
具体的な手順は端折ります。
00004.png
RDP出来ることを確認します。
00005.png

AWS CLI導入

任意のWebブラウザ(Edgeが入っていますのでこれで良いかと思います)で以下にアクセスしてcliインストーラをダウンロードします。ダウンロード後ダブルクリックで実行します。

Wizardは特に気にせずにどんどん進めていきます。
00006.png
00007.png
00008.png
00009.png
00010.png
powershell及びcmdでawsコマンドを実行してみます。
出力があれば正常にインストールされています。
00011.png

S3作成

任意のバケット名を決めて作成します。基本デフォルトの設定で問題ないかと思います。
00012.png
作成したS3にフォルダを切ります。
00013.png

IAM Role作成

IAMの管理画面を開き、ロール作成を押下します。
00014.png
AWSサービスを押下し、EC2を選択します。
00015.png
S3に対してのアクセス権を与えたいため、今回はガバガバですがFullAccessを選択します。
00016.png
Roleの名前を入力して作成していきます。
作成したものをEC2にアタッチしましょう。
00017.png
Windows Serverにアクセスしてpowershell上でaws s3 lsコマンドを実行して自分のs3バケットが表示されればOKです。
00019.png

PS1,task scheduler作成

以下の内容のPS1ファイルを作成しました。
今回はC:\Users\Administrator\Documentsにeventlog_backup_s3.ps1というファイルで作成しました。

eventlog_backup_s3.ps1
# AWS S3 bucket name
$bucketName = "win-eventlog-s3"

# Current date and time in YYYYMMDD_HHmm format
$date = (Get-Date).ToString("yyyyMMdd_HHmm")

# Log file paths
$ApplicationLog = "C:\Windows\System32\winevt\Logs\Application.evtx"
$SystemLog = "C:\Windows\System32\winevt\Logs\System.evtx"
$SecurityLog = "C:\Windows\System32\winevt\Logs\Security.evtx"

# Destination file paths with date and time
$ApplicationLogDest = "C:\Users\Administrator\Documents\$date`_Application.evtx"
$SystemLogDest = "C:\Users\Administrator\Documents\$date`_System.evtx"
$SecurityLogDest = "C:\Users\Administrator\Documents\$date`_Security.evtx"

# Copy logs to new location with date and time
Copy-Item -Path $ApplicationLog -Destination $ApplicationLogDest
Copy-Item -Path $SystemLog -Destination $SystemLogDest
Copy-Item -Path $SecurityLog -Destination $SecurityLogDest

# Clear the original logs
wevtutil cl Application
wevtutil cl System
wevtutil cl Security

# Output the paths to check correctness
Write-Output "Copied and renamed Application Log to $ApplicationLogDest"
Write-Output "Copied and renamed System Log to $SystemLogDest"
Write-Output "Copied and renamed Security Log to $SecurityLogDest"

# (Optional) Upload the copied files to S3 using AWS CLI
aws s3 mv $ApplicationLogDest s3://$bucketName/Application/$date`_Application.evtx
aws s3 mv $SystemLogDest s3://$bucketName/System/$date`_System.evtx
aws s3 mv $SecurityLogDest s3://$bucketName/Security/$date`_Security.evtx

Write-Output "Uploaded Application Log to S3: s3://$bucketName/Application/$date`_Application.evtx"
Write-Output "Uploaded System Log to S3: s3://$bucketName/System/$date`_System.evtx"
Write-Output "Uploaded Security Log to S3: s3://$bucketName/Security/$date`_Security.evtx"

task schedulerを起動します。LibraryからCreate Basic Taskを押下します。
00020.png
taskの名前と説明を記入します。今回はeventlog_backup_to_s3としました。
00021.png
One Timeを選択します。
00022.png
これはデフォルトのままで行きます。
00023.png
Start a programを選択します。
00024.png
Program/Scriptに対してpowershell.exeと入力しておきます。
またAdd argumentsに”ExecutionPolicy Bypass -File "C:\Users\Administrator\Documents\eventlog_backup_s3.ps1"と入力します。作成したPS1を実行してくださいと命令している形となります。
00025.png
最終確認してFinishを押下します。
00026.png
今の設定のままでは定期実行されないので、そのための設定をしていきます。作成されたtaskを選択してPropertiesを押下します。
00027.png
TriggersのタブからOne Timeと記載されているものを選択しEditを押下。Repeat task everyで10分を選択。
duration ofにindefinitelyを選択します。こうすることで10分間隔ごとにtaskを実行し、S3にlogをアップロードするようになります。
00028.png
00029.png
S3バケットにlogがアップロードされていれば正常に設定完了です。
00030.png
00031.png
00032.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1