Preview

Труды Института системного программирования РАН

Расширенный поиск

Подход к анализу помеченных данных в статическом анализаторе Svace

https://doi.org/10.15514/ISPRAS-2025-37(6)-53

Аннотация

Многие уязвимости программного обеспечения вызваны непроверенными данными, которые программы получают из небезопасных источников и использует затем в критических операциях. Обнаружение дефектов подобного рода можно свести к задаче анализа помеченных данных. В нашей работе мы обсуждаем необходимые свойства анализа для практического обнаружения в исходном коде реальных программных проектов ошибок, связанных с небезопасным использованием помеченных данных, и описываем подход, реализованный в рамках инструмента статического анализа Svace.

Об авторах

Иван Cергеевич ЧЕРЕМИСЕНОВ
Институт системного программирования им. В.П. Иванникова РАН, Московский государственный университет им. М.В. Ломоносова
Россия

Студент факультета вычислительной математики и кибернетики МГУ имени М. В. Ломоносова, сотрудник Института системного программирования РАН. Сфера научных интересов: компиляторные технологии, статический анализ.



Алексей Евгеньевич БОРОДИН
Институт системного программирования им. В.П. Иванникова РАН
Россия

Кандидат физико-математических наук, старший научный сотрудник ИСП РАН. Сфера научных интересов: статический анализ исходного кода программ для поиска ошибок.



Александр Ефимович ВОЛКОВ
Институт системного программирования им. В.П. Иванникова РАН
Россия

Старший научный сотрудник Института системного программирования РАН. Сфера научных интересов: статический анализ исходного кода программ для поиска ошибок.



Михаил Вадимович ВЕЛИКАНОВ
Институт системного программирования им. В.П. Иванникова РАН
Россия

Ведущий программист Института системного программирования РАН. Сфера профессиональных интересов: разработка систем статического анализа исходного кода программ.



Список литературы

1. Н. В. Шимчик, В. Н. Игнатьев и А. А. Белеванцев. Irbis: статический анализатор помеченных данных для поиска уязвимостей в программах на c/c++. Труды Института системного программирования РАН, 34(6):51–66, 2022.

2. MITRE Corporation. Common Weakness Enumeration (CWE). https://cwe.mitre.org/. Дата обращения: 2025-05-01.

3. MITRE Corporation. Common Weakness Enumeration (CWE) – CWE-707: Improper Neutralization. https://cwe.mitre.org/data/definitions/707.html. Дата обращения: 2025-05-01.

4. MITRE Corporation. Common Weakness Enumeration (CWE) – CWE-20: Improper Input Validation. https://cwe.mitre.org/data/definitions/20.html. Дата обращения: 2025-05-01.

5. MITRE Corporation. Common Weakness Enumeration (CWE) – CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component (’Injection’). https://cwe.mitre.org/data/definitions/74.html. Дата обращения: 2025-05-01.

6. MITRE Corporation. 2024 CWE Top 25 Most Dangerous Software Weaknesses. https://cwe.mitre.org/top25/archive/2024/2024_cwe_top25.html. Дата обращения: 2025-05-01.

7. V. Ivannikov, A. Belevantsev, A. Borodin, V. Ignatiev, D. Zhurikhin и A. Avetisyan. Static analyzer svace for finding defects in a source program code. Programming and Computer Software, 40(5):265–275, 2014.

8. A. Belevantsev, A. Borodin, I. Dudina, V. Ignatiev, A. Izbyshev, S. Polyakov и D. Zhurikhin. Design and development of Svace static analyzers. In 2018 Ivannikov Memorial Workshop (IVMEM):3–9, 2018.

9. A. Borodin и I. Dudina. Intraprocedural Analysis Based on Symbolic Execution for Bug Detection. Programming and Computer Software, 47(8):858–865, 2021.

10. W. Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems (LOPLAS), 1(4):323–337, 1992.

11. D. Babic и A. J. Hu. Calysto: scalable and precise extended static checking. В Proceedings of the 30th international conference on Software engineering, страницы 211–220, 2008.

12. A. Aiken, S. Bugrara, I. Dillig, T. Dillig, B. Hackett и P. Hawkins. An overview of the saturn project. В Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, страницы 43–48, 2007.

13. W. R. Bush, J. D. Pincus и D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software-Practice and Experience, 30(7), 2000.

14. В. К. Кошелев, В. Н. Игнатьев и А. И. Борзилов. Инфраструктура статического анализа программ на языке c. Труды Института системного программирования РАН, 28(1):21–40, 2016.

15. A. Galustov, A. Borodin и A. Belevantsev. Devirtualization for static analysis with low level intermediate representation. В 2022 Ivannikov Ispras Open Conference (ISPRAS), страницы 18–23. IEEE, 2022.

16. Google LLC. Android open source project. https://source.android.com/, 2024. Дата обращения: 2025-05-01.

17. OWASP Foundation. Owasp webgoat project. https://owasp.org/www-project-webgoat/, 2023. Дата обращения: 2025-05-01.

18. National Security Agency. Juliet test suite for java. https://samate.nist.gov/SRD/testsuite.php, 2013. Дата обращения: 2025-05-01.

19. J. Newsome и D. X. Song. Dynamic taint analysis for automatic detection, analysis, and signaturegeneration of exploits on commodity software. В NDSS, том 5, страницы 3–4. Citeseer, 2005.

20. E. Bodden. Inter-procedural data-flow analysis with ifds/ide and soot. В Proceedings of the ACM SIGPLAN International Workshop on State of the Art in Java Program analysis, страницы 3–8, 2012.

21. D. Evans и D. Larochelle. Improving security using extensible lightweight static analysis. IEEE software, 19(1):42–51, 2002.

22. U. Shankar, K. Talwar, J. S. Foster и D. Wagner. Detecting format string vulnerabilities with type qualifiers. В 10th USENIX Security Symposium (USENIX Security 01), 2001.

23. A. Borodin, A. Goremykin, S. Vartanov и A. Belevancev. Searching for tainted vulnerabilities in static analysis tool svace. Proceedings of the Institute for System Programming of the RAS, 33(1):7–32, 2021.


Рецензия

Для цитирования:


ЧЕРЕМИСЕНОВ И.C., БОРОДИН А.Е., ВОЛКОВ А.Е., ВЕЛИКАНОВ М.В. Подход к анализу помеченных данных в статическом анализаторе Svace. Труды Института системного программирования РАН. 2025;37(6):97-118. https://doi.org/10.15514/ISPRAS-2025-37(6)-53

For citation:


CHEREMISENOV I.S., BORODIN A.E., VOLKOV A.E., VELIKANOV M.V. An Approach to Tainted Analysis in the Svace Static Analyzer. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2025;37(6):97-118. (In Russ.) https://doi.org/10.15514/ISPRAS-2025-37(6)-53



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)