安全程序設計語言 | CNCC2021

2022-01-05 程式語言Lab

隨著軟體應用滲透日常生活的各個領域,軟體的高可靠與高安全受到廣泛關注。程序設計語言作為軟體的表示載體和描述工具,對軟體的開發效率和開發質量起決定性作用。本論壇將討論如下問題:1)如何設計安全的程序設計語言?2)如何提供安全加強的軟體開發環境?3)如何進行安全的編程?

如需觀看需要註冊 CCF 帳戶報名,官方訪問連結:

https://conf.ccf.org.cn/web/html15/dayMeetZhibo.html?dayMeetNewsId=8a9e362c7af1ba09017af25055c00001&globalId=m8271748750546083841617255458379

或點擊文末 閱讀原文 跳轉

時間:12 月 17 日 13:30-17:30

地點:在線會議室 v6

時間報告題目講者13:00 - 13:25安全C語言設計與實現左志強13:25 - 13:50從程序驗證到「開發即安全」曹欽翔13:50 - 14:15指令編碼解碼的形式化驗證方法汪宇霆14:15 - 14:40密碼程序安全威脅與形式驗證宋富14:40 - 15:05面向企業級微服務架構程序分析的IR設計狄鵬

賀飛

清華大學長聘副教授,博士生導師,CCF形式化專委會常務委員

主要研究程序驗證理論、方法、工具及應用。開發了模型檢測和軟體驗證工具,並應用於航空、航天、高鐵等國家重大安全領域。在包括POPL, CAV, PLDI, OOPSLA, ICSE, ESEC/FSE, ASE等在內的國際重要會議和期刊上發表論文70餘篇。主持和參與國家973項目、自然科學基金重大項目、科技支撐計劃項目、重點研發項目等10餘項。任《Theory of Computing Systems》編委,CONCUR, FMCAD, SAT, APLAS, ICECCS, SETTA等國際學術會議程序委員會委員。

擔任ARINC653國際作業系統標準委員會委員、中國計算機學會(CCF)高級會員、CCF系統軟體專委會和形式化方法專委會委員。曾任國際標準化組織 ISO/IEC JTC1 SOA研究組組長、新加坡南洋理工大學高級研究員。主要研究方向包括作業系統安全、形式邏輯與驗證、程式語言原理等。主持和參與國家自然基金重點項目、核高基重大專項、重點研發計劃等項目十餘項,2011和2017年分別獲得中國電子學會和山東省科技進步一等獎。

報告題目:安全C語言設計與實現

報告摘要:進入資訊時代,軟體已然成為現代社會的重要基礎設施。確保軟體安全可信,對維護信息安全以及社會生產具有重要意義。然而隨著軟體功能日趨複雜,規模日益增大,軟體的安全可信面臨愈加嚴峻的挑戰,如何確保大規模軟體的安全性,已然成為學術界、企業及政府高度關注的課題。本次報告重點介紹我們在安全C語言設計與實現方面的工作。在已有C語言的基礎上,通過增加新類型,並結合動態、靜態分析及編譯技術,最終在程式語言與編譯器層面保證軟體安全。

個人簡介:於新加坡國立大學獲博士學位,曾在美國加州大學歐文分校從事博士後研究。科研工作聚焦於系統軟體的可信保障與優化,在系統化程序分析、軟硬體協同的編譯器優化設計等方面取得重要進展,創新性工作以第一和通訊作者發表在包括PLDI、OOPSLA、EuroSys、ACM TOCS等國際重要學術會議和期刊上;獨立研發並開源多個系統軟體分析及優化系統,並已在華為、阿里等多個企業成功實現轉化與應用;擔任PLDI2022、FSE2022、IEEE TSE等多個國際重要學術會議程序委員及期刊審稿人。

曹欽翔

上海交通大學約翰霍普克洛夫特計算機科學中心助理教授、博導

報告題目:從程序驗證到「開發即安全」

報告摘要:交互式定理證明技術是驗證程序複雜性質的重要手段,其主要思想是在現有自動化驗證工具無力完成驗證工作的情況下,由人提供額外信息從而輔助驗證工具「理解」程序並驗證其功能以及安全性。經過探索,這一程序驗證技術可以嵌入程序開發環境,從而實現「開發即安全」。本報告將介紹 Verified Software Toolchain(VST)工具,該工具以交互式定理證明技術為基礎,集成了學術界在程序邏輯等諸多方面的理論研究前沿成果,可用於驗證複雜 C 語言程序的功能正確性與安全性,排查空指針引用漏洞、緩衝區溢出錯誤、並發數據訪問競爭等各種問題。

