- 1. Pythonで学ぶサイバーセキュリティプログラミング
- 2. セキュリティを学びたくてCTFに入門した話
- 3. AWSで考えるクラウドセキュリティ マルチアカウントを運用せよ
- 4. あなたのサーバは大丈夫?Vulsで脆弱性スキャンしてみる
- 5. ポートフォリオを公開してたらサイバー攻撃された話 〜Laravelで多重送信対策をしよう〜
- 6. 話題のLog4ShellのPOCをサラッと試してみた
- 7. Log4Shellデモ(実証〜検出〜修正)を公開しました
- 8. よく使う正規表現メモ
- 9. 情報セキュリティマネジメント試験に合格した勉強方法
- 10. 書籍『セキュリティエンジニアのための機械学習』の紹介
- 11. 正規表現をフリーズさせないために
- 12. SnykではじめるDevSecOps
- 13. Basic認証とフォーム認証(Cookieを使ったセッション管理)の仕組み
- 14. GNFA受験記
- 15. Alibaba Cloudハードウェアセキュリティモジュールについて
- 16. Dockerのセキュリティにおける10のベストプラクティス
- 17. マルウェアのアンパックについて
- 18. Webアプリケーションのセキュリティで気をつけること
- 19. 標的型攻撃メールについて
- 20. もうメンテされてないライブラリに最新のlog4jを強制する方法
Pythonで学ぶサイバーセキュリティプログラミング
# はじめに
Python Advent Calendar 2021 25日目:christmas_tree:です。機械学習でデファクトスタンダードとなっているPythonは、セキュリティとも相性が良くスクリプトなどで使用されてハッカー達に好まれています。
本記事は[ペネトレーションテスト](https://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%8D%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%86%E3%82%B9%E3%83%88)など、ユーティリティとして使うための方法を踏まえて、ソケット通信の仕組みについて解説しています。
Pythonのバージョンは3.9.4を使用。
## ソケット通信の仕組み
[ソケット](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88_(BSD))は、コンピュータがOSを介してネットワーク通信を行うために標準化された仕組みです。ソケットの仕組みを
セキュリティを学びたくてCTFに入門した話
![advent_calendar_2021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42253/47b8e36d-d729-519e-d4ca-ddca51fe0c59.png)
こちらは[READYFOR Advent Calendar 2021](https://qiita.com/advent-calendar/2021/readyfor)の24日目の記事です。
こんにちは、READYFORエンジニアの@s-moriです。
自分史上、例を見ないラッコブームの到来により、頻繁にラッコの動画を探してはぼーっと眺めて癒される日々を送った年でした。さてさて本編ですが、「セキュリティ意識大事ですね」と頭では認識しつつ、「何からやろうかな」となったことはないでしょうか。
自分はそのタイプで、徳丸先生の書籍をはじめとするセキュリティ関連の書籍(属性的にWeb寄りの)を読んだりしたものの、いまいち上手く活用できていない感がありました。
書籍に書いてあることは攻撃手法の一部であり、応用した攻撃や、掲
AWSで考えるクラウドセキュリティ マルチアカウントを運用せよ
# はじめに
この記事は、[Supershipグループ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/supership)の24日目の記事になります。組織がスケールするにあたり、アジリティを下げずにセキュリティを高めていくためには、正しいクラウド戦略が必要です。
本記事はクラウドインフラ(AWS)でセキュリティを実現するための考え方や、マルチアカウントの運用方法について記載しています。
前半は**Cloud Center of Excellence**(以下、CCoE)の観点から、セキュリティ・ガバナンスを実現するために、フレームワークの考え方や、ガードレールなどクラウドにおけるセキュリティ対策の考え方について記載していきます。
後半はセキュリティ・ガバナンスの実装方法として、**AWS Control Tower**を軸に、関連するAWSサービスの概要やポイントについて解説しています。
※CCoEについては以前書いた[Cloud Center of Excellenceとは何か](https:/
あなたのサーバは大丈夫?Vulsで脆弱性スキャンしてみる
この記事は[NTTコムウェア Advent Calendar 2021](https://qiita.com/advent-calendar/2021/nttcomware) 24日目の記事です。
## はじめに
皆さん、「バルス」という言葉を聞いたら、某アニメ映画で登場する滅びの呪文を連想する人も多いのではないでしょうか?
この記事ではバルスを紹介したいと思います!と言っても紹介するのは勿論アニメではなく、脆弱性スキャンツールの「Vuls(バルス)」です。
Vulsはオープンソースソフトウェアの脆弱性スキャンツールで、GitHub上で公開されています。
Vulsを導入することで、UbuntuやDebian、CentOSなどのサーバOSの脆弱性関連情報を収集でき、IPAからも脆弱性対策に有効なツールとして紹介されています。今回はVulsの導入方法を仮想マシンでの検証を交えつつ紹介します。
## 環境情報
今回の検証用に作成した仮想環境の情報を記載します。
![NW構成図](https://qiita-image-store.s3.ap-northeast-1.amazon
ポートフォリオを公開してたらサイバー攻撃された話 〜Laravelで多重送信対策をしよう〜
## 初めに
去年の今頃、私は未経験からサーバーサイドエンジニアを目指して転職活動をしていて、
Laravel6系で開発したポートフォリオをインターネット上に公開していました。実装のツメが甘い部分もあり、いろんなイタズラをされては対策して..を繰り返していましたが、
ある日容赦ないサイバー攻撃をくらってしまい、サーバーが死にかけるという経験をしたので
今回はそんな当時の出来事と、どう対策したかを記事にしてみようと思います?現在 転職活動でポートフォリオを作成されている方や、プログラミング学習中の方のご参考になれば幸いです?
## 最初はまだイタズラレベルだった..
当時開発していたポートフォリオは、朝活をテーマにしたSNSアプリでした。
twitterみたいに、ユーザーが投稿できる機能があります。![スクリーンショット 2021-01-15 22.59.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613419/87067860-
話題のLog4ShellのPOCをサラッと試してみた
はじめに
—
こんにちは、株式会社シーエー・アドバンス技術統括本部の@sk888です。今回はこのところ巷を騒がせているLog4Shellの脆弱性についてPoCを試してみた記事になります。
下記の記事を参考に脆弱性を含んだアプリケーションに対してPoCを実施します。[Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package]
(https://www.lunasec.io/docs/blog/log4j-zero-day/)Log4Shellとは
—
JPCERTページでは下記の通り解説されています。
[Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起]
(https://www.jpcert.or.jp/at/2021/at210050.html)
>JavaベースのオープンソースのロギングライブラリのApache Log4jには、任意のコード実行の脆弱性(CVE-2021-44228)があります。Apache Log
Log4Shellデモ(実証〜検出〜修正)を公開しました
#Log4Shellデモ(実証〜検出〜修正)
世間を騒がせている重大な脆弱性Log4Shellを、実際に体験して、修正するところまでを見ることができる動画を公開しました。ぜひご覧ください。#参考リンク
* [記事『Log4Shellの脆弱性が公開されました:Version 2.17.0にアップデートしてLog4j RCEを防ぐ』] (https://qiita.com/SnykSec/items/fccc10bd25cd5de0b56f)
* [Proof of Concept 用アプリ
よく使う正規表現メモ
#これは何?
個人的によく使う正規表現のメモです。主にgrepで使います。必要に応じてsortやuniqなどと組み合わせて使います。#正規表現の基本
| 正規表現 | 意味 |
|:-:|:-|
| [0-9] | 0から9までの数字1文字を示す |
| [A-z] | Aからzまでの英字1文字を示す。大文字小文字両方が対象 |
| [A-Z] | AからZまでの英字1文字を示す。大文字のみ。 |
| [a-z] | AからZまでの英字1文字を示す。小文字のみ。|
| . | 任意の1文字を示す。記号も含まれる。 |
| + | 直前に記載された文字の1回以上の繰り返し |
| ? | 直前に記載された文字の0回または1回の繰り返し |
| {n} | 直前に記載された文字または正規表現のn回の繰り返し |
| {1,3} | 直前に記載された文字または正規表現の1~3回の繰り返し |
| * | 直前に記載された文字の0回以上の繰り返し |
| []の中の^ | 直後の1文字または正規表現の否定。 |
| ^ | 直後の1文字または正規表
情報セキュリティマネジメント試験に合格した勉強方法
2021年7月に情報セキュリティマネジメント試験に
合格しました。その時の勉強方法を書いていこうと思います。
#情報セキュリティマネジメント試験とは
IPA(独立行政法人情報処理推進機構)が実施している国家資格です。
平成28年4月から実施しているので新しい資格です。最近ニュースで見ることも多いサイバー攻撃や内部不正を防止する
セキュリティマネジメント人材を増やすことが目的のようです。#試験形式
試験は午前と午後に分かれています。
午前試験は90分で四択問題50問、
午後試験は90分で大問3題です。午後の大問は1つの文章に関して10問前後の
選択問題が出る形式です。また午前試験、午後試験となっていますが、
別日に申し込むこともできます。#合格基準点と合格率
合格基準点は60点と公表されています。
合格率は50%前後ということで、
合格率20~30%の基本情報技術者試験などと比べると
易しい試験です。#なぜ受験しようと思ったのか
IPAの資格で基本情報技術者試験は取得していたので、
次の資格ということで受験しようと思いました。また仕事で画面の開発もするの
書籍『セキュリティエンジニアのための機械学習』の紹介
この記事は[EAGLYS Advent Calendar 2021](https://qiita.com/advent-calendar/2021/eaglys_adcal)の22日目の記事です.
書評するコーナーをやってみます.
今回は第3回です.
# 何をするのか
格子暗号に秘密計算・機械学習って最近の話題を色々紹介しているけど,なんか良い本ないの?という要望に応える企画です.
ちなみに暗号全般や暗号で使われる数学関連の書籍は,[「プログラマブルブートストラップの原著論文を理解する回」を理解する回](https://qiita.com/0917laplace/items/679fa72d44bf02b4e17c#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE)という記事で紹介しているので,そちらをご参照ください.全3回に渡って,主に3冊を取り上げて紹介します.今回は第3回目で最終回です.
1冊目:[縫田 光司,『耐量子計算機暗号』,森北出版,2020](https://www.morikita.co.jp/books/mid/087211)
正規表現をフリーズさせないために
本記事では、正規表現が極端なパフォーマンスの悪化を招く例について扱い、その背景や対策を紹介します。
対象の読者として、基本的な正規表現の記法や用途を把握している方を想定しています。また、アルゴリズムの計算量について概要レベルの理解があると望ましいです。この記事は正規表現一般について扱うものですが、記事中の例としては JavaScript の正規表現を用います。
JavaScript では、 `/` と `/` で囲うことで正規表現を記述します。
ブラウザで Ctrl + Shift + i キーを押して Console タブを開くことで正規表現を手元で実行できますが、数秒間やそれ以上の間処理が返らないようなコードも記載しているため、十分にご注意ください。## 処理が終わらない正規表現
複雑な文字列操作を行いたいとき、簡単に書き上げることができる正規表現は非常に重宝するものですね。
専用のパーサを用意しなければならないほど複雑な解析を要する文字列処理というのはほとんどないか、またはそのためのライブラリが提供されているので[^dedicated-lib]、私たちは文字列の中身を検
SnykではじめるDevSecOps
# はじめに
[Snyk](https://snyk.io)はコードベースを軸にオープンソースの依存関係、コンテナ、インフラストラクチャ等の脆弱性を検出し、自動的な修正を可能とするセキュリティプラットフォームです。ソフトウェア開発ライフサイクル(SDLC)に従って、開発者のセキュリティ対策を支援します。
また、Snykは米国に本社を置き、ロンドンを拠点としたユニコーン企業です。
世界中で2,700万人以上の開発者がSnykのツールを使用し、IPOも間近と噂されています。開発者として初めてSnykを利用する場合、GitHubまたは、Googleアカウントを利用したフェデレーションのサインインにより、簡単に始めることができます。また、SSOにも対応しています。
本記事では、DevSecOpsを踏まえて、Snykの基本的な使い方などについて解説しています。
## DevSecOps
DevSecOpsは、DevOpsのカルチャーにセキュリティを融合したDevOpsのアプローチです。DevOpsのカルチャーに対して、最初からセキュリティ対策を組み込み、ワークフローの速度が低下
Basic認証とフォーム認証(Cookieを使ったセッション管理)の仕組み
インターネットを通じたWEBサービス(例えば、Google, Amazon, Instagram等)を利用する際、「認証」をする機会がたくさんあります。
この記事では基礎的な認証の仕組みのBasic認証とフォーム認証(Cookieを使ったセッション管理の仕組み)についてまとめました。# そもそも認証って?
認証とは、**サービスの利用者が確かに本人であることを確認すること**です。## Basic認証
HTTPで定義される認証方式の一つで、もっとも単純な実装方式です。
冒頭で挙げたような一般的なWEBサービスの認証として利用されることはほとんどありませんが、開発現場において本番リリース前のサイト/サービス等へのアクセスを特定の人だけに限定するための認証としてよく使われます。### Basic認証の仕組み
1. クライアントがBasic認証を必要とするページへのアクセスのリクエストをサーバへ送付する
1. `401 Unauthorized`が返され、クライアントのブラウザ上にはID/PASSWORDの入力画面が表示される
1. 入力されたID/PASSWORDを`[ID
GNFA受験記
#はじめに
GNFA(GIAC Network Forensic Analyst)は、ネットワークフォレンジックの資格です。
この資格について日本語で書かれた記事は少ないので、私が受験した際の勉強法について記載します。#GNFAについて
GREMは50問出題され、制限時間は2時間です。ほとんどの問題は4択です。
合格ラインは70%の正答率です。
ただし、受験後に公式サイトを確認したところ、110問、3時間の試験に変わっていました。
これから受験する方はご注意ください。
また、休憩は2回取れますが、2回合わせて15分です。15分の休憩が2回ではありませんので注意してください。試験の内容は以下と公式サイトに記載されています。
Common Network Protocols
Encryption and Encoding
NetFlow Analysis and Attack Visualization
Network Analysis Tool and Usage
Network Architecture
Network Protocol Reverse Engineering
Alibaba Cloudハードウェアセキュリティモジュールについて
# ハードウェアセキュリティモジュールとは
Hardware Security Module(HSM)とは、暗号化や暗号鍵の管理などをデバイス側が備えたものです。
主に国際規格のFIPS/CommonCriteria/JCMVPなどの認定を取得しているデバイスを指します。
規格のレベルなどによって保証されるセキュリティ水準は異なります。
AzureではDedicated HSM、AWSではCloudHSMというサービス名で提供されています。# Data Encryption Serviceとは
Data Encryption Serviceとは、Alibaba Cloudが提供しているクラウドホスト型HSMサービスです。# 概要
Data Encryption Serviceの機能や特徴、価格などについて説明します。## 機能
Data Encryption Serviceが提供する機能として、次の7つが挙げられます。* キーのライフサイクルの管理
* 複数のキータイプをサポート
* データの暗号化と復号化に対称鍵と非対称鍵をサポート
* 複数のダイジェストアルゴリズム
Dockerのセキュリティにおける10のベストプラクティス
2021の12月も、後半。1年があっという間。週末六本木ヒルズを通ったら、すごい人出であった。
この2年、コロナの収束とはいかず、
コロナの名が、Covid-19→デルタ→オミクロンと、徐々にとマーベル・コミックのヴィラン名の番付けのように凶暴化しているのが気になる今日このごろ。この先、ずっとワクチンを打ち続けなければならないのか?という疑問もある。感染予防対策とセキュリティ対策の共通なのは、一人一人の基本的な対策なしには成り立たないという部分があげられ。
どこまでやればいいかという部分が悩ましいところですよね。今日は、
デベロッパなら避けてとおれないDockerのセキュリティについて、SnykのBlogからお届けしたいと思います。###序章
https://snyk.io/blog/10-docker-image-security-best-practices/
クラウドネイティブセキュリティ | DEVSECOPS | オープンソース
Dockerのセキュリティにおける10のベストプラクティスLiran Tal(リラン・タル)、Omer Levi Hevroni(
マルウェアのアンパックについて
Windowsマルウェアを対象とする。
#パックされているかの確認
###Detect It Easyで確認
![スクリーンショット 2021-12-19 14.12.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274361/ab2a7c30-3975-82a9-fb2c-a249acc60cb1.png)
下の方にパッカーなどの情報が表示される。
###pestudioのfunctionsの部分を確認
![スクリーンショット 2021-12-19 14.15.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274361/709a7a75-0d85-83ae-1457-335916e94c1d.png)
functionsの数が少ないとパックされている可能性がある。
###pestudioのsectionsの部分を確認
![スクリーンショット 2021-12-19 14.15.49.png](https://
Webアプリケーションのセキュリティで気をつけること
社内で使われている問い合わせシステム(チャットボットと有人チャット)を開発しています。
私の会社では外に公開するシステムは基本的に脆弱性診断を受けてリリースする必要があります。
全システムで基本的に対応すべき項目に今回のリリースするシステムの事情を交えた対応方法と、
脆弱性診断で指摘もらった項目を失敗談交えて晒そうと思います。# 基本的なこと
[Webアプリケーションのおすすめセキュリティ設定](https://qiita.com/fukushi_yoshikazu/items/1a746fc8c8663be18bf9)が参考になります。
上記の記事から今回のリリースしたシステムの事情に合わせて補足的に解説します。## X-Frame-Optionsヘッダ(XFO)
ブラウザがiframeなどをページ内部に表示することを許可するかの設定です。
基本的に `X-Frame-Options DENY` ヘッダをつければ問題ありません。ただ、今回は別のサイトに埋め込み可能なサービスであるという要件でした。(別のシステム内にiframeで埋め込んだり、ライブラリを提供して別シス
標的型攻撃メールについて
# はじめに
最近色々あり身近に感じている標的型攻撃メールについて改めて調べてみたのでここに記録します。# 標的型攻撃メール
> 標的型攻撃メールとは、不特定多数の対象にばらまかれる通常の迷惑メールとは異なり、対象の組織から重要な情報を盗むことなどを目的として、組織の担当者が業務に関係するメールだと信じて開封してしまうように巧妙に作り込まれたウイルス付きのメールのことです。従来は府省庁や大手企業が中心に狙われてきましたが、最近では地方公共団体や中小企業もそのターゲットとなっています。
引用元:[標的型攻撃への対策 – 総務省](https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/business/staff/05.html)年々、その手口や技術も高度化しているとのことです、
そのため、ある程度のセキュリティへの意識がある人であればまだしもそうでない人だと引っかかってしまうこともあります。(自分もその中の一人)## 想定される被害
標的型攻撃メールに添付されているファイルの開封や添付のリンクを開いた場合以下の
もうメンテされてないライブラリに最新のlog4jを強制する方法
# 問題
直接的にlog4jを利用している場合は、更新 or logbackへの移行 を行えばよい
しかし、脆弱なlog4jへの依存があるライブラリは、ライブラリ側の更新を待つ必要がある
そして、ある程度の規模のライブラリでも、結構な確率でメンテされておらず更新が見込めない# 対処
“`gradle:build.gradle
ext[“log4j2.version”] = “2.17.0”
“`
外部から最新バージョンの使用を強制するため動作は保証されないが、脆弱なまま放置するよりはマシである