VRRPがあるのに何故、同一機種のUTMやFWで冗長を組んでいるのでしょうか?
別メーカの機種で組みましょうよ。
Master機に脆弱性が発見され次第、コマンド一発でBackUp機に切り替えれば1ミリ秒も断なくワークアラウンドはOKです。確かにTCPやNATのセッションは途切れます。しかしHTTPSで代理証明書を使用している場合、証明書はBackUp機に引き継がれないので、そもそもCtrl+F5を押さなければセッションは復活しないのです。(メーカの違う機種間でのTCPセッション引継ぎ方法についてはアイデアがあるので近日中に検証する予定です)
事務手続きフローのルーティン化のため、毎日訓練しても良い位です。有事の際は「繰り返す、本日は訓練では無い」って台詞が加わるだけです。
正副を別機で組む場合、日常メンテでポリシー追加する際の手間、場合によっては増えません。
回線をFWで直接終端している場合、コンフィグ同期はかけられませんから、手間は一緒です。
「回線をFWで直接終端出来る=ルータを別途用意する必要が無い=投資効率が上がる=直列に機械が並ぶ箇所が減る=故障率が下がる」事自体をご存じないお客様が多い事も現実ですが。
投稿者: 69578300
-

脆弱性のワークアラウンドを1ミリ秒も断なくコマンド一発で終わらせる方法
-

生産設備を自己所有する事と頭脳労働
頭脳労働を実現できていると言う事は、生産設備を自己所有している事に等しいです。
そんな貴方はもう、無産階級ではありません。
時間経てば事務的にやってくる未来なんて、貴方の未来ですか? -

辞める社員を事前に見破るIPSの設計
― それでも、誇りを捨てるな
人は、黙って辞めるときこそ本音に近づきます。
誰にも相談せず、静かに整理を始めたそのとき、心の奥底には「今のままでは報われない」という想いがあるのかもしれません。だが、お願いです。
どうか、誇りだけは捨てないでください。「自分が作った資料だ」「自分が積み重ねた数字だ」
そう思う気持ちは、私たちにもわかる。
でも、会社という枠組みの中で成し得たことをこっそり持ち出すその行為は、あなた自身の手で、自分のキャリアを裏切ることになる。私たちは「信用できない人間を取り締まりたい」のではありません。
自分の誇りを守る方法を、そっと提示したいだけです。プリンターを通じた情報の持ち出し。
それは、最後の最後で「自分を守ろうとする本能」かもしれない。
だが同時に、それを裏で知ってしまう人たちがいる。
もしあなたが、それでも“誇りを持って退職したい”と願うなら――私たちは、その背中を見送る覚悟もあります。だからこそ、仕組みで守りたいのです。
あなたの過ちを、あなた自身が犯してしまわないように。
プリンターという出口に目を向け、**Data Leak Protection(DLP)**という名の“静かな防波堤”を置く。
それはあなたを縛るためではなく、「あなたの誇りを守るための設計」です。どうか、自分に恥じない形で去ってください。
あなたが今まで培ってきた“働くということの重み”を、最後の一瞬まで抱きしめたままで。 -

労働集約型の産業構造からの脱却とは
労働者全員がプログラミング出来れば済む話だと思うんですよね、この問題。
不思議なのはIT業界に勤めてるのにプログラミング出来ない人がゴロゴロ居るって事。
「適性が無い」とされたからこそNWに配属された、と言う事情は理解出来るのだけど、趣味的に続けるとか普段の業務を効率化する為に簡単なスクリプト書いたりもしないのは何故なんでしょう?
早く仕事終わらせて家族や恋人とより多くの時間を過ごしたい、なんて考える需要が無いのが原因??? -