個人簡介:曹欽翔,本科畢業於北京大學,博士畢業於美國普林斯頓大學,2018年回國任教,現為上海交通大學約翰霍普克洛夫特計算機科學中心助理教授、博導。其長期從事基於交互式定理證明的程序驗證工具開發,並研究有關程序邏輯特別是分離邏輯的理論問題。曹欽翔是Verified Software Toolchain(VST)工具的主要開發者之一,首次實現了從業務邏輯,到原始碼開發,再到編譯的全鏈條正確性驗證。

汪宇霆

上海交通大學John Hopcroft計算機科學中心副教授

報告題目:指令編碼解碼的形式化驗證方法

報告摘要:機器指令的編碼和解碼規範是計算機體系結構中不可或缺的組成部分,從中衍生出的編碼解碼算法被廣泛應用於各類處理機器代碼的程序,包括編譯器、彙編器、二進位程序分析軟體等。使用形式化方法保障指令編碼解碼的正確性,對於從根本上提高這些程序的可靠性有重要意義。已有的該類方法存在一個本質缺陷:它們基於傳統的、允許二義性的詞法和語法分析,無法保證編碼和解碼算法互為逆過程,而這個性質對於確保二進位機器碼運行的正確性至關重要。該問題導致已有的指令編碼解碼驗證結果無法被應用於大多數實際程序。我們提出了一種新型的機器指令規約語言CSLED,其基於一種不帶二義性的指令規約模型,可精確表達複雜體系結構中的指令格式。在此基礎上,我們提出了一系列算法,從該語言描述的指令規約中自動提取編碼解碼過程,以及兩者互為逆過程的形式化證明。該方法已被成功應用於驗證CompCert可信編譯器的X86彙編器後端。

