enkdsnnnnnnnn

めもるめもる

ホスト要塞化についてのメモなど

ホスト要塞化って結局なんだ

ひとことでいうと

ホスト要塞化は、セキュリティホールを塞ぎ、堅牢な状態にすること。

背景

主に、ソフトウェアのバグや、設定ミスなどのセキュリティホールを塞ぐ。 セキュリティソフトに頼るだけでなく、サーバそのものを堅牢に使用という取り組みである。

マイクロソフトでは公式ドキュメントにて要塞化についての記事を掲載するなどしている。https://docs.microsoft.com/ja-jp/microsoft-identity-manager/pam/planning-bastion-environment

また解説記事も2001年あたりから存在し、決して古い概念ではない。 https://www.atmarkit.co.jp/ait/articles/0106/19/news002.html

なぜ要塞化が必要?

一言でいうと、リスクの最小化のためである。

新しいサーバを導入した際は基本丸裸であり、がら空きのポートに対して侵入を許したり、管理者権限を奪われたりするようなこともある。 したがって、ホストの稼働前に要塞化対策が必要になる。

加えて、攻撃者は常に脆弱なサーバを探っており、要塞化を行っていないターゲットは セキュリティが甘いとみなされ攻撃対象となる。

システム全体の堅牢性を高くするという原点を考えるとホストそのものがどれだけ堅牢化できているかということは、ファイアウォールの検討よりも前にしっかり行うべきだと言える。

具体的にどうやって要塞化を行うか

大まかには、ホストサーバに対して以下のこと実施する

  1. OSの最新化、アプリケーションの最新化
  2. パッチの適用
  3. 不要なサービス・機能の停止

より具体的な実施内容

用途や更新頻度などが大きく異るデータを同じパーティション内に同居させない

パーティションとは、HDDの中に作成する区画のこと。 役割別に別のパーティションを割り当てるのが望ましい。

たとえば、

  1. カーネルの保存領域
  2. アプリケーションの保存領域
  3. ユーザデータの保存領域
  4. ログの保存領域

これは直接的な防御というよりも、間接的な防御だろう。 というのも、結局、区画整理というのは、バックアップのとりやすさや障害対応のしやすさなどのメリットがメインであり、パーティションをきれいに割り当てたことで直接的な防御ができるわけではない。

セキュアなファイルシステムを選ぶ

 ファイルシステムによっては、アクセス権の設定や暗号化機能があったりなかったりする。 そのため、セキュアなファイルシステムかどうかを必ず確認する。

 LinuxファイルシステムであるXFSは、一度削除したら復元できないという特性がある。 WindowsのNFTSのセキュリティ機能はひとクセあるとのことだが詳しいことは不明。最近のWindowsServerはReFSというファイルシステムに変更され、復旧性能が上がったとのこと。 サーバは基本Linuxのため、XFSであればOKというデファクトスタンダード的な存在になっている。

ソフトウェアは最新かつ最小構成で

ソフトウェアが古ければ古いほど、また、ソフトウェアを動かすファイルが多ければ多いほど脆弱性が多いと考える。したがって、ホストにインストールするソフトウェアは最新かつ最小構成にする。

パッチの適用

これが最重要項目と言われている。

必要最低限のソフトウェアだけインストールされた状態にされたあとは、既知の脆弱性を潰すためにパッチを適用し、セキュリティホールを潰す。 ただし、本番用のホストでは、最新パッチにすることによるバグなども考えうるため、先に動作確認などを実施する必要がある場合もある。

不要なサービスや機能の停止

不要な機能が自動的に起動するようになっていたり、不要なコマンドが有効になっている場合もあるため、これも無効化する。起動しているアプリケーションの数が多ければ多いほど侵入経路を増やすことになるため、不必要なサービスは起動しない。

不要なグループ、アカウントの削除と不要な共有資源の解除

インストールしたてのOSに入っている不要なユーザアカウントやユーザグループは削除・無効にする。主にWindowsで問題になる。WindowsはAdministratorという名前が管理者アカウントに付与されていれば、名前は変更する。匿名接続機能が有効である場合、ログインすることなく共有資源情報やアカウント情報を取得できるので、これも無効にする。もちろん共有状態そのものも解除する。

