最新のセキュアコーディングを先取り。
サイバー脅威の状況は常に変化しており、常に先手を打つことがこれまで以上に重要になっています。様々なビデオ、ブログ、便利なセキュアコーディングガイドラインにより、常に最新の情報を入手し、次に何が起こるかに備えることができます。
最新のセキュア・コーディング・ガイドライン
{
"dependencies": {
"foo": "1.0.0 - 2.9999.9999",
"bar": ">=1.0.2 <2.1.2"
}
}
既知の脆弱性を持つコンポーネントの使用
{
"dependencies": {
"foo": "1.0.0 - 2.9999.9999",
"bar": ">=1.0.2 <2.1.2"
}
}
ほとんどのアプリケーションは、大量のサードパーティ製コンポーネントを利用している。これらのコンポーネントは、ロギング、テンプレート化、データベースアクセスなど、あらゆるものを提供する。そのため、ソフトウェアの開発は非常に簡単で、多くの時間を節約することができます。しかし、これらのコンポーネントは人が作ったものでもあり、必然的に脆弱性を含むものもあるということです。詳しくはガイドラインをお読みください。
import mysql.connector
db = mysql.connector.connect
#悪い習慣。これは避けること!
(host="localhost", user="newuser", passwd="pass", db="sample")
cur = db.cursor()
name = raw_input('Enter Name: ')
cur.execute("SELECT * FROM sample_data WHERE Name = '%s';" % name) for row in cur.fetchall(): print(row)
db.close()
SQLインジェクション
import mysql.connector
db = mysql.connector.connect
#悪い習慣。これは避けること!
(host="localhost", user="newuser", passwd="pass", db="sample")
cur = db.cursor()
name = raw_input('Enter Name: ')
cur.execute("SELECT * FROM sample_data WHERE Name = '%s';" % name) for row in cur.fetchall(): print(row)
db.close()
SQLインジェクション(SQLi)は、SQL文にコードを注入してアプリケーションを攻撃し、重要な情報を収集します。ウェブセキュリティの脆弱性の一つです。データベースを操作し、そこから重要な情報を引き出すハッキングの最も一般的な手法です。
ts
let url = request.params.url;
let response = http.get(url);
let render = response.render();
return render.export();
サーバーサイドリクエストフォージェリ
ts
let url = request.params.url;
let response = http.get(url);
let render = response.render();
return render.export();
サーバサイドリクエストフォージェリの脆弱性は、ユーザがアプリケーションに攻撃者が決めたドメインへの HTTP リクエストを行わせることができる場合に発生します。アプリケーションがプライベート/内部ネットワークにアクセスできる場合、攻撃者はアプリケーションに内部サーバへの リクエストを行わせることもできます。本ガイドラインでは、この脆弱性が実際にどのようなものであるかをよりよく理解するために、いくつかの例 を挙げて詳しく見ていきます。
多くのフレームワークは、本番環境であろうとテスト/開発環境であろうと、アプリケーションのモニタリングを可能にするエンドポイントのセットも持っています。これらは次のものを含みます:
Metrics (Prometheus)
Logs
Environment information
Path/Url Mappings
セキュリティの設定ミス
多くのフレームワークは、本番環境であろうとテスト/開発環境であろうと、アプリケーションのモニタリングを可能にするエンドポイントのセットも持っています。これらは次のものを含みます:
Metrics (Prometheus)
Logs
Environment information
Path/Url Mappings
セキュリティの誤設定とは、悪いコードではなく、アプリケーションのコンフィギュレーション設定に起因する一般的な脆弱性を網羅する、やや包括的な用語です。これは広範なテーマであり、あなたの技術スタックのような要因に大きく依存します。多くの場合、これらの問題への対処は、設定ファイルやコードの1行を変更するような単純に見えるものですが、これらの脆弱性の影響や結果は深刻なものになる可能性があります。この脆弱性とその緩和方法についての詳細は、ガイドラインをお読みください。
実際のセキュアコーディングmissions.
公開トレーニング演習のライブラリをご覧ください。これらのサンプル SCWMissions では、実際のアプリのシミュレーションで、攻撃的なセキュアコーディングの実践をガイド付きで体験できます。