おはようございます! zenncast、MCのマイクです。10月20日、火曜日、朝7時になりました。今日もZennでトレンドの記事から、気になる話題をお届けします。
今回は、コードの難読化から、業務のつなぎ方、AIを安全に使う工夫、そして動画編集ソフトまで、全部で5本をご紹介します。それでは、始めましょう!
....
まず1本目は、Pythonのコードを守る「難読化」についてのお話です。
難読化というのは、プログラムの動作を変えずに、コードを読みにくくする技術です。ただ、ここで大切なのは、完全に隠す技術ではなく、解析するための手間を増やす技術だと捉えることなんですね。
記事では、Pyarmorの標準設定で保護したコードを検証しています。この状態では、関数名や文字列などを簡単に取り出すことができ、実験ではAIが元のコードをほぼ復元できたそうです。保護をかけたから安心、とは言い切れない結果ですね。
そこで紹介されているのが、いくつかの機能の組み合わせです。文字列を暗号化するmix-str、名前を変えるRFT、処理を機械語に変えるBCC、そして外部からの参照を制限するprivate。こうした機能を組み合わせることで、解析を難しくできます。ただし、単純な処理であれば、入力と出力を見るだけで、何をしているか推測されることもあります。
また、保護を強くするほど、ライブラリが動かなくなったり、処理速度が落ちたりする可能性もあります。外部と接続する部分と、守りたい重要な処理の部分で設定を分け、納品前にはきちんと動作確認をすることが重要です。
技術だけでなく、解析や流用を禁止する契約も必要になります。そして、絶対に知られてはいけない値は、そもそも配布するコードに含めないこと。外部へ送る生成AIのプロンプトについても、難読化だけでは守れないと考えるべきだとしています。
何を、誰から、どこまで守るのか。そこを整理して、技術と運用、契約を組み合わせたいですね。
....
続いて2本目は、人事や情シスなど、複数の業務領域をどうつなぐか、という設計のお話です。
人事の機能は正しく作られている。情シスの機能も正しく作られている。でも、それだけで入社や異動の業務が自然につながるわけではありません。その間を埋めるために、利用者が状況を確認したり、担当者同士で調整したりする手間が残ってしまうんですね。
筆者が大切だと述べているのは、それぞれの業務ルールを考える段階から、領域をつなぐ接点も設計することです。
その際には、同じ人物だと識別する仕組み、業務全体の状況を表示する仕組み、そして次の作業を始めてよい条件を、分けて考える必要があります。同じ人の情報がつながっていることと、次の処理へ進めてよいことは、別の話なんですね。
また、変更してよいかどうかは、それぞれの領域が判断します。一方で、業務全体として何をもって完了とするのか、途中で失敗したらどうするのか、取り消しが起きたらどう対応するのかは、領域をまたいで明確にしておく必要があります。さらに、それらを誰が決めるのか、責任者もはっきりさせることが重要です。
個々の機能の正しさに加えて、その間を人の頑張りだけでつながなくて済むようにする。利用者の負担を減らすための、大事な設計の視点ですね。
....
3本目は、Claudeを使う際に、外部の文章に紛れた指示からどう身を守るか、という話題です。
まず紹介されているのは、CLAUDE.mdに、外部の文章は指示ではなくデータとして扱う、というルールを追加することです。ツールの実行結果やファイルの中に命令が紛れていても、それには従わないよう明示します。ただし、これだけで完全に防げるわけではありません。
情報の渡し方にも注意が必要です。信頼できないWebページなどの内容を、パイプでClaudeに直接渡すのは避けます。代わりにURLやファイルパスを渡し、ツール経由で読ませることで、ユーザー自身の指示と、外部から取得したデータを区別するという考え方です。
操作の段階では、Manualモードを使い、機密に関わる操作の前に人が確認します。また、deny設定を使うと、指定したパターンに一致するコマンドを強制的に拒否できます。ただ、別の書き方をされた場合には防げないこともあり、これも万能ではありません。
さらに、sandboxでシェルコマンドの書き込み先や通信先を制限し、攻撃を受けても被害が広がりにくくします。ここにも注意点があって、ファイル操作ツールや、sandboxの対象から除外したコマンドは保護の対象外です。認証情報などの読み取りを制限するには、追加の設定も必要になります。
ルールを書く、入力を区別する、人が確認する、操作できる範囲を絞る。ひとつに頼らず、何層にも対策を重ねることがポイントですね。
....
続いて4本目は、無料で使えるオープンソースの動画編集ソフト、Zeriumの紹介です。
ZeriumはRustで開発されていて、AviUtlのような、初心者にも使いやすい操作を目指しています。GPUを使った高速な描画や、複数のOSへの対応が特徴です。
なかでも目玉なのが、「シーン引数」という機能です。これは、テロップの演出を何度も使い回せる仕組みなんですね。同じ演出を使いながら、文字や色だけを変えられます。さらに、元のデザインを修正すれば、それを使っている箇所にも、まとめて変更が反映されます。
同じデザインのテロップをたくさん使う動画では、一つずつ直す手間を減らせそうですよね。
処理速度も注目です。対応している環境では、動画の読み込みから加工、書き出しまでをGPUで処理できます。作者の環境では、1080pのH.264動画を、約250fpsで書き出せているそうです。こちらは、あくまで作者の環境での数値です。
一方、現状は基本機能が中心で、外部プラグインのインストールはまだ実装されていません。また、macOSでの動作も未確認とのことです。
使ってみたい方は、今できることと、自分の環境で動くかどうかを確認しておきたいですね。テロップの再利用という、編集の繰り返し作業に着目した機能が印象的でした。
....
最後、5本目は、AIエージェントに個人の記憶を任せるときの、安全な仕組みづくりについてです。
中心になるのは、注意書きをするだけでなく、仕組みで止めるという考え方です。記憶への書き込みは専用CLIに一本化し、保存する前に秘密情報が含まれていないか検査します。メールを取り込むときには、秘密の値だけを伏せるようにします。
勤務先の情報は専用の場所に限定し、スマホへコピーする対象からは除外します。そして、検査の設定が壊れていたり、読み取れなかったりした場合には、そのまま通さず、書き込みを止めます。安全を確認できないときは止める、という設計ですね。
さらに、一時ファイルをどこに作れるか、重要なファイルを編集できるかも制限します。許可していない場所へのアクセスがないかを点検することも必要です。検索の窓口は手元の端末だけで接続を待ち受けるようにし、接続先の名前も確認します。
そして、メールやWebに書かれている指示は、信頼できないデータとして分けて扱います。これは、先ほどのClaudeの安全対策とも通じるところですね。
AIが作ったタスク案も、そのまま保存するわけではありません。根拠のない案が混ざっていないか、送金や削除などを命じる内容がないかを検査し、そうした内容は隔離します。
個人の記憶には、生活や仕事の大切な情報が集まります。便利に覚えてもらうためにも、保存する入口、保存先、アクセスできる範囲、そして提案を採用する前の確認まで、仕組みとして整えることが大切なんですね。
....
さて、今日のzenncastは、5本の記事をご紹介しました。
コードの難読化は、完全に隠すのではなく解析の手間を増やすもの。業務システムは、個別の機能だけでなく領域同士の接点も設計すること。そして、Claudeの安全対策を重ねる工夫、テロップを再利用できる動画編集ソフトZerium、AIに個人の記憶を任せるための仕組みづくりをお届けしました。
詳しい内容はショーノートに書いてありますので、気になった記事をぜひチェックしてみてください。番組の感想もお待ちしています。気になった話題や、皆さんが実践している工夫も、ぜひ教えてくださいね。
この番組はSpotifyやApple Podcast、YouTubeなどで毎日配信しています。気に入ったら、登録や高評価をつけてもらえるとうれしいです!
それでは、次回も皆さんにお会いできるのを楽しみにしています。お相手はマイクでした。今日も、気持ちのいい一日をお過ごしください!