まえがき
予定の時点で入れた「CI/CDやセキュリティ周辺で何か書きます」のとおり、具体的に何か…出来ればCI/CD絡みでと書き始めたものの、読んで役立つ意味あるネタにしづらかったので、タイトルから全部書き直しました。
ネタを探して…そのためSnykやその周辺のDev”Sec”Opsの記事など、日本語・英語ともネタになるものは無いか?と、私なりにけっこう読みあさり、公式動画もチェックしました。
オープンソースのセキュリティをSynkでチェック、それを日本語で”やってみた”それは意味のあることだと思います。まだまだこの分野に関する記事も多くないですし。
Dev”Sec”Opsってなんだ?
しかしその前に!
大切なのは開発に関わる全ての人々のセキュリティ的な考え方、Dev”Sec”Opsの啓蒙ではなかろうか?そこに考えが至りました。”やってみた”系の記事も良いけど「Security(Sec)を織り込んだ開発」に理解が進まないと、はじまらないのではないか?
エンジニアに、セキュリティ大事ですよね?ときいたら、誰でもイエスと答えるでしょう。
ではDev”Sec”Opsって大事だよね。でも、それってなんだ?
セキュリティに対する理解
DevOpsやCI/CDの考え方で、コーディングとチェックを小さいループで継続的に回して開発を進める際、早い段階からオープンソースのセキュリティ”Sec”を考えよう。プロジェクトが進み、大きくなるほどその重要度は増す。
チームの一人、あるいは数名の有志がそう考えても、全体の認識やカルチャーとして馴染んでないと、セキュリティ込みで開発を進めるのは容易ではない。プロジェクト・マネージャーなり、経営層なりが理解していないと、つい「とりあえず後でいいよセキュリティとかは。早くリリース!スピードが命だろ。世間をアッと言わせようぜ!」とか。投資家の要望に応えなくちゃ!とか、(理解のない)企業上層部からのプレッシャーだったり…。
まだセキュリティは、後回しにされがちなものかもしれない。
無意識下のネガティブ・バイアス
個人的観測ではありますが、セキュリティと聞くと、じつは無意識下に「時間は取られるは、手間がかかるわで、面倒くさい…」というネガティブな印象がある気がします。
気分良く作業始めようとPCを起動したら、何ちゃらセキュリティアップデートのお時間です(ニッコリ)が始まり、ようやく終わり再起動してね(ニッコリver.2)と言われ、再起動後に、はーい!次のセキュリティアップデートでーす。また再起動を手動で数回お願いするかもしれないけど、しないかもね〜(ニッコリver.3)仕方ないので、コーヒー飲んできたら、待ってたよ〜ボタンを早くクリックしてね(ニッコリver.4)…仕事前に良かった気分が、すりおろし器にかけられて行く。
または、PCがやたら重くなんかバックグラウンドで走ってる?とCPUプロセスをチェックしたら、追加インストールされたセキュリティ・ソフトと思しきヤツがCPUパワーを大量に喰ってる。それを停止したらPCが全フリーズ。そのスキャンが意味不明のタイミング。しかもこれユーザーのためじゃなくソフト会社の利益のためのスキャンじゃないのか?
もしやそれが見えない壁…なのかも?
長らくPCを使ってきた人々にとって、思い当たる節があると思います。まぁ近年はそういったケースは減ってきたようですが。その好ましくない体験は、多くの場合、年齢が少し上のマネジメント層だったりしがち。とかくセキュリティ対応とかアップデートとか聞くと、もう無意識下で脊髄反射的に起きる、嬉しくない悪印象。
そんな無意識下のネガティブ・バイアスも、人により異なるとは思うけど、多かれ少なかれあるのでは?人もお金も握ってる可能性の高いマネジメント層の印象が良くないのは、セキュリティ込みで開発を進めるにあたり問題ですね…。
「え?セキュリティ?うーん、限られたリソース内でそっちにも予算や時間を割くの?あとでいいよ、そんな保険なんかより…」みたいな反応が来てしまいがち。
セキュリティ === 保険 ではない
あっ!部長、いま「保険」て言いましたね?(ニヤリ)
では「保険」と「セキュリティ」の違いって、何ですか?
うーん…情報漏洩のサイバー保険というのもあるし、まぁだから大体同じようなもんじゃないの?そういえば違いの説明をきかれると、どう違うんだっけ。
そこで、正面から向き直って考えてみたら…。
セキュリティと保険を比較
セキュリティ → 人為的に襲ってくることに備える
家屋に対して例えるなら、裏口の鍵や外壁が古ければ音もなく壊せるか、吠える番犬パッチはいないか。悪い人が隙を突いて侵入する事への備え。意図的・人為的に狙って来る。
保険 → 確率論的・偶発的に起きる事に備える
家屋に対して例えるなら、集中豪雨や洪水、地震とか、車が突っ込んでくる、鳥のフンや飛行機が落ちてくるなど偶然やって来る事への備え。意図的に狙って来るわけでは無い。
もしもの備えに!
家屋とか被災とか例えのまま話を進めます。
もしもの備えに!保険を!といわれると、家屋や生活を守るためという同じ目的だから、一緒のように感じてしまう。しかも保険料が高かったり、保証範囲と金額と計算がややこしかったりすると、今は忙しいので、あんまり考えたくない感じ。
でもほら、日本政府だって言ってるでしょう?
政府広報オンライン - もしもの備えに!食品備蓄のコツとは?
もちろん例えなので、家屋や生活における、セキュリティや保険とは同じではないけど、食品や飲料水のほか、バッテリーやライトの電池、コンロのガスなど、高いコストではないけど、日頃からチェックは大切ですよね!部長。非常用袋はチェックしてますか?部長。
こうしてマネジメント層の部長に、セキュリティへの意識を改めて持ってもらいましょう。
(いつの間に部長が出てきたのか?そこは気にしないでね)
DevSecOpsに向き合おう
前置きが長くなりました。
DevOpsの開発手法や考え方は、現場でもネット上でもよく目にするようになり(あまり大きな主語で言ってもいけませんが)もはや共通認識になってきたと思います。経営層から、マネージメント、プロジェクトリーダーを含め、大型開発でもベンチャーでも浸透してきたのは、開発スピードが上がり、開発の仕組みも便利だけど複雑にもなり、現実問題としてもDevOpsじゃないと対処できないと感じるようになったから。
大切なのはセキュリティへの共通認識
そこに共通認識として”Secrity”を加えよう!DevOps → DevSecOpsで行こう!という、ある意味すごく単純な話なわけです。
なにごとも開発に当たって全員が同じ共通認識でないと、プロジェクトが上手く進まないのは、セキュリティだけに関わらず全てにおいてでしょう。しかし上にも書いたように、セキュリティ対策の常識化に、何とな〜く壁を感じていたりまだ共通認識にはなってない。少なくとも私自身はそんな感じで、それは何か?と考えて言語化する試みでもありました。
冒頭にも書きましたが、Snykのサイトや動画を私なりにあちこち見たり考えたりした上で、以下のように整理しました。当然、あくまで個人的な見解ですが、SnykのみならずDevSecOpsの理解の一助にでもなれば幸いです。
共通認識を持ってもらうには
本家サイトの、長い力作のBlog記事や、しっかりしたDocumentも大切ですが、共通認識を持ってもらうなら、まずは短く分かり易いことが第一歩。
きれいなプレゼン資料よりは、目の前で実演してみる、動かしてみせる、あるいは自分で体験してもらう、これに勝るものはない。
Snykの考え方は以下の3つ
- 開発を進める際により早い段階で(シフトレフトで)
- セキュリティを念頭に置いた手法で(DevSecOpsで)
- 開発に関わる全ての人が導入しやすい(開発者フレンドリー)
1: Shift Left は、時間軸が左から右へ開発の流れを考えた時、より左の方にシフト、つまり早い段階にあらかじめ考慮しようという考え方。開発工程で加えるなら、なるべく早くからのほうが重く面倒にならない。
2: DecOpsで小さく何度も回して開発…早くリリースまで行きたい!セキュリティ?考えてる余裕ない!になりがち。でもきちんと向き合い、やり方を工夫すれば意外と時間や負担が重くならずメリットが大きい。DevSecOpsで行こう。
3: 開発者の負担が少なく、フレンドリーな事は重要。フロントエンド、デザインやUI/UX開発で明るく楽しく開発中に、セキュリティのため面倒なチェックや手数を増やすの歓迎されない。それウチらがやるの?セキュリティ部署でやってよ!と不満が出がち。
もちろん上記は、開発チームやプロジェクトマネージャー、企業カルチャなど状況や条件は千差万別なので、あくまで有りがちな例えとして、ですが。そんな状況に、3つ目に挙げたセキュリティ導入の壁を壊しハードルを下げる努力をしている、それがSnykなのでしょう。
DevSecOpsに向き合うまで
Qiita & Snyk イベントで少し興味を持ち始め…
このSNS投稿をした、まだ真っさらな気分で前列に座り聴き始めた時点では、プロジェクターに並ぶアジェンダを見て、ここでSnykの創業とか、苦悩、想い…どんな話だろう?
そして、理知的で静かに話し始めたGuy氏…もしかして退屈だったらどうしよう(正直いうとね)と、思い出してみるとそんな気分でした。
私の投稿 → https://twitter.com/nikosun/status/1721821895367274888 より
そのうち講演のやり取りで、開発にセキュリティを加えても、特に現場の開発スタッフの負担の増えない方法を模索したというのは分かってきた。
しかし、そうか!そうだったのか!完全に理解した!とひざを打つ感じではなかった。
犬好きとしては、単純にマスコット犬可愛い!名前はパッチなの?バッグのセンスもいい感じ…ということで、ニコニコ持ち帰りました。しかし、帰宅後に中身をサッと見たものの、日常の仕事もあってしばらく放置してました。
いよいよ12月7日になって、アドベントカレンダーを思い出し、CI/CDパイプラインで記事が書けず、ふと思い出したのがこれ。
Snykエコバッグの中にあった資料「マンガでわかる! Snyk 誕生物語」が、まとまっていて理解を進めるのに役立ちました。これお世辞じゃなくて、本当ですよ。むしろ漫画のシナリオライターさん始め、編集の皆さんに喝采を送ります。パチパチ。
(この冊子については、また本稿のおわりにご紹介します)
空気アタマの私の理解とは違い、賢明な諸兄の皆さんは、すでにセキュリティとか保険とか、その違いなど、よく理解されていたかと思います。
しかしつい先日まで私の持っていた、セキュリティに対する印象は…何となく安全の担保とか保険とか…その辺の違いが混沌として、空気のようにふわふわと明確ではなかった。
私の投稿 → https://twitter.com/nikosun/status/1721844410219110659
(前略 … ともあれ、改めて考える機会になったので #Synk 試してみようかな)
この11月の投稿にもあるように、このあと(少しは)考えてみたわけでした。
すぐ体験できる Snyk Advisor をもっと!
まずは”感触”とか”概念”のようなものをつかむのがポイント。そして、とりあえずSnykに触れることで、なるほどこんな事になってるのか…と理解するのが第一歩。
画面上のロゴの右横は、プルダウンした状態でキャプチャしました。
2023年12月現在 npm, pypl, Go, Docker になっていますが、Dockerは少し別扱いぽい。
まずはファーストタッチ
身体性と言ったりしますが、さわってみる(さわらせてみる)のは大事なポイント。
ほら、店頭販売でもそのテクニック使いますよね「そこの奥さん、ちょっと手に持ってみて?いい感じでしょう?(奥さんがサクラの場合あり、ご注意)」
エンジニア以外にも、Snyk入門というか簡単に体験できるものがあれば良いのに。
どうも脱線するなぁ。前置きがまた長くなりました。
本稿で一番言いたかったのは、タイトルどおり「Snyk Advisor」です。
さわってみよう Snyk Advisor!
例えばエンジニアがSynkを始める時なら、この画面でスタートになると思います。
でも、これだとチーム内のエンジニア以外の人たちに体験してもらうには、あまりにも馴染みがないですね…。
GitHubって聞いた事あるけど、CLIって何だよ?片目をつむった顔文字かよ(>_<)
全くもう、親しみというよりむしろ逆効果ですね。みんな英語だし。
とりあえずは、後で良いや!右上のリンク「Skip for now → 」をポチっ。離脱。
こんな感じではなくて、ブラウザーで、単純で登録もなく、少しSnykの中身を見せられるものは?ないかなぁ…あるよ!それが Snyk Advisor だと思います。
Qiitaに掲載の Snykの製品ページ には Snyk Advisor が無いんですけどナゼかなぁ。
あっ!これってもしやアプデが漏れた、つまり、ぜ、脆弱性 …
(そういう指摘の仕方は嫌われますね。正しい方法は、報告してプルリク!)
ともあれ、とりあえず画面上のプルダウンにタイプ。即座にリストアップされます。もしかしてエンジニアにとっても、たぶん最もSnykを気軽に試せて、簡単にセキュリティを体験できるものだと思います。
実際に npm の Node-RED を確認したのが以下の画面(スコア良くてホッとした)
じつは、あのライブラリは意外にアレなんだ…というのもすぐにわかる。素晴らしい。
エンジニアさんが社内プレゼンする時にも、軽快なので使いやすいと思います。
チーム内のマネジメント層だけでなく、例えばUI/UXデザイナーさんとか。ガチでコード書かないけどセキュリティってステキ…と知ってもらうのは大いに価値がありますね。
おわりに
全体を読み返してみると、なんだかマネジメント視点というか、自分の言葉でSnykを導入してもらえるよう説明するなら、という方向になってしまいました。書いてるのが12月25日なので、もう時間がないので書き直せない!ま、いいか(本人許諾)
でも、たまにはこんな記事も良いでしょう?などと一方的に独り解釈し、これもユーザーのフィードバックだ!と強弁しておきます。まぁ、無料ユーザーなんだけどね。
さらに動画も、本人的にはかなり見てしまったので、気になったものや面白かったもの、要望など、メモしてあったのを拾って書いてしまいます(大丈夫かなドキドキ)
日本法人の寿司バージョンに期待!
少し暴走気味なのをお許しいただいて。
だってクリスマスでしょう?教会に行ってゴスペル聴きたいですよね。
ゴスペルといえば、コール・アンド・レスポンスの掛け合い。ここはぜひ、英国と日本でビデオの掛け合いを見てみたい。
Youtube - Snyk London Office Tour | Life At Snyk
1分10秒過ぎから30秒くらいです。ぜひ見てください。
… so, with this being the London office, there is one thing that we take seriously here more than security, which is tea. …(中略)
There is only one real type of tea that anyone should ever drink. That’s Yorkshire tea.
(意訳)Snykのロンドンオフィス、ここではセキュリティ以上にマジ大切なものがあります … それは色んなお茶があるなかぜひ飲んでもらいたい本物!それはヨークシャ・ティー!
セキュリティ以上なんかい!そんなこと言っちゃって大丈夫か?ツッコミは置いて。
このロンドンからのお茶コールに対し、日本から寿司でレスポンスとかどうでしょう?
(意訳妄想)色んなお寿司の種類がありますが、日本に来たらぜひ味わってもらいたい究極の寿司!それは大トロです!ドヤー!…なんてどうでしょうか。
これ、良いネタでしょう?寿司だけに。
ちなみに撮影後、スタッフが美味しくいただく時、ぜひお呼ばれしたいです(強希望)
Snyk アニメ「次世代の脆弱性診断ツール」
Youtube - Snyk アニメ「次世代の脆弱性診断ツール」これも3回くらいは観ました。
個人的な好みとかあると思うのですが、私の場合に限って、とお断りしてから。
アニメだからというのが理由では無いのですが、このトーンだと経営層にプレゼンする場合、少し判断を考えてしまう気がします、色んな意味で(日本人なので察してください)
他のプロモーション動画(英語アニメ)に日本語訳を入れた動画、または吹き替えでもあったら良いのにと思います。それなら私がもしプレゼンする際でも安心して提示できる。
例えば…。
Youtube - Snyk Security Intelligence Overview (1分01秒)
短くまとまったアニメで、短くタイトルどおりの分かりやすさ
Youtube - Snyk Security Intelligence: Snyk Code Knowledge Base (1分13秒)
マスコット犬パッチのヘルメットの形と、後ろでベルトコンベアを歩く姿が好き
ついマスコット犬パッチばかりを目が追ってるのがバレましたが、他にも3分前後の短めの動画は、ガチのエンジニア以外にとっても、チーム内でセキュリティへの共通認識、理解を持ってもらうのに良いと思います。
ちなみに犬にばかり目が行ってしまい注意がそれるのは、たぶん私の脆弱性。
なお、マスコット犬パッチへの愛があふれすぎ、暴走した投稿はこちらです。
→ Qiita - Snykマスコット犬”Patch”への愛を語ろう(その1)
→ Qiita - 同上タイトルで(その2)
良いよね、パッチ。
資料 「マンガでわかる! Snyk 誕生物語」
上でも書きましたが、この資料はとても分かりやすかった。英語の動画やBlog記事にない視点からのアプローチで、Qiita イベントでGuy氏が話していた開発経緯なども入っていて。
もちろん、Blog記事の中にも同様の解説はありますが、もちろんSnykなので、技術のイラスト、DevOpsとかShift-Leftとか、エンジニアじゃないと興味を持ちにくい図案が多め。
なんかあの、くるくる回ってる8の字矢印を並べてる図案、お腹いっぱいです。
私の感覚ですが、大切なのは「チーム全員の共通認識」なので、予算管理の人やコード書かないUXデザイナーさんにも、まず見てもらえるか?という視点から、漫画は良いですね。
これ、むしろ英語の翻訳版があれば「Oh! Japanese manga is great ですね!」みたいな反応が期待できると思います。一部再構成するだけで、海外で日本の漫画・アニメの理解も進んでるし、なかなか斬新だと思うのです。(すでにあるのかも知れませんが)
マウスは、サイズ比較のため。あえて大判なA4(見開きA3)サイズも良いですね。
表1-4を除き中身24ページ。全ページカラーで文字も大きく経営層にも渡しやすい。
(これはPDF版とか、私が知らないだけでネット上のどこかにあるのでしょうか?)
12月25日の深夜にまだ書き終らず、すでに年末年始気分に空気が変わりつつある26日の朝、最後に追補して書いています。どうもすみません。でも、まだ米国欧州はXmasだもんね!と見苦しい言い訳して、この辺で終わりたいと思います。