UNIX系OSでは、rootでのログインを禁止する。 管理者権限を使用する場合は、一般ユーザからsuコマンドを経由すること。

パスワード周りの設定を堅牢にする

パスワードは推測困難なものにする。アカウントのロックアウト設定もする。 ロックアウト設定をしないとブルートフォース攻撃などのパスクラックが可能になるので、ロックアウト設定はなるべく行う。

アクセス権の設定をする

OSはアクセス権の設定がデフォルトでは適切に設定されていないため、これも設定し直す。 UNIX系OSは、不要なsetuid/setgid属性は解除する。

※setuid/setgid属性はBOF攻撃にて使用される可能性がある。 

また、公開サーバに秘密鍵は絶対に置かないこと。攻撃者がその秘密鍵を使用することができた場合、その秘密鍵を使用して通信する他のホストへの侵入もできてしまう。

ログの設定をする。

以下の事柄はなるべくログをとるようにする。UNIX系はsyslogなどで見れる

  1. 重要なファイルへのアクセス履歴
  2. ログインの成功・失敗の履歴

侵入の検知の方法などは別の記事で書く

所感

サーバ構築などをクラウド上で行う場合も同様のことが言えるとは思われるが、Amazon Linuxなどの発表などもあり、クラウドベンダー側でよしなにやってくれるとありがたいなと思うなどした。

参考文献

第16回 サーバを要塞化する (1/4) https://www.itmedia.co.jp/enterprise/articles/0508/09/news002.html

情報処理教科書 情報処理安全確保支援士 2020年版 https://www.amazon.co.jp/%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%95%99%E7%A7%91%E6%9B%B8-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E5%AE%89%E5%85%A8%E7%A2%BA%E4%BF%9D%E6%94%AF%E6%8F%B4%E5%A3%AB-2020%E5%B9%B4%E7%89%88-%E4%B8%8A%E5%8E%9F-%E5%AD%9D%E4%B9%8B/dp/4798163848/ref=sr_1_5?adgrpid=65516135716&gclid=Cj0KCQjwmdzzBRC7ARIsANdqRRk7mveAZiTeD6Xo2ZL-A3jPFrtRwTDMzFVkkBhhtCXD9-EezSj6cHUaAmu6EALw_wcB&hvadid=338540632981&hvdev=c&hvlocphy=1009311&hvnetw=g&hvqmt=b&hvrand=436517286697933970&hvtargid=aud-759377471933%3Akwd-333750300171&hydadcr=26606_10270259&jp-ad-ap=0&keywords=%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E5%AE%89%E5%85%A8%E7%A2%BA%E4%BF%9D%E6%94%AF%E6%8F%B4%E5%A3%AB%E8%A9%A6%E9%A8%93&qid=1584876856&s=books&sr=1-5

hackerrankでGoの文法をおさらいしている

A Very Big Sum
func aVeryBigSum(ar []int64) int64 {
    var sum int64
    for num := range ar {
        sum += num
    }
    return sum
}

-> range loopとでかい整数

  • 書き方に慣れない。。やっぱり手を動かさないとだめだ、、
a
func diagonalDifference(arr [][]int32) int32 {
    // Write your code here
    var primarydiagonal int32
    var secondarydiagonal int32
    for i := 0; i < 3; i++ {
        for j := 0; j < 3; j++ {
            if (i == 1 && j == 1) {
                primarydiagonal += arr[i][j]
                secondarydiagonal += arr[i][j]
            } else if (i == 0 && j == 0) || (i == 2 && j == 2){
                primarydiagonal += arr[i][j]
            } else if (i == 2 && j == 0) || (i == 0 && j == 2) {
                secondarydiagonal += arr[i][j]
            }
        }
    }
    resFloat64 := math.Abs((float64)(primarydiagonal - secondarydiagonal))
    res := int32(resFloat64)
    return res
}

