データバインディングでOrmaとRecyclerView
Ormaの公式のexampleを再現する形でやっていきます。
Ormaは入っていて、モデルを作ってビルドした後という前提です。
exampleではTodoモデルなので、適宜使用するモデルに変更しましょう。
1.build.gradleにバインディング設定を追記。CardViewとRecyclerViewも書いておく。
Android Databinding 〜超入門〜 - Qiita
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
2.フラグメントを作成し、xmlのルートをFrameLayoutからlayoutに変更し、ルートのwidthとheight属性、TextViewも消す。RecyclerViewを足す。
参考:
Android-Orma/fragment_recycler_view.xml at master · maskarade/Android-Orma · GitHub
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.example.android.プロジェクト名.なんたらFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#eee"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
/>
</layout>
3.公式を参考にFragmentのjavaの方の必要なさそうなソースを消しておく。
Android-Orma/RecyclerViewFragment.java at master · maskarade/Android-Orma · GitHub
4.CardViewのXMLをlayoutディレクトリに作成する。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/tools"
>
<data>
<variable name="user" type="com.example.android.パッケージ名.infra.entity.User" />
</data>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:foreground="?android:attr/selectableItemBackground"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:text="@{user.name}"
/>
</android.support.v7.widget.CardView>
</layout>
5.VH、Adapterの順にコピペしてくる。
Android-Orma/RecyclerViewFragment.java at master · maskarade/Android-Orma · GitHub
6.onCreateViewをいい感じにする。
7.Activityに作ったフラグメントを紐付ける。
このとき、Fragment側で継承しているフラグメントがサポートライブラリならgetSupportFragmentManager()を使用しないとaddが解決出来ない。
以上です。
getItemCount()などでUIスレッドからOrmaを利用するため、OrmaDatabaseの生成時に実行スレッドの制約をしていると落ちるので気をつけてください。
制約を外すよりもっといいやり方があったら教えてくれると幸いです。
カミンスキー攻撃について
hogehoge.www.example.jp.の解決に対し、
応答がこうなる。
アンサーセクション
ANSWER SECTION
hogehoge.www.example.jp. 86400 IN A なんでもいい
解決した結果。
ここは何でも良い。
権威セクション
AUTHORITY SECTION
www.example.jp. 86400 IN NS dns1.攻撃者が用意した.com.
その結果をもつDNSサーバ一覧。
これで、被害を受けているキャッシュサーバ上から
www.example.jp.の正規の権威DNSサーバのキャッシュが消えたら、
www.example.jp.についての解決要求をdns1.攻撃者が用意した.com.に送るようになる。
アディショナルセクション
ADDITIONAL SECTION
ここにdns1.攻撃者が用意した.com.のAレコードを書く場合もある。
情報セキュリティ 対策のしおり 覚書
サポートの切れたOSやソフトウェア
脆弱性が見つかっても、脆弱性を解消するための修正プログラムが作成されないため危険。
ネットワークからの攻撃対策
- ファイアウォール機器(企業)
- ブロードバンドルータ(個人)
- パーソナルファイアウォール
スケアウェア
脅迫するウイルスのこと。例えば、「あなたのパソコンはウイルスに感染しています。」などとニセの情報を表示する。
ボット
パソコンに感染し、そのパソコンをネットワークを通じて外部から操ることを目的として作成されたプログラム。 これが指令サーバを介してボットネットを構成する。
ウイルス対策ソフトの設定
- ウイルス定義ファイルの自動更新
- 自動保護
- セキュリティ初心者の場合、「発見したらすぐ駆除」
パスワード盗難対策
- 必要に応じて変更
- 紙に書き留めて放置しない
- パソコンに保存しない
- いつ漏洩するか、または漏洩したかわからないので、定期的な変更
- 他のサービスでなりすまされないように使いまわさない
ファイルサーバやオンラインストレージ、ネットワーク接続の複合機等
サーバやネットワーク接続機器は必要な人にのみ共有されるよう設定する。
脅威や攻撃の手口を知るために
利用中のウェブサービスや製品メーカーが発信するセキュリティ注意喚起を確認し、社内で共有する
電子メールの誤送信防止
送信ボタンを押す前に、再度宛先とメールの内容の整合性を確認する 複数の人に送信する際には、送り先の指定方法(To, CC, BCC等)を確認する 具体的には→目視にて送信先アドレスの確認
電子メールの情報漏えい対策
電子メールを保護する理由
- 間違った相手に届いても安心
- 通信経路で盗聴されても安全
具体的な情報保護方法
電子メールの添付ファイルを暗号化して送受信する方法
一般的なドキュメント作成ツールやファイル圧縮・解凍ツールでパスワード保護する専用サーバに格納し、宛先には一時的なアクセス権を渡す方法
電子メール本文や添付ファイルを専用のサーバに格納する。 電子メールの宛先には、該当ファイルの一時的なアクセス権(URL, アクセス用の利用者IDとパスワード)を渡す。
利点
- 間違った宛先に情報を送信してしまった場合でも情報にアクセスできないように制御できる
- 情報が宛先に伝わったかどうかがサーバの履歴を参照することで確認できる
暗号化した添付ファイルのパスワードの送りかた
- 直接本人に電話等で伝える
- あらかじめパスワードを決めておく
バックアップの注意事項
- 定期的なバックアップ
- 戻せることの確認
- バックアップ媒体は安全に管理し、情報漏えいを防ぐ バックアップ元の情報と同じ環境はNG。 同じタイミングで壊れるまたは盗難に遭う可能性があるため。
- 不要になったら確実に消去
重要な情報の管理
保管場所を定め、作業に必要な場合のみ持ち出し、終了後に戻すことを徹底する。 机の上に放置せず、鍵付き書庫に保管する。
重要な情報の持ち出し
ノートパソコンやスマートフォンの利用にあたって、 パスワードの入力を求めるように設定したり、 データファイルを暗号化するなどの対策を事前に行う。
関係者以外の立ち入りの制限
サーバ、書庫、金庫など、重要な情報の保管場所の近くには、 無許可の人が近づけないようにする。
対策
事務所で見知らぬ人を見かけたら声をかける
事務所での機器の盗難対策
退社時に、机の上のノートパソコンや備品を引き出しに入れ、施錠する
事務所等での入退出管理
最終退出者は、事務所を施錠し、退出の記録(日時、退出者)を残す
重要な情報を廃棄する際の注意点
書類は細断、データは消去ツールを使う。
OSのファイル削除機能で削除できるのは見かけ上だけ。 記憶媒体の寿命を延ばせるし、削除機能の見ための処理が速くなるため。 専用のファイル復元ソフトを利用すると、削除したファイルの記録位置が 他のファイルによって使われていなければ、復活する場合がある、
USBメモリからの漏洩対策
- 貸し借りをしない。
- 自動暗号化の出来る暗号化USBメモリを利用する。
情報漏えい対策のしおり 覚書
企業の情報資産を、許可なく持ち出さない
大切な情報は持ち出さない、仕事を家に持って帰らないこと。
情報漏えいの原因となった管理ミスの例
引越し後に個人情報の行方がわからなくなった 例:誤廃棄
受け取ったはずの個人情報が紛失した 受け渡し確認が不十分だったため。
誤って開示してしまった 情報の公開、管理ルールが明確化されていなかったため。
持ち出し時やってはいけないこと
管理下にないパソコン(例:ネットカフェのパソコン)で利用する
業務で持ち出したパソコンを不必要または無防備な状態で、企業外のネットワークに接続する
業務で持ち出したパソコンを、業務以外の目的で利用したり、他人に貸したりする
持ち出し許可を得た場合は、データを暗号化しておく。
情報資産を、未対策のまま、目の届かない所に放置しない
情報資産を、未対策のまま、廃棄しない
私物のパソコンや電子媒体やデータを、許可なく持ち込まない
許可されていないプログラムやサービスは、事前に安全な環境で動作確認を行って、 仕組みや設定をよく理解した上で、管理者の許可・管理のもとで利用する。
権限を、許可なく、他の人に貸与または譲渡しない
業務上知り得た情報を、許可なく、公言しない
情報漏えいを起こしたら、まず報告する。自分だけで判断しない。
標的型攻撃メール 対策のしおり 覚書
トロイの木馬
怖い機能
- 別のマルウェア(ウイルス)を次々に取り込む(ダウンローダとなる)
- 自分自身をアップデートする事で、ウイルス定義を無効化する
- ウイルス対策ソフトの無効化を試みる
- 自分自身を隠蔽する(rootkitとなる)
検知したら
業務パソコンの場合、初期化(OSのクリーンインストール)する
ウイルス対策ソフト
ウイルス定義ファイルを自動更新するよう設定する
ファイル偽装の手口
開く前に拡張子を確認すべき。
アイコンの偽装
実行形式ファイルを文書ファイルや動画ファイルなどのアイコンにすること。
ファイル名の偽装
ファイル属性の偽装
ファイル属性(プロパティ)とは、ファイルの情報の総称です。
- 拡張子を非表示する設定を悪用してファイル属性を偽装
- 自己解凍形式の圧縮ファイルに偽装
- 何らかの操作を要求することで、注意をそらす
- 解凍したファイルも偽装されている可能性がある
ファイル偽装の見破り方
まず、送信者にメールを送信したこと、ファイルを添付したことを電話等で確認する 確認が取れない場合は、偽装されていないことをファイルの属性(プロパティ)で確認する。 判断できない場合は、システム管理者等のセキュリティ専門家に相談する。
情報処理安全確保支援士の勉強法
合格済です。
※一般的な内容は書いていないので、他のサイトと本記事を組み合わせることをおすすめします。
【対象者】
・AP合格程度
・時間をかけて確実に合格したい人
覚えるポイント
資料を読む時は、具体的な攻撃方法と、その対策を覚えます。
そして攻撃名や脆弱性から対策が思い浮かぶ状態にします。
対策を読んだら理解できるレベルでは意味がないです。
試験ではそれを思いつき書かなければなりません。
過去問演習編
十分に知識が得られたあとに始めましょう。
情報処理安全確保支援士(以下セキスペ)の午後問題では
あまり同じ質問は出ませんので直接点数は上がりませんが
長文を読む練習と、解答に関係しそうな場所を見つける勘が養えます。
例えば、
・文章の最後のほうにある「なお、」など逆説から始まる文
・妙に詳しく書いてある所
・図や表の注釈
が要チェックです。
意味不明な解答だった時は、「{解答の一部分} site:ipa.go.jp」と検索します。
IPAがどこかで解答を知らせている場合があるのです。
検索結果にPDFなどの資料があったら読みましょう。
おすすめの教材
解答がそのままIPAの資料に書いてあったりするのでおすすめです。
【全般】
・適当なセキスペの本
確実に全て読み終えることが可能な厚さのものが良いです。
巷で勧められている上原本(情報処理教科書)は過去出題された題材についての解説が多めです。
良い本ですが、前述の通り午後問題にはあまり同じ質問が出ないので、この本を読んだあとに過去問演習で良い点が出ても安心出来ません。
・3分間ネットワーク
ネットワークについてわかりやすく書かれています。
Webサイトを書籍化したものなので、そちらを読んでも良いです。
ただそちらには初心者向けでない部分もあるので私は本のほうが読みやすかったです。
午前午後の両方に必ず出題されるネットワークセキュリティ分野が解けるようになります。
・10大脅威
IPAが発行している資料です。
流行の攻撃手法の手口と対策などまとめられています。
毎年発行していますが重複も多いので、1~3つ読めば良いと思います。
・「標的型メール攻撃」対策に向けたシステム設計ガイド
IPAが発行している資料です。
汎用的な対策が書かれているので標的型攻撃でなくても役立つ内容かと思います。
標的型攻撃は上記の10大脅威に何年も連続でランクインしている最近のトレンドなので出題される可能性は高いです。
・セスペシリーズ
セスぺの春26 情報セキュリティスペシャリスト試験の最も詳しい過去問解説
- 作者: 左門至峰,平田賀一,藤田政博,神谷俊一弁護士
- 出版社/メーカー: 星雲社
- 発売日: 2014/08/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
1冊がまるごと1回の解説です。
解答に至る根拠、流れが詳細に解説されています。
必要十分な解答が書けるようになります。
何冊かありますが1冊は買って流れを身につけることをおすすめします。
・ポケットスタディ
ポケットスタディ 情報処理安全確保支援士 (情報処理技術者試験)
- 作者: 村山直紀
- 出版社/メーカー: 秀和システム
- 発売日: 2017/03/25
- メディア: 単行本
- この商品を含むブログ (2件) を見る
ポケットサプリという問題文の要約と解答がセットになった部分があります。
ここでIPAが好む単語や言い回しを身に着けます。
同じに見える単語が実は違うことに気づきます。
過去問演習の効果が薄くなるので、ラスト1週間の最後の詰め込みに使いましょう。
・応用情報, 基本情報, セキュマネの過去問
過去5年分くらいざっと目を通しておきましょう。
【セキュアプログラミング編】
・安全なWebアプリケーションの作り方
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
- 作者: 徳丸浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2011/03/01
- メディア: 単行本
- 購入: 119人 クリック: 4,283回
- この商品を含むブログ (146件) を見る
セキスペの定番です。
構築済みの仮想環境で簡単に攻撃を演習できます。
もちろん対策も学べます。論理が飛躍する部分がたまにあり、最初は読みにくい本でした。一度通して読んで理解するとサッと読めるようになります。
・安全なWebサイトの作り方
IPAが発行している資料です。
ジャンルとしては同じですが、先程挙げた書籍には収録されていない攻撃の手口と対策についての記述があります。
IPA謹製なのでそのまま出やすいと思います。
・AppGoat
IPAが公開しています。
攻撃の演習が可能なファイルと、その手法や対策が解説されたWebサイトがセットになったものです。
Webアプリケーション版と、それ以外があるのですが、
前者はそれぞれ脆弱性をもつWebサイトが、
後者ではBOFなど脆弱性を持つソフトが、脆弱性ごとに用意されています。
解説が分かりやすくていい感じです。申請は必要ですが簡単に済みました。
以上です。多すぎましたか?
もちろん上記資料を全部やらなくても大丈夫ですが、本番で安心できます。
オープンリダイレクタ対策の正規表現によるドメインのチェック
preg_match('/example.com/',$url);
これは$urlにexample.comが含まれることを確認する正規表現だが、
このように、example.comをファイル名に含むファイルを作っておくことで回避できる。
http://wana.com/example.com.php
次に、/dir/test.phpのような、スラッシュで始まるファイルパス参照かどうかを確認する正規表現だが、
preg_match ('/^\//',$url);
このように、スラッシュを2つ連続させ、ネットワークパス参照と呼ばれる形にすることで、すり抜けてしまう。
//wana.com/wana.php
正解はこれ。
preg_match('/^https?:\/\/example.jp\//',$url);
http(s)://example.jp/で始まることをチェックする。
ハットは文字列の最初を表す。
ハテナは直前の一文字の有無を許容する。