システムエンジニアとして、多くの方がシステムの開発に携わっているかと思います。
その過程でプログラムが意図したとおりに動作するか確認するテスト工程があり、そこでバグ(プログラムの誤り)を取り除く必要があります。
バグの中には情報漏えいを引き起こしたり、データ改ざん、上位権限で操作を行うことが可能となるバグも存在し、このような悪用可能なバグを「脆弱性」と呼びます。
この脆弱性を発見するためのテスト手法が脆弱性診断となります。
正しく動作するかという観点でのテストはどのような開発でも行いますが、システムが悪用されないかという観点でのテストも必要となります。