便利なマクロ集
仮置き1
https://chatgpt.com/share/693861bd-6ff4-8006-8546-006142cf135d
WinMergeU.exe /u /noninteractive /or”C:\diff\report.html” “A.txt” “B.txt”
仮置き2
Sub WriteSheetNameToAllSheets()
Dim ws As WorksheetFor Each ws In ThisWorkbook.Worksheets ws.Range("C1").Value = ws.Name Next wsEnd Sub
仮置きTeraMacroとかPythonでは無く、MSオフィスのマクロ集です。(GPT4に書いて貰ったものを含みます。)
エクセルの1シートに沢山のcsvファイルを張り付ける(1ファイル1シート)
Option Explicit
Sub ImportCsvFilesToColumns()
Dim fdlg As FileDialog
Dim folderPath As String
Dim fileName As String
Dim colIndex As Long
Dim rowIndex As Long
Dim fnum As Integer
Dim lineText As String‘ フォルダ選択ダイアログを表示
Set fdlg = Application.FileDialog(msoFileDialogFolderPicker)
With fdlg
.Title = “CSVファイルが入っているフォルダを選択してください”
If .Show <> -1 Then
MsgBox “フォルダが選択されませんでした。処理を中止します。”, vbExclamation
Exit Sub
End If
folderPath = .SelectedItems(1)
End With‘ パスの末尾に \ が無ければ付ける
If Right(folderPath, 1) <> “\” Then
folderPath = folderPath & “\”
End IfApplication.ScreenUpdating = False
‘ C列から開始(C=3, D=4, …)
colIndex = 3‘ 最初のCSVファイルを取得
fileName = Dir(folderPath & “*.csv”)If fileName = “” Then
MsgBox “指定フォルダにCSVファイルが見つかりませんでした。”, vbInformation
Application.ScreenUpdating = True
Exit Sub
End IfDo While fileName <> “”
‘ 行番号を1にリセット
rowIndex = 1' テキストファイルとして開く fnum = FreeFile Open folderPath & fileName For Input As #fnum ' 1行目からEOFまで読み込み Do While Not EOF(fnum) Line Input #fnum, lineText ' ActiveSheetの rowIndex 行, colIndex 列へ書き込み ThisWorkbook.ActiveSheet.Cells(rowIndex, colIndex).Value = lineText rowIndex = rowIndex + 1 Loop Close #fnum ' 次の列へ(C→D→E→F…) colIndex = colIndex + 1 ' 次のCSVファイル fileName = Dir()Loop
Application.ScreenUpdating = True
MsgBox “CSVの取り込みが完了しました。”, vbInformation
End Subファイル名と共通の文字列を含むエクセルシートにファイルを貼るVBA
Option Explicit
Sub ImportCsvToRandomNameSheets()
Dim folderPath As String Dim fd As FileDialog Dim fileName As String Dim fullPath As String Dim baseName As String Dim parts() As String Dim sheetName As String Dim wbCsv As Workbook Dim wsCsv As Worksheet Dim wsTarget As Worksheet Dim lastRow As Long Dim nextCol As Long '=== CSVフォルダを選択 === Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd .Title = "CSVファイルが入っているフォルダを選択してください" If .Show <> -1 Then MsgBox "キャンセルされました。", vbInformation Exit Sub End If folderPath = .SelectedItems(1) End With If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" End If Application.ScreenUpdating = False Application.DisplayAlerts = False '=== フォルダ内のCSVファイルを順番に処理 === fileName = Dir(folderPath & "*.csv") Do While fileName <> "" fullPath = folderPath & fileName ' 拡張子を除いたファイル名(例: Kyoten020_L9bXw_config_001) baseName = Left(fileName, InStrRev(fileName, ".") - 1) ' "_" で分割 → 0:Kyoten020, 1:L9bXw, 2:config, 3:001 parts = Split(baseName, "_") ' 安全のため要素数チェック If UBound(parts) >= 1 Then sheetName = parts(1) ' 2番目の部分がシート名 (例: L9bXw) On Error Resume Next Set wsTarget = ThisWorkbook.Worksheets(sheetName) On Error GoTo 0 If Not wsTarget Is Nothing Then '=== CSVファイルを開く === Set wbCsv = Workbooks.Open(fileName:=fullPath, Local:=True) Set wsCsv = wbCsv.Worksheets(1) ' CSVは通常1シートだけ ' CSV側の最終行(A列前提) lastRow = wsCsv.Cells(wsCsv.Rows.Count, "A").End(xlUp).Row '=== 貼り付け先シートの次の空き列を探す === ' A1 が空なら 1列目を使用 If IsEmpty(wsTarget.Cells(1, 1)) Then nextCol = 1 Else ' 一番右の使用列を探して +1 nextCol = wsTarget.Cells(1, wsTarget.Columns.Count).End(xlToLeft).Column + 1 End If '=== 値を貼り付け(A列から縦にコピー) === wsTarget.Range(wsTarget.Cells(1, nextCol), wsTarget.Cells(lastRow, nextCol)).Value = _ wsCsv.Range("A1:A" & lastRow).Value ' CSVブックを閉じる(保存しない) wbCsv.Close SaveChanges:=False Else ' 対応するシートが存在しない場合はスキップ ' 必要なら MsgBox 等で通知してもOK End If ' オブジェクトの解放 Set wsTarget = Nothing Set wsCsv = Nothing Set wbCsv = Nothing End If ' 次のファイルへ fileName = Dir() Loop Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "取り込みが完了しました。", vbInformationEnd Sub
エクセルで沢山のシートを作成する
Sub CreateSheetsFromList()
Dim sheetNames As Variant Dim i As Long Dim ws As Worksheet sheetNames = Array( _ "config_001", "config_002", "config_003", "config_004", "config_005", _ "config_006", "config_007", "config_008", "config_009", "config_010", _ "config_011", "config_012", "config_013", "config_014", "config_015", _ "config_016", "config_017", "config_018", "config_019", "config_020", _ "config_021", "config_022", "config_023", "config_024", "config_025", _ "config_026", "config_027", "config_028", "config_029", "config_030", _ "config_031", "config_032", "config_033", "config_034", "config_035", _ "config_036", "config_037", "config_038", "config_039", "config_040", _ "config_041", "config_042", "config_043", "config_044", "config_045", _ "config_046", "config_047", "config_048", "config_049", "config_050", _ "config_051", "config_052", "config_053", "config_054", "config_055", _ "config_056", "config_057", "config_058", "config_059", "config_060", _ "config_061", "config_062", "config_063", "config_064", "config_065", _ "config_066", "config_067", "config_068", "config_069", "config_070", _ "config_071", "config_072", "config_073", "config_074", "config_075", _ "config_076", "config_077", "config_078", "config_079", "config_080", _ "config_081", "config_082", "config_083", "config_084", "config_085", _ "config_086", "config_087", "config_088", "config_089", "config_090", _ "config_091", "config_092", "config_093", "config_094", "config_095", _ "config_096", "config_097", "config_098", "config_099", "config_100") '--- シート作成 --- For i = LBound(sheetNames) To UBound(sheetNames) Worksheets.Add after:=Worksheets(Worksheets.Count) Worksheets(Worksheets.Count).Name = sheetNames(i) Next i MsgBox "100枚のシートを作成しました。"End Sub
Option Explicit
Sub ImportCsvFilesToColumns()
Dim fdlg As FileDialog
Dim folderPath As String
Dim fileName As String
Dim colIndex As Long
Dim rowIndex As Long
Dim fnum As Integer
Dim lineText As String' フォルダ選択ダイアログを表示 Set fdlg = Application.FileDialog(msoFileDialogFolderPicker) With fdlg .Title = "CSVファイルが入っているフォルダを選択してください" If .Show <> -1 Then MsgBox "フォルダが選択されませんでした。処理を中止します。", vbExclamation Exit Sub End If folderPath = .SelectedItems(1) End With ' パスの末尾に \ が無ければ付ける If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" End If Application.ScreenUpdating = False ' C列から開始(C=3, D=4, …) colIndex = 3 ' 最初のCSVファイルを取得 fileName = Dir(folderPath & "*.csv") If fileName = "" Then MsgBox "指定フォルダにCSVファイルが見つかりませんでした。", vbInformation Application.ScreenUpdating = True Exit Sub End If Do While fileName <> "" ' 行番号を1にリセット rowIndex = 1 ' テキストファイルとして開く fnum = FreeFile Open folderPath & fileName For Input As #fnum ' 1行目からEOFまで読み込み Do While Not EOF(fnum) Line Input #fnum, lineText ' ActiveSheetの rowIndex 行, colIndex 列へ書き込み ThisWorkbook.ActiveSheet.Cells(rowIndex, colIndex).Value = lineText rowIndex = rowIndex + 1 Loop Close #fnum ' 次の列へ(C→D→E→F…) colIndex = colIndex + 1 ' 次のCSVファイル fileName = Dir() Loop Application.ScreenUpdating = True MsgBox "CSVの取り込みが完了しました。", vbInformationEnd Sub
Wordで、フォントとサイズを英語、日本語、数値でそれぞれ別のものに統一する。
Option Explicit
Sub ImportCsvFilesToColumns()
Dim fdlg As FileDialog
Dim folderPath As String
Dim fileName As String
Dim colIndex As Long
Dim rowIndex As Long
Dim fnum As Integer
Dim lineText As String' フォルダ選択ダイアログ Set fdlg = Application.FileDialog(msoFileDialogFolderPicker) With fdlg .Title = "CSVファイルが入っているフォルダを選択してください" If .Show <> -1 Then MsgBox "フォルダが選択されませんでした。", vbExclamation Exit Sub End If folderPath = .SelectedItems(1) End With If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" End If Application.ScreenUpdating = False ' C列から開始 colIndex = 3 ' CSVファイル探索 fileName = Dir(folderPath & "*.csv") If fileName = "" Then MsgBox "指定フォルダにCSVファイルが見つかりませんでした。", vbInformation Application.ScreenUpdating = True Exit Sub End If Do While fileName <> "" ' ① 1行目にファイル名を書き込む ThisWorkbook.ActiveSheet.Cells(1, colIndex).Value = fileName ' 2行目からデータを開始 rowIndex = 2 fnum = FreeFile Open folderPath & fileName For Input As #fnum Do While Not EOF(fnum) Line Input #fnum, lineText ThisWorkbook.ActiveSheet.Cells(rowIndex, colIndex).Value = lineText rowIndex = rowIndex + 1 Loop Close #fnum ' 次の列へ colIndex = colIndex + 1 fileName = Dir() Loop ' ③ 列幅を自動調整(C列〜最後の列) ThisWorkbook.ActiveSheet.Columns("C:" & Split(Cells(1, colIndex - 1).Address, "$")(1)).AutoFit Application.ScreenUpdating = True MsgBox "CSVの取り込みが完了しました。", vbInformationEnd Sub
エクセルで一度に500個の置換を行う(そう言えばワードやパワポでも同じこと出来ると便利ですね)
※500までと言う制限は、コードを「親子化」等すると増やせます。
※下記のコードは1個分の置換しか書いていませんが、ちょっとした工夫でカンタンに500個分書けます。ヒントは「エクセルの表でエクセルのマクロを書く」です。日常的にコンフィグ書いている人なら知っているテクニックだと思います。
Cells.Replace What:=”置換前①”, Replacement:=”置換後①”, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=Falseパワーポイントで障害ポイント図を作成する(「星形オブジェクトに数字を載せたもの」の番号が抜けたり飛んだりした事ありませんか?)
※「番号の飛びの無い星形オブジェクト」をマクロで生成し、カット&ペーストで図に載せれば番号の抜け飛びが発生しません。
Sub CreateStarShapes()
Dim slide As slide
Dim shape As shape
Dim i As Integer
Dim xPos As Single
Dim yPos As Single
Dim size As Single' 初期位置とサイズ xPos = 100 yPos = 100 size = 32 ' アクティブなスライドを取得 Set slide = ActivePresentation.Slides(1) ' 20個の星形を作成 For i = 1 To 20 ' 星形を追加 Set shape = slide.Shapes.AddShape(msoShape16pointStar, xPos, yPos, size, size) ' 枠線と塗りつぶしの設定 With shape .Line.ForeColor.RGB = RGB(255, 0, 0) ' 赤色の枠線 .Fill.ForeColor.RGB = RGB(255, 0, 0) ' 赤色の塗りつぶし ' 内部のテキスト設定 With .TextFrame.TextRange .Text = ChrW(&H2460 + (i - 1)) ' ①からの番号付け .Font.size = 14 ' フォントサイズ .Font.Color = RGB(255, 255, 255) ' 白色の文字 End With End With ' 位置の更新 xPos = xPos + 5 yPos = yPos + 5 Next iEnd Sub
-

