« 英語で読む「GoF」 | Main | 英文で読む「Angular vs React」 »

2018.09.14

英語で読む「OWASP」

quote for TOEICから、今回はセキュリティに冠する英文を。OWASP(Open Web Application Security Project)はWebのセキュリティを扱うコミュニティだ。中でもOWASP Top 10はトップテン形式で脆弱性と対策をまとめたドキュメントで、セキュリティ関連のドキュメントの中でも人気が高い。2018年に更新されたV3を読んでみよう。

https://www.owasp.org/images/b/bc/OWASP_Top_10_Proactive_Controls_V3.pdf

In order to mitigate SQL injection, untrusted input should be prevented from being interpreted as part of a SQL command.

データベース関連は3位だ。2017年バージョンでは1位だったので、重要度が後退していることになる。そして、2018年版ではSQLインジェクションを緩和(mitigate)するには、‘Query Parameterization’がベストだと言っている。

このあたり、どう扱うべきかセキュリティ界隈では頻繁にアップデートされていて、その経緯は徳丸浩さんのブログに詳しい。

OWASPのSQLインジェクション対策方針を読んで「おまえは俺か」と思った

一度覚えたと思っていても、知らないうちに常識が変わっていることも多いので定期的なチェックが必要だ。

「Validate All Inputs」は5位。入力値検証の重要な概念であるSyntaxとSemanticについて冒頭で定義している。

Syntax validity means that the data is in the form that is expected. For example, an application may allow a user to select a four-digit “account ID” to perform some kind of operation.

Syntaxは日本語で言えば「構文」だが、どちらかというと想定した文字種により構成されているかのチェックである。

Semantic validity includes only accepting input that is within an acceptable range for the given application functionality and context. For example, a start date must be before an end date when choosing date ranges.

もう一方のSemanticは辞書によると「意味論」と意味不明だが、たとえば開始日は終了日より前でなければいけないなどのチェックが、これに相当する。このSyntaxとSemanticの両面のチェックがされることが、SQLインジェクションのような特定の攻撃への対策に優る。

かつてセキュリティは、こういう文字列を挿入すると、こういう攻撃が成立するという小手先の知識が重要な位置を占めていたが、そうではなく、そもそも正しい値かという検証の方が確実だという進化を感じられる。

|

« 英語で読む「GoF」 | Main | 英文で読む「Angular vs React」 »

英語で読むITポリシー」カテゴリの記事