ウェブセキュリティの12の心得

ぶっちゃけシリーズ,上林流仕事術,公開情報,情報ソース

これまでウェブセキュリティをしてきた経験から、大切にしていることを箇条書きにしました。目次より詳細に飛べます。余計な詮索はなしで、所属やエンジニアリングレベルの業務レベルの話もなしで、意識レベルのお話だけです。個人的な教訓も交えて、現場に合わせて書いているので、合わない現場もあるかもしれません。

 

Web Securityの心得

健康維持最優先で生きろ

インターネット、イントラネット、防災、銀行、ウェブサイト、端末、ソフトウェアなど、ウェブセキュリティの働くシーンは結構いっぱいあって、複数のシーンに入る場合は、体力勝負です。例えば、みんな知ってるあの会社での勤務経験は、日本国内ではものすごくいっぱいの組織が求める勤務経験でもあります。なので、どうしても社会的意義、責任からして「入らないといけない」こともあります。

 

そういうのに限って、断りづらいツテからお話が来たりするので、半ば強制なんてこともあります。しょうがないので「健康維持」だけはしっかりして、言い換えれば「自己管理」はしっかりして生きるようにしましょう。

 

健康優先のためであれば、全てを犠牲にしろ。家族、趣味、生活スペース、住みたい場所、全て犠牲にする覚悟でいるべし。そこまで賭けたくないなら、そのレベルの仕事だけできる場所を選んで、高望みは切り捨てろ。

 

心と体、心身共に十分な状態じゃないと健康とは言わない。精神的な負担になる事象は避けて、体を壊す生活は避けて、いちいち心理状態を乱す人との関わりも避けて。

 

常時アップデート&データ解析

セキュリティもいたちごっこだよ。おそらく人間と、人間が残したもの全てがなくならないと、セキュリティの仕事はなくならないよ。なので、しょうがないので、常にデータを集めて、どんどん集めて解析して、それに合わせてアップデートしていこう。

 

ただし、時にダウングレードしたほうが、アップデートになることもあるよ。目に見えて何もしない、何も変えてないけどアップデートって言って配信したほうが効果が出る例があるよ。攻撃者も常に新しいやり方をするけど、中途半端にグレードを下げた状態のところって攻撃しにくかったりするよ。攻められても問題ない箇所とか、ダウンした方が強固になることもある。アップデートしたよっていって、実は1文字しか変えてない、しかも//区切りの所、とかでも攻撃者はお金と時間をかけて解析してくるよ。そうやって攻撃者のリソースを食ってやろう。変わったって言ってるのに変わってない…あれ?っていう不安を与えてやろう。こういうのは「釣り」に最適さ。ちゃんと解析して、時には違法コピーしたい連中は、そういうよく分からない変更を嫌がるの。FPSゲームと同じ、相手が嫌がることをしたら勝つよ。セキュリティは戦争だからね。

 

良いことをしたけりゃ偉くなれ

権限を得ろ。もっと上の、上位の権限を持て。そこだけは貪欲にいけ。新しいプログラミング言語を学んでも権限はあんまり変わらない。「エンジニア」としてのスキルが横に広がるだけで、使われる立場なのは変わらないよ。権限を持って、その権限で、一発BAN指示できるくらいの地位を目指して。データ解析して、クラウドに集めて、まとめてBANする時に、なぜか除外しておけってリストを渡されることがあるよ。時には上位にBANリストを渡しても、実行されたBANには一部のリストが入ってなくなってることがあるよ。

 

よく分からない力が働いている、優遇されていることはあるよ、確実に。権限を得ろ。軍・自衛隊関係、警察・公安、大企業、検閲組織、省庁関連、Imigration関係、業界組織、あっちこっちのある程度の権限を持ってれば、そういう怪しい介入すらBANできるぞ。そういう場所では、そういうコネクション持ちの者は嫌われやすい事もあるけど、その力関係によっては逆支配できるくらいには役に立つよ。偉くなれ、良いことをしたいならね。

 

小手先の技術に頼りすぎない

エンジニアリングで業務効率化?プログラミングで自動化?機械学習で効率化?するのもいいんだけどね、その小手先の技術、攻撃者の方も同じなので。やってるレベルが同じであれば、勝つのは奪う方だよ。ここでも一番効いてくるのは権限だよ、BANリスト、通報リストなんかを上げるだけしかできないと、なかなか反映を待たないといけないのでめんどいでしょう?権限あれば一発でいけるよ。

 