人工衛星との通信について
衛星データビジネス=受信、では無く相互通信を扱います。資金が潤沢で無い研究機関や学校が採用して居る事の多い「アマチュア無線用のモデム」を2台所有して居るので地上局と衛星の通信をシミュレートする事が可能です。
ビジネスとしては未登記なので主な記事は下記個人ブログで展開します。
https://kousuke-0704.hatenadiary.jp/entry/2024/06/29/122303 -

ランサムウェア対策について
ありがちな方法であればサーバ上にて、圧縮に関するAPIやコマンド、アプリを無効化したりブラックリストに載せれば良いわけですが、Dockerを使って「必要な機能だけを実装したサーバ」を作る方が盤石な気がします。その辺りの実機検証をこのスレッドに載せて行きます。
※Docker普通にサーバ作る以外にも TLSハンドシェイクの計測等、色々と面白そうな事が出来そうなのでこのスレッドにDocker関連の記事をまとめていく予定です。 -

各種侵入試験用のツールについて
都度、実例やキャプチャ結果なども載せて行く予定も無くは無いです。
※公開状態のまま追記して行きます。故に「下書き」状態となって居ます。
下記のリストに「詳細」を追記して行く事になると思います。
(2025/01/19追記:この記事もChatGPTとの会話と言うスタイルに変更する予定です。Nmapの各種オプション
-Nmapが報告してくる内容について-
・open
・closed
・filterd
・unfilterd
・open|filterd
・closed|filterd
-入力コマンドの書式について-
●ホスト発見のオプション
・-sL
・-sP
・-Pn
・-PS[portlist]
・-PA[portlist]
・-PU[portlist]
・-PY[portlist]
・-PZ[portlist]
・-PE、-PP、-PM
・-PO[protocollist]
・-n
・-R
・–system-dns
●スキャンタイプのオプション
・-sS
・-sT
・-sU
・-sN、-sF、-sX
・-sA
・-sY、-sZ
・-sW
・-sM
・–scanflags<flags>
・-sl<zombie host[:probeport]>
・-sO
・-b<FTP relay host>
●ポート指定と順番のオプション
・-p<port ranges>
・-F
・-r
●サービスとバージョンのオプション
・-sV
・-sR
●OS特定のオプション
・-O
●タイミングやパフォーマンスのオプション
・-T<Paranoid|Sneakly|Polite|Normal|Addressive|Insane>
※通常は3か4を使用する。
T0 Paranoid IPS回避用(一度に1つのポートを5分おきに実行)
T1 Sneaky IPS回避用
T2 Polite 10倍の時間をかける
T3 Normal デフォルト
T4 Aggressive 10ミリ秒以内に処理の遅延を抑制する
T5 Insane 5ミリ秒以内に処理の遅延を抑制する
●ファイアウォール/IPS回避とスプーフィングのオプション
・-f,–mtu
・-D<decoy1,[decoy2],[me],…>
・-S<IPアドレス>
・-e<inteface>
●出力のオプション
・-oN<ファイル名>
・-oX<ファイル名>
・-oS<ファイル名>
・-oG<ファイル名>
・-v
・-d
●ターゲットを指定するためのオプション
・-6
・-A
・-h
●広域スキャンの方法
●DDoSプログラムが感染しているホストを調べる
●Heartbleedの感染状態を調べる
●実践編
IPSEC:たまたま今手元に、IPSECを設定済みのNEC製のルータがあるので侵入試験をしてみる予定です(弊社は国産品を奨励しません)Cain&Abel
Cain
ローカルパスワードだけでなく、チャレンジレスポンスペアのパスワードも解析が可能です。
つまりスニッフィングも可能だと言う事です。
レインボーアタックも可能です。
解読可能なものを下記に一覧します。
Base64
MsAccess
CiscoのVPNクライアントパスワード
VNCのパスワード
各種ハッシュ値
RSA社のSecureID
SYSKEY(ローカル環境のブートキー)
lsass.exeのハッシュダンプ
・そう言えばARPキャッシュポイズニングも可能です。
今後、弊社サイトで紹介する検証実行時、「あらゆるARP要求にも回答してしまう」ホストを
作る場合に改めて紹介する予定です。)Fiddler
FoxyProxyでも足りる気がしますが「おそらく」一長一短がありますのでFiddlerと言うローカルプロキシを紹介します。
セキュリティ関連の調査だけでなく、HTTPS通信の足回り(サーバOSの仕様を知りたい、等)にも
使用する事が出来ます。
暗号化されたHTTPステータスを解読したり一部書き換えたりして、Webサーバ/アプリケーションの脆弱性を探る調査に使用します。crunch
辞書攻撃用の辞書を作成するツールなのですが
ブルートフォースアタック時、リアルタイムにパスワードを生成するのは機械の負荷が高いです。
故に事前にcrunchで「ブルートフォースアタック用の辞書」を作っておくと効率が良いです。
crunchの書式やオプションについては後日追記します。THC-Hydra
オンラインパスワードクラッカーです。
LDAP、SSH、Subverion、IAMP、POP3、SNMP、IRC、HTTP、FTPなどに対応します。
コマンドの書式やオプションはおいおい追記します。MetaSploit
ExPloitの作成や実行を行います。
コマンドの書式やオプションは後日追記します。TimeStomp
タイムスタンプを改ざんするツールです。サーバへの攻撃に使用した事はありませんが
出荷テストで、自分たちが出荷するファイルに対して便利だったりします。Netcat
多機能な侵入ツールです。網羅し切れそうにないので一旦「非公開」で記事を作成するつもりです。数が出そろったら追記します。
Netcraft
Netcatと紛らわしいので載せました。基本的な事しか出来なそうなので使った事が有りません。
-

