今さら聞けないセキュリティ 2021年02月28日

今さら聞けないセキュリティ 2021年02月28日

SharedPreferencesを自前で難読化するのはもう古い?これからはEncryptedSharedPrefenrecesを使おう

## EncryptedSharedPreferencesとは

Android Developersのサイトにある通り、「SharedPreferencesのKeyとValueを暗号化する実装」を提供するものです。

([Android Developers](https://developer.android.com/reference/androidx/security/crypto/EncryptedSharedPreferences)公式サイトより引用)
>An implementation of SharedPreferences that encrypts keys and values.

今までのgetSharedPreferences()などで使用していたAPIの使い勝手はそのままに、暗号化する機能を提供してくれるので、手軽にセキュリティを高めることができます。

## 動作条件
・プロジェクトのminSdkVersionが23以上であること

これはandroidx.securityのライブラリのminSdkVersionが「23」に指定されているためです。

元記事を表示

AWS GuardDuty 2021年3月アップデート内容全文

English follows Japanese

いつもお世話になっております。

この通知は、Amazon GuardDuty をご利用のお客様に今後の重要な変更をお知らせするためのものです。2021年 3月12日、異常なユーザー動作を検出する既存の 13 の Amazon GuardDuty 検索タイプが廃止され、8 つの新しい検索タイプに置き換えられます。 新しい検索タイプは、GuardDuty 検出の拡張を表し、より広範かつ正確なセキュリティカバレッジを提供します。 新しい検索タイプには、異常なアクティビティのトリアージと調査に役立つ豊富なコンテキスト情報も含まれています。 潜在的なカバレッジギャップを回避するために、GuardDuty と Amazon EventBridge [1] との統合により、既存の検索タイプを基にした自動取り込みを設定しているお客様は、2021年3月12日以前に新しい検索タイプに基づいて自動化を追加する必要があります。

以下は、2021年 3月12日に GuardDuty から廃止予定の検索タイプです。
1. Persistence:IAM

元記事を表示

【保存版】以降〇〇セキュリティという単語が出てきたら、本記事を参照してください。

多くの種類が存在する「〇〇セキュリティ」に焦点を当てて、「以後、〇〇セキュリティに出会ったらもうこれを参照すれば良い」という辞書のようなものを作成しました!ここまでたどり着いた方は迷わずブックマークに保存を!!

## IoTセキュリティ

#### 説明
**IoT(Internet of Things)に関連したセキュリティ全般**を指します。IoTとはデバイスなどの「モノ」がインターネットに繋がることです。例えば、Amazon Echoなどのスマートスピーカーや冷蔵庫などの電化製品のリモートコントロール、工場のロボットの遠隔操作などがあります。

#### 事例
– マルウェア**Mirai**が、Linuxで動作するコンピュータを遠隔操作可能なボットへと変化させ、数々のDDoS攻撃の温床となった。(現在はソースコードが[GitHub上で公開](http://github.com/jgamblin/Mirai-Source-Code)されている。)
– インターネット経由で操作可能なスマート貞操帯を装着していたサム・サマーズさんがハッキング被害にあい、貞操帯の操作権をハッカー

元記事を表示

第31回 Tokyo Jazug Night (Online) で学んだこと

# はじめに

第31回 Tokyo Jazug Night(Japan Azure User Groupの勉強会)で学んだことを書きます。
https://jazug.connpass.com/event/202626/

# Azure WAF を活用しよう 〜WAF の解説から他サービスとの連携まで〜
発表者:サイバーセキュリティクラウド WAF 自動運用サービス部部長 市川さん
[発表資料はこちら](https://www.slideshare.net/YutoIchikawa1/jazug202102cscichikawa)

Azure WAF = Azure Web アプリケーション ファイアウォール。公式サイトは以下。
https://azure.microsoft.com/ja-jp/services/web-application-firewall/

近年、サイバー攻撃は、年々増加している。

Azure WAFは、様々なインジェクションの攻撃を防ぐことができる。

リスト型攻撃や平文による通信で中間者攻撃をWAFで防ぐのは難しい。

セキュリティ対策しているとい

元記事を表示

Cookieのセキュリティ周りでいちばんややこしいDomain属性をしっかり理解する

先日[某所](https://commew.net/)の勉強会でCookieのセキュリティ周りの話をしていたのですが、その中で自分のDomain属性の理解が不十分だということに気付きました。

Cookieのセキュリティ関係の属性としては、`Domain`, `Secure`, `HttpOnly`などがあります。`Secure`は設定されていればHTTPSで通信していなければCookieを送信しない。`HttpOnly`はJavaScriptからCookieにアクセスさせない、とどちらもわかりやすい機能ですが、`Domain`については割と複雑です。

複雑だからといって理解が不十分なままにしてはおけない、ということで調べてまとめてみました。

この記事ではサーバからクライアントへの`Set-Cookie`ヘッダによるCookieの送信を「(Cookieの)設定」と、クライアントからサーバへの`Cookie`ヘッダによるCookieの送信を「(Cookieの)送信」と呼びます。

# Domain属性は、Cookie送信時にどう働くか

順番としてはサーバからクライアントにCook

元記事を表示

弱衝突耐性・強衝突耐性

#違いがよくわからないぞ
色々しらべて、よりイメージしやすく分かりやすい説明を考えました。
wikiに載っている説明をどう解釈するのか

_`以下wiki引用`_
_`弱衝突耐性(第二現像計算困難性):`_
_`入力m1が与えられたとき、hash(m1)=hash(m2)となるような別の入力m2を求めることが困難でなくてはならない`_
_`強衝突耐性:`_
_`hash(m1)=hash(m2)となる2つの異なるメッセージm1とm2を探し出すことが困難でなくてはならない`_

自分はこの説明で何となくしかわかりませんでしたが、理解が進み、こんな解釈をしました。
・弱衝突耐性
要は1つのハッシュ値が固定で、それと一致するハッシュ値を持つメッセージm2を見つけ出せるか
・強衝突耐性
とりあえず一致するハッシュ値はなんでもよいけど、同じハッシュ値をもつメッセージのペアm1,m2を見つけ出せるか

一致させる必要のあるハッシュ値が特定のハッシュ値なのか
ハッシュ値自体は何でもよいけど、とにかく2つのハッシュ値を一致させる必要があるのか
つまり、__1つの固定ハッシュに注目するか、2つの不定ハッ

元記事を表示

サーバーを公開すると来る攻撃的アクセス

# 公開サーバーは常に攻撃を受けるリスクがある
とよく聞くけれど、本当かどうか確かめてみる。
攻撃って「普通に・常に」されているという現実が少しでも広まればいいな。

## 自宅WEBサーバーのログを見てみた。
ちなみにセキュリティ管理を楽にする目的で静的HTML配信のみのEWBサーバーにしている。
ログは access*.txt のようなファイルなのでlinuxコマンドで集計してみた。

### ログの全行は3087行 (直近約2週間分)
“`
ls | grep access| xargs wc -l
3087
“`

### php関連の攻撃
CMSの管理ページなどを狙っている模様。phpファイルは動作しないので実害はなし。
全アクセスの20%とかなり多いことがわかる。

“`
ls | grep access| xargs cat| grep -i .php |wc -l
623
“`

### *.env なるファイルを取得しようとするアクセス
サーバー環境情報が欲しいのだろうか。

“`
ls | grep access| xargs cat| grep -i .

元記事を表示

企業向けTeamViewerベストプラクティス

#この記事を書く理由

この記事を書こうと思ったのは、TeamViewerが関係するセキュリティインシデントが起こるたびに、TeamViewerという製品自体のセキュリティレベルが疑われたり、TeamViewerについて間違ったアドバイスが記事になったりする状況が、いつまでたっても改善されないからです。

この記事を書いているつい先日も [「ハッキングであわや大量毒殺発生の危機だった水道処理施設のずさんなセキュリティー体制とは?」\(2021/02/12 GIGAZINE\)](https://gigazine.net/news/20210212-hacker-poison-water-supply-teamviewer/) といったインシデントがありました。

このインシデントについて米CISAが [‘Alert (AA21-042A) Compromise of U.S. Water Treatment Facility’](https://us-cert.cisa.gov/ncas/alerts/aa21-042a) という警告文書の最後で、TeamViewerの正しい使い方を推

元記事を表示

AWS 認定セキュリティの取得に向けての学習

#はじめに
AWSの認定資格について、昨年ソリューションアーキテクト プロフェッショナル(SAP-C01)を取得した。
そこからAWSの知識インプットの機会が減ってしまったので、上位資格の取得を目指すことにした。
そこで、選んだ結果**セキュリティ**を取得することにした。

#準備
こちらから認定について、抜粋する。
[AWS 認定 セキュリティ – 専門知識](https://aws.amazon.com/jp/certification/certified-security-specialty/)

##知っておくべきこと
+ AWSセキュリティのベストプラクティスを使用して AWS プラットフォームを保護する。
+ AWSアカウントで大規模な認証と許可を管理する。
+ 適切なデータ暗号化方法と AWS メカニズムを使用して、保管時のデータのセキュリティを運用する。
+ 適切、安全なインターネットプロトコルと AWSメカニズムを使用して、転送中のデータのセキュリティを運用する。
+ AWSでセキュリティモニタリングとログ記録を運用し、検出されたセキュリティインシデントへの対応を自

元記事を表示

Pythonでログ出力

bottleで簡単なサーバを立てたので、そこにアクセスする端末情報をアクセスログとしてファイルに出力したいと思いました。まず、何をしたらいいのかと思い、「python ログ出力」などと調べてみると、どうやら__logging module__というものを使用すると簡単にできるらしい!また、プログラム実行中に起こった出来事の記録を「Log(ログ)」といい、それを時系列に記録をする履歴のことを「Logging(ロギング)」ということも理解。このログの出力でどんなエラーや不具合なのか判別できるようになるので、開発や運用に即したレベルを指定する必要があるというわけ。ということでレッツコーディング!!
#ロギングチュートリアル
##簡単なロギング用法に便利な関数群

|関数名||||
|:—|:—|:—|:—|
|logging.info()|logging.debug()|warnings.warn()|logging.warning()|
|logging.error()|logging.exception()|logging.critical()|logging.basic

元記事を表示

OpenSCAP を使ってみる

LPIC 303 の勉強記録。

# SCAP

ecurity Content Automation Protocol:セキュリティ設定共通化手順
各システム管理者ごとにセキュリティ設定を考えていては非効率。そこで、NIST(アメリカ国立標準技術研究所)が制定したセキュリティ関連の標準仕様。
よく聞く CVE も SCAP の一環で定義されたものである。

# OpenSCAP
脆弱性の診断や、その修正を行えるツール。

## OpenSCAP を使ってみる
以下、対象 OS は RHEL8。

使い方は以下の RedHat のドキュメントに書いてあることで全てだが、本ページはもう少し初心者にもわかりやすい説明を目的とする。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/security_guide/vulnerability-scanning_scanning-the-system-for-configuration-compliance-and-vulnerabili

元記事を表示

二段階認証と多要素認証の違い

プログラミングの勉強をしていると、多要素認証という言葉が頻繁に出てくる。
私生活では二段階認証はよく聞くけど、多要素認証という言葉はあまり聞かない。
多要素認証とはどういうものなのか。
多要素認証と二段階認証はなにがどう違うのか。
これらについて自分なりにまとめておく。

## 多要素認証とは
多要素認証“`MFA:Multi-Factor Authentication“`
MFAと呼ばれることが多いらしい。

簡単にいうと、多要素認証とは複数の種類の要素で自分のアカウントだということを証明することをいう。
例えば、なにかのサービスを使用したいときにまずログインをしなければならない。

そのときに、パスワードを入力する。
これはパスワードを知っているから入力することができる。

要するに、ここで“`知っている要素(パスワードを知っている)“`ということになる。
また、最近では、QRコードを発行して、パスワードの入力と同時にQRコードの照合を要求するサービスもある。
これが“`持っている要素(QRコードを持っている)“`ということになる。

### 知っている要素と持っている

元記事を表示

閲覧者のユーザーエージェントを三角関数で判定できるか?

# 概要
先日ふと自分のPCの[フィンガープリント](https://contents.saitolab.org/fingerprint/)を取ってみたところ「IPアドレス」など様々な項目が並ぶ中に「**Math.tan**」という変な項目を見つけました。

「なぜ三角関数が出てくるの?」と気になって調べてみたところ、**三角関数の値はブラウザやOSの実装により微妙に異なることがあり、特定の式をブラウザに計算させることで利用者を識別する手段になり得る[^1]**という話でした。

面白そうだなと思ったので、本記事ではその手法で実際どの程度までブラウザ/OSを判別できるのか調査してみました。

# 検証方法

今回は様々な文献[^1][^2]の情報を参考に、以下の式を各OSの各ブラウザに計算させました。

– `tan(-1e300)`
– `cosh(10)`(厳密には三角関数の類似ですが)

これら以外も10数種類ほど試したのですが、判別に使えたのはこの2つのみでした。

##### 試したOSとバージョン
– macOS Catalina (ver.10.15.6)
– Windo

元記事を表示

Deviseのパスワードリセットでメールアドレスが登録済みかどうかに関係なく動くようにする方法

備忘録として書いたものです。

## やりたいこと

– deviseのパスワードリセット機能で、登録されていないメールアドレスを入力するとエラーが表示される(不正なアクセスにより使用されているメールアドレスが特定される可能性がある)

これを

– メールアドレスが登録されているか(できるだけ)分からないようにする

## 方法

Deviseのparanoidモードを使います。
設定ファイル内でコメントアウトされているので有効にします。

“`rb:config/initializers/devise.rb
config.paranoid = true
“`

詳しくは参考リンクをご確認ください。

## 参考リンク

Github

– https://github.com/heartcombo/devise/wiki/How-To:-Using-paranoid-mode,-avoid-user-enumeration-on-registerable

元記事を表示

HackTheBoxにてExploit completed, but no session was createdの対処法

#問題点

昨日、HackTheBoxのVIPを契約したんだけど、マシン攻略でどうしてもセッションが取れない不具合がおきた。
ちなみに、チャレンジしたのは初心者に有名な[Lame](https://www.hackthebox.eu/home/machines/profile/1)です。
調べてみると、初心者特有のエラーらしいので、日本語の記事がなかったからHackTheBoxを始めた方のお役に立てたら幸いです。

#対策
Lameに挑戦し、最後にmsfconsoleでexploitを送ると、以下の画面のようにexploitは完了しましたが、セッションは取れなかったというメッセージが出てしまいます。これは、HackTheBoxの_HTB Lab Access Details_に書いてある_HTB Network IPv4_が鍵です。つまり、自分のPCのIPアドレスではなく、HackTheBoxが指定したIPアドレスを使えということです。
![1*8W6oH_5mFlw5-EUMuAOAtw.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

アンチパターンから考える Salesforce ゲストユーザ問題(02/19補足あり)

“`text
本記事の内容は可能な限り正確な情報を記載するよう努めていますが、
必ずしも内容の正確性や安全性を保証するものではありません。
当記事を参照・利用したことによってトラブルが発生しても一切の責任を負いかねます。
また、本記事にて記載している検証行為はすべて筆者の developer 環境で行っております。
“`

## はじめに
2020年の末ごろから、Salesforce の設定不備による情報漏洩を伝えるニュースが立て続けに報じられるようになりました。

この問題を一番よく伝えているのは[日経クロステック](https://xtech.nikkei.com/search/?KEYWORD=%E3%82%BB%E3%83%BC%E3%83%AB%E3%82%B9%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9)で、同紙によると現在までに、多数の企業で影響があったとされています。(注:ただし、報じられている企業の多くは、プレスリリースでは「クラウド型システム」というような表現に留めており、Salesforce のことであるとは発表しておりません)

元記事を表示

絵で見てわかるDNS用語

## はじめに
[「DNSの用語を中心にまとめてみました」](https://qiita.com/nk9bb8/items/163f94f97b5411226d74)の記事を読んで、初学者の自分がよくわからなかった部分を抜き出して、くわしく調べてみました。もし間違いなどあればご指摘ください:pray_tone2:

## スタブリゾルバとは?
> ◆クライアント端末に搭載された名前解決のソフトウェア。

「クライアント端末に搭載された」というのは、OSに標準で備わっていることを表しています。

![StubResolver.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507353/6a03ae39-4ef5-34ea-b8f7-c4a05d92fa39.png)

スタブリゾルバは、ブラウザによって呼び出されます。
呼び出されたら、最寄りのキャッシュDNSサーバーに「IPアドレス教えて〜」と問い合わせを行い、応答が返ってきたらブラウザに受け取ったIPアドレスを返すというお仕事をします。

## フル

元記事を表示

セキュリティ・キャンプ全国大会2020オンライン参加記録

## まえがき
2020/10/18~12/6の2ヶ月弱にわたり開催されたIPA主催のセキュリティ・キャンプ全国大会2020オンラインに参加しました。修了から少し時間は経ちましたが、参加の記録を綴っていきたいと思います。
##セキュリティ・キャンプとは
セキュリティキャンプはIPA(情報処理推進機構)が主催しています。IPAのサイトから引用すと以下のような説明になります。
>「セキュリティ・キャンプ」は、学生に対して情報セキュリティに関する高度な技術教育を実施し、次代を担う情報セキュリティ人材を発掘・育成する事業です。2004年に開始され、現在は全国大会を首都圏で毎年1回、2013年に開始された地方大会を毎年各地で10回程度開催しています。 全国大会、地方大会とも、参加するには応募課題を提出し、書類審査に通過する必要があります。

私の場合は、専門学校の先輩や先生の勧めでセキュリティキャンプの存在を知り、初めての応募で選考を通過し、参加できました。
例年は、合宿形式で開催されていましたが、今年は2ヶ月弱のオンライン形式で開催されました。
##応募課題について
私は、課題駆動トラック(

元記事を表示

HTTPS通信の中身ってどうなってる?踏み込んで解説

#はじめに
エンジニア1年目の私がお仕事でHTTPS通信についてお勉強することがあったのでメモ。
この記事ではHTTPS通信について、なんとなく知ってるフェーズからもう一歩踏み込みたい人のために**他のサイトより少しだけ詳しく**その仕組みについてまとめていきたいと思います。
※実装ハンズオンではなく、仕組みを理解するための内容となっております。

#HTTPとHTTPSの違いって?
HTTPやHTTPSとは、WebブラウザがWebサーバと通信する際に主として使用するプロトコルのことです。
HTTP (HyperText Transfer Protocol)通信ではデータの通信を平文で行います。
そのため、HTTP通信上でクレジットカードの番号やパスワードをやりとりした場合、その内容は簡単に盗まれてしまうのです。
一方、通信データを暗号化してやりとりするHTTPS (HyperText Transfer Protocol Secure)通信では、パケットを盗まれたとしても簡単に解読できません。
このHTTPS通信は個人情報やパスワード等のやりとりが必要なサイトで導入することで、盗聴・な

元記事を表示

初心向け!Vue.jsでReCPTCHAを使ってボタンの制御を行おう!(V2)

今回は、GoogleReCPTCHAを使ってボタンの制御を行っていきます。

GoogleReCPTCHAってなに?って思うかもしれないんですけど、よく見る「ロボットではありません」的なやつです。

今回はV2を使用します。

V3は以下の記事に詳しく書いてあるので、V3を使いたい場合は以下の記事をご覧ください!

・[さて、驚くほど簡単にreCapthca認証でBOT、スパム対策を行おう!!(フロントエンド偏)](https://qiita.com/akki-memo/items/e3a1f23ccd988b3f4bfe)
・[さて、驚くほど簡単にreCapthca認証でBOT、スパム対策を行おう!!(バックエンド偏)](https://qiita.com/akki-memo/items/0ad78824af1b298948d5)

それでは一緒に説明を見ていきましょう!

#GoogleReCPTCHAの登録#

下記の記事を参考にGoogleReCPTCHAの登録を行ってください。

[Google reCAPTCHAのWEBサイト登録とAPIキーの取得方法](https://w

元記事を表示

OTHERカテゴリの最新記事