2023年の危険な脆弱性タイプトップ25が発表されたのでわかりやすく解説してみた

セキュリティ・ネットワーク・サーバー
この記事は約6分で読めます。

MITERが運営する国土安全保証システム技術開発研究所は、ソフトウェアの脆弱性を調査し、「2023年の危険な脆弱性タイプトップ25」を発表しました。

IT業界が浅い人でもわかるように、かいつまんでわかりやすく解説します。

スポンサーリンク

2023年の危険な脆弱性タイプトップ25

第1位:→:Out-of-bounds Write(CWE-787)
第2位:→:Cross-site Scripting(CWE-79)
第3位:→:SQL Injection(CWE-89)
第4位:↑:Use After Free(CWE-416)
第5位:↑:OS Command Injection(CWE-78)
第6位:↓:Improper Input Validation(CWE-20)
第7位:↓:Out-of-bounds Read(CWE-125)
第8位:→:Path Traversal(CWE-22)
第9位:→:Cross-Site Request Forgery(CWE-352)
第10位:→:Unrestricted Upload of File with Dangerous Type(CWE-434)
第11位:↑:Missing Authorization(CWE-862)
第12位:↓:NULL Pointer Dereference(CWE-476)
第13位:↑:Improper Authentication(CWE-287)
第14位:↓:Integer Overflow or Wraparound(CWE-190)
第15位:↓:Deserialization of Untrusted Data(CWE-502)
第16位:↑:Command Injection(CWE-77)
第17位:↑:Improper Restriction of Operations within the Bounds of a Memory Buffer(CWE-119)
第18位:↓:Use of Hard-coded Credentials(CWE-798)
第19位:↑:Server-Side Request Forgery(CWE-918)
第20位:↓:Missing Authentication for Critical Function(CWE-306)
第21位:↑:Race Condition(CWE-362)
第22位:↑:Improper Privilege Management(CWE-269)
第23位:↑:Code Injection(CWE-94)
第24位:↑:Incorrect Authorization(CWE-863)
第25位:↓:Incorrect Default Permissions(CWE-276)

出典:【セキュリティ ニュース】危険な脆弱性タイプ、2023年の「トップ25」(2ページ目 / 全2ページ):Security NEXT

スポンサーリンク

第1位:Out-of-bounds Write(領域外への書込み)

想定のサイズを超えるデータをバッファに送り込み、誤作動を起こさせる攻撃です。

マルウェアから不正プログラムを実行し、システムの誤作動やコンピュータの乗っ取りの影響があります。

主にIoT機器が狙われやすく、C/C++のコードでは対策が必要です。

開発者側はC/C++でメモリ管理が安全なライブラリを使うことが簡単にできる対策です。

対策のできていない古いアプリケーションや不要なアプリケーションをインストールしない、マルウェアに感染するようなサイトを見ない、といったことでリスクを減らせます。

スポンサーリンク

第2位:Cross-site Scripting(クロスサイトスクリプティング)

Webアプリケーションの脆弱性を突く攻撃です。

掲示板の投稿や検索キーワードなどにHTMLタグやJavaScriptのコードなどを埋め込み、不正に実行させます。

対策としては、入力値をエスケープ処理(HTMLエンコード・URLエンコード)が有効です。最新のフレームワークを使えば標準で対策されるものもあります。

スポンサーリンク

第3位:SQL Injection(SQLインジェクション)

Webアプリケーションの脆弱性を突く攻撃です。

入力フォームや検索フォームに対して攻撃します。

例えば、”SELECT * FROM A_Table WHERE Keyword LIKE ‘%{入力値}%’ “という文が処理されるとして、入力値が” ‘; DELETE FROM Users; –“(SELECT文実行後、削除し残りの構文をコメントアウト)だった場合にもしUsersテーブルがあればすべて削除されてしまいます。

本来見れないデータの盗み見や、データベース破壊などできてしまいます。

対策としては、①入力値を制限する(SELECT や DELETE など)、②入力値をエスケープ処理する、③SQL文にパラメータ変数で渡す(文字連結でSQL文を作らない)などがあります。

スポンサーリンク

第4位:Use After Free

すでに解放したポインタを使って、破壊や不正プログラムを実行させて攻撃します。

メールのリンクなどで攻撃プログラムのあるサイトに誘導して、IEの脆弱性を突いて攻撃した事例もあります。

最新でないブラウザを使わないことや、迷惑メールのリンクを触らないようにしましょう。

スポンサーリンク

第5位:OS Command Injection(OSコマンドインジェクション)

Webアプリケーションの脆弱性を突く攻撃です。

入力フォームなどでOSのコマンドを入力して実行させることで、情報漏えいやサーバー破壊をします。

対策としては、入力値に特殊文字を入れさせないチェックをすることや、外部プログラムを呼び出す機能を使わないことです。

スポンサーリンク

第6位:Improper Input Validation(入力バリデーション)

正常なデータになっているかチェックしなさいよってことです。

例えば、金額の入力があったとして負(マイナス)の数値が入力検証しなかったら、請求したいのに入金しないといけなくなります。

スポンサーリンク

第8位:Path Traversal(パストラバーサル攻撃)

見えないものを見ようとして、パスを指定したら見えちゃった♪というような残念無念なものです(Bump of Chicken、替え歌にしてすみません)

公開前のファイルが見えてしまったり、アクセス権が特に設定されていなくて見れてしまうようなこともあります。

情報漏えいで問題になりやすいので気を付けよう。

スポンサーリンク

第9位:Cross-Site Request Forgery(クロスサイトリクエストフォージェリ)

Webアプリケーションの脆弱性を突く攻撃です。

悪意のあるWEBサイトにアクセス後、意図しないHTTPリクエストを送られてしまい、パソコンの遠隔操作や電子掲示板の自動投稿、銀行振り込みや他WEBサービスの設定変更などの被害がありました。

開発者側は本人による操作かをチェックする対策が必要です。

利用者側は、WEBサービスにログインしたまましない、つまりログアウトする習慣をつけることで、勝手にネット銀行から振込み実行されることや重要なサービスのパスワード情報を変更されるリスクを減らせます。根本的には、悪意のあるWEBサイトにアクセスしないことが重要です。

スポンサーリンク

まとめ

大きくわけると、バッファ攻撃・インジェクション・権限起因の脆弱性が多いです。

開発者側は、入力データの検証やエスケープ処理するようには特に気を付けましょう。

利用者側は、怪しいメールのリンクを押さない!これに尽きます。

この記事を書いた人
サイト運営者
Ryu
Ryu

フリーランスエンジニア。転職含め9社経験。第二新卒から未経験でIT就職。社内SEとSIerのSEで働き、企画〜運用保守、フロント〜バック・インフラとフルスタックな守備範囲。C#とSQLとSalesforceが得意。

Ryuをフォローする
セキュリティ・ネットワーク・サーバー
スポンサーリンク