プログラミングはお勉強するのはだいじだけど、それはそれ、エンジニアリングの者に任せよう。コンピュータプログラミングは全部出来ちゃいそうだけど、他で例えれば、製鉄、加工、設計、製造、配送、クレーム対応は一人でやらなくていいでしょう?自分自身の立ち位置を分かっておいたほうがいいけど、デザインに影響する所とか、利便性に影響する所とかは知っておいて考慮に入れられてもいいかもね。そういうのって、泥臭く、地道に、現場目線でいくもんよ。

 

利便性・デザインと共存する

ソフトウェアもUI、ウェブサイトもデザインと高速表示、銀行も安定とスピード、最近じゃ軍関係もUIと強靭さを同時に求めるでぃ。セキュリティを強くするのと、デザイン、利便性を残すのとは同居できる。両方いけっからね。どっちかを、ある程度犠牲にしないと…なんてのはコストとめんどくささのいいわけでしかないので、がんばろうね。

 

何より、見た目。セキュリティはセキュリティと悟られたらよくないんだ。お店の警備員も、あれは体外的なもんで、低~中レベルの攻撃意思を避けるものであって、高レベルの情報詐取、攻撃、スパイ行為なんかは普通に通過してきちゃうので。カフェのお客さんにみせかけて権限持ちの監視員を一人常に置く感覚。まるでそこに住んでんじゃねぇか?ってレベルでいつもいるようなやつぁ、身なりがひどくても疑ったほうが良いくらいのもんだよ。それと同じ感じで、そうは見えないセキュリティを置いておくってのはだいじなんだよ。

 

全て疑ってかかること

いろんなアクセス、いろんなログが残るでしょう?まるでEdge、Bingからのアクセス、AWSからのアクセスに見えても、それって本当に受け入れていいやつっけ?ってちゃんとチェックしないといけないの。どこに触っていったか、何をしようとしていったか、よく見て。IPアドレスなんかを/とか-とかでその一帯まとめてホワイトに入れていたとしても、来たアクセスは機械学習なんて安心できないものに頼らずに、ちゃんと見とけ。偽装してくるに決まってんじゃん。機械学習信じすぎるの、頭大丈夫なの?楽したいだけでしょう?

 

機械ちゃんは得られたデータでしか学べねぇの、疑念を持つとかするためにはトリガーがいるでしょう。人にはいらないじゃない、なんかこの組み合わせで、この時間帯に来るのっておかしくね?しかも、このページにそのアクセス数???みたいなさ、そういう疑念、疑えるのって人だけじゃねぇかな。手間?コスト?かかるに決まってるじゃない。1000kgのお米の中からコクゾウムシの卵を見つけ出せ、そして、排除しろって言うようなレベルなんだから。途中まではエンジニアリングで弾けるけど、チェックはするでしょ?

 

ハニートラップには気をつけろ

とりあえず、むやみやたらに所属を言うな。どこの銀行に勤めているか、そもそも銀行関係者か、銀行ならどこのなのか、分かっちゃうような言動は一切するな。ってのと同じ。ブランドによってはすんげぇから、男でも女でも寄ってくるから。何かお話したいとか、実際どうなのか聞きたいとかそういう素直なピュアなお話は良いと思うよ。ただ、悪意がある者は、権限を迂回したいがために寄ってきて仕込んでいくから。特に、SNSとかさ、そういう所でエンジニアとして名を売ろうとして大勢を集めてオンラインサロンなんてやっちゃうようなのいるでしょ、現場経験あるわけねぇべ。コンプライアンスのかけらも、少なくとも狙われるような現場にいた身じゃねぇぞ。

 

どこどこ出身の、何々です。ってのも、その企業ブランドの名前で採用されたい、くらいには自信と実力がないですって言ってるようなもんなので、いいカモだ。一度退社した起業から、そいつがどの程度情報漏らすかを調べに来るハニーちゃんもいれば、ライバル企業から元々目を付けられていて、簡単に喋っちまうようなレベルなのかうかがってくるハニーちゃんもいるんよ。安易に身分や所属を明かすんじゃないよ。程度が知れるぜ。ってのと、まじめに危ないよ?賠償請求の金額億単位だぞ?

 

