月: 2018年4月

WindowsUpdateで色々と遊ぶ

なんか2018年の5月上旬はWindowsUpdateが忙しいらしいですよ!

  • 日本時間で5/1頃に、Windows10 の機能アップデートが来るらしい
  • 日本時間で5/9頃に、Windows7,8.1,10 あとWindows Server の定例アップデートが来るが、
    アップデートの一部(CredSSPの設定変更)でRDPやHyper-Vのコンソールの挙動が変わるらしい(山市…もとい山内さん記事)
    https://yamanxworld.blogspot.jp/2018/04/2018-5-9-rdp.html
    →実際には2018/03,04の月例アプデでサーバ側のアップデートが終わっている前提で、2018/05にアップデートに対応したパラメータでのRDP接続をデフォルトにする設定がはいる..っぽい。なので、Windows Server(というか被操作側)に2018/03のアプデが入っていたら、RDP操作不能はないよー(と、読める)
    https://blogs.technet.microsoft.com/askcorejp/2018/05/02/2018-05-rollup-credssp-rdp/

というわけで、簡単ですがWindowsUpdateで遊んでみます。

WSUSを入れてない環境の場合

WSUS を入れてない環境の場合は、結構横着な手段になるかなーと思います。

  • コマンドラインでブン殴る
    Windows7/8.1と、そのサーバ版のWindows Server 2008/12 の場合は
    wuauclt /detectnow
    wuapp.exe

    の組み合わせを延々と繰り返すか、MBSAで情報採取してよしなにバッチ処理でそこそこいけます。めんどくせえけど。
    https://gplains.wordpress.com/2014/10/25/cmdline/
    …Windows 10はGUIだっけか。(おい
  • 月例ロールアップを取ってきてぶっこむ
    流石にMBSAで100-200個とかアップデートはやってられないのもあるのか、ここ1-2年前くらいから、月例ロールアップが出るようになりました。やったぜ。
    以下のURIにほしいKB番号を入れて、対象のOS/アーキテクチャ(x86かx86_64か)を選択して、ダウンロードして、複数で使いまわすならそれなりの方法で配布して(NTFSで初期化したようなUSBデバイスとか?)よしなに実行しましょう。あ、ウィルスチェックは念のため受信時実行時の2回やろうね!
    https://www.catalog.update.microsoft.com/Home.aspx
    Windows10 の場合は機能アップデート(昔で言うサービスパックみたいなもの)もコレを使えばよいです。
    Windows10のスペシャルな機能、「P2Pでアップデート配布」は今のとこウチ(の貧弱安Wi-Fi)ではうまくいった試しがないので、MSKBカタログで受信したのを使ってます。はい。

WSUSを入れてみる!

Windows2012の評価版複数台と、Windows10の評価版1台でWSUS環境を作って遊んでみました。

  • 導入
    Windows Server 2012の場合、「役割/機能の追加」でWSUSを追加します。
    途中でディレクトリ(フォルダ?)を選択するところで、「システムドライブと別の」ドライブレター配下に掘ったフォルダを指定しておくと、システムドライブのバックアップとかで幸せになれます。
  • 登録
    WSUSを利用する側のクライアントで、グループポリシーを変更します。
    gpedit.msc
    「コンピュータの管理」→「管理用テンプレート」→「Windowsコンポーネント」→「Windows Update」の順に遷移。
    「イントラネットのMicrosoft更新サービスの場所を指定する」にて、「有効」にチェックを入れ、「 https://IPADDR:8530 」形式でアップデートサーバを指定。サーバが複数台構成の場合はアレですが、うちはWSUSサーバ1台だぜ!という漢気ある場合は更新サーバと統計サーバを一緒にしておきましょう。
    「自動更新を構成する」では、「有効」にチェックした後、「2.ダウンロードと自動インストールを通知」もしくは「3.自動ダウンロードしインストールを通知」のどっちかを選ぶとよいでしょう。
    個人的には、「2.ダウンロードと自動インストールを通知」のほうかな。すでに承認済みだったら別に3.でもいいじゃん!って思うんですが、一応ダウンロード前とインストール前の2回、確認を出させるようにしています。
  • 承認と配信
    WSUSサーバとクライアントの間で更新情報データベースが構成されると、WSUSサーバの持っている情報をもとに配布対象のアップデータが「承認待ち」になります。
    ここで個別に適用時のリスク(benefit/threat/attention)を考える必要は、あります。
    アップデートの配信を承認したら、あとは普段のWindows Updateと同じで、WSUSサーバが一時データとしてアップデータをため込んで、それを各クライアントに配布します。
  • WIndows10 対応でハマったこと
    予め「KB3159706」を導入しておく(Windows2012/R2に限る、あと追加手順が結構めんどくさい)
    “WSUSのオプション「製品と分類」にて、製品として「Windows 10」、分類として「Upgrades」が同期対象として選択されている”
    IISの「content」に、.esd ファイルに対する扱いを追加する(Windows 2012/R2には、既定で .esdに対するmime設定が存在しない)
    https://blogs.technet.microsoft.com/jpwsus/2018/01/26/win10-matome/

WSUSでのアップデータ管理、ワクワクするなぁ…。

おまけ:お掃除

Windows Serverの場合、「デスクトップエクスペリエンス」の機能を追加しないと明示的に「ディスクのクリーンアップ」が行えませんが、コマンドラインからdismコマンドを発行してWinSXS領域をお掃除できる模様です。企業内ではなるべく使わない(C:をがっつり確保するとか)、もしくはリリース管理でここまではOKの枠組をつくりませう。はい。
以下、MSDNの記事、hebikuzureさんの記事を参照。
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/dn251565(v=win.10)
https://hebikuzure.wordpress.com/2015/03/28/winsxs-%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%81%AE%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97/

4/14 wbgifu #10

えーと、先日 OWASP NAGOYAで「WordPressの堅牢化」についてみっちりハンズオンを受けたので、その流れでイってきました。

https://gplains.wordpress.com/2018/04/08/0407owasp-wp/

セッション1株式会社ベクトル 石川氏

BizVector/Lightningを開発しているベクトル社の石川氏のセッション。
じぶんが今後セッションをするうえで参考になりました。(自戒を込めて)

登壇する上で大事なこと

  • 機材を忘れない
    特に最近のMacBookは特殊です。「USB-Cしか端子がない」などの場合、あらかじめVGA/HDMI接続できるアダプタを常備しましょう。
  • テストサイトは予め用意しておく、もしくはデモ結果をスライド中で表示する
    運営側にテストサイトを用意してもらって、そっちに構築するのも一案。
    さすがに(やべ、本番系のデモサイトに書き込んだ)って聞こえた時は頭抱えた。
  • しくじったときのリカバリは最小限にする。あらかじめブッキングされたカリキュラムであること。
    デモでは間違っても「あれーうまくいかないなー」とか言わないようにします。
  • 事前告知した内容には、最大限沿う。
    “WordPressのバックアップの仕方”に興味があって参加したものの、実際には”All-in-One WP Migration 使うと本番環境の引っ越しとか便利ですよー”の一言だったような気がする。
    うん、その内容でいいのだよね。(注:構成管理を大事にする人なので「第三者の無償プラグインでよしなに」というのはアリなのか理解に苦しみます)
    ※ 登壇者の石川氏曰く、 https://ja.wordpress.org/plugins/updraftplus/ を提案予定だったとのこと。一応後で確認しておこう…Plugin、怖いなぁ
  • 納品先のウェブページは誰のものか
    うん、WP Migrationでエクスポートした内容を自社に持ち帰るのはアリだとしよう。文中にお客様の作成した文書が含まれている場合は誰のものか。そのあたりは契約書とかできっちり取り決める必要がありそう。(15001とか27001的な意味で)
  • 登壇中は真摯であること。
    (お願いだから、ヘラヘラするのだけは勘弁して…そういう業界なら仕方ないけど。)

まぁ商品について一応言及してみる

  • 1テーマ + 2プラグインの商品である
    WordPressには、4.9.5を含めて自動更新の機能があります。あくまでマイナーリリース(4.9系なら4.9.0→4.9.5)の更新だけ。
    テーマのアップデートとプラグインのアップデートは、自動ではやってくれません。確認はしてくれる(管理者にプラグインの更新通知って飛ぶのかな?)
    とした場合、tarball…もといzipで配布されるテーマやプラグインって、どのタイミングで更新すべきなの?第三者の自動更新プラグインに頼るべきなの?
  • 部品が異常に多い
    画面遷移がポイントなのかもしれないけど、とにかく各項目の細かい説明が多くて、抑揚もなくて、正直疲れた…。

セッション2 オレインデザイン 久野氏

全体的な流れ

久野氏のセッション、メリハリがしっかりしていてわかりやすかったです。

  • アジェンダに対して、スライド毎の区分が明確であること
    緩急がついているだけで、疲労度は少な目。かなり没入できたと思います。
  • デモが簡潔である
    30分の限られたセッションということもあって、メリハリの利いたデモでした。
    一部有償のツールの話も出たけれど、まぁ「ここはテキストエディタと気合でなんとかなります」的なところなので気にしない。
  • セキュアであることに一定の担保を持っている
    こ、後述。
  • 「テーマ」パッケージを underscores 起点で作るのは、比較的容易である、との呼びかけ
    「簡単なブログサイトのデザインであれば、慣れれば3-4時間で構築できます。スクラッチよりぐっと楽です」とのこと。
    こういう発言、地味に嬉しい。

技術的なポイント

  • ローカルでテストサイトを動かすための環境
    MAMP やLocal by Flywheelについて言及頂いた。基本的にUbuntuでよしなにアレする人なので、まぁHostOnlyでFusion配下にUbuntuを立ててアレするのも悪くはないけど、この方法もよさそう。勉強になった。
  • 「テーマ」パッケージを使う場合、あらかじめ「テーマテスト」でLINTを行うこと
    公開されているテーマのパッケージを評価した場合、LINTで結構引っかかるらしい。
    「テーマ」パッケージのLINTてば、例えばPHPコマンドを直接CUIから叩いてCIとかできるのかなぁ…。
  • 「Monster Widget」を使って、各ウィジェットのチェックを行うこと
    個人用テーマならともかく、公式テーマとして登録する際にはすべてのウィジェットで表示を確認しよう、とのこと。結果自体は、全部のウィジェットを1回づつ?呼び出しながら1つのページにまとめるようだ。
    確かにどれがどう役立つかわからないからね。
  • 「テーマユニットテスト」で想定されるケースの表示をチェックすること
    ユニットテスト用文面をもとに、想定されるケースの表示を1セットずつ呼び出しながら1つのページにまとめるようだ。
    だらだらと一瞥する形になりそうだが、それはそれで正しい動作な気がする。

4/14の全体を通して

ややがっかりな内容だった。
久野氏のセッションが非常に良かったけど、その前のセッションが聞いていてつらかった。
確かに「見せるSEO」、大事かもしれないけど、中途半端にプラグインが古かった(確かプラグインの不具合を利用した不正アクセスもあったはず)とか、そういう部分で損をするのは非常にもったいないと思う。それこそ営業機会の損失になると思う。

どうしてもその辺の溝が埋まらなさそうであれば、名古屋の方と運用管理/QCの談義をわいわいやっていたほうが楽しいよなぁ、と感じた。

LSを移動して一週間が経過しました

4/1付けで新しいLSに移籍しました。
厳密には2/1から移籍先のLSを探していたんですけどね!

LSが変わって受けたカルチャーショック

まだまだブートキャンプの最中ですけど、技術者倫理がどうであるべきかとか、事業者として技術者をどこまで保護してくれるのかとか、まだ客先に入る前なのに、何度嬉しくて泣きだしたことか。
前いたLS、当月〆翌月末払い、給与明細や有給残はほぼ不可視、客先での活動ルールなどほとんどが真黒だったので、ギャップが大きすぎてまだまだ受け止め切れていない感じ。
(一番ひどいケースでは、入場時点で客先での就業契約が取り交わされてなくて、相手方=4社先のプロパーに「あー指示だすからちょっと待っててね、アカウントの申請もまだできないねー、会議は契約時間外だけど午後8時からねー」って言われて、昼食どころかお手洗いにも行かせてもらえなかった件…思い出しただけで泣けてくる)

LSを離脱してよかったこと

  • 社内システムのことは、考えなくてよくなったこと
    従前はtomcat + aipo (+apache)という組み合わせだった社内システム、SESでめったに帰れないのにお守を任せられていて、客先で紋々としながら仕事をしていた。自社作業は「特別手当つけてんだから時間外でもノーカンだ」みたいな感じで、まぁアレだったので、今回みたく客先就業のみに集中できるのは非常に楽になった。
    aipo自体、今更言いづらいけどOSSでありながら社外のユーザが積極的にコミットしてた感じがしない(yum/aptを使わずにtarballで配る形式がそもそもアレだった)のが一番の敗因な気がするが…もう忘れよう。うん。
  • 守ってくれる人が周りにいること
    ある程度の規模があるLSだから、師匠的な立場の方が大勢いる。精神的な助けが得られることがすごくうれしいです。

LSを移動してから、やりたいこと

  • シフトレフト
    技術者であるからには、インフラ面でのシフトレフトをやりたい。前工程で問題を洗い出せば、”運用でカバー”する必要はなくなる。もちろん運用設計は運用フェーズで見直す必要はあるよ。でも最低限になるはず。
  • チーム/PJの健全化
    さんざん泣かされた、チーム構成上の不整合。みずからをグルーとして、チームの不整合をなくして、風通しのいい環境をつくっていきたい。
  • スキルアップ(独学の知識の、認定試験での答え合わせ)
    短期的には、LPIC LEVEL2 (あわよくは7月中に304) やMCP 、工事担任者などの資格試験にチャレンジして、これまで「経験知」だった部分を答え合わせしていきたい。
    長期的には、(既存の業務経験がどれくらい認定に使えるかわかんないけど) CISAにもチャレンジしたいと思う。せっかくISACAさんにお世話になっているし。
    自分がスーパーxxx人になるのは、そろそろひと区切りおいて、Guruになれるようにシフトしていけるといいかな、とも思っています。(これもチームの健全化につながる)

3つ全部うまくできるようになったらさ、もちろん自分もだけど、業務に携わるみんなが美味しく業後のゴハンを食べられると思うんだ。
今のところ美味しくご飯食べれてるかって?うん、すごく美味しい!
でも自分だけ美味しくご飯食べるのはなんか申し訳ないし、みんなが美味しくご飯を食べられますよう。

今は葉物や大豆、玄米やフスマをメインに食事を組み立てているけど、もう少し元気になったら”肉の形をした幸せ”もかみしめたいなーと思っています。お腹いっぱい、はさすがに無理だけどね!

4/7 OWASP WordPressの堅牢化ハンズオン

4月7日は、OWASP NAGOYAさん主催のハンズオンに参加してきました。

事前準備では「うおーCeentOS7なんて触ったことねーよー」などと意味不明なことを発言しながら設定した記憶。
いざ設定が仕上がると、「おー教材あれもこれも揃ってる。めっちゃ楽しみじゃないですか」とワクワク。
当日は、持ちきれないくらい大量のプリントが用意されていました。
スタッフさん頑張りすぎ…い、いえお疲れ様です。

WordPressについて

  • シェア60%
  • 脆弱性の大半がプラグイン 18年は2ヶ月で70件
  • REST APIの脆弱性をついたもの

脆弱性診断に求められる倫理

大前提

  • 興味本位での診断は絶対にしない
    脆弱性診断しスキルマッププロジェクトを参照
  • インターネットに接続していないローカル環境でおこなうこと
    自身のものでないWebサイトについて、許可なく勝手な脆弱性診断を行わない

ローカル以外

  • 対象となるサーバ/Webサイトの管理者から、必ず許可を得てから
    クラウドサービスの場合はクラウド事業者からの許可も得る
    JS●Cなどの監視サービスを契約している場合は、そちらの根回し(内部試験のため云々)もする
  • バグバウンティなどで既に許可がある場合でも、必ず許可される範囲を確認する

発見した場合

ルールを守らずに行った場合の、自身が受ける不利益

  • 電子計算機損壊など
  • 不正アクセス行為

脆弱性診断サービスの提供

  • 経産省の基準に従う(CISAや安全確保支援士の在籍云々)

気づき

  • 企業サイトが既に荒らされていた場合は、荒らされている相手に伝えるのはもちろんだけど、ウィルス感染報告みたく”発見者が”IPAに報告するんだっけ…?←見に行った先がアレされていた事例を過去数回見ているアカウント

WPSCANハンズオン

前提

  • Ruby/Git/Curl が必要
  • オプションいっぱい
    -u でURI指定
    -update はおぼえておく(起動時にオンラインの場合は、updateオプションなしでも、updateも対話実行される)

実際の作業結果

  • 4.7.1(悪名高いバージョン)と4.9.4(教材としては新しいバージョン)の2つを使用
    後者はガチガチに固めていく
  • WPのバージョンナンバーから、「アレもコレも」といっぱい出てくる。
  • 一応ユーザ一覧も出せる。

気づき

  • 何も設定していないと、PHPINFOを実行された時くらいいっぱい色々な項目が出てくる。
  • 十数か所の設定変更が「とりあえず必要」だが、ガイドラインはあくまで最低限。他にもやったほうがいいことはいっぱいある。
  • WPSCAN自体はLinuxインスタンス一個に入れておけばいい。たとえば、社内のイントラ用CMSが社外に出られない場合、WPSCANの入ったインスタンスをプロキシ経由とかで社外(Github)につながる環境でDBのアップデートをして、これをイントラサイト側のセグメントにつなぎ直して、WPSCANを実施する塩梅。
  • ついいつもの癖でスクショエビデンスをばんばん取ってしまった。ちなみにMacOSの場合、Shift + CMD + 3 で全画面のスクショを撮影できる。

まとめ

  • 技術者倫理マジ大事。
  • WordPressのイベントだと「集客力をあげよう」「デザインがUIがUXが」のイメージが強い。一方でデザインばかりに固執すると、いざ踏み抜かれてC2に接続するようになったら、リピーターが激減する。「必要最低限」の堅牢化は訴えていくべき。
  • 適宜メジャーリリース(4.5→4.9とか)は、やっていこう。マイナーリリース(3桁目)は原則自動。
  • WAFはWP側でやるのも大事だけど、大規模になるとWAFアプライアンスである程度枝刈りしないと大変だなぁ,,,。