-> 2次元配列、引数の型

  • サンプルケースのn=3の場合をナイーブに実装するとこうでO(n2)。ただ、必要なマスのindexの規則性がわかればO(N)でいける。
func diagonalDifference(arr [][]int32) int32 {
    // Write your code here
    var primarydiagonal int32
    var secondarydiagonal int32

    for i := 0; i < len(arr); i++ {
        primarydiagonal += arr[i][i]
        secondarydiagonal += arr[i][len(arr)-1-i]
    }
    
    resFloat64 := math.Abs(float64((primarydiagonal - secondarydiagonal)))
    res := int32(resFloat64)
    return res
}
Plus Minus
// Complete the plusMinus function below.
func plusMinus(arr []int32) {
    var posCnt float32 
    var negCnt float32
    var zeroCnt float32

    for _,  v := range arr {
        if v > 0 {
            posCnt++
        } else if v < 0 {
            negCnt++
        } else {
            zeroCnt++
        }
    }
    fmt.Println(posCnt / float32(len(arr)))
    fmt.Println(negCnt / float32(len(arr)))
    fmt.Println(zeroCnt / float32(len(arr)))
}

-> rangeの仕様

  • 変数を2つ定義する。1つ目はindex。2つ目は配列内の値。この辺もややこしい。
Staircase
// Complete the staircase function below.
func staircase(n int32) {
    step := int(n)
    for i := 1; i <= step; i++ {
        for j := 1; j <= step - i; j++ {
            fmt.Print(" ")
        }
        for k := 1; k <= i; k++ {
            fmt.Print("#")
        }
        fmt.Println("")
    }
}

-> 1-origin 2次元配列の出力

gooseの事始めで躓いた

Gooseって?

github.com

Goose is a database migration tool. Manage your database schema by creating incremental SQL changes or Go functions.

 

事象と対応流れ
  • MysqlでDB作成
  • user作って権限付与
  • gooseからgoose up実行
  • 何かがおかしい。goose upできない
  • 権限修正
  • テーブル消す
  • 再度goose up
  • 修正完了
吐かれたエラー

といっても、mysql側でユーザを作ったときに、適切な権限付与を怠ったせい。

goose run: Error 1142: 
INSERT command denied to user 'user'@'localhost' for table 'goose_db_version'

-> ただただuserへの権限付与がちゃんとできていなかっただけ

goose run: Error 1050: 
Table 'goose_db_version' already exists

-> 問題はこいつ

原因

mysqlで作ったユーザがCREATE TABLEの権限だけ持っていて、その状態でgoose upしたもんだから

  • goose_db_versionのテーブルはある。
  • INSERTされていないので行が入らない

という、goose側から見て整合性が保てていない状態になってしまっていた。

対応

めんどくさいので、全部の権限を作成したユーザに付与

GRANT ALL ON gwatest.* TO 'user'@'localhost';

つぎに、goose_db_versionテーブルを削除

DROP TABLE goose_db_version

そのあと、goose upを再度起動

goose  mysql "user:password@/gwatest?parseTime=true" up

これからAWSを触ろうとする人こそ、IAM本を読もう

はじめに:最近話題のIAM本を読みました

読者モニターの抽選に当たりました。やったぜ。

なんと、本当にありがたいことに、著者ご本人様よりキャンペーンのご案内が!!懺悔したらリプが飛んできました。即応募。 そんなこんなで、僭越ながら「IAM本」書評記事、書いてまいります

もくじ

この本を読むモチベーションについて

※このセクション、ポエムです

ぼくらはリソースを借りているにすぎないし、危ない借り方なんかしちゃいかん

当たり前なのだが、クラウドの計算リソースをお金を払って借りている。 計算リソースといってもコンピュータなので、安いわけではない。

ただ、問題なのが、最近プログラミングはじめました→AWSいじってみたいです!みたいな人がいたときに、

  • サーバー代の相場がわからないのでリソースを借りる際のコストの想定が困難*1
  • アクセスキーなど、認証・認可・権限まわりに対して理解が浅い可能性あり
  • etc..