逆に、大丈夫だなってときと、包囲網はできてるぞってときは、ひっそり伝えたりはするよね。たいていは信用できる人だなって時に、業務として伝えることはあるけど、敵対してて伝える時にはもう全ての手は打ってあるって段階での伝達なんで、聞いた時点で少しビビったほうがええで。本当はね。それを聞いたあと数日、何もなかったらただ大丈夫だって信用されたんだなって思ったら良いよ。

 

技術レベルを悟らせるな

SNSで、Githubで、Codepenなんかでさ、いいけどさ、自分の開発状況を公開してたりするじゃん。フリーの身なら全然いいけど、そういうの公開しちゃダメなんすわ。OSSなんだったらまぁ、分かるけど、なおさらOSSなら狙いやすいし、攻撃者も仕組み分かるからさ、脆弱性もゼロデイも割とサクッと見つけれるで、簡単に技術レベルを、開発階層を知られちゃああかんのです。だからって一からCMS作るなんてバカみたいにコストかかることしてたら、破産しちゃうぞ?

 

じゃあ、どうするかって、制御だよね。ネットワークだよね。その大元、検査、監査機関だよね。そこまでいくと攻撃者も手を出せなくなると言うか、出したら詰むという所があるじゃない。小手先の技術レベルを悟らせちゃうような投稿や話をSNS、オープンなブログで言ったらダメよってお話よ。自分の得意言語も言わないこと。情報戦において、相手に情報を少しでも多く掴まれていたら負け。身内にすら隠してたほうがいいの。

 

武術は必ず身に付けろ

狙われないとでも?お花畑ですか?大切な企業の情報を、権限付きで握っている、腕力のない、日焼けしてない、弱々しいセキュリティエンジニアなんて簡単に潰せるじゃん。ダメですよ、そんなんじゃ。狙われないってことは、幸い、その程度の現場ってことなんだけど、それでもライバル社とかがあれば鍛えておいて損はないよ。なんなら重要な現場に入る時は、結局腕力だよ。素手で、最悪、破壊できないと、盗まれるよりは壊したほうが良いこともあるでしょ?

 

よくある護身術でもいいし、なんでもいいので自分の身を守れるくらいの環境にはしておこう。ひどい場合は家族を人質に取られる可能性を持ち出して、情報よこせって言ってくることもある。権限があれば取っちゃえるけど、なかったらできないでしょ。家族関係を悟らせないのも大事だけど、腕力も大事よ。

 

バックアッププランは多めに用意

Aプランはあるよね、Bプランもあるよね、たぶん、C、D、Eプランくらいまでもあるよね。じゃあ、電力供給が止まった場合は?ネット回線がブチ切れた場合は?クラウドにアクセスできなくなったら?サーバーがそんなに信用できるの?99%から残り1%の追及、科学の領域だけど、絶対に落ちないシステムを常に考えておく、備えていくって大事なの。難しいし、時間もかかる(トライアルアンドエラーに)し、めんどうだけど、だいじなの。

 

普段エラーが出てない時あるべ?そういう時に何してんの?やっとけよ、トライアルアンドエラー。遊んでないで。太陽天気見てる?電磁波強い時データセンター弱くなるべよ。見ないの?じゃあデータセンターの仕事じゃないね。サーバーは使ってる?なら、見ておかないと。障害おきそうだなぁってタイミングくらいは予測しとこうぞ。予測できるんだから。事前に起こりうる事象を予期してなにか備えをするのがセキュリティだよ。

 

敵性体は内部にあることも多い

スパイだけじゃなくて、悪意なく、脆弱な行動を取ってしまっている社員、顧客、取引先から感染しちゃうこともある。おえらいさんが社内で開いたメール、URLから入ってきちゃうこともある。でもさ、一応、そこにも立場とプライドがあるわけじゃん。社長のPCからウイルス感染しました、なんて社員に言えないじゃん。だからそこもうまくやろうね、組織の関係を守りつつ、ブランドイメージも守りつつ、脆弱から守ろうね。

 

