ソースコードセキュリティを 自動的に向上させる方法 Ben Chelf CTO.

Slides:



Advertisements
Similar presentations
だい六か – クリスマスとお正月 ぶんぽう. て form review ► Group 1 Verbs ► Have two or more ひらがな in the verb stem AND ► The final sound of the verb stem is from the い row.
Advertisements

Humble and Honorific Language By: Word-Master Leo, Mixer of Ill Beats.
て -form - Making て -form from ます -form -. With て -form, You can say... ~てもいいですか? (= May I do…) ~てください。 (= Please do…) ~ています。 (= am/is/are doing…) Connecting.
VE 01 え form What is え form? え? You can do that many things with え form?
Quiz Tomorrow! Answer in Japanese as best you can. Ask Sensei to write vocab on the board. Use your TE/TA-Form tools. 日本と第二次大戦(だいにじたいせん)について、なにをしっている?
The Bar バー.
英語勉強会.
 辞書系(じしょけい).
Chapter 11 Queues 行列.
日本語... ジェパディー! This is a template for you to use in your classroom.
と.
Goal: I will understand the goal and summative assessent for Chapter 2
Brittany Jonson†, Yoonki Song†, Emerson Murphy-Hill†, Robert Bowdidge‡
絶対だよ! 助動詞 must「~しなければならない」.
Chris Burgess (1号館1308研究室、内線164)
What did you do, mate? Plain-Past
Verb Plain Negativeform
Training on Planning & Setting Goals
Only One Flower in the World
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
Noun の 間(に) + Adjective Verb てform + いる間(に) during/while.
Japanese verbs informal forms
Windows Summit /6/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Nagoya University Global 30 program
V 03 I do NOT eat sushi. I do NOT do sumo.
A 02 I like sushi! I like origami!
日本語3 4月26日 漢字ゲス 出会い How do people meet? お見合いは何ですか?
にほんご JPN101 Sep. 23, 2009 (Wednesday).
十年生の 日本語 Year 10 Writing Portfolio
Reasonので + Consequence clause
Unit Book 10_课件_U1_Reading2-8 4 Word power university 1.
定期考査2 英語.
Did he/she just say that? Get your head out of the gutter! Oh wait….
On / in / at Honoka Tanno.
“You Should Go To Kyoto”
ストップウォッチの カード ストップウォッチの カード
Starter: Write the following dates in Mandarin
Session 8: How can you present your research?
1 Point! 2 Points! 3 Points! 4 Points! 5 Points!!
ソフトウェアデザイン工学 EPMの適用結果報告
WLTC Mode Construction
-Get test signed and make corrections
Term paper, Report (1st, first)
完了を表す現在完了形 ~してしまった.
Where is Wumpus Propositional logic (cont…) Reasoning where is wumpus
Kamishibai かみしばい Tanabata 七夕
Kamishibai かみしばい Tanabata 七夕
My Favorite Japanese Rock
There is/are X (living thing)
Part time jobs in restaurant
Question Words….
クイズやゲーム形式で紹介した実例です。いずれも過去のインターン作です。
いくらですか?.
2019/4/22 Warm-up ※Warm-up 1~3には、小学校外国語活動「アルファベットを探そう」(H26年度、神埼小学校におけるSTの授業実践)で、5年生が撮影した写真を使用しています(授業者より使用許諾済)。
Term paper, report (2nd, final)
ー生命倫理の授業を通して生徒の意識に何が生じたかー
The difference between adjectives and adverbs
Created by L. Whittingham
英語音声学(7) 音連結.
Please don’t… …so as not to…
Cluster EG Face To Face meeting
~て しまう.
あいさつ.
Term paper, report (2nd, final)
米国政府との取引について Doing Business With the U.S. Government
Examination Study Plan Pages ★ REVIEW PLAN DO
Examination Study Plan Pages ★ REVIEW PLAN DO
BW: 英語で書いて下さい 1)小さくする 2)うるさく話す 3)大きく書く 4)上手になる (なる=become)
Cluster EG Face To Face meeting 3rd
Improving Strategic Play in Shogi by Using Move Sequence Trees
Presentation transcript:

ソースコードセキュリティを 自動的に向上させる方法 Ben Chelf CTO