といった状態に陥ってしまう懸念がある。 もっともクリティカルな問題が上から2番目で、IAMのアクセスキーをGithubに誤ミットしてAWSが不正利用されて、100万円請求されたという問題が発生している。*2(これについてはIAM本内で言及あり) てなわけで、自分の意志とは関係なく勝手に借りられる危険性をはらんでいるという自覚が必要なのである。

時はクラウド時代、セキュリティの知識と実践方法を更新せねば

もうクラウドが当たり前な時代になったので「ミスってAWSに100万請求されそうになるなら自前で」というわけにもいかない。 クラウドリソースは当たり前のように使うし、クラウドネイティブなアーキテクチャも当たり前になっていく。 これからの”当たり前”を”安全に”使えるようなナレッジは、どうしても必要なのである。 そして、AWSのセキュリティは、IAMの運用・設計が適切がどうかにかかっているのである!

AWSを扱う上でセキュリティは最重要項目の一つであり、AWSのセキュリティの半分はIAMの適切な設計と運用に掛かっていると言っても過言ではありません。 出典:IAMのマニアックな話 佐々木拓郎著

IAM本の守備範囲

ここから「IAM本」のおはなし

1章から3章まででIAMの概要とIAMユーザの作成

まず、IAMの概要とチュートリアルがあり、ここまでは

books.rakuten.co.jp

こちらでもある程度言及されている。(AWSアカウント作成手順などはIAM本では言及されないので注意) そしてIAM本の親切なポイントが、 * 「ポリシーの作成 → グループの作成 → ユーザの作成」 という順でチュートリアルを組んでいる点である。これによって、「いきなりIAMを作って権限を直接付与するとあとあと管理がめんどくさくなる」という問題を回避できる。

4章からはIAM運用のプラクティスについて

当たり前だが、IAM(Identity and Access Management)に特化しているので、”安全”かつ"効率的に"というところまで言及している。 具体的には、

などである。 どれも実践的な内容なので「理屈はわかるが、手が動かない」という部分がスルッと解消される*3

やはり、この本のすごいところは実践的なプラクティスの多さだと思う。 デザインパターンごとのユースケースに言及しているところがとてもありがたい(ありがたい)。 第7章のIAMの運用も、「現実に即した運用」をテーマにしているので、知識を実戦投入しやすい。

なんと親切な付録A

ここでは、アカウント開設時に設定すべき項目のチェックリストが掲載されている。 IAMグループ、IAMユーザの作成を含め12項目挙げられている*4。 これからAWSを触る人向けの親切設計!!

IAM本で得られるもの

  • IAM管理の必要性
  • IAMユーザとグループの作成、ポリシーとロールの付与
  • デザインパターンに沿ったIAMユーザ・グループの設計方法
  • デザインパターンごとのユースケース
  • MFA使ってないユーザの権限を制限する方法
  • IAM管理に求められるセキュリティ要件の知識
  • CloudFormationによるポリシー付与のテンプレート化

IAM本で得られないもの

  • AWSアカウントの作成方法(まあいらんやろ)
  • IAMの認証系の内部構造

まとめ:これからAWSを触ろうとする人こそ、IAM本を読もう

本書は、AWS・IAMを効率的に安全な状態で保ち続けるためのノウハウの提供を目的としている*5。 IAMへの興味の導線は以下のような具合。

  • クラウドが当たり前*6
  • セキュリティについての考え方が少し変わる*7
  • AWSのセキュリティの半分はIAMにかかっている

AWSのサービスそのものは本当に追いつくことが不可能なスピードで変化しているけども、セキュリティの基本的な部分*8が急激に変わることはなさそう。 AWSの入り口として、AWSを安全に使えるようにするのは必須要件になりそうなので、これからAWS触ろうとする人はちゃんとIAM本読みましょう(IAMマニアの称号ももらえるし!!)

booth.pm

*1:AWSの料金体系は、マシン特性や稼働時間によって変わってくるが、プログラミングはじめたてでインフラの知識が少ない状況でこれを読んでもちんぷんかんぷんなのである。https://d1.awsstatic.com/whitepapers/ja_JP/aws_pricing_overview.pdf

