1. ゆるITエンジニア道場
  2. AI時代にもっておくとよいセキ..
2026-01-11 14:17

AI時代にもっておくとよいセキュリティ知識

riddle :

ひびの : https://x.com/nasustim


番組へのお便りはこちら:https://forms.gle/gp78XNFgERDFDkb88


サマリー

AIの進展に伴い、セキュリティリスクに対する知識の重要性が浮き彫りになっています。このエピソードでは、セキュリティのガバナンスや具体的なセキュアコーディング、DevSecOpsの実践について議論されています。AI時代において、セキュリティ知識は不可欠であり、特にゼロトラストアプローチや認証の重要性が強調されています。また、悪意のある攻撃手法への理解と定期的なチェック、新しい脆弱性への対策も重要とされています。

AI時代のセキュリティ知識の重要性
こんにちは、シニアソフトエンジニアのリロルです。このポッドキャストでは、IT業界のいろんな話やリアルをお届けします。
今回はお便りをニンジンさんからいただきました。ありがとうございます。
昨今のAIの発展により起きたセキュリティリスクに対して、どこまでの知識があればアドバンテージになると思いますか?
セキュリティ関係の資格もどこまで取るか迷っています。アドバイスお願いします。というお便りをいただきました。ありがとうございます。
ということで、今回はAI時代にアドバンスドなセキュリティ知識ってどこまで、みたいなところを話せればいいかなと思います。
今回、私は守備班以外ということで説明できないことを先に語っておくと、いわゆるセキュリティエンジニアのロールってあると思うんですね。
例えば、CサートとかPサート、もしくはSOCとかレッドチーム、ベンデスター、フォレンジックみたいな専門領域の仕事がいろいろあるんですけれども、
そこは、もうセキュリティを生業にしていて、ソフトウェア開発というよりかはセキュリティを専門に見ている方々というところなので、
ちょっと私があまり知らないので、ちょっと紹介はできないので、ここは端折らせてください。
なので、私が今回説明することとしては、SIRだったり、プロタクト開発においてメインのインフラとかアプリケーションとかモバイルとかの開発をしつつ、
どういったところでセキュリティの知識があると、より活躍できそうかとか、そういうところをちょっとお話しできればいいかなと思います。
はい、いくつかあるんですけれども、ちょっと項目ごとに紹介していきますね。
まずセキュリティって一口に言っても、本当に何ですかね、いろんなレイヤーがあるというか、
例えばセキュリティの全体的なガバナンスの話、例えばチームとか組織に対してどういうルールを守らせるのかとか、
そういうところのもうちょっとオーバービューみたいな話もありますし、具体の話として実際にコーディングとかインフラの設定をする際に、
どういうセキュアコーディングを全員に守らせるのかみたいな、もうちょっと具体なレベルに落とし込んだものだったり、
実際のプロタクト開発だったり、現場においてDevOpsという概念はもう最近は当たり前のように定着していますが、
DevSecOpsみたいな感じで、開発や運用をしつつセキュリティもイテレーション回して対応していくみたいなところを具体的にどうやってやっていくのかだったり、
そもそもそれらを考えるにあたってどういうセキュリティのリスクだったりだとか、最近の情勢的に攻撃手法があるのか、
最近だとNPMを介したサプライチェーンのアタックだったりだとか、そういうものもありますよね。
そういうところの理解だったりだとか、情報収集を定期的にやることみたいなものだったり、そういったところがいくつかあるかなと思いますと。
なのでちょっとそれぞれをですね、一個ずつ見ていきましょう。まずはセキュリティのガバナンスの整備の話なんですけども、これはですね、
携わるタイミング意外に少ないかもしれませんね。組織だったりプロタクト開発において、その会社の中で先行事例がないと、
まずこれをちゃんと固めてからやろうみたいな話にもしかしたらなるかもしれないんですけども、多くの会社であればすでにある程度のものがあって、
例えばISMSでこういうふうに決められていて、会社ではそれを落とし込んでこういうふうにやることになっているとか、
SIRの場合でもお客様側からこういうセキュリティのポリシーを守ってくださいというシートが渡されるので、それを守るように設計をしていくみたいな感じだと思うんですね。
なので、どっちかというとそれを作るというお仕事があると思います。ここはですね、厳密にこうというよりかは、一般的にOWASPのトップ10とかアメリカの方でですね、
規定されているセキュリティの重大な問題だったりとか、よく攻撃されそうなものをまとめたものがあるんですけども、それをですね、項目ごとに並べてあるので、
それを見てどういう対策を社内でしていくべきなのかみたいなものを有識者交えて、こういう有識者っていうのは社内の人ですけれども、システム部の人とかCISOとかセキュリティチームの人とかいればですね、
そういった人と一緒に会社においてのルールを整備していくみたいなところの仕事ですね。こういうことをやっていくと、最初結構ね、抽象的な話が多いですし、
ケースバイケースでしょみたいなケースも結構多いんですけれども、こういうところできるとですね、結構レベルの高い感じだなというふうには思いますね。
そこから実際の現場に降りてきた時のセキュアコーディング、すごい簡単に言うとSQLインジェクションとかOSインジェクションとかSSRFとかDNSのキャッシュポージョニングとかいろんな
攻撃手法がありますけれども、それらに対してですね、どういうふうに対策すれば基本的に防げるんだっけとか、セキュリティのいろんなロールとかIMとかの権限ありますけれども、そういうものを最初の原則に沿って
必要なものだけを解放するとか、AWSでいうとIMのユーザーを作らないとか、そういうのいろいろあると思いますけれども、AIですね、インフラの例えばテラフォームとかCDKとかそういうものも作れる時代になっているので、
パパッとインフラをですね、コード化するということも簡単だと思うんですけれども、セキュリティ的な観点からどういうルールに沿って権限を払い出すべきなのかとか、どういうIMロールを作るべきなのかみたいなところは
やっぱりある程度、このセキュリティのコーディングとしてのルールを決めておかないと、動くやするけど、それって全然最小の原則に則ってないよねみたいな話になるんですよね。
なので、AIを動かすにしても、ある程度、初めからこういうルールでやってくださいみたいな、セキュリティのコーディング規約みたいなものを整備するというところが求められると思うので、
ある程度、いろんな観点でこういうコーディングルールを守った方がいいよねっていったところを見出してですね、最初にAIエージェント向けに整備するというところは一つアドバンスなところかなと思います。
DevSecOpsの実践と対応策
あとはですね、単純にアナライザーとかリンターとかそういったもので物理的に弾くっていうのも大事だと思いますね。
あとはDevSecOpsの回し方ですね。これはまあ難しいんですけども、例えばまあいろんなライブラリとかですね、ソフトウェア、ミドルウェアの組み合わせでシステムが動いていると思いますが、
それはですね、日々機体化するというか脆弱性が見つかったりとか、いろんな問題が出てきますよね。なのでそういうものをデイリーで追っていって、
ゼロデイ攻撃とか何か攻撃されたときに防げるような対策っていうものを常に日頃からやっていくと。例えばライブラリとかの例で言えばディペンダーボットとかリノベートってものがGitHubではよく使われますが、
そういったもので定期的にですね、自分たちが使っているライブラリのアップデートをしていくだったりだとか、今はコンテナも多いと思うので、コンテナのイメージのレジストリのところでレジストリに対してイメージスキャナを動かしたりだとか、
あとはサーバーとか構築する場合はサーバーのRPMパッケージとかの脆弱性を見たり、ネットワークスイッチとかのルーターとか、いろいろなデバイスドライバーとか、そういうものもCVだったりだとか、ベンダーからしているレポートというかセキュリティ的なパッチみたいなものは定期的に取り込んでいくというような感じが必要ですよね。
これ大事なのは取り込むっていうのはもちろん大事なんですけれども、プロダクト開発とSI、自宅の作業で明確に違うのは、プロダクト開発の場合は自分たちの都合でどんどん入れられるんですけれども、SIとか受け入れの場合ってセキュリティ対応のためだけに新しく仕事を発注してもらわないといけないみたいなところもあったりするので、お客さん側にも面倒くさいですし、自分たち側も時間かかるんで一回契約してみたいな話になるので、
ある程度運用業務としてそういうものもやりますよみたいな契約を始めから交わしておいて、コースを見積もっておくみたいなところがいいかなと思いますね。あとはですね、認証認可の話もWebSecOpsの話でよく出てくるかなと思っていて、というのも旧来のユーザー管理でいうとユーザーとパスワードを管理ツールごとに用意するみたいなものがあると思いますけれども、
なかなか認証認可のところを自前で実装したり管理したりとか、アカウントの棚下ろしをやっていくっていうのは結構厳しい話でもあるので、最近はもうOIDCとOAuth、あとはIDP、例えばOktaとかOauth0とかGoogleとかMicrosoftのEnterIDとかAWS Cognitoとか、もしくはOSSみたいなものもありますが、
何かしらのIDPと連携させて、自分たちではもうほとんどユーザー管理とかはせずに、情報システムの方とかが持ってくれている、昔で言うアクティブディレクトリみたいなものとうまく連携して、そこで一元的にユーザーを管理する。基本的に認証認可は自前で実装せずに、外部のIDPを呼び出す感じにするみたいなところが前提になってくるかなと思います。
これをやっておくと、定期的な棚下ろし、認可の意味では例えば人が移動になったとか、そういうタイミングでも必要になるんですけれども、やめたっていうケースの場合は、もうそのアカウント自体が削除されたりとかっていうのが対象フローの中に組み込まれていることが一般的だと思うので、特に気にしなくても良くなりますし、
まただいたいそういう外部の認証、例えばGoogleとかですと、アクセストークン、リフレッシュストークンで一定時間でアクセスできなくなるみたいなことが始めから用意されているので、自分たちでやるよりも相当安全性が高くなるかなと思います。
あとは境界防御とゼロトラストの話もありますね。これがDevSecOpsみたいな話かどうかちょっと怪しいんですけど、今まではファイアウォールをベースにIPアドレスベースのフィルタリングだったりだとか、そういうものが主流だったと思うんですけれども、近年はゼロトラストっていうものが一般的になってきたなと思います。
ゼロトラストっていうのはデバイスが多様化する中で、IPベースではもうコントロールできないよねと、そもそもIPじゃなくてその人がどういう人なのかっていうのを認証して認可した上で信用しよう、そもそも誰も信用しないようにしようっていう思想からできてきたもので、これのほうはIPは偽装されるものなのでより安全だろうというところで、
最近はこっちが主流になっていますので、何か自分で外部にホスティングする社内向けのサービスだったりする時もIPアドレスではなくてゼロトラストをベースにしていくといいんじゃないかなと思います。そしてそれを自分のプロダクトですね、パッと導入できるスキルがあるといいんじゃないかなと思います。
あとはですね、一般的な攻撃手法の理解とその対策というところなんですけども、これはさっき話したSQLインジェクションとかOSインジェクションとかDNSキャッシュポイズニングとかSSRFとかいろんな攻撃手法あると思うんですけども、別に全部知っている必要はないんですけども、少なくとも自分が関わっている領域、例えばブロックチェーンだったらブロックチェーンのところだし、バックエンドだったらバックエンド、フロントエンドだったらフロントエンド、モバイルだったらモバイルとかいろいろあると思うんですけども、
そこに関してどういう問題が出ているのかっていうのは定期的にウォッチすべきですし、新しい攻撃手法が出たら自分たちのプロダクト的にはどうなんだろうみたいなところはチェックしておくべきですと。
プラスある程度のサービスになると脆弱性診断っていうものを定期的にやるっていうこともありますし、サービスのリリース前にやるっていうことは大体やるんじゃないかなと思っているので、そういうところでチェックして学習するみたいなことが必要ですね。
攻撃手法と脆弱性診断
実際に自分で脆弱性診断やってみるっていうのもありかもしれませんね。OSSでそういうスキャナー系のツールもありますので、そういうものを触ってみるといいと思います。
ただここをもうちょっとガチガチにやっていくっていうのはもうセキュリティエンジニアの領域なので、触りというかどういうことやってるんだろうみたいなところを知っておくっていうのはいいかもしれないですね。
最後には情報収集かな。セキュリティ系って本当に日常的にいろんな攻撃があったりとかいろんな防御策攻撃策が出てくるので、ある程度ウォッチしておく必要があるかなと思います。
特にCVスコアが高めの自分たちに影響のあるような事象だったりとか、日常的に使っているツールが汚染されてしまってサプライチェーンアタックの標的になったみたいなこともあったりするので、
個人的には信頼できるSNSアカウントをフォローしておくとか、そういうところで見ておくのがいいんじゃないかと思います。
ただ情報量あまりにも多いので、ある程度適切にフィルタリングを自分の中でやる必要があると思います。
ということですね、こういうことができていればAI時代においても、AIの開発あるんですけれども、AIが全部セキュリティを担保してくれるわけではないと思うので、
ある程度ガードレールというか、かつコーディングルールみたいなものをうまく設定することで、AIをある程度制御しつつ生産性も上げられるんじゃないかなと思います。
またですね、資格として何を取ればいいんだみたいな話があると思うんですけども、この資格を取れば絶対大丈夫ですみたいな資格は個人的には知らなくてですね、
私はセキュリティ系だと情報安全確保支援費ってやつの試験と、あとSANSっていうアメリカのセキュリティ系の研修というか資格があるんですけども、それを何かいくつか取ったんですね。
ペネストレーションとかフォレンジックとか資格じゃないですけど、研修自体を受けさせていただいて、知識はあるんですけども、
これが直接的に役に立つのかというと、ちょっと資格取るだけだと難しいかなと思います。
なので、私はいろいろ説明してきた内容についての教科書的な理解と知識の習熟みたいなところは資格勉強を通じてやってもいいかもしれないんですけども、
それ以上はもう本業でやっていくしかないので、まずはですね、自分の手の届く範囲からセキュリティを気をつけていこうという意識づけ、
それから教科書的な勉強を資格を通じてやっていく、例えばセキスペとか情報安全確保支援者は今後どうなるかIPAの方針次第ですけども、
そういうところを受けるっていうのは一手ありかなと思います。銀の弾丸みたいな強いやつはないかなと思います。
ということで、今回はNinjinさんからいただいたAI自体に有利になるセキュリティの知識ってどんなもんじゃいっていうところの質問をいただいたので、
このコートキャストはハッシュタグUITで皆様からの感想やコメント募集しております。
またチャンネルの概要欄にありますGoogleフォームのリンクからもご投稿可能です。ありがとうございました。
14:17

コメント

スクロール