システムの運用には、脆弱性のリスクやセキュリティに対する不安が付き物です。自社が運営するシステムでセキュリティ事故が発生した場合、ユーザーからの信頼や企業イメージの低下にもつながりかねません。
年々、悪意ある第三者からの攻撃やウイルスへの対策は強化されていますが、そのたびに新しい攻撃手法や新種のウイルスが発生しています。コンピュータ犯罪におけるセキュリティ対策は終わりの見えない長期的な課題となっているのは実情です。
そこで、今回はコンピュータ犯罪の1つである「サラミ法」の概要と対策方法などをご紹介します。
サラミ法とは?
サラミ法とはコンピュータ犯罪の1つで、システムに侵入して顧客情報や金銭等を盗み出します。
また、1回あたりに盗み出す数量を侵入の影響が発覚しにくい量に抑え、何度も繰り返すのが特徴です。つまり、一度に大量の情報をあえて盗まないことで、侵入した事実が判明しないようにしているのです。
サラミ法はその性質上、大量のデータを保有するシステムに対して使われるケースが多い傾向にあります。例えば、金融機関のシステムに不正に侵入し、多数の顧客の口座から金額を少額ずつ長期的に盗み出すなどです。
さらに、クレジットカードによる少額の決済を毎月発生させ、持ち主に気づかれにくいように盗み続けるといった手口も横行しています。
また、サラミ法は金銭やポイントを取り扱うサービスも狙われやすく、システムもは侵入せずとも、顧客のシステム情報を入手するために利用されるケースも少なくありません。
他人のクレジットカードやキャッシュカードから情報を盗みとる「スキミング」やカードの暗証番号やログインするためのパスワードを心理的な隙を突いて盗み出す「ソーシャルエンジニアリング」といった手法と併用し、サラミ法は利用される恐れがあります。
なぜ「サラミ」と言われるの?
サラミ法の語源は「サラミソーセージを薄く切り取ること」です。サラミソーセージを盗む際に、1本そのままを盗んでしまうとすぐに発覚してしまいます。
しかし、多くのサラミソーセージから少しずつ薄くスライスして1本分の量となるように盗むことで発覚を逃れやすくできます。このように、サラミを薄くスライスするような小さな犯罪を積み重ね、大きな利益を得ようとする手口であるため、サラミ法と呼ばれるようになりました。
サラミ法の代表例
サラミ法の代表例としてよく取り上げられているのが、1960年代にアメリカのニューヨークの銀行で起きたコンピュータ犯罪です。
当時勤めていた銀行員が銀行内で利用される勘定系システムのプログラムを書き換えて、預金利子の端数処理を書き換えました。
従来、1セント未満の端数が発生した場合は四捨五入される仕組みとなっていたものを、全て切り捨て計算となるようにし、さらには切り捨てられた金額は自分名義の口座に自動振込されるように変更していたのです。
このプログラムの対象者は銀行に預金する全利用者となってとり、1人当たりの被害は少額でも、何千や何万人分となればその金額は莫大なものになります。
この方法は銀行のプログラム自体を書き換えていたため、預金総額自体に不正は発生せず、決算時の監査でも気づかれることがありませんでした。このような、少額を繰り返し抜き取る手法は、仕様の脆弱性を突くことで容易に行えてしまいます。
サラミ法の対策
サラミ法の対策としてて「1円/1ポイント未満の処理をチェックすること」が挙げられます。前述の通り、サラミ法を用いたコンピュータ犯罪は発覚しにくいのが特徴です。
特に、金銭やポイントなどが関係するシステムでは設計時に端数の存在について考慮し、細かい端数処理を機能として実装しなければなりません。端数処理において、小数点以下は特に見落とされがちな部分でもあります。
システムの仕様上「1円」や「1ポイント未満」といった小数点以下が発生する場合は、小数点以下を考慮した端数処理の実装と実装後の綿密なテストを行いましょう。決済システムは規模にもよりますが、決済処理に至るまでにさまざまな操作パターンが考えられます。
そのため、実際の業務を想定してユーザーにシステムを操作してもらい、想定外の不具合を発見できる「受け入れテスト」の実施がおすすめです。受け入れテストについては、こちらの記事でも詳しく紹介しているのでぜひご確認ください。
【まとめ】サラミ法を理解し、対策を検討しよう
サラミ法は、その手口から中々発覚しにくいコンピュータ犯罪の1つです。しばらくしてから問題が発覚しても、すでに甚大な被害が及んでいる可能性は十分に考えられます。
サラミ法について正しく理解して、システムにどのような対策を施すべきかを仕様の段階で考慮に入れておくことをおすすめします。