Rozhraní Bezpečnost vícejazyčný software


Original: http://www.cse.lehigh.edu/~gtan/projects/multilingual.html

Většina reálných softwarových systémů jsou vícejazyčné, to znamená, že se skládají z komponent vyvinutých v různých programovacích jazycích. Vícejazyčné softwarové systémy jsou vhodné v praxi. Vývojáři mohou použít existující moduly kódu, a mohou také kombinovat přednosti různých jazycích. Jako příklad si představte, že developer má v úmyslu provádět kompresi dat v Javě. Místo psaní veškerý kód pro kompresi dat od nuly, může se znovu použít existující zlib knihovnu C a napsat tenký rozhraní mezi Java a C, přes Java Native Interface (JNI). Ve skutečnosti je to přesně tak, jak Sun JDK implementuje třídy pod java.util.zip.

Ačkoli vícejazyčné softwarové systémy jsou vhodné pro vývojáře a všudypřítomný v praxi je obtížné psát bezpečný a spolehlivý vícejazyčný software. To obvykle vyžaduje, aby programátoři pečlivě brát v úvahu rozdíly mezi jazyky v otázkách, jako jsou jazykové prvky, rozvržení dat, správa paměti, bezpečnost / zabezpečení předpokladů, a mnoho dalších. Jako příklad, Java má vestavěnou podporu pro výjimky a zpracování výjimek, zatímco C není. Proto, když vývojáři psát software, který se skládá z obou Java a C, kód C má pro kontrolu výjimky v každém možném místě, kde se mohou vyskytnout, a poskytuje kód pro zpracování je. Pokud tak neučiníte, může dojít k poškození paměti tiché. Lze si snadno představit, je to velmi náchylné k chybám proces.

Zaměřeno na bezpečnost a spolehlivost otázky vícejazyčný software Tento projekt si klade za cíl

  • Proveďte mezi jazykovou analýzu stávajícího vícejazyčného software pro rozpoznání a odstranění bezpečnostní chyby kritické, a pro provádění inter-jazyk optimalizace;
  • Stanovit sémantiku jazyka součinnosti (v rámcích, jako JNI a Net.);
  • Navrhnout mechanismy, které usnadňují psaní spolehlivý vícejazyčný software.


Publikace

  • JNI Light: funkční model pro Core JNI. G. Tan. Se objeví v matematické struktury v informatice. Přijato. 2012. [Papír]
  • JATO: Nativní kód Atomicity pro Javu. S. Li, Y. Liu a G. Tan. V 10. Asijské sympoziu o programovacích jazyků a systémů (APLAS), prosinec 2012. [Papír]
  • JET: Výjimka kontrola v Java Native Interface. S. a G. Li Tan. Chcete-li se v ACM SIGPLAN Mezinárodní konference o objektově orientované programování, systémy, jazyků a aplikací (OOPSLA ’11), říjen 2011. [Papír]


  • Nalezení chyby ve výjimečných situacích programů JNI. S. a G. Li Tan. V 16. konferenci ACM o počítačové a komunikační bezpečnosti (CCS ’09), listopad 2009. [Papír]


Empirická Bezpečnost Studium nativního kódu v JDK. Gang Tan a Jason Croft. V USENIX Security 2008, San Jose, Kalifornie, USA, červenec 2008. Společník technická zpráva obsahuje podrobný popis chyb, které jsme určili.

ILEA: Inter-jazykový rozbor přes Java a C. Gang Tan a Greg Morrisett. V konferenci ACM na objektově orientované programování, systémy, jazyků a aplikací (OOPSLA), Montreal, 10. 2007.
Bezpečnost Analýza nativního kódu v JDK Sunu. Jason Croft a Gang Tan. V 23. výroční konferenci o bezpečnosti počítačových aplikací (ACSAC), work-in-progress zasedání 12. 2007.

Bezpečné Java Native Interface. Gang Tan, Andrew W. Appel, śrīmat Chakradhar, Anand Raghunathan, Srivaths Ravi a Daniel Wang. V IEEE Mezinárodní sympozium o Secure Software Engineering (ISSSE 06), str. 97 – 106, březen 2006.

Účastníci

Comments are closed.