Coverity Confidential: Do not distribute 10,000 フィートビュー マジック静的アナライザボックス データフロー分析、ポインタエイリアス分析、抽象的解釈、モデルチェック、フローセンシティブ、フローインセンシティブ、コンテキストセンシティブ、コンテキストインセンシティブ、インタープロシージュラル、イントラプロシージュラル、制限の解除 PHP Code セキュリティの 脆弱性 C Code Java Code C++ Code Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute 着目点 - What to look for? { strcpy(dest, src); } Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute 着目点 - What to look for? { char src[100]; char dest[50]; strcpy(dest, src); } Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute 着目点 - What to look for? { char src[50]; char dest[50]; strcpy(dest, src); } Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute 着目点 - What to look for? { char src[50]; char dest[50]; src[sizeof(dest) – 1] = 0; strcpy(dest, src); } Coverity Confidential: Do not distribute

システム構築ライフサイクル早期において問題発見 スタティック分析ツールの有用性 ソフトウェア開発プロセス デザイン コーディング インテグレート QA リリース Static Analysis 有用な点 システム構築ライフサイクル早期において問題発見 テストケースの必要が無い コードの行を指し示す 規則正しい動作 バグ What is Static Analysis Fits seamlessly in early part of SDLC Works on the source code You may have heard of Lint Benefits of Static Analysis Systematic Early detection in SDLC is cheaper No test cases are required Points to the root cause of the problem so faster to fix a reported bug Find Bugs as you are coding: Ideal Technology?? No, problems with most static analysis tools Hard to integrate – some solutions require weeks of integration time Requires lots of configuration to get right – spend a lot of time configuring and tuning the system to get it to work right Results were poor. - The more sophisticated the analysis, the more intractable the performance became. Scalability – can’t do a sophisticated analysis without exponential explosion in calculation time Coverage (paths) – have to usually compromise on coverage to get scalability False positives – analysis not smart enough to deal with different types of code Points to warnings or potential problems rather than bugs What’s the result: With other static analysis tools, quality of results don’t justify investment SHELFWARE. Or you need an army of developers to get the tool to work and to continue its use in your company. セキュリティの 脆弱性 Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Yang, Kremenek, Xie, Engler (2003) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Yang, Kremenek, Xie, Engler (2003) Huang, Yu, Hang, Tsai, Lee (2004) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Yang, Kremenek, Xie, Engler (2003) Huang, Yu, Hang, Tsai, Lee (2004) Livshits and Lam (2005) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Yang, Kremenek, Xie, Engler (2003) Huang, Yu, Hang, Tsai, Lee (2004) Livshits and Lam (2005) Xie and Aiken (2006) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Yang, Kremenek, Xie, Engler (2003) Huang, Yu, Hang, Tsai, Lee (2004) Livshits and Lam (2005) Xie and Aiken (2006) Jovanovic, Kuregel, Kirda (2006) Coverity Confidential: Do not distribute

リサーチテクニック (not exhaustive) Shankar, Talwar, Foster, Wagner (2001) Ashcraft, Engler (2002) Yang, Kremenek, Xie, Engler (2003) Huang, Yu, Hang, Tsai, Lee (2004) Livshits and Lam (2005) Xie and Aiken (2006) Jovanovic, Kuregel, Kirda (2006) …他多数 Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute 実世界で活用する システムの構築 コード解析 分析時間 コードの構成 ノイズと誤検出 何を報告するか 結果の再確認 PHP Code C Code Java Code C++ Code Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute 邪悪なテトリス /* * Set times to 0 except for * high score on each level. */ for (i = MINLEVEL; i < NLEVELS; i++)   levelfound[i] = 0; for (i = 0, sp = scores; i < nscores; i++, sp++) {   if (levelfound[sp->hs_level])     sp->hs_time = 0;   else {     sp->hs_time = 1;     levelfound[sp->hs_level] = 1;   } } Game over indeed Coverity Confidential: Do not distribute

Coverity Confidential: Do not distribute Do you use X? if (getuid() != 0 && geteuid == 0) {      ErrorF(“only root”);       exit(1); } 括弧が無い場合、コードはlibc内のgeteuidファンクションが、Address 0以外のところに読み込まれたかをチェックし(ほぼそうなるとと確証するが)全ユーザーに対しリスクの高いオプションを許可することが安全だと報告する為、セキュリティホールが生みだされる。 - Alan Coopersmith, Sun Developer Coverity Confidential: Do not distribute