Awesome AppSec
AppSecを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
記事
How to Safely Generate a Random Number (2014)
公開日: February 25, 2014
暗号的に安全な擬似乱数生成器に関するアドバイス
Salted Password Hashing - Doing it Right (2014)
公開日: August 6, 2014
Crackstationに関する記事(Defuse Securityによるプロジェクト)
A good idea with bad usage: /dev/urandom (2014)
公開日: May 3, 2014
Linux/BSD環境で/dev/urandomが失敗する多くの方法について述べている
Why Invest in Application Security? (2015)
公開日: June 21, 2015
事業を運営するには、コスト意識を持ち、無駄な支出を最小限に抑えることが必要である。アプリケーションの安全性を確保するメリットは、多くの企業にとって見えないため、多くの場合、セキュリティを確保するためのソフトウェア開発への投資を無視してしまう。これらの企業が気づいていないのは、防止可能なデータ漏洩がもたらす可能性のあるコスト(財務的およびブランド評価への影響)である。
データ漏洩の平均的な損失額は数百万ドルに達する。
安全なソフトウェアを開発するための時間と人件費を投資することは、多くの企業にとって、自社の利益を無駄にリスクから守るために価値がある。
Be wary of one-time pads and other crypto unicorns (2015)
公開日: March 25, 2015
誰もが自らの暗号機能を構築する際には、必須読書となる。
書籍
Web Application Hacker’s Handbook (2011)
公開日: September 27, 2011
ウェブアプリケーションセキュリティへの素晴らしい導入;ただしやや古めている。
Cryptography Engineering (2010)
公開日: March 15, 2010
暗号設計技術を紹介しながら、プロフェッショナルな不安感を生み出す。
Securing DevOps (2018)
公開日: March 1, 2018
セキュリティとDevOpsの技術を統合することで、クラウドサービスをより安全にすることを説明する『セキュリティのDevOps』は、ウェブアプリケーションおよびそのインフラストラクチャにおける最先端の実践をレビューし、あなたの製品にセキュリティを直接統合するための技術を教えている。
Gray Hat Python: Programming for Hackers and Reverse Engineers (2009)
公開日: May 3, 2009
The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities (2006)
公開日: November 30, 2006
C Interfaces and Implementations: Techniques for Creating Reusable Software (1996)
公開日: August 30, 1996
Reversing: Secrets of Reverse Engineering (2005)
公開日: April 15, 2005
JavaScript: The Good parts (2008)
公開日: May 1, 2008
Windows Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition (2007)
公開日: June 17, 2007
The Mac Hacker’s Handbook (2009)
公開日: March 3, 2009
The IDA Pro Book: The Unofficial Guide to the World’s Most Popular Disassembler (2008)
公開日: August 22, 2008
Internetworking with TCP/IP Vol. II: ANSI C Version: Design, Implementation, and Internals (3rd Edition) (1998)
公開日: June 25, 1998
Network Algorithmics,: An Interdisciplinary Approach to Designing Fast Networked Devices (2004)
公開日: December 29, 2004
Computation Structures (MIT Electrical Engineering and Computer Science) (1989)
公開日: December 13, 1989
Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection (2009)
公開日: August 3, 2009
Secure Programming HOWTO (2015)
公開日: March 1, 2015
Security Engineering - Third Edition (2020)
公開日: November 1, 2020
Bulletproof SSL and TLS (2014)
公開日: August 1, 2014
Holistic Info-Sec for Web Developers (Fascicle 0) (2016)
公開日: September 17, 2016
3つのパートから成る書籍シリーズの最初の部分で、ウェブ開発者およびアーキテクトが、継続的に、正確に、驚きなく、堅牢で信頼性があり、維持可能なソフトウェア、ネットワーク、その他を構築するために必要な知識を広く深く解説している。
Holistic Info-Sec for Web Developers (Fascicle 1)
3つのパートから成る書籍シリーズの2番目の部分で、ウェブ開発者およびアーキテクトが、堅牢で信頼性があり、維持可能で安全なソフトウェア、VPS、ネットワーク、クラウド、ウェブアプリケーションを構築するために必要な知識を広く深く解説している。
講座
Offensive Computer Security (CIS 4930) FSU
フロリダ州立大学のオウェン・レドウッドが開発した脆弱性調査およびエクスプロイト開発講座。
** lectures をぜひチェックしてください!**
Hack Night
NYUポリの過去のパネルテストおよび脆弱性分析コースの資料をもとに開発されたハックナイトは、攻撃的セキュリティへの厳密な導入です。13週間の期間中に、学生たちが多様で浸透的なテーマに触れることで、非常に複雑な技術内容が速く扱われます。
Webサイト
Hack This Site!
このウェブサイトを攻撃して、アプリケーションセキュリティについて学びましょう。
Enigma Group
ハッカーとセキュリティ専門家がトレーニングに来る場所。
Web App Sec Quiz
ウェブアプリケーションセキュリティのセルフアセスメントクイズ
SecurePasswords.info
複数の言語/フレームワークでのセキュアなパスワードの管理。
Security News Feeds Cheat-Sheet
セキュリティニュースの情報源一覧。
Open Security Training
x86の低レベルプログラミング、ハッキング、フォレンジックに関する動画コース。
MicroCorruption
キャプチャ・ザ・フラグ(CTF):アセンブリと埋め込みデバイスセキュリティを学ぶ。
The Matasano Crypto Challenges
cryptographyを自習するためのプログラミング演習シリーズ。 Matasano Security で提供されています。Maciej Ceglowskiによる The introduction はそれをよく説明しています。
PentesterLab
PentesterLabは free Hands-On exercises と bootcamp を提供して、始めに使えるようにしています。
Juice Shop
意図的に不安全なJavaScriptのWebアプリケーション。
Supercar Showdown
オンライン攻撃者が行動する前に、攻撃に先立ってどうすればいいか。
OWASP NodeGoat
OWASP Top 10 Node.JS Webアプリケーションに意図的に脆弱なアプリケーションであり、tutorials、security regression testing with the OWASP Zap API、docker imageが含まれる。複数の選択肢で迅速に開始できる。
Securing The Stack
2週間に1回のアプリセキュリティチュートリアル
OWASP ServerlessGoat
OWASP ServerlessGoatは、OWASPによって維持され、PureSecによって作成された、意図的に不安全な現実的なAWS Lambdaサーバレスアプリケーションである。WebGoatをインストールし、脆弱性について学び、それらをどのようにexploitし、それぞれの問題をどのように修正するかを学べる。このプロジェクトには、問題の説明と、ベストプラクティスに基づいた修正方法を説明するドキュメンテーションも含まれている。
SecDim
SecDimはアプリセキュリティ教育用プラットフォームであり、Learnによる無料Gitベースのラボを提供。アプリを安全に構築できるか、思っている? Challenge yourselfアプリセキュリティゲームで挑戦!バグを修正し、スコアを獲得し、リーダーボードに自分の名前を表示しよう。
ブログ
Crypto Fails
悪質な暗号化の例を示す
NCC Group - Blog
NCCグループのブログ(かつてはMatasano、iSEC Partners、NGS Secure)。
Scott Helme
セキュリティとパフォーマンスについて学ぶ。
Cossack Labs blog (2018)
公開日: July 30, 2018
暗号化企業のブログで、オープンソースのライブラリやツールを提供し、アプリケーションおよびインフラストラクチャにおける実用的なデータセキュリティアプローチを説明。
Wikiページ
OWASP Top Ten Project
ウェブアプリケーションに見られる最も一般的で最も重要な10のセキュリティ脆弱性。
ツール
Qualys SSL Labs
有名なSSLおよびTLSツールセット。
securityheaders.io
HTTPレスポンスヘッダーのセキュリティを迅速かつ簡単に評価できます。
report-uri.io
無料のCSPおよびHPKP報告サービス。
clickjacker.io
クリックジャッキングのテストと学習。クリックジャッキングのPoCを作成し、スクリーンショットを撮影してリンクを共有できます。HTTPS、HTTP、内部ネットワークサイトおよび内部サイトのテストが可能です。
AWS Lambda
ツール
PureSec FunctionShield
FunctionShieldは、AWS LambdaおよびGoogle Cloud Functionsのセキュリティに関する100%無料のライブラリで、開発者がサーバレス実行環境に対して厳格なセキュリティ制御を簡単に適用できるようにします。
Android
書籍と電子書籍
SEI CERT Android Secure Coding Standard (2015)
公開日: February 24, 2015
Android開発におけるセキュアコーディング基準を詳述した、コミュニティが維持するWiki。
C
書籍と電子書籍
SEI CERT C Coding Standard (2006)
公開日: May 24, 2006
Cプログラミングにおけるセキュアコーディング基準を詳述した、コミュニティが維持するWiki。
Defensive Coding: A Guide to Improving Software Security by the Fedora Security Team (2025)
公開日: February 22, 2025
ソフトウェアのセキュリティ向上に向けたセキュアコーディングのガイドラインを提供。一般的なプログラミング言語およびライブラリをカバーし、具体的な推奨事項に焦点を当てています。
C++
書籍と電子書籍
SEI CERT C++ Coding Standard (2006)
公開日: July 18, 2006
C++プログラミングにおけるセキュアコーディング基準を詳述した、コミュニティが維持するWiki。
C#
書籍と電子書籍
Security Driven .NET (2015)
公開日: July 14, 2015
.NET Framework 4.5向けに開発するセキュアなアプリケーションの開発についての紹介。特に暗号化およびセキュリティエンジニアリングに関するトピックをカバー。
Clojure
リポジトリ
Clojure OWASP (2020)
公開日: May 5, 2020
OWASPトップ10の脆弱性に関するClojureの例を含むリポジトリ。
Go
記事
Memory Security in Go - spacetime.dev (2017)
公開日: August 3, 2017
メモリ上でのセンシティブデータの管理に関するガイド。
Java
書籍と電子書籍
SEI CERT Java Coding Standard (2007)
公開日: January 12, 2007
Javaプログラミングにおけるセキュアコーディング基及を詳述した、コミュニティが維持するWiki。
Secure Coding Guidelines for Java SE (2014)
公開日: April 2, 2014
オラクルから直接提供されるJavaプログラミングのセキュリティガイドライン
Node.js
記事
Node.js Security Checklist - Rising Stack Blog (2015)
公開日: October 13, 2015
セキュアなNode.jsアプリケーション開発に役立つ多くの有用な情報が含まれています
Awesome Electron.js hacking & pentesting resources (2020)
公開日: June 17, 2020
Electron.jsベースのアプリケーションを安全に運用するためのリソース一覧
書籍と電子書籍
Essential Node.js Security (2017)
公開日: July 19, 2017
実践的なNode.jsウェブアプリケーションのセキュリティガイドとして、実際のソースコードが豊富に含まれています
トレーニング
Security Training by ^Lift Security
Node Security Projectを牽引してきたチームから学びましょう
Security Training from BinaryMist
我々は物理的セキュリティ、人間のセキュリティ、VPS、ネットワーク、クラウド、ウェブアプリケーションなど、さまざまな情報セキュリティトレーニングを実施しています。その多くは、数年間Kimが開発してきたbook seriesから来ています。さらに詳しい情報はhereをご覧ください
PHP
記事
It’s All About Time (2014)
公開日: November 28, 2014
PHPアプリケーションにおけるタイミング攻撃の初歩的な紹介
Secure Authentication in PHP with Long-Term Persistence (2015)
公開日: April 21, 2015
パスワードポリシー、パスワードの保存、「Remember Me」クッキー、アカウント回復について述べています
20 Point List For Preventing Cross-Site Scripting In PHP (2013)
公開日: April 22, 2013
Padriac BradyによるXSSに脆弱でないソフトウェアの開発に関するアドバイス
25 PHP Security Best Practices For Sys Admins (2011)
公開日: November 23, 2011
この記事は数年前のものですが、PHP 7への移行に向けた現在のトレンドを考えると、そのアドバイスの多くは今も関連性があります
PHP data encryption primer (2014)
公開日: June 16, 2014
@timoh6がPHPにおけるデータ暗号化の実装を説明
Preventing SQL Injection in PHP Applications - the Easy and Definitive Guide (2014)
公開日: May 26, 2014
TL;DR - エスケープは行わない、代わりにプリペアドステートメントを使用してください!
You Wouldn’t Base64 a Password - Cryptography Decoded (2015)
公開日: August 7, 2015
よく誤解されがちな暗号用語や基本概念について、読みやすい概要を示すとともに、PHPでの例コードを提供しています。
暗号用語について混乱している場合は、ここから始めましょう。
A Guide to Secure Data Encryption in PHP Applications (2015)
公開日: August 2, 2015
終端から終端までの中間層の暗号化(HTTPS)および静的データの安全な暗号化の重要性について説明し、開発者が特定の用途に応じて使うべき暗号ツールを紹介します。そのツールは、 libsodium、 Defuse Security’s secure PHP encryption library、またはOpenSSLを使用する場合を含みます。
The 2018 Guide to Building Secure PHP Software (2017)
公開日: December 12, 2017
このガイドは、e-book PHP: The Right Wayの補足として機能し、セキュリティに重点を置き、一般的なPHP開発者向けのトピック(例:コードスタイル)を避けます。
書籍と電子書籍
Securing PHP: Core Concepts
PHPのセキュリティ:基本概念 は、最もよく使われるセキュリティ用語のガイドとして機能し、日常的なPHPでのその用語の例を提供しています。
Using Libsodium in PHP Projects
応用暗号に関する博士号を取得する必要はありません。安全なWebアプリケーションを構築するため、libsodiumが登場します。これにより、ストリーム暗号の意味さえ理解しなくても、高速かつ安全で信頼性の高いアプリケーションを開発できます。
有用なライブラリ
defuse/php-encryption
PHPアプリケーション向けの対称鍵暗号ライブラリ。(推奨!自作は避けてください!)
ircmaxell/password_compat
PHP 5.3.7以降または5.4を使用している場合は、パスワードのハッシュ化にこの関数を使用してください。
ircmaxell/RandomLib
ランダムな文字列または数字を生成するのに便利です。
thephpleague/oauth2-server
安全なOAuth2サーバーの実装
paragonie/random_compat
PHP 7では、新しいCSPRNG関数 random_bytes() と random_int() が提供されています。これは、PHP 5プロジェクトにおいて同じAPIを公開するためのコミュニティの取り組み(前向き互換層)です。MITライセンスを緩やかに適用しています。
psecio/gatekeeper
安全な認証および認可ライブラリで、役割ベースのアクセス制御(RBAC)を実装し、Paragon Initiative Enterprisesが推奨している secure “remember me” checkboxes に関するガイドラインを採用しています。
openwall/phpass
PHPアプリケーションで使用できる、携帯性があり公開ドメインのパスワードハッシュフレームワーク
Webサイト
websec.io
websec.io は、一般のセキュリティ基盤、新規技術、PHPに関する情報について開発者にセキュリティ教育を行うサイトです
ブログ
Paragon Initiative Enterprises Blog
オーランド、FLに拠点を置く技術およびセキュリティコンサルティング会社のブログ
ircmaxell’s blog
PHP、セキュリティ、パフォーマンスおよび一般的なウェブアプリケーション開発に関するブログ
Pádraic Brady’s Blog
Pádraic Brady は Zend Framework のセキュリティ専門家です
メーリングリスト
Securing PHP Weekly
PHP、セキュリティ、そしてコミュニティに関する週刊ニュースレター
Perl
書籍と電子書籍
SEI CERT Perl Coding Standard (2011)
公開日: January 10, 2011
Perlプログラミングにおけるセキュアコーディング基準を詳細に説明する、コミュニティが維持するWiki
Python
書籍と電子書籍
Python chapter of Fedora Defensive Coding Guide
標準ライブラリの機能について避けるべきものリストを提示し、Python特有のセクションを参照する部分を示す.
Black Hat Python: Python Programming for Hackers and Pentesters
NoStarch Pressから出版されたJustin Seitzによる『Black Hat Python』は、攻撃的セキュリティの専門家にとって素晴らしい書籍です
Violent Python
Violent Python は、攻撃的コンピュータ概念の理論的理解から実際の実装への移行を示しています.
Webサイト
OWASP Python Security Wiki (2014)
公開日: June 21, 2014
OWASP Python Securityプロジェクトが維持するWikiです.
Ruby
書籍と電子書籍
Secure Ruby Development Guide (2014)
公開日: March 10, 2014
フェデラのセキュリティチームが提供するセキュアRuby開発ガイド。また、Githubにも提供されています。