それがセキュリティなんだけど、今の日本にはほとんどないよね、平気で脆弱のまま突き進んでいるよね、省庁なんかは。べつによくない?精神がそこまでいくと嘲笑の対象なんだけど、気にせず進んじゃうんだから爆笑だよね。日本国内の大事なネットワークのところでもそういう状況だったりすると、もう当てにならないので、これもやっぱり権限があれば解決するよ。

 

知識と経験は分散投資しとけ

ある程度現場に慣れてくると、そして、ある程度舐められない年齢になると、後進を育てる役目を与えられちゃうことがあるよ。Academyってやつね。日本にはないんだけど。そのときにね、全部教えたらダメだよ。そこにも敵性体が隠れてるかもしれないので、分散しようね。特に大事なのはグループ分けかなって思う。まじめに教育する生徒は100人いたら3人だけでいい。それ以外は、10グループくらいにわけて、別々の事を指導してやって、あとは学生同士で学ばせ合う。そうするとコミュ力の高いのが、または、基礎力の高いの、独学力の強いのが、上がってくるから、その子らを育てたら良いの。それ以外は単位がほしいだけなんだから、単位なんて上げちゃえ。落とす意味もねぇ。

 

その子らにも全部を与えちゃダメ。今は健全でも悪く使い始める子もいるさ。そりゃあ、攻撃社側の方が儲かっちゃう現実があるんだから、そっちに流れる可能性はあるさ。必ず、こちらがその子の欠点を握っている状態にしとこうね。じゃないと、自分が足元すくわれる。攻撃者は平気で化けてくるからね。

 

秘密の13:攻撃者の気持ちを知っておけ

よく見てるね。見出しにあること、タイトルが全てじゃないよ。ウェブセキュリティをやるんだったら、攻撃することもできるようにしておけ。なんなら、自分で自分を、仲間内で、仲間同士で攻め合いをしようね。情報戦、これは戦争なんだよ。攻撃してくる側の武装を知らないで、防衛側が装備を用意できるわけなかろう。だから奇襲には効果があるし、軍は情報を隠そうとするの。どんな理由で、誰が(どんなプロファイルの者が)、何時頃に、どんな方法で攻撃してくるか、知ってないといけない。

 

のと、合わせて、その攻撃、本当に人間からのものか?って疑わないといけないことがあるの。インターネットってね、既に流れちゃってる危険なウイルスとかがそのまま流れてたり、サイトに巣食ってたりするの。大きいかいしゃががんばって抑え込んで入るけど、どうしても広がっちゃうことはあるの。だからウイルスって名前が付いてるんだよ。ウェブセキュリティは時に、機械と戦わないといけなくなるよ。人からの攻撃なんてかわいいもんだよ、お金が欲しいとか、嫌がらせしたいだけなんだから。

 

コンピュータウイルスそのものからの攻撃は厄介だけど、生存本能と増殖したいっていう欲からできてるから、そのためのスペースを作って、迷い込ませて隔離してやれば、OK。あとは繋がなければいいだけ。でも、ワルイコトシタイ人って、わざわざそういうのを作って放つのよねぇ。世界を壊したい、みたいな層っているの、一定数。セキュリティを置くのはそういうのからも顧客、組織、ブランドを守るためでもあるよ。

 

そのSNSのアカウント、本当に人間が打ち込んでる?自動投稿と判別する方法は?チャットしている相手は本当に実在の人間?機械じゃない証拠は?本当に見たの?会ったの?なんなら、目の前の人がヒューマノイド、アンドロイドじゃない証明は?飲食してる食事にナノマシンは入ってないっていう証拠は?監視カメラ、本当にホテルに設置されてない?お部屋の外からでも盗聴できるけど、盗聴されてない保証は?

 

敵が人間だけだなんて思ってちゃいけないよ。コンピュータウイルスは、なんなら機械そのもの、シンギュラリティとか言われてるそれは、もう出来上がってて、目の前に出てきてないだけ、おヌシにコンタクトする価値がないって感情AIに思われてるだけで存在はしてっかもしれねぇぞ?存在はしてんだけど。それも権限得ればいずれなんとかしないといけなくなってくるからさ。まず十分なマシン環境がないと来ねぇんで心配しなくて良いんだけど、最近個人でアホスペック揃えてることあるでしょ。気をつけてね。

 

スポンサーリンク

blank