個人簡介:上海交通大學John Hopcroft計算機科學中心副教授,此前於美國耶魯大學計算機系擔任博士後研究員,博士畢業於美國明尼蘇達大學雙城分校。長期從事形式化方法方面研究,內容涵蓋形式化驗證和程序設計語言的理論基礎(包括證明論、類型論、邏輯框架等)以及它們在關鍵性系統軟體(如編譯器和作業系統)中的應用,代表性研究成果以發表於形式化驗證和程序設計語言的頂級國際會議(如POPL、CAV、OOPSLA、ESOP等)。此外,還致力於開發基於證明理論的定理證明工具,作為主要設計人員之一參與開發了基於高階抽象語法的新型定理證明工具Abella(http://abella-prover.org),其已被成功應用於程序設計語言學術界的多個研究項目。

報告題目:密碼程序安全威脅與形式驗證

報告摘要:本報告介紹密碼程序實現所面臨的安全威脅,包括時間側信道、功耗側信道、緩存側信道、故障注入等,總結面向安全威脅的形式驗證技術與挑戰,最後探討我們的一些想法。

個人簡介:宋富,上海科技大學常任副教授、研究員、博導,系統與安全中心主任。宋富博士於2013年4月獲得巴黎大學(原巴黎狄德羅大學)計算機科學博士學位,同年8月加入華東師範大學任講師,2016年1月破格晉升為副研究員,於2015年分別榮獲上海市「浦江人才」和上海市「晨光學者」稱號。2016年8月全職加入上海科技大學信息科學與技術學院,擔任tenure-track助理教授、研究員,2021年7月晉升為常任副教授。研究領域包括模型檢驗、程序分析與驗證、系統和AI安全,已在國際一流期刊和會議發表60多篇論文,如:IEEE TSE, ACM TOSEM, CAV, ICSE, ISSTA, S&P等。

報告題目:面向企業級微服務架構程序分析的IR設計

報告摘要:微服務是面向服務體系結構的最新發展趨勢和研究熱點,已經在工業實踐中形成了廣泛的應用。據統計,螞蟻集團在2019年一年就提交了4億行的基於微服務的代碼。因此,微服務應用的安全性和可靠性時時刻刻影響著每一位網際網路用戶,正受到日益增長的關注。然而,作為軟體安全的重要手段,程序分析往往難以應用到企業級微服務中,這是由系統的複雜性和龐大的代碼量導致。Yannis在PLDI『20就曾指出當前並沒有一個很好的程序分析算法或框架,能在企業級微服務應用上得到一個全面令人滿意的結果。針對這一問題,我們根據在螞蟻大規模程序數據的實戰經驗,構思通過構建面向微服務的輕量彈性中間表達,重構數據驅動的微服務程序分析能力,滿足可擴展性、多語言支持、基礎分析模塊化復用、開放生態等能力,並應用於工業DevSecOps的開發流程中。未來希望能依此為基礎,形成新的開發模式生態。我們非常高興能分享在螞蟻程序分析的經驗,並將挑戰問題和同業者探討。

個人簡介:狄鵬,螞蟻技術研究院可靠計算和軟體工程實驗室研究員,中國科學院兼職研究員,澳大利亞新南威爾斯大學兼職高級講師。狄鵬博士研究軟體領域多年,其研究成果近年連續發布在PLDI、Micro等頂級學術會議。狄鵬和他的團隊致力於研究軟體分析、安全、可靠性等領域的前沿課題,聚焦打造螞蟻新一代面向雲側企業級應用的軟體分析研發系統,為螞蟻集團數億行代碼構成的複雜軟體系統的安全性保駕護航,並構建新一代的DevSecOps開發生態,提高雲應用安全開發的效率。

相關焦點

  • 迎接數位化轉型的安全挑戰 | CNCC2021
    題目:「姚氏混淆電路的具體安全性和高性能實現」摘要:姚氏混淆電路(Yao’s garbled circuit)由姚期智院士於上世紀80年代提出,是安全多方計算的主流技術路線之一。本報告介紹當前最流行的基於free XOR和half gate的安全多方計算協議的證明、基於AES的實例化和優化實現。
  • 關於發布CNCC2021技術論壇的公告
    經CNCC2021論壇委員會審核,CNCC2021共計108個技術論壇獲得通過,現予以公布。所有獲批的技術論壇詳見下面「CNCC2021技術論壇列表」。本次技術論壇徵集,共收到140+申請,質量較高,經論壇評審委員會評審通過的技術論壇涉及32個方向,如下圖所示。
  • 彙編語言是一種什麼程序設計語言?
    彙編器(assembler)是一種工具程序,用於將彙編語言源程序轉換為機器語言。連結器(linker)也是一種工具程序,它把彙編器生成的單個文件組合為一個可執行程序。還有一個相關的工具,稱為調試器(debugger),使程式設計師可以在程序運行時,單步執行程序並檢查寄存器和內存狀態。需要哪些硬體和軟體?
  • CNCC技術論壇|新型硬體環境下大數據處理技術
    教育部長江學者特聘教授,國家傑出青年基金獲得者;CCF會士、學術工委副主任、信息存儲技術專業委員會副主任,災備技術國家工程實驗室副主任,清華大學信息學院學術委員會委員;擔任《ACM Transactions on Storage》的Associate Editor和《計算機學報》、《軟體學報》、《計算機研究與發展》期刊編委;主要研究領域為網絡(/雲/大數據)存儲系統、新型NVM存儲系統與技術、存儲可靠性與安全
  • 人工智慧系 | 電腦程式設計語言介紹——C語言
    一、簡介C語言是一種電腦程式設計語言。它既有高級語言的特點,又具有彙編語言的特點。它可以作為系統設計語言,編寫工作系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。馮.諾依曼在1945年提出了現代計算機的若干思想,被後人稱為馮.諾依曼思想,這是計算機發展史上的裡程碑。
  • 【清華大學】C++語言程序設計進階
    》(可以登錄學堂在線平臺搜索課程名)課程簡介C++是從C語言發展演變而來的一種面向對象的程序設計語言。面向對象的程序設計方法將數據及對數據的操作方法封裝在一起,作為一個相互依存、不可分離的整體——對象。對同類型對象抽象出其共性,形成類。類通過外部接口,與外界發生關係,對象與對象之間通過消息進行通訊。這樣,程序模塊間的關係簡單,程序模塊的獨立性、數據的安全性具有良好的保障,通過繼承與多態性,使程序具有很高的可重用性,使得軟體的開發和維護都更為方便。
  • 2021年程式語言的發展趨勢
    根據最新的統計結果來看,Java老大的位置暫時沒變,但是C++有超越Java的趨勢,在新的一年裡,是否能成為程式語言排行榜榜首呢?下面我們就來看看具體的數據統計吧!程式語言比例(市場份額)從圖中可見,Java雖然穩居市場佔有率第一名的位置。
  • 國產CPU、能效性能基準工具 | CNCC2021
    同時,在工具研發過程中形成了一套公平、合理、科學的Benchmark設計方法論,也基於開發的工具對眾多主流計算平臺進行了性能評估與分析。計算性能基準評測與優化體系的建立對國產計算產業的發展具有重要的牽引意義。清華大學計算機系高性能所教授,主要研究領域為作業系統、程序設計語言與並行計算。現為CCF副秘書長,CCF傑出會員,YOCSEF榮譽委員。
  • 安全人員必看!OWASP Top 10 2021 榜單出爐!
    A03:2021年,注入(Injection)下滑到第三位。94%的應用程式都測試了某種形式的注入,注入類別中如今包括跨站腳本。映射到該類別的33個CWE在應用程式中出現次數第二多。A04:不安全設計(Insecure Design)是2021年出現的新類別,並且一出場就高居第四位。
  • 乾貨 | 最新軟體工程、系統軟體、程序語言設期刊及會議大全
    這裡是新一期的《百科全解》,科服為大家帶來了最新軟體工程、系統軟體、程序語言設期刊及會議大全(2021版),其中包括24個期刊和54個會議。計算機相關專業的同學,快來抱走這份資源吧!另外,《百科全解》正在持續出新,歡迎大家關注西南大學科研服務站,領取第一手資源!
  • 程序設計入門—Java語言 免費學習教程
    教程介紹         程序設計是一門基礎課程。對於計算機相關專業而言,程序設計是專業基礎知識,是進一步學習其他專業知識的第一步階梯;對於非計算機專業而言,程序設計的學習有助於理解計算機的能力所在,理解哪些是計算機擅長解決的問題,怎樣的方式方法是計算機擅長的手段,從而能更好地利用計算機來解決本專業領域內的問題。
  • C語言程序設計複習題
    C語言源程序可以直接在DOS環境中運行B.Turbo C系統不提供編譯和連接C 程序的功能C.編譯C語言源程序得到目標程序可以直接在DOS環境中運行D.C語言源程序連接得到的可執行程序可以直接在DOS環境中運行20、下列敘述錯誤的是DA.break語句可以使程序從switch語句中跳出來B.continue 語句是為了結束本次循環
  • C語言程序設計視頻教程C++
    計算機作業系統/組成原理/數據結構視頻教程 自學考研課程 嚴蔚敏大學計算機專業視頻教程173門C語言JAVE網絡電腦自學零基礎課程計算機專業視頻課程計算機原理人工智慧導論/軟體工程/java/c++等20AP微積分物理心理統計化學生物歷史計算機微觀經濟網課課程視頻AI人工智慧視頻教程python深度學習計算機視覺機器人工程師課程
  • MATLAB程序設計語言(1)---入門
    80年代初,Steve Bangert主持開發了解釋器程序,Steve Kleiman完成了圖形功能設計,John Little和Cleve Moler主持開發了數學分析模塊,編寫了用戶指南,形成了MATLAB的第一個商業版。5.0版後,MATLAB引入了更多的數據結構,如多維矩陣等,使其更易於使用。5.3版本後,MATLAB核心由Fortran轉為了C語言。
  • 2021年排名前10程式語言,c語言程序代碼編寫規範
    最好是的方式是應用語言專用工具。世界上數百種語言。每一種都是有自身的特性、環境、旋律和節奏感。每一個人都會有自身的實質。可是,你有沒有想過世界上最流行的語言是什麼?使我們一起來看看:1.Mandarin普通話水平我國近14億人口數量,是聯合國組織的六種官方網語言之一。這類語言有1200千萬種。它在我國的北邊和南部被普遍應用。這類語言來自漢藏語系。
  • 深入理解C語言語法和程序設計
    以Linux平臺為載體全面深入地介紹C語言的語法和程序的工作原理,另一條線索是介紹程序設計的基本思想和開發調試方法。
  • 微軟推出新語言Bosque,超越結構化程序設計
    作者微軟計算機科學家 Mark Marron 致力於消除編程過程中出現的各種複雜情況,創造出了他認為超越主流結構化程序設計的 Bosque 這一語言。結構化程序設計現在隨處可見,不管你用的是 C/C++,還是 Java、Python 與 Golang 等程式語言,在開發過程中使用的基本都是這一程序設計思想,它最初是為了替換掉程序中弊大於利的 goto 語法而產生的。研究者使用結構化程序設計思想中的循環、順序與選擇等設計,最終完全替換掉了 goto 指令,並且這樣的編程思想也一直流行至今。
  • 2021年3月安全公告
    是德國Shopware公司的一套開源電子商務軟體。解決建議:目前廠商已發布升級補丁以修復漏洞,補丁獲取連結:https://aramido.de/blog/sicherheitshinweise/sicherheitswarnung-amazon-secret-key-offentlich-einsehbar-cve-2020-28199WordPress
  • Python3.9.0,一種跨平臺的程序設計語言
    2020年新版微信和以往已經大不同,公眾號文章顯示順序發生了變化,為了防止大家看不到小糖的新消息,現在只需「星⭐標」一下公眾號💗,即可準確、快速地收到小糖的最新玩機技巧😋Python 3.9.0Python是一種跨平臺的電腦程式設計語言。是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。
  • 安全通告2021年第3期
    目前,廠商已經發布了上述漏洞的修補程序。CNVD提醒用戶及時下載補丁更新,避免引發漏洞相關的網絡安全事件。目前,廠商已經發布了上述漏洞的修補程序。CNVD提醒用戶及時下載補丁更新,避免引發漏洞相關的網絡安全事件。