*2:これについては、なにも個人利用だけで起こるものではない。普通に企業もやらかしている(ググればいろいろ出てくる)

*3:ただ、AWSはじめましての人向けの超親切ハンズオン形式というわけでもないので、楽天ブックス: Amazon Web Services パターン別構築・運用ガイド 改訂第2版 - NRIネットコム株式会社 - 9784797392579 : 本との併用がよいかも

*4:気になる人はBOOTHでIAM本買いましょう【ダウンロード版】AWSの薄い本 IAMのマニアックな話 - 佐々木拓郎のオンライン本屋 - BOOTH

*5:個人的には、IAM本の立ち位置は「IAMの重要性についての啓蒙」といった見方です。

*6:ちょっと古いが、2017年時点で、サーバー目的のクラウド利用が50%弱である。総務省|平成30年版 情報通信白書|企業におけるクラウドサービスの利用動向

*7:AWSにおいて、ユーザの責任範囲はOSレイヤーよりも上なので、世にいうセキュリティの範疇(たとえば暗号化やファイアウォール)をユーザ側がほとんど包括することにはなる。ただ、不正利用による運用コスト増といったリスク視点が加わったので、”少し変わる”という表現をした

*8:ここでいうセキュリティの基本的な部分は、ユーザ・グループの権限管理等を想定してる。

【A Tour of Go】 Exercise: Loops and Functionsの実験

A Tour Of Gogo-tour-jp.appspot.com

の最初のエクササイズです

2の平方根を求めるときはループ回数5回で精度が追いつく

ループ回数5回でmath.Sqrtと同じ精度になる

package main

import (
    "fmt"
    "math"
)

func Sqrt(x float64) float64 {

    // Zの開始観測値を定義する
    z := float64(1)
 
    // ループ回数
    lp := 5
     
    // ループ回数分、精度を上げる
    for i :=0 ; i < lp ; i++ {
        z -= (z*z - x) / (2*z)
    }
    return z
}

func main() {
    fmt.Println(Sqrt(2)) 
    fmt.Println(math.Sqrt(2)) // 比較用
}
// result

1.4142135623730951
1.4142135623730951
423の平方根を求めるときはループ回数9回で精度が追いつく
package main

import (
    "fmt"
    "math"
)

func Sqrt(x float64) float64 {

    // Zの開始観測値を定義する
    z := float64(1)
 
    // ループ回数
    lp := 9
     
    // ループ回数分、精度を上げる
    for i :=0 ; i < lp ; i++ {
        z -= (z*z - x) / (2*z)
    }
    return z
}

func main() {
    sq := float64(423)
    fmt.Println(Sqrt(sq))
    fmt.Println(math.Sqrt(sq))
}
// result

20.566963801203133
20.566963801203133
123456789の平方根は、ループ回数10回じゃまったく精度が足りない
package main

import (
    "fmt"
    "math"
)

func Sqrt(x float64) float64 {

    // Zの開始観測値を定義する
    z := float64(1)
 
    // ループ回数
    lp := 10
     
    // ループ回数分、精度を上げる
    for i :=0 ; i < lp ; i++ {
        z -= (z*z - x) / (2*z)
    }
    return z
}

func main() {
    sq := float64(123456789)
    fmt.Println(Sqrt(sq))
    fmt.Println(math.Sqrt(sq))
}
// result
120904.41039922157
11111.111060555555

ぜんぜんだめやんけ

調べるのがめんどくなってきたので、精度がmath.Sqrtと一致するループ回数を出力できるよう拡張

package main

import (
    "fmt"
    "math"
)

func Sqrt(x float64) (float64, int) {

    // Zの開始観測値を定義。精度目標はmath.Sqrtの精度に。
    z := float64(1)
    goal := math.Sqrt(x)
    lp := 0
 
    // ループ回数分、精度を上げる
    for {
        z -= (z*z - x) / (2*z)
     
        // 精度がmath.Sqrtの結果と一致したらループを中断する
        if z == goal {
            break
        }
        // ループカウントを更新
        lp++
    }
    return z, lp
}

