ハック
ハックという言葉には、コンピューターに関する主な意味が2つあります。多くの場合、コンピューターシステムに侵入して不正にアクセスし、そのデータを入手することを意味します。また、プログラムのソースコードで、コンピューティング上の問題を解決するための洗練されていないものの巧妙な方法を指すこともあります。
セキュリティーハック
コンピューターセキュリティーの分野では、ハックとはコンピューターシステムへの不正な侵入を意味します。ハッカーとは、別のコンピューターにマルウェアを仕込んだり、データベースから情報を盗んだり、単にWebサイトを改ざんしたりするためにハックを行う人です。ハッカーがシステムに侵入するために使えるハックには、さまざまな種類があります。
ハックの1つの種類は、侵害されたユーザーアカウントを通じてアクセスする方法です。ハッカーは、攻撃対象になりそうな人のアカウントのユーザー名を特定すると、一般的なパスワードを繰り返し試す総当たり攻撃を行うことがあります。また、パケットスニファーを使って通信を傍受し、暗号化されていないデータを取得することもあります。これは、パスワードやその他の価値あるデータを含むパケットを見つけるためです。さらに、スキャンツールを使って、侵入に対して脆弱な開いているポートを見つけることもあります。
ハッカーは、システムにアクセスするためにソーシャルエンジニアリングを利用したハックを行うこともあります。ソーシャルエンジニアリングによるハックでは、ポートのスキャンやWeb通信の傍受ほど技術的なスキルを必要とせず、心理的な操作やその他の手口を使います。たとえば、フィッシング攻撃では、偽のメールメッセージを使って被害者をだまし、情報を明かさせようとします。
プログラミングハック
プログラミングハックとは、コンピュータープログラミング上の問題に対する、標準的ではなく、多くの場合扱いにくい解決方法です。文書化されていない方法を使って関数を実行したり、プログラムの別の場所にあるバグを利用したりすることがあります。このようなハックは「kludge」とも呼ばれ、問題に対するより堅牢な解決方法よりも手間がかからないことが多い一方で、新たなバグや予期しない動作を引き起こす可能性があります。
知識をテストする