国産のセキュリティ製品が「無い」と言うWeb記事を読みました
では弊社が!とは言えいきなり開発するのは未だ無理なので先ず「既存製品を更に使いこなす」方法を紹介して行きます。(現在はアイデアのみ)
他のスレッドと内容被りますがご容赦を。
※後述で「内部犯行の防止」について言及して居ます。現場の技術者様よりも
経営陣に近い方を対象としてコンテンツを作成して居ますが「駆け出し」の閲覧者による「また聞き、聞きかじり、受け売り、耳学問」を防ぐために基礎的な知識についての説明は敢えて省いて居ます。
所謂、「分かる必要のある者だけが分かれば良い」が弊社の発信する情報のスタイルです。①ランサムウェア防御のためWindowsの「圧縮」「暗号化」機能(API)自体を動作禁止にする(ActiveDirectory等のリソース管理システムの使いこなしを今後載せて行く予定です)
「圧縮ソフト」の動作を禁止することはディフェンダー等で容易に実現可能ですが、ここで行う事は「APIの動作を禁止する」事です。禁止した上で、Python等の簡易言語を使ってAPIを呼び出すテストを行います。また、C++等で当該APIを単独で実装し、動作しない事の検証も行います。
※APIを使用せずにファイルを圧縮する方法は幾つかある様です。こちらの防止も研究の対象とします。②サーバに対しtelnetやHTTPによる非暗号化通信を使ってサーバのメモリをダンプし、その結果をIPSやWAFに検疫させます。
・安全のため、自身で用意した専用の送信元IPアドレスのみに通信許可を与えます。
一件、非常に簡単な方法に思えますが
OSの使用若しくは運用ルール上、 Telnetサーバを起動できない
顧客環境が有り得ますので、Fortigateを使ってSSHをアクセラレーションする方法を
こちらのリンク先 に掲載します。③アクティブディレクトリを介さない攻撃の方が怖い
感染した端末が1つだけで、その端末から不正なメールが御社ドメインで送信される事態がありえます。
「登記済みの株式会社」からメールが送信できる事は 大会社の社内情報を盗むよりも価値が高いです。
感染した端末が社内用のDNSサーバを攻撃する事態が有り得ます。
(後日追記します)そう言えばですが SSHはファイル転送が可能 である事を問題視すべきと考えている人は
どれくらい居るのでしょうか。私は問題だと思っています。
TelaTermからファイルをアップロード/ダウンロード出来ますし、WinSCPからもアクセスできます。前者についてはSU権限に阻まれる事もありません。(上述したようにサーバ側でSFTP/FTPS/SCPを無効化する事は可能です。今手元にあるFortigateのL4オブジェクトには残念ながら「SFTP/FTPS/SCP」はいずれも存在しません。SSHインスペクション機能の検証を進めます。)
そもそも 内部通信を暗号化してしまう 事って内部犯行の防止策的にどうなのでしょうか。
サーバ本体のログを改ざんさせない仕組み以外にも多方面防御が必要な筈です。
④以降はぼちぼち加筆して行きます。
一応、YamahaとかNECとかでもUTM作ってますけどドキュメント類が「無理やり日本語にした資料」「オペレータ向けの資料」しか無い感じで、国際的な基準にどこまで準拠しているか疑問です。
そもそも個性的な機種が多く、緊急事態(深刻な脆弱性の発覚等)時に、乗り換えに時間を要する事が予想されます。平時の内に他社の機種へ乗り換えておくことを推奨します。
他のスレッドでも触れていますが、YamahaとNECのUTMは「通信中にクラウド上のサーバが地理的に移動=GIPが変更となった際、フラグメントが起きていると通信が途絶する」仕様となって居ます。
※MSSやLAN側のMTUを調整しても状況は改善できませんでした。PCやサーバの設定が原因であるため、弊社では追試を行いません。 -