func main() {
    sq := float64(9997890)
    res, lp := Sqrt(sq)
 
    fmt.Println(lp)
    fmt.Println(res)
    fmt.Println(math.Sqrt(sq))
}
15
3161.944022274904
3161.944022274904

卒検解説<会計編③>

卒検解説<会計編>

 

 

 

1, 29年度第1回(11カリ)

 

第一回はこちら

 

enkdsn.hatenablog.com

 

第二回はこちら

 

enkdsn.hatenablog.com

 

注意!

  1. 問題が多いため、解説はかなり手短です。ご容赦ください。
  2. 会計は専門外です。自分の勉強用に書いているようなものなのであしからず。
  3. 他年度分・他科目は随時製作中です。完成次第リンクを追加します。

問11:繰延資産についての問題 (正解⑤)

何回連続出すのやらわからない繰延資産の問題。10億かけて開業したいけど、初年度だけ財務上の見かけが悪くなってしまう。こうなってしまうと、投資家の目線も株価も心配。。といったときに使えるのが「繰延資産」という項目(という認識なんですけど実際どうなんでしょうか)。以下の5項目が該当。

  • 株式交付費
  • 社債発行費等
  • 創立費
  • 開業費
  • 開発費
  • 前半の選択肢4つがすべて繰延資産であるため答えは⑤。

    問12:資産についての問題 (正解⑤)

    これも前半の選択肢4つがすべて資産に該当するため答えは⑤。建設仮勘定については、一見に資産に見えないが、①工事の完成までにかかるお金をいったん集計しておく②工事完了時に整理するという手続きを踏めるように使うものであり、実務の都合上資産科目になっている。

    問13:払出単価の決定方法についての問題 (正解④)

    方法は4つ

    1. 個別法
    2. 先入先出法
    3. 平均原価法
    4. 売価還元法

    この内「商品仕入れ時に支払い単価を個別に把握し、商品払い出しの都度に一個ずつの支払い単価を確認する」のはどう考えても個別法であるので答えは④。問題に「個別」と書いてあるのに間違える人はいるのだろうか。。。とりあえず、後入先出法が2010年に採用NGになったことが問題に出されることがありそうのでそこは注意

    問14:有価証券の評価方法 (正解①)

    評価方法は3グループに分けられる。

    1. 第1グループ:売買目的
    2. 第2グループ:満期保有の債権、子会社・関連会社の株式、時価把握困難のもの
    3. 第3グループ:上記以外で時価把握可能なもの

    第1グループは、余ったお金を運用しているから本業にはあまり関係ない。したがって、いつでも売ってしまって構わないから時価で評価する。第2グループは、「子会社の株をいつでも売っていい」などと狂ったことはできないので、時価という要素があまり意味を持たない。したがって、取得原価で評価する。第3グループは、時価把握可能なものを振り分けているのだから、時価として考えて構わないだろう(あまりよろしくはないけど)。問題では、「取得原価」と「償却原価」で別れているが、(イ)は債権なので「償却」を充てる。したがって答えは①

    問15:試算表についての問題 (正解④)

    試算表は転記の手続きが正確に行われたことを確かめるために、元帳のすべての勘定の金額を集めて、間違いがないか検証するものである。最終行にある借方と貸方の合計金額が違っていれば、転記をミスっているし、合計金額が等しければ転記はちゃんと出来ている。ただし見つけられるのは「計算上の間違い」であるため、②は試算表では見抜けない(反対に転記しても合計金額は変わらない)。答えは④

    問16:会社法の連結情報についての問題 (正解③)

    連結情報については、金商法の枠と会社法の枠が存在する。金商法は投資者を守るのが趣旨であるから、その分情報量が多い。金商法の枠にのみ入るのが、①連結包括利益計算書と②連結キャッシュフロー計算書である。よって答えは③

    問17:企業会計原則の一般原則についての問題(正解②)

    ハブられていることを強調される重要性の原則が可哀想な問題。一般原則は7つ

    • 真実性の原則
    • 正規の簿記の原則
    • 資本と利益の区別の原則
    • 明瞭性の原則
    • 継続性の原則
    • 保守主義の原則
    • 単一性の原則

    重要性の原則がなぜ一般原則の外にあるのか、その正確な事情はわからないが、「一般原則の7つは厳格なルールであるのに対し、重要性の原則は『実務上めんどいやつは簡単なのでいいよ』というゆるいルール」だからとかそんな感じなんじゃないだろうか。。。

    問18:流動負債の計算問題 (答え②)

    以前と少し計算結果が変わります。流動負債は大きな枠組として3つあり、その中に項目がいくつか入ってくる。

    1. 営業上の債務
      • 買掛金
      • 支払手形
      • 電子記録債務
      • 前受金
    2. 営業債務以外
      • 短期借入金
      • 未払金
      • 未払費用
      • 前受収益
      • 預り金
    3. 短期の負債性引当金

    問題文のうち該当するのは、短期借入金、賞与引当金、買掛金、支払い手形なので、すべてを足して208。したがって答えは②。

    問19:繰延資産についての問題 (正解①)

    何回連続出すのやらわからない繰延資産の問題ですが、問題の趣旨が変わりました。繰延資産の性質は

    • 代価の支払いが完了 or 支払うことが確定
    • 支払った分の対価の提供は受けた
    • でも効果は将来にわたって出てくる

    といったものであり、支払い義務が不確定とした①は繰延資産の説明としては正しくない。したがって答えは①

    問20:修繕費についての問題 (正解③)

    修繕費の区分は

    1. 改良のための支出
      • 建物などを長生きさせるもの
      • 建物などの価値を上げるもの(用途変更等も含む)
    2. ”定期的”な支出(補修・修理等)

    となっている。単純な維持管理や一定額以下の支出は修繕費には入らない。とにかく、一過性のものではなく定期的な支出であることが条件となるので、答えは③。

     

     

     

     

    第一回はこちら

     

    enkdsn.hatenablog.com

     

    第二回はこちら

     

    enkdsn.hatenablog.com

     

     

     

     

     

    卒検解説<会計編②>

    卒検解説<会計編>

     

     

     

     

    1, 28年度第二回(11カリ)

     

     第一回はこちら

    enkdsn.hatenablog.com

     第三回はこちら

     

    enkdsn.hatenablog.com

     

    注意!

    1. 問題が多いため、解説はかなり手短です。ご容赦ください。
    2. 会計は専門外です。自分の勉強用に書いているようなものなのであしからず。
    3. 他年度分・他科目は随時製作中です。完成次第リンクを追加します。

    問11:資産についての問題 (正解③)

     借入金は「借金いくら返すの」という話であり、払うべき債務であるから「負債」。よって答えは③。

    問12:有形固定資産の交換についての問題 (正解③)

    検索するといろいろな考え方があるが、財務会計講義では、考え方は①譲渡資産の簿価、②譲渡資産の時価、③受入資産の時価の3通りとした上で、「連続意見書第三」を引き合いに出し、『自己所有の有形資産と交換に有形固定資産を取得した場合には、譲渡資産の適正な簿価をもって取得原価とする』(財務諸表講義第19版、P170)としている。ここでは、「考えられないもの」を選ぶので答えは③。相手の簿記上の価格など、自分の価値尺度と違うのに、自分の簿記に採用してどうするんだという話だと思われる。

    問13:発生主義会計についての問題 (正解②)

    要は、簿記を支えるフレームの話である。 発生主義会計の基本原則は、

    1. 実現原則:収益の話
    2. 発生原則:費用の話
    3. 対応原則:収益から費用を引いたら利益が出るでしょという話

    問題では、どれか一つがわかれば解けるという超お得問題。答えは②。

    問14:企業会計原則の一般原則についての問題(正解②)

    第一回にも登場した、いつもハブられている重要性の原則が可哀想な問題。一般原則は7つ

    1. 真実性の原則
    2. 正規の簿記の原則
    3. 資本と利益の区別の原則
    4. 明瞭性の原則
    5. 継続性の原則
    6. 保守主義の原則
    7. 単一性の原則

    重要性の原則がなぜ一般原則の外にあるのか、その正確な事情はわからないが、「一般原則の7つは厳格なルールであるのに対し、重要性の原則は『実務上めんどいやつは簡単なのでいいよ』というゆるいルール」だからとかそんな感じなんじゃないだろうか。。。

    問15:繰延資産についての問題 (正解②)

    10億かけて開業したいけど、初年度だけ財務上の見かけが悪くなってしまう。こうなってしまうと、投資家の目線も株価も心配。。といったときに使えるのが「繰延資産」という項目(という認識なんですけど実際どうなんでしょうか)。以下の5項目が該当。

  • 株式交付費
  • 社債発行費等
  • 創立費
  • 開業費
  • 開発費
  • 試験研究費が繰延資産に入りそうな雰囲気があるが、確かに以前は許容されていた。しかし「研究開発費等に係る会計基準」により、支出時に費用処理するべきとされるようになった。試験・研究は、実際に現場に導入し利益を得る前段階である。繰延資産が、実際に利益を得られるかどうか、つまり、利益を具体化できるかどうかということに着目していることを考えれば、開発費と分けて考える必要があるということである。このように、今では許容されていない項目は他にもあり、社債発行差金、建設利息がそれにあたる。したがって答えは②

    問16:企業の安全性についての問題 (正解③)

    財務会計講義にはパッと見参考になる記述がなかったです。安全性の探り方は3通りあり、

    1. 資本構造から探る:自己資本比率
    2. 短期での支払い能力から探る:流動比率当座比率
    3. 長期での支払い能力から探る:固定比率、固定長期適合比率

    とにかく、会社が借金ばっかりしてないかとか、いざというときにお金払えるのかといったこと着目するという、言われてみれば当たり前のはなし。これもどれか一つがわかれば解けるお得問題。答えは③

    問17:無形固定資産についての問題 (答え③)

    無形固定資産は大きく分けて3つに分かれる

    1. 特許権などの法律上の権利
    2. ソフトウェア
    3. のれん(営業権)

    選択肢の①には「立法権」などとぶっ飛んだ選択肢があるが、こんなもの会社ごとに付与したら物騒である。選択肢の②は、開発費が繰延資産に入るため答えにならない。選択肢④の「領有権」は中学で習う「領土・領海・領空」、つまり、国レベルの話である。したがって答えは③。

    問18:試算表についての問題 (答え④)

    第一回に引き続き登場。試算表は転記の手続きが正確に行われたことを確かめるために、元帳のすべての勘定の金額を集めて、間違いがないか検証するものである。最終行にある借方と貸方の合計金額が違っていれば、転記をミスっているし、合計金額が等しければ転記はちゃんと出来ている。ただし見つけられるのは「計算上の間違い」であるため、②は試算表では見抜けない(反対に転記しても合計金額は変わらない)。答えは④

    問19:払出単価の決定方法についての問題 (答え③)

    第一回に引き続き登場。平均と言っているから②か③に絞られるところまではいいのでそこから先の話。総平均法は、1ヶ月または1年度中の棚卸資産の取得原価の合計額をベースに考える。対して移動平均法は、棚卸資産を受け入れる都度、今ある在庫と合わせてベースを考える。前者が一夜漬け派、後者がコツコツ派。よって答えは③

    問20:流動負債の計算問題 (答え④)

    最後も第一回と同じ問題。流動負債は大きな枠組として3つあり、その中に項目がいくつか入ってくる。

    1. 営業上の債務
      1. 買掛金
      2. 支払手形
      3. 電子記録債務
      4. 前受金
    2. 営業債務以外
      1. 短期借入金
      2. 未払金
      3. 未払費用
      4. 前受収益
      5. 預り金
    3. 短期の負債性引当金
      1. 賞与引当金
      2. 修繕引当金
      3. 製品保証引当金、工事保証引当金

    問題文のうち該当するのは、短期借入金、賞与引当金、買掛金、支払い手形なので、すべてを足して240。したがって答えは④。

     

     

     

     

     

     

     第一回はこちら

    enkdsn.hatenablog.com

     第三回はこちら

     

    enkdsn.hatenablog.com