練習:WordPressのアコーディオン機能
アコーディオン=折り畳み機能の練習ついでに「NW機器はWinSCPでアクセス可能な機種がある=ファイル転送が出来るので危険」な様子を掲載します。※当然、TeraTermでも可能です。
逆に、SSHサーバにWinSCPでログイン出来ない機械の列挙も行います。
→と、思ったら手元にある機械だけでもFortigate30E、Cisco842等の廉価な機械でも
WinSCPによるアクセスは不可で、Juniperの古いSW位しかアクセスできませんでした。
悔しいのでWinSCPは検証から除外し、TeraTermでファイル転送が出来る様子の例をほんの少し紹介する予定です。NW環境内にSSHによるファイル転送が可能な機械が一台でもあればファイルサーバとして悪用することが可能です。
インフラ技術者に貸与しているPCがどの機器へアクセス可能か、充分に把握し厳密に制限することを推奨します。
また、GPT4によるとSSHサーバ内で個別にSCP/SFTPおよびコマンド毎の禁止が可能との事ですがユーザ毎の運用方法について 全パターンを網羅できそうにないので弊社では検証を行いません。※変わったタイトルで興味を惹き、閲覧者を誘導する実験を実行中です。
※弊社のサイトは全般的に インデントを半角/全角スペースで作成して居たので
ここのスレッドをインデント機能を正しく使う練習台にもします。